Bank Accounts
Bank Accounts are used to get money in and out of a Centrapay Account. Money is moved by creating "Top Up" or "Withdrawal" Funds Transfers.
Bank Accounts must be "direct debit authorized" before they can be used for a Top Up and they must be "verified" before top up funds are released. Bank Accounts do not require "direct debit authorization" or "verification" in order to perform a Withdrawal. A 4-digit code from any recent Centrapay-initiated bank transaction can be used to verify a bank account.
Bank Account Model
Attributes
id
stringbankAccountNumber
stringbankAccountName
stringpreferredBankAccountName
stringaccountId
stringstatus
stringverified
booleantype
stringdirectDebitAuthority
objectdirectDebitAuthorized
booleanapprovals
arraycreatedAt
timestampmodifiedAt
timestampcreatedBy
crnmodifiedBy
crntest
booleanenduringPaymentConsentAuthorized
boolean
Bank Account Type experimental
Types of bank accounts to allow access to different Asset Types.
| Type | Description |
|---|---|
| centrapay | Allows topup and withdrawal of the centrapay.nzd asset type. |
| quartz | Allows usage of the quartz.nzd asset type. |
Direct Debit Authority Model
A direct-debit authority is required to be able to Top Up a Bank Account. By including directDebitAuthority, the user accepts our Direct Debit terms and has authority to operate this account.
Attributes
phoneNumber
stringfullName
stringemailAddress
string
Bank Account Approval Type Summary Model experimental
A summary of the Bank Account Approvals for a Bank Account. There is one object per type of Bank Account Approval, which provides a summary of the approval status.
Attributes
type
stringstatus
stringupdatedAt
timestamp
Bank Account Balance Model experimental
The Bank Account balance, retrieved using Open Banking flows. The supported Bank Account type is quartz.
Attributes
bankAccountId
stringbalance
bignumbercurrency
string
Create Bank Account
A Bank Account can be created with or without direct debit authorized. By including directDebitAuthority, the user accepts our Direct Debit terms and has authority to operate this account.
phone, fullName and emailAddress are all required to create a direct-debit authority. This is required to be able to Top Up a Bank Account.
Attributes
accountId
stringrequiredbankAccountNumber
stringrequiredbankAccountName
stringrequireddirectDebitAuthority
objecttype
stringtest
boolean
Errors
BANK_ACCOUNT_LIMIT_EXCEEDED
403BANK_ACCOUNT_HOLDER_LIMIT_EXCEEDED
403DUPLICATE_BANK_ACCOUNT
403
curl -X POST https://service.centrapay.com/api/bank-accounts \-H 'content-type: application/json' \-H 'x-api-key: <TOKEN>' \-d '{ "accountId": "Jaim1Cu1Q55uooxSens6yk", "bankAccountNumber": "12-1234-1234567-123", "bankAccountName": "John Doe", "directDebitAuthority": { "phoneNumber": "+64212345678", "fullName": "John Doe", "emailAddress": "john.doe@gmail.com" }}'{ "id": "WRhAxxWpTKb5U7pXyxQjjY", "accountId": "Jaim1Cu1Q55uooxSens6yk", "bankAccountNumber": "12-1234-1234567-123", "bankAccountName": "John Doe", "directDebitAuthorized": true, "status": "created", "verified": false, "type": "centrapay", "createdAt": "2020-06-12T01:17:46.499Z", "createdBy": "crn:WIj211vFs9cNACwBb04vQw:api-key:MyApiKey", "modifiedAt": "2020-06-12T01:17:46.499Z", "modifiedBy": "crn:WIj211vFs9cNACwBb04vQw:api-key:MyApiKey", "approvals": []}Add Direct Debit Authority to a Bank Account
By using this endpoint, the user accepts our Direct Debit terms and has authority to operate this account.
Attributes
phoneNumber
stringrequiredfullName
stringrequiredemailAddress
stringrequired
Errors
DIRECT_DEBIT_ALREADY_AUTHORIZED
403DIRECT_DEBIT_LIMIT_EXCEEDED
403
curl -X POST https://service.centrapay.com/api/bank-accounts/WRhAxxWpTKb5U7pXyxQjjY/direct-debit-authorities \-H 'content-type: application/json' \-H 'x-api-key: <TOKEN>' \-d '{ "phoneNumber": "+64212345678", "fullName": "John Doe", "emailAddress": "john.doe@gmail.com"}'{ "id": "WRhAxxWpTKb5U7pXyxQjjY", "accountId": "Jaim1Cu1Q55uooxSens6yk", "bankAccountNumber": "12-1234-1234567-123", "bankAccountName": "John Doe", "directDebitAuthorized": true, "status": "created", "verified": false, "type": "centrapay", "createdAt": "2020-06-12T01:17:46.499Z", "createdBy": "crn:WIj211vFs9cNACwBb04vQw:api-key:MyApiKey", "modifiedAt": "2020-06-12T01:17:46.499Z", "modifiedBy": "crn:WIj211vFs9cNACwBb04vQw:api-key:MyApiKey", "approvals": []}Get Bank Account
This endpoint allows you to retrieve information about a Bank Account.
curl -X GET https://service.centrapay.com/api/bank-accounts/WRhAxxWpTKb5U7pXyxQjjY \-H 'x-api-key: <TOKEN>'{ "id": "WRhAxxWpTKb5U7pXyxQjjY", "accountId": "Jaim1Cu1Q55uooxSens6yk", "status": "created", "bankAccountNumber": "12-1234-1234567-123", "bankAccountName": "John Doe", "directDebitAuthorized": false, "bankRegion": "nz", "createdBy": "crn:WIj211vFs9cNACwBb04vQw:api-key:MyApiKey", "createdAt": "2022-07-18T02:26:39.477Z", "verified": false, "modifiedBy": "crn:WIj211vFs9cNACwBb04vQw:api-key:MyApiKey", "modifiedAt": "2022-07-18T02:26:39.477Z", "approvals": [ { "type": "account-information-consent", "status": "approved", "updatedAt": "2021-11-08T21:52:39.915Z" } ], "type": "quartz", "test": true}Get Bank Account Balance experimental
This endpoint allows you to retrieve the balance of a Bank Account.
curl -X GET https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/bank-account-balances \-H 'x-api-key: <TOKEN>'{ "items": [ { "bankAccountId": "b3f9ba1abff64775877d4a2fb073b123", "bankAccountNumber": "12-1234-1234567-123", "balance": "101.00", "availableBalance": "101.00", "test": true } ], "nextPageKey": "48a16140-24d2-4aec-b52f-a9d4f8f23876"}Verify Bank Account
Verification codes show up on statements when a user makes withdrawals and deposits. To verify an account, you need to direct the user to make a Top Up or Withdrawal and then check their statement.
Attributes
verificationCode
stringrequired
Errors
BANK_ACCOUNT_ALREADY_VERIFIED
403VERIFICATION_CODE_INVALID
403BANK_ACCOUNT_VERIFICATION_ATTEMPTS_EXCEEDED
403ACCOUNT_MISMATCH
403
curl -X POST https://service.centrapay.com/api/bank-accounts/WRhAxxWpTKb5U7pXyxQjjY/verify \-H 'content-type: application/json' \-H 'x-api-key: <TOKEN>' \-d '{ "verificationCode": "1111"}'{ "verificationCode": "1111"}List Bank Accounts
This endpoint allows you to list the Bank Accounts for an account.
curl -X GET https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/bank-accounts \-H 'x-api-key: <TOKEN>'[ { "id": "XZbPLViMzekVBbF7QMqgaY", "accountId": "Jaim1Cu1Q55uooxSens6yk", "status": "created", "bankAccountNumber": "02-0500-0568903-097", "bankAccountName": "Pocket Money", "directDebitAuthorized": false, "bankRegion": "nz", "createdBy": "crn::user:57142ecc-e5e4-456a-8312-1fad4fdef3c7", "createdAt": "2022-04-19T05:43:40.425Z", "verified": false, "modifiedBy": "crn::user:57142ecc-e5e4-456a-8312-1fad4fdef3c7", "modifiedAt": "2022-04-19T05:43:40.425Z", "approvals": [], "type": "quartz", "test": true }, { "id": "3Kfdm8cuW1W6f8AoWJREs4", "accountId": "Jaim1Cu1Q55uooxSens6yk", "status": "created", "bankAccountNumber": "00-1213-1231299-999", "bankAccountName": "Jean", "directDebitAuthorized": false, "bankRegion": "nz", "createdBy": "crn::user:57142ecc-e5e4-456a-8312-1fad4fdef3c7", "createdAt": "2022-02-22T03:27:57.138Z", "verified": false, "modifiedBy": "crn::user:57142ecc-e5e4-456a-8312-1fad4fdef3c7", "modifiedAt": "2022-02-22T03:27:57.138Z", "approvals": [ { "type": "settlement", "status": "pending", "updatedAt": "2021-11-08T21:52:39.915Z" } ], "type": "centrapay" }]Set Preferred Bank Account Name
Errors
INVALID_BANK_ACCOUNT_TYPE
403
curl -X POST https://service.centrapay.com/api/bank-accounts/WRhAxxWpTKb5U7pXyxQjjY/set-preferred-name \-H 'content-type: application/json' \-H 'x-api-key: <TOKEN>' \-d '{ "preferredBankAccountName": "Everyday Account"}'{ "activityNumber": 1, "createdAt": "2020-06-12T01:17:46.499Z", "bankAccountId": "WRhAxxWpTKb5U7pXyxQjjY", "type": "set-preferred-bank-account-name", "preferredBankAccountName": "Everyday Account", "createdBy": "crn:WIj211vFs9cNACwBb04vQw:api-key:MyApiKey"}Archive Bank Account
Archives the supplied bank account. This endpoint is currently only supported for quartz bank accounts.
curl -X POST https://service.centrapay.com/api/bank-accounts/b5URhAxxWpTKyxQjjY7pXW/archive \-H 'x-api-key: <TOKEN>'{ "id": "b5URhAxxWpTKyxQjjY7pXW", "accountId": "Jaim1Cu1Q55uooxSens6yk", "bankAccountNumber": "12-1234-1234567-123", "bankAccountName": "Jane Doe", "preferredBankAccountName": "Everyday Account", "balance": "123", "availableBalance": "100", "status": "archived", "verified": true, "directDebitAuthorized": true, "createdAt": "2020-06-12T01:17:46.499Z", "test": true}Verify Bank Authority deprecated
If you're creating new interfaces, please work with Verify Bank Account.
Attributes
verificationCode
stringrequired
Errors
BANK_ACCOUNT_ALREADY_VERIFIED
403VERIFICATION_CODE_INVALID
403BANK_ACCOUNT_VERIFICATION_ATTEMPTS_EXCEEDED
403ACCOUNT_MISMATCH
403
curl -X POST https://service.centrapay.com/api/bank-authorities/WRhAxxWpTKb5U7pXyxQjjY/verify \-H 'content-type: application/json' \-H 'x-api-key: <TOKEN>' \-d '{ "verificationCode": "1111"}'{ "verificationCode": "1111"}List Bank Authorities deprecated
If you're creating new interfaces, please work with List Bank Accounts.
curl -X GET https://service.centrapay.com/api/bank-authorities \-H 'x-api-key: <TOKEN>'[ { "id": "WRhAxxWpTKb5U7pXyxQjjY", "accountId": "Jaim1Cu1Q55uooxSens6yk", "bankAccountNumber": "12-1234-1234567-123", "bankAccountName": "John Doe", "status": "created", "verified": false, "directDebitAuthorized": true, "createdAt": "2020-06-12T01:17:46.499Z", "approvals": [] }, { "id": "b5URhAxxWpTKyxQjjY7pXW", "accountId": "Jaim1Cu1Q55uooxSens6yk", "bankAccountNumber": "12-1234-1234567-123", "bankAccountName": "Jane Doe", "status": "active", "verified": true, "directDebitAuthorized": true, "createdAt": "2020-06-12T01:17:46.499Z", "approvals": [ { "type": "settlement", "status": "pending", "updatedAt": "2021-11-08T21:52:39.915Z" } ] }]Create Bank Authority deprecated
If you're creating new interfaces, please work with Create Bank Account.
Creating a Bank Authority both creates a new Bank Account and a direct debit authority. By using this endpoint, the user accepts our Direct Debit terms and has authority to operate this account.
Attributes
accountId
stringrequiredfullName
stringrequiredphoneNumber
stringrequiredemailAddress
stringrequiredbankAccountNumber
stringrequiredbankAccountName
stringrequired
Errors
BANK_AUTHORITY_LIMIT_EXCEEDED
403BANK_AUTHORITIES_FOR_BANK_ACCOUNT_EXCEEDED
403
curl -X POST https://service.centrapay.com/api/bank-authorities \-H 'content-type: application/json' \-H 'x-api-key: <TOKEN>' \-d '{ "fullName": "John Doe", "accountId": "Jaim1Cu1Q55uooxSens6yk", "phoneNumber": "+64212345", "emailAddress": "John.doe@email.com", "bankAccountNumber": "12-1234-1234567-123", "bankAccountName": "John Doe"}'{ "id": "WRhAxxWpTKb5U7pXyxQjjY", "accountId": "Jaim1Cu1Q55uooxSens6yk", "bankAccountNumber": "12-1234-1234567-123", "bankAccountName": "John Doe", "status": "created", "verified": false, "directDebitAuthorized": true, "createdAt": "2020-06-12T01:17:46.499Z", "createdBy": "crn:WIj211vFs9cNACwBb04vQw:api-key:MyApiKey", "modifiedAt": "2020-06-12T01:17:46.499Z", "modifiedBy": "crn:WIj211vFs9cNACwBb04vQw:api-key:MyApiKey", "approvals": []}Get Bank Authority deprecated
If you're creating new interfaces, please work with Get Bank Account.
Errors
BANK_AUTHORITY_LIMIT_EXCEEDED
403BANK_AUTHORITIES_FOR_BANK_ACCOUNT_EXCEEDED
403
curl -X GET https://service.centrapay.com/api/bank-authorities/WRhAxxWpTKb5U7pXyxQjjY \-H 'x-api-key: <TOKEN>'{ "id": "WRhAxxWpTKb5U7pXyxQjjY", "accountId": "Jaim1Cu1Q55uooxSens6yk", "bankAccountNumber": "12-1234-1234567-123", "bankAccountName": "John Doe", "status": "created", "directDebitAuthorized": true, "verified": false, "createdAt": "2020-06-12T01:17:46.499Z", "createdBy": "crn:WIj211vFs9cNACwBb04vQw:api-key:MyApiKey", "modifiedAt": "2020-06-12T01:17:46.499Z", "modifiedBy": "crn:WIj211vFs9cNACwBb04vQw:api-key:MyApiKey", "approvals": []}