Customer Bank Account
Customer Bank Accounts hold the bank details of a customer. They always belong to a customer, and may be linked to several Direct Debit mandates.
Note that customer bank accounts must be unique, and so you will encounter a bank_account_exists error if you try to create a duplicate bank account. You may wish to handle this by updating the existing record instead, the ID of which will be provided as links[customer_bank_account] in the error response.
Note: To ensure the customer's bank accounts are valid, verify them first using bank_details_lookups, before proceeding with creating the accounts
Create a customer bank account#
/customer_bank_accountsCreates a new customer bank account object.
There are three different ways to supply bank account details:
For more information on the different fields required in each country, see local bank details.
Request Body
customer_bank_accountsobject10 properties
account_numberstring
Bank account number - see local details for more information. Alternatively you can provide an iban.
bank_codestring
Bank code - see local details for more information. Alternatively you can provide an iban.
branch_codestring
Branch code - see local details for more information. Alternatively you can provide an iban.
ibanstring
International Bank Account Number. Alternatively you can provide local details. IBANs are not accepted for Swedish bank accounts denominated in SEK - you must supply local details.
country_codestring
ISO 3166-1 alpha-2 code. Defaults to the country code of the iban if supplied, otherwise is required.
currencystring
ISO 4217 currency code. Currently "AUD", "CAD", "DKK", "EUR", "GBP", "NZD", "SEK" and "USD" are supported.
account_holder_namestring
Name of the account holder, as known by the bank. The full name provided when the customer is created is stored and is available via the API, but is transliterated, upcased, and truncated to 18 characters in bank submissions. This field is required unless the request includes a customer bank account token.
account_typestring
Bank account type. Required for USD-denominated bank accounts. Must not be provided for bank accounts in other currencies. See local details for more information.
savingscheckingmetadataobject
Key-value store of custom data. Up to 3 keys are permitted, with key names up to 50 characters and values up to 500 characters.
linksobject
2 properties
customerstring
ID of the customer that owns this bank account.
customer_bank_account_tokenstring
ID of a customer bank account token to use in place of bank account parameters.
Response 201
Resource created successfully
customer_bank_accountsobject14 properties
idstring
Unique identifier, beginning with "BA".
created_atstring
Fixed timestamp, recording when this resource was created.
account_holder_namestring
Name of the account holder, as known by the bank. The full name provided when the customer is created is stored and is available via the API, but is transliterated, upcased, and truncated to 18 characters in bank submissions. This field is required unless the request includes a customer bank account token.
account_number_endingstring
The last few digits of the account number. Currently 4 digits for NZD bank accounts and 2 digits for other currencies.
account_typestring
Bank account type. Required for USD-denominated bank accounts. Must not be provided for bank accounts in other currencies. See local details for more information.
savingscheckingcountry_codestring
ISO 3166-1 alpha-2 code. Defaults to the country code of the iban if supplied, otherwise is required.
currencystring
ISO 4217 currency code. Currently "AUD", "CAD", "DKK", "EUR", "GBP", "NZD", "SEK" and "USD" are supported.
bank_namestring
Name of bank, taken from the bank details.
bank_account_tokenstring
A token to uniquely refer to a set of bank account details. This feature is still in early access and is only available for certain organisations.
enabledboolean
Boolean value showing whether the bank account is enabled or disabled.
metadataobject
Key-value store of custom data. Up to 3 keys are permitted, with key names up to 50 characters and values up to 500 characters.
linksobject
1 properties
customerstring
ID of the customer that owns this bank account.
trusted_recipientboolean
Whether this customer bank account is registered as a trusted recipient for Outbound Payments. Only present when the feature is enabled for the organisation.
payer_name_verification_resultstring
The result of the payer name verification check performed when the bank account was created. Only present if a check was performed.
full: The name provided matches the name held by the bank.close: The name provided is a close but not exact match to the name held by the bank.cannot_perform_verification: A verification was attempted but could not be completed. This can happen for a number of reasons, including the account holder's bank not participating in the verification scheme, the account not being eligible for verification (e.g. the account holder has opted out), or the bank details not being resolvable, among others.
fullclosecannot_perform_verificationErrors 400401404422500
Bad Request
Unauthorised
Not found
Validation Error
Internal Error
Error Body
codeintegerdocumentation_urlstringerrorsarray2 properties
reasonstringmessagestringmessagestringrequest_idstringtypestringmetadataobjectlinksobjectList customer bank accounts#
/customer_bank_accountsReturns a cursor-paginated list of your bank accounts.
Response 200
Successful response
customer_bank_accountsarray14 properties
idstring
Unique identifier, beginning with "BA".
created_atstring
Fixed timestamp, recording when this resource was created.
account_holder_namestring
Name of the account holder, as known by the bank. The full name provided when the customer is created is stored and is available via the API, but is transliterated, upcased, and truncated to 18 characters in bank submissions. This field is required unless the request includes a customer bank account token.
account_number_endingstring
The last few digits of the account number. Currently 4 digits for NZD bank accounts and 2 digits for other currencies.
account_typestring
Bank account type. Required for USD-denominated bank accounts. Must not be provided for bank accounts in other currencies. See local details for more information.
savingscheckingcountry_codestring
ISO 3166-1 alpha-2 code. Defaults to the country code of the iban if supplied, otherwise is required.
currencystring
ISO 4217 currency code. Currently "AUD", "CAD", "DKK", "EUR", "GBP", "NZD", "SEK" and "USD" are supported.
bank_namestring
Name of bank, taken from the bank details.
bank_account_tokenstring
A token to uniquely refer to a set of bank account details. This feature is still in early access and is only available for certain organisations.
enabledboolean
Boolean value showing whether the bank account is enabled or disabled.
metadataobject
Key-value store of custom data. Up to 3 keys are permitted, with key names up to 50 characters and values up to 500 characters.
linksobject
1 properties
customerstring
ID of the customer that owns this bank account.
trusted_recipientboolean
Whether this customer bank account is registered as a trusted recipient for Outbound Payments. Only present when the feature is enabled for the organisation.
payer_name_verification_resultstring
The result of the payer name verification check performed when the bank account was created. Only present if a check was performed.
full: The name provided matches the name held by the bank.close: The name provided is a close but not exact match to the name held by the bank.cannot_perform_verification: A verification was attempted but could not be completed. This can happen for a number of reasons, including the account holder's bank not participating in the verification scheme, the account not being eligible for verification (e.g. the account holder has opted out), or the bank details not being resolvable, among others.
fullclosecannot_perform_verificationmetaobject2 properties
limitintegercursorsobject
2 properties
beforestring
Cursor pointing to the end of the desired set.
afterstring
Cursor pointing to the start of the desired set.
Errors 400401404422500
Bad Request
Unauthorised
Not found
Validation Error
Internal Error
Error Body
codeintegerdocumentation_urlstringerrorsarray2 properties
reasonstringmessagestringmessagestringrequest_idstringtypestringmetadataobjectlinksobjectGet a single customer bank account#
/customer_bank_accounts/{customer_bank_account_id}Retrieves the details of an existing bank account.
Path Parameters
| Name | Type | Description |
|---|---|---|
customer_bank_account_idrequired | string | The customer bank account id |
Response 200
Successful response
customer_bank_accountsobject14 properties
idstring
Unique identifier, beginning with "BA".
created_atstring
Fixed timestamp, recording when this resource was created.
account_holder_namestring
Name of the account holder, as known by the bank. The full name provided when the customer is created is stored and is available via the API, but is transliterated, upcased, and truncated to 18 characters in bank submissions. This field is required unless the request includes a customer bank account token.
account_number_endingstring
The last few digits of the account number. Currently 4 digits for NZD bank accounts and 2 digits for other currencies.
account_typestring
Bank account type. Required for USD-denominated bank accounts. Must not be provided for bank accounts in other currencies. See local details for more information.
savingscheckingcountry_codestring
ISO 3166-1 alpha-2 code. Defaults to the country code of the iban if supplied, otherwise is required.
currencystring
ISO 4217 currency code. Currently "AUD", "CAD", "DKK", "EUR", "GBP", "NZD", "SEK" and "USD" are supported.
bank_namestring
Name of bank, taken from the bank details.
bank_account_tokenstring
A token to uniquely refer to a set of bank account details. This feature is still in early access and is only available for certain organisations.
enabledboolean
Boolean value showing whether the bank account is enabled or disabled.
metadataobject
Key-value store of custom data. Up to 3 keys are permitted, with key names up to 50 characters and values up to 500 characters.
linksobject
1 properties
customerstring
ID of the customer that owns this bank account.
trusted_recipientboolean
Whether this customer bank account is registered as a trusted recipient for Outbound Payments. Only present when the feature is enabled for the organisation.
payer_name_verification_resultstring
The result of the payer name verification check performed when the bank account was created. Only present if a check was performed.
full: The name provided matches the name held by the bank.close: The name provided is a close but not exact match to the name held by the bank.cannot_perform_verification: A verification was attempted but could not be completed. This can happen for a number of reasons, including the account holder's bank not participating in the verification scheme, the account not being eligible for verification (e.g. the account holder has opted out), or the bank details not being resolvable, among others.
fullclosecannot_perform_verificationErrors 400401404422500
Bad Request
Unauthorised
Not found
Validation Error
Internal Error
Error Body
codeintegerdocumentation_urlstringerrorsarray2 properties
reasonstringmessagestringmessagestringrequest_idstringtypestringmetadataobjectlinksobjectUpdate a customer bank account#
/customer_bank_accounts/{customer_bank_account_id}Updates a customer bank account object. Only the metadata parameter is allowed.
Path Parameters
| Name | Type | Description |
|---|---|---|
customer_bank_account_idrequired | string | The customer bank account id |
Request Body
customer_bank_accountsobject1 properties
metadataobject
Key-value store of custom data. Up to 3 keys are permitted, with key names up to 50 characters and values up to 500 characters.
Response 200
Successful response
customer_bank_accountsobject14 properties
idstring
Unique identifier, beginning with "BA".
created_atstring
Fixed timestamp, recording when this resource was created.
account_holder_namestring
Name of the account holder, as known by the bank. The full name provided when the customer is created is stored and is available via the API, but is transliterated, upcased, and truncated to 18 characters in bank submissions. This field is required unless the request includes a customer bank account token.
account_number_endingstring
The last few digits of the account number. Currently 4 digits for NZD bank accounts and 2 digits for other currencies.
account_typestring
Bank account type. Required for USD-denominated bank accounts. Must not be provided for bank accounts in other currencies. See local details for more information.
savingscheckingcountry_codestring
ISO 3166-1 alpha-2 code. Defaults to the country code of the iban if supplied, otherwise is required.
currencystring
ISO 4217 currency code. Currently "AUD", "CAD", "DKK", "EUR", "GBP", "NZD", "SEK" and "USD" are supported.
bank_namestring
Name of bank, taken from the bank details.
bank_account_tokenstring
A token to uniquely refer to a set of bank account details. This feature is still in early access and is only available for certain organisations.
enabledboolean
Boolean value showing whether the bank account is enabled or disabled.
metadataobject
Key-value store of custom data. Up to 3 keys are permitted, with key names up to 50 characters and values up to 500 characters.
linksobject
1 properties
customerstring
ID of the customer that owns this bank account.
trusted_recipientboolean
Whether this customer bank account is registered as a trusted recipient for Outbound Payments. Only present when the feature is enabled for the organisation.
payer_name_verification_resultstring
The result of the payer name verification check performed when the bank account was created. Only present if a check was performed.
full: The name provided matches the name held by the bank.close: The name provided is a close but not exact match to the name held by the bank.cannot_perform_verification: A verification was attempted but could not be completed. This can happen for a number of reasons, including the account holder's bank not participating in the verification scheme, the account not being eligible for verification (e.g. the account holder has opted out), or the bank details not being resolvable, among others.
fullclosecannot_perform_verificationErrors 400401404422500
Bad Request
Unauthorised
Not found
Validation Error
Internal Error
Error Body
codeintegerdocumentation_urlstringerrorsarray2 properties
reasonstringmessagestringmessagestringrequest_idstringtypestringmetadataobjectlinksobjectDisable a customer bank account#
/customer_bank_accounts/{customer_bank_account_id}/actions/disableImmediately cancels all associated mandates and cancellable payments.
This will return a disable_failed error if the bank account has already been disabled.
A disabled bank account can be re-enabled by creating a new bank account resource with the same details.
Path Parameters
| Name | Type | Description |
|---|---|---|
customer_bank_account_idrequired | string | The customer bank account id |
Response 200
Action completed successfully
customer_bank_accountsobject14 properties
idstring
Unique identifier, beginning with "BA".
created_atstring
Fixed timestamp, recording when this resource was created.
account_holder_namestring
Name of the account holder, as known by the bank. The full name provided when the customer is created is stored and is available via the API, but is transliterated, upcased, and truncated to 18 characters in bank submissions. This field is required unless the request includes a customer bank account token.
account_number_endingstring
The last few digits of the account number. Currently 4 digits for NZD bank accounts and 2 digits for other currencies.
account_typestring
Bank account type. Required for USD-denominated bank accounts. Must not be provided for bank accounts in other currencies. See local details for more information.
savingscheckingcountry_codestring
ISO 3166-1 alpha-2 code. Defaults to the country code of the iban if supplied, otherwise is required.
currencystring
ISO 4217 currency code. Currently "AUD", "CAD", "DKK", "EUR", "GBP", "NZD", "SEK" and "USD" are supported.
bank_namestring
Name of bank, taken from the bank details.
bank_account_tokenstring
A token to uniquely refer to a set of bank account details. This feature is still in early access and is only available for certain organisations.
enabledboolean
Boolean value showing whether the bank account is enabled or disabled.
metadataobject
Key-value store of custom data. Up to 3 keys are permitted, with key names up to 50 characters and values up to 500 characters.
linksobject
1 properties
customerstring
ID of the customer that owns this bank account.
trusted_recipientboolean
Whether this customer bank account is registered as a trusted recipient for Outbound Payments. Only present when the feature is enabled for the organisation.
payer_name_verification_resultstring
The result of the payer name verification check performed when the bank account was created. Only present if a check was performed.
full: The name provided matches the name held by the bank.close: The name provided is a close but not exact match to the name held by the bank.cannot_perform_verification: A verification was attempted but could not be completed. This can happen for a number of reasons, including the account holder's bank not participating in the verification scheme, the account not being eligible for verification (e.g. the account holder has opted out), or the bank details not being resolvable, among others.
fullclosecannot_perform_verificationErrors 400401404422500
Bad Request
Unauthorised
Not found
Validation Error
Internal Error
Error Body
codeintegerdocumentation_urlstringerrorsarray2 properties
reasonstringmessagestringmessagestringrequest_idstringtypestringmetadataobjectlinksobject