Skip to content
Last updated

The transfer field on a createAccount journey adds a 3rd-party holdings transfer step — moving assets from another institution into the new account. When set, the customer authorizes and configures the transfer as part of account opening. Set transfer to null to omit the step entirely.

Key concepts

enforce"required" means the customer must complete the transfer step; "optional" means they can skip it.

accounts — each entry describes one source account at the custodian. accountNumber: null means the customer enters it; a provided value is readonly. When accountNumber is set, sourceAccountType must be a single-entry array.

Output fields (defaultUnitsOutput, balanceOutput, untransferableUnitsOutput) each accept an array of either a single entry — which locks the behavior — or multiple entries, which let the customer choose:

  • cash — sell and transfer as cash
  • units — transfer as fund units
  • ignore — leave on the source account

instruments — list specific holdings to handle explicitly. Anything not in this list falls back to defaultUnitsOutput.

allowInstrumentSelection — when true, the customer can add instruments to the transfer in addition to those listed.

Examples

Move a specific holding from unknown account number. The rest is left on account.

The customer enters the account number. One specific fund is transferred as units in full. All other holdings and the cash balance are left on the source account. Account is not closed.

{
  "enforce": "required",
  "transfers": [
    {
      "custodian": "<institutionId>",
      "accounts": [
        {
          "accountNumber": null,
          "sourceAccountType": ["isk"],
          "required": true,
          "allowInstrumentSelection": false,
          "defaultUnitsOutput": ["ignore"],
          "balanceOutput": ["ignore"],
          "closeAccountAndSavingsplans": false,
          "untransferableUnitsOutput": ["ignore"],
          "instruments": [
            {
              "id": "<fundId>",
              "unitType": ["full"],
              "outputType": ["units"]
            }
          ]
        }
      ]
    }
  ]
}

Move all holdings and balance from known account number

Account number is known and readonly. All fund units transfer as units, the cash balance transfers as cash, and the source account and savings plans are closed after completion. Any untransferable units are sold to cash.

{
  "enforce": "required",
  "transfers": [
    {
      "custodian": "<institutionId>",
      "accounts": [
        {
          "accountNumber": "5311145347",
          "sourceAccountType": ["isk"],
          "required": true,
          "allowInstrumentSelection": false,
          "untransferableUnitsOutput": ["cash"],
          "defaultUnitsOutput": ["units"],
          "balanceOutput": ["cash"],
          "closeAccountAndSavingsplans": true
        }
      ]
    }
  ]
}

User selects all options

The transfer step is optional and the customer controls all output choices: how to handle each holding type, the cash balance, and untransferable units. They can also select specific instruments to transfer. closeAccountAndSavingsplans: null lets the customer decide. Additional custodians can be appended to the transfers array alongside the one shown.

{
  "enforce": "optional",
  "transfers": [
    {
      "custodian": "<institutionId>",
      "accounts": [
        {
          "accountNumber": "1234567890",
          "sourceAccountType": ["isk"],
          "required": false,
          "allowInstrumentSelection": true,
          "untransferableUnitsOutput": ["cash", "ignore"],
          "defaultUnitsOutput": ["cash", "units", "ignore"],
          "balanceOutput": ["cash", "ignore"],
          "closeAccountAndSavingsplans": null
        }
      ]
    }
  ]
}

Schema

enforcestringrequired

Controls whether the end user can skip the transfer step. required means the end user must complete the transfer step. optional means the end user may skip the transfer step.

Enum"required""optional"
transfersArray of objectsnon-emptyrequired

List of custodians and their accounts to transfer from. The custodian is always readonly. Account numbers, when provided, are readonly.

transfers[].​custodianstring(UUID)^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...required
Example: "49ad7378-121c-4a53-9894-dfd14a7b4877"
transfers[].​accountsArray of objectsnon-emptyrequired

Accounts at this custodian. Each account is either known (accountNumber set) or unknown (accountNumber null, end user enters it).

One of:
transfers[].​accounts[].​accountNumberstringrequired

Account number at the custodian. Readonly when provided. If null, the end user enters the account number. At most one null account number is allowed per custodian across all transfer entries.

Example: "1223456789"
transfers[].​accounts[].​sourceAccountTypeArray of strings= 1 itemsrequired

Allowed source account types at the custodian. A single entry locks the type; multiple entries let the end user pick. Each entry must be one of the journey's accountTypes. Locked to one entry when accountNumber is provided.

Items Enum"isk""depot""insurance"
transfers[].​accounts[].​closeAccountAndSavingsplansboolean or nullrequired

Should the custodian close the account and corresponding savingsplans after the transfer is complete? If "null", the user must decide.

transfers[].​accounts[].​requiredbooleanrequired

If true, the end user must complete this transfer. If false, the end user may deselect this transfer.

transfers[].​accounts[].​untransferableUnitsOutputArray of stringsnon-emptyrequired

If units are selected as output of unit transfer - what to transfer as if the transfer fails. I.e. the instrument does not exist in universe or trading is stopped. If a single entry, the behavior is locked. If multiple entries, the end user picks. cash — sell and transfer as cash. ignore — leave them.

Items Enum"cash""ignore"
transfers[].​accounts[].​defaultUnitsOutputArray of stringsnon-emptyrequired

What to do with instruments not listed in instruments. If a single entry, the behavior is locked. If multiple entries, the end user picks. cash — sell and transfer as cash. units — transfer as units. ignore — leave them.

Items Enum"cash""units""ignore"
transfers[].​accounts[].​balanceOutputArray of stringsnon-emptyrequired

What to do with the account's cash balance. If a single entry, the behavior is locked. If multiple entries, the end user picks. cash — transfer the cash balance. ignore — leave it.

Items Enum"cash""ignore"
transfers[].​accounts[].​allowInstrumentSelectionbooleanrequired

Should the end user be able to add specific instruments to transfer?

transfers[].​accounts[].​instrumentsArray of objects

Specific instruments to transfer from this account. If omitted, all instruments are handled by defaultUnitsOutput.