Skip to main content

Account Setups

Dreams and Accounts

The Doconomy Enterprise Software (DES) provides goal-based savings to End Users through the concept of "Dreams". Dreams come in two different flavors:

  • Savings Dreams: optimized for saving on a savings account.
  • Performance Dreams: optimized for investing the savings in different types of assets; mutual funds, stocks, bonds, crypto etc.

The money that End Users save or invest towards their Dreams must be stored on some bank account. DES is largely agnostic about the actual underlying account types used on the bank's side and their inner workings, but abstracts these accounts using two different types:

  • SharedSavings: for supporting Savings Dreams. Typically some kind of savings account.
  • Performance: for supporting Performance Dreams. Typically some kind of investment account.

When an End User reaches a point in the user journey where an account is needed for DES to start saving or investing money, the user experience is handed over to your Bank App through the SDK's "Account Provisioning Requested" callback. This part of the flow is controlled by you, and happens entirely on your end, in your environment. We speculate, depending on applicable regulations and compliance policies, that you might collect signatures from End Users for opening accounts, collect additional KYC information, ask the End User which specific account to deposit money from, etc. This is also where you have an opportunity to guide the End User towards the right type of savings account or investment product to use. DES includes meta data about the End User's Dream containing information such as target date and target amount to help guide such a decision.

When the End User is done provisioning an account (potentially with an applicable investment product), and the account is ready to receive transactions, you tell us with a POST request to the Impact Finance API /accounts endpoint, setting the type field in the request body to either SharedSavings or Performance depending on what kind of account was opened.

Savings Dreams

DES comes with a built-in shadow ledger, allowing multiple Savings Dreams to use a single SharedSavings account (per End User). All the money is stored safely on the End User's account on the bank's side, while the DES shadow ledger is responsible for keeping track of how much money is allocated to each Dream.

The benefits to this approach are:

  • Reducing potential costs associated with opening or maintaining bank accounts.
  • Simplified User Journey's for opening the account: The End User only has to do it once, and can then create multiple Dreams without friction.
  • Simplified API-integration: since there is only one account per End User, the target account for Deposits and source account for Withdrawals are always well-defined. This means that there is no need to communicate account numbers when requesting and settling transactions; only user id, amount and type (deposit or withdrawal).

See Account Provisioning (In a single-account setup) for a sequence diagram of Account Provisioning using this setup.

It is also possible to have a 1-to-1 mapping between Dreams and accounts. This might be preferable if for example your core banking system already supports virtual accounts (with minimal cost and effort required to open new accounts), and you want more control over the user experience for managing the money on each Dream.

See Account Provisioning (In a multi-account setup) for a sequence diagram of Account Provisioning using this setup.

Performance Dreams

For Performance Dreams, there must be one Performance account per Performance Dream. Note though, that this does not have to actually be an account on your end. As long as it appears to be a dedicated account to DES, you are free to use any construction behind the scenes on your end.

Summary

The following account setups are possible options:

  • One SharedSavings account per End User
  • One SharedSavings account per Savings Dream
  • One SharedSavings account per End User + One Performance account per Performance Dream
  • One SharedSavings account per Savings Dream + One Performance account per Performance Dream