Skip to main content

Bank accounts (1.0)

Download OpenAPI specification:Download

Bank accounts API requests specification

Bank accounts API requests specification

Manage your bank account , which you can later use for payments

Webhooks

Webhooks API requests specification

Status update Webhook

Webhook notification about status update

Request Body schema: application/json

Webhook payload

One of
scope
string
Value: "bank-accounts"

The scope of the webhook

event_name
string
Value: "status-update"

event_name

id
string

ID of the bank account

sortCode
string (sortCode) ^[0-9]{6}$

Sort code of the bank account. Must be 6 digits long

accountNumber
string (accountNumber) ^[0-9]{8}$

Account number of the bank account. Must be 8 digits long

name
string (bankAccountName)

Bank account name

provider
string (bankAccountProviderName)
Enum: "ob-natwest" "ob-lloyds-personal" "ob-rbs" "ob-tsb" "ob-halifax-personal" "ob-mettle" "ob-bos-personal" "ob-hsbc-personal" "ob-barclays-business" "ob-revolut" "starling" "ob-bos-business" "ob-first-direct" "ob-nationwide" "ob-monzo" "ob-lloyds-business" "ob-santander" "ob-virgin-money" "ob-hsbc-business" "ob-barclays-personal" "ob-tide" "ob-ulster" "other"

provider id

isDefault
boolean

Is this bank account default for the company

status
string (bankAccountStatus)

Bank account status

string or string or string (bankAccountConnectionType)

Bank account connection type

createdAt
string (createdAt)

Date when entity was created

bankStatementAttachmentURL
string <url>

Bank account statement

bankConsentExpired
string
Enum: "day-30" "day-14" "day-1" "expired" "up-to-date"

Bank account consent status. Determines if the bank account consent is expired or in which days it will expire. If the bank account is up-to-date reconsent is not needed

Responses

Request samples

Content type
application/json
{
  • "scope": "bank-accounts",
  • "event_name": "status-update",
  • "id": "62b48c5b6ba2cd6a040b20a8",
  • "sortCode": "123456",
  • "accountNumber": "12345678",
  • "name": "Default account",
  • "provider": "other",
  • "isDefault": true,
  • "status": "verified",
  • "connectionType": "manual",
  • "createdAt": "2022-12-24T00:00:00Z",
  • "bankStatementAttachmentURL": "string",
  • "bankConsentExpired": "day-30"
}

Consent expiration Webhook

Webhook notification about consent expiration. Only for bank acounts connected via App

Request Body schema: application/json

Webhook payload

One of
scope
string
Value: "bank-accounts"

The scope of the webhook

event_name
string
Value: "status-update"

event_name

id
string

ID of the bank account

sortCode
string (sortCode) ^[0-9]{6}$

Sort code of the bank account. Must be 6 digits long

accountNumber
string (accountNumber) ^[0-9]{8}$

Account number of the bank account. Must be 8 digits long

name
string (bankAccountName)

Bank account name

provider
string (bankAccountProviderName)
Enum: "ob-natwest" "ob-lloyds-personal" "ob-rbs" "ob-tsb" "ob-halifax-personal" "ob-mettle" "ob-bos-personal" "ob-hsbc-personal" "ob-barclays-business" "ob-revolut" "starling" "ob-bos-business" "ob-first-direct" "ob-nationwide" "ob-monzo" "ob-lloyds-business" "ob-santander" "ob-virgin-money" "ob-hsbc-business" "ob-barclays-personal" "ob-tide" "ob-ulster" "other"

provider id

isDefault
boolean

Is this bank account default for the company

status
string (bankAccountStatus)

Bank account status

string or string or string (bankAccountConnectionType)

Bank account connection type

createdAt
string (createdAt)

Date when entity was created

bankStatementAttachmentURL
string <url>

Bank account statement

bankConsentExpired
string
Enum: "day-30" "day-14" "day-1" "expired" "up-to-date"

Bank account consent status. Determines if the bank account consent is expired or in which days it will expire. If the bank account is up-to-date reconsent is not needed

Responses

Request samples

Content type
application/json
{
  • "scope": "bank-accounts",
  • "event_name": "status-update",
  • "id": "62b48c5b6ba2cd6a040b20a8",
  • "sortCode": "123456",
  • "accountNumber": "12345678",
  • "name": "Default account",
  • "provider": "other",
  • "isDefault": true,
  • "status": "verified",
  • "connectionType": "manual",
  • "createdAt": "2022-12-24T00:00:00Z",
  • "bankStatementAttachmentURL": "string",
  • "bankConsentExpired": "day-30"
}

Bank accounts

Create a new bank account

Create a new bank account

path Parameters
companyId
required
string
Example: 62b48adf6ba2cd6a040b1eec

Mongoose Object ID of the target managed company

header Parameters
terminal-secret
required
string <uuid>
Example: 3858f642-e92f-431c-9d38-46d15efb7fba
terminal-id
required
string
Example: 62b48adf6ba2cd6a040b1eec
Request Body schema: application/json
sortCode
required
string (sortCode) ^[0-9]{6}$

Sort code of the bank account. Must be 6 digits long

accountNumber
required
string (accountNumber) ^[0-9]{8}$

Account number of the bank account. Must be 8 digits long

name
required
string (bankAccountName)

Bank account name

provider
required
string (bankAccountProviderName)
Enum: "ob-natwest" "ob-lloyds-personal" "ob-rbs" "ob-tsb" "ob-halifax-personal" "ob-mettle" "ob-bos-personal" "ob-hsbc-personal" "ob-barclays-business" "ob-revolut" "starling" "ob-bos-business" "ob-first-direct" "ob-nationwide" "ob-monzo" "ob-lloyds-business" "ob-santander" "ob-virgin-money" "ob-hsbc-business" "ob-barclays-personal" "ob-tide" "ob-ulster" "other"

provider id

bankStatementAttachmentURL
required
string <url> (BankAccountAttachment)

Link to the bank account statement attachment file

Responses

Request samples

Content type
application/json
{
  • "sortCode": "123456",
  • "accountNumber": "12345678",
  • "name": "Default account",
  • "provider": "other",
  • "bankStatementAttachmentURL": "https://example.com"
}

Response samples

Content type
application/json; charset=utf-8
{
  • "id": "62b48c5b6ba2cd6a040b20a8",
  • "sortCode": "123456",
  • "accountNumber": "12345678",
  • "name": "Default account",
  • "provider": "other",
  • "isDefault": true,
  • "status": "verified",
  • "connectionType": "manual",
  • "createdAt": "2022-12-24T00:00:00Z",
  • "bankStatementAttachmentURL": "string",
  • "bankConsentExpired": "day-30"
}

Get all Bank accounts

Get all Bank accounts

path Parameters
companyId
required
string
Example: 62b48adf6ba2cd6a040b1eec

Mongoose Object ID of the target managed company

query Parameters
page
integer
Default: 1
Example: page=4

Current page number

limit
integer
Default: 25
Example: limit=10

Number of items per page

header Parameters
terminal-secret
required
string <uuid>
Example: 3858f642-e92f-431c-9d38-46d15efb7fba
terminal-id
required
string
Example: 62b48adf6ba2cd6a040b1eec

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "data": {
    }
}

Get a bank account by ID

Get a bank account by ID

path Parameters
companyId
required
string
Example: 62b48adf6ba2cd6a040b1eec

Mongoose Object ID of the target managed company

id
required
string
Example: 62b48c5b6ba2cd6a040b20a8

Mongoose Object ID of the target entity

header Parameters
terminal-secret
required
string <uuid>
Example: 3858f642-e92f-431c-9d38-46d15efb7fba
terminal-id
required
string
Example: 62b48adf6ba2cd6a040b1eec

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "id": "62b48c5b6ba2cd6a040b20a8",
  • "sortCode": "123456",
  • "accountNumber": "12345678",
  • "name": "Default account",
  • "provider": "other",
  • "isDefault": true,
  • "status": "verified",
  • "connectionType": "manual",
  • "createdAt": "2022-12-24T00:00:00Z",
  • "bankStatementAttachmentURL": "string",
  • "bankConsentExpired": "day-30"
}

Update a bank account name by ID

Update a bank account name by ID

path Parameters
companyId
required
string
Example: 62b48adf6ba2cd6a040b1eec

Mongoose Object ID of the target managed company

id
required
string
Example: 62b48c5b6ba2cd6a040b20a8

Mongoose Object ID of the target entity

header Parameters
terminal-secret
required
string <uuid>
Example: 3858f642-e92f-431c-9d38-46d15efb7fba
terminal-id
required
string
Example: 62b48adf6ba2cd6a040b1eec
Request Body schema: application/json
name
string (bankAccountName)

Bank account name

Responses

Request samples

Content type
application/json
{
  • "name": "Default account"
}

Response samples

Content type
application/json; charset=utf-8
{
  • "id": "62b48c5b6ba2cd6a040b20a8",
  • "sortCode": "123456",
  • "accountNumber": "12345678",
  • "name": "Default account",
  • "provider": "other",
  • "isDefault": true,
  • "status": "verified",
  • "connectionType": "manual",
  • "createdAt": "2022-12-24T00:00:00Z",
  • "bankStatementAttachmentURL": "string",
  • "bankConsentExpired": "day-30"
}

Set a bank account as default by ID

Set a bank account as default by ID

path Parameters
companyId
required
string
Example: 62b48adf6ba2cd6a040b1eec

Mongoose Object ID of the target managed company

id
required
string
Example: 62b48c5b6ba2cd6a040b20a8

Mongoose Object ID of the target entity

header Parameters
terminal-secret
required
string <uuid>
Example: 3858f642-e92f-431c-9d38-46d15efb7fba
terminal-id
required
string
Example: 62b48adf6ba2cd6a040b1eec

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "id": "62b48c5b6ba2cd6a040b20a8",
  • "sortCode": "123456",
  • "accountNumber": "12345678",
  • "name": "Default account",
  • "provider": "other",
  • "isDefault": true,
  • "status": "verified",
  • "connectionType": "manual",
  • "createdAt": "2022-12-24T00:00:00Z",
  • "bankStatementAttachmentURL": "string",
  • "bankConsentExpired": "day-30"
}