Skip to content
Developerhome

Creating bank accounts

  Less than to read

Details of all calls can be found in API reference.

Creating a bank account (direct)

  1. Identify the required bank by using a GET Banks call which will return a list of banks.
  2. To create a bank account make a POST BankAccount call with the bank account details in the body of the request.
    • An organsiation and company must have been created prior to this
    • accountType is type supported by the bank (see GET Bank call).
    • accountName is the users name for the account.
    • bankIdentifier needs to be unique.
    • bankId is retrieved from the GET Bank call.
  3. Successful creation will return a 201 with the bank account details in the response body.
    • featureOptions can be used to turn additional features on or off

Additional information

  • Bank accounts are required to be unique in terms of bank identifier (such as sort code) and account identifier (account number). The Banking Service will only permit a direct bank account to be stored once to ensure integrity and accuracy of transaction data received from direct banks.
  • Direct banks typically use the PDF form approach. However the user may be directed to a web site or provided instructions. The supported approach can be identified on the bank record within the authorisationMechanism property.
  • Where a URL is provided for a PDF Form to download, this is a signed URL to a file storage location; this will have a time limited lease for security purposes. You should have enough time to download it, however, it can be regenerated by adding auth=true to the query string on a GET BankAccount call, if required. Only append this where required.
  • On initial creation of a bank account, its status is set to pending. When transactions are received this will be updated to Active

Creating a bank account (indirect)

  1. Identify the required bank by using a GET Banks call which will return a list of banks.
  2. Make sure you have a valid Authentication Service JWT to access an organisation and company.
  3. Make a GET indirectlinkaccount call using the BankID, retrieved above, in the query string.
  4. Copy the URL in the redirect property and load in a browser. Note the pollRoute as this will be used to obtain the result.
  5. Enter the appropriate credentials.
  6. Select the required bank account from those presented.
  7. The browser can be closed when prompted.
  8. Perform a GET call against the pollRoute URL provided in step 4. to poll status of the request.
    • The poll URL is single use; if the process is still in progress, a next URL will be provided for subsequent polling.
  9. When a success:true response is received, the properties provided will be used in the next step.
  10. To create a bank account make a POST BankAccount call with the bank account details in the body of the request.
    • An organsiation and company must have been created prior to this
    • accountType is type supported by the bank (see GET Bank call).
    • accountName is the users name for the account.
    • bankIdentifier needs to be unique.
    • bankId is retrieved from the GET Bank call.
  11. Successful creation will return a 201 with the bank account details in the response body.
    • featureOptions can be used to turn additional features on or off

Additional information

  • Unlike direct banks, you can onboard the same bank account multiple times for indirect banks that are supported by aggregators.
  • It may be necessary to prompt the user to re-enter their credentials; this is expected to happen extremely infrequently. But on an old screen scraping aggregator data source this may be a regular occurrence. To support this, we have the indirect ‘re-auth’ flow.
  • When creating the indirect bank account via a Post BankAccount call, the requestedStartDate property should be set. This is the date of the starting point of the transactions to be stored against the account. The specified start date isn’t guaranteed to be achievable depending on the underlying data source, in such a situation the earliest transaction Banking Service has available will be used.