ClearBank

Manage sterling accounts

Real GBP accounts

A real account is a physical account held with ClearBank and can be used to send and/or receive payments.

Before creating an account, please check which account type you need. If you are unsure, please get in touch.

The balance of a real account is also held by ClearBank and can be viewed via the Institution portal and the ClearBank API. Real accounts are reconciled for you by ClearBank.

Get all accounts (real)

get/v3/Accounts

Gets all accounts associated with your institution.

All accounts are returned except those which have been disabled or where the account is a virtual account.

Parameters

  • pageNumber integer, query

    The page number to control returned results into manageable sets. Default if not supplied: 1.

  • pageSize integer, query

    The page size to control returned results into manageable sets. Default if not supplied: 50.

  • Authorization string, header, Required

    Your API Token, obtained from the ClearBank Portal.

Response (application/json)

  • 200 OK
  • 400 Bad Request

OK

{
"accounts": [
{
"id": "01234567-89ab-cdef-0123-456789abcdef",
"name": "Sample Account Type Name",
"label": "John Smith",
"type": "CACC",
"currency": "GBP",
"balances": [
{
"name": "Current Account",
"amount": 0,
"currency": "GBP",
"status": "VALU"
}
],
"minimumBalance": {
"name": "Current Account",
"amount": 0,
"currency": "GBP",
"status": "VALU"
},
"status": "Enabled",
"statusReason": "AccountHolderDeceased",
"iban": "GB12CLBK01020312345678",
"bban": "CLBK01020312345678",
"upic": "string",
"cuid": "string"
}
],
"halLinks": [
{
"name": "string",
"href": "string",
"templated": true
}
]
}
Code copied

Bad Request

{
"type": "../dictionary",
"title": "string",
"status": 100,
"detail": "string",
"instance": "../dictionary",
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}
Code copied

Create an account (real)

post/v3/Accounts

Creates an account with the specified name.

Currently, this endpoint only supports the creation of current accounts.

AccountName must not be null, and must only contain whitespace, letters, numbers and the following special characters: - ,.
Account names are automatically prefixed with an abbreviated account-type label, depending on the account type.
For example, if an account were created with the following parameters:
AccountName: 'account one'
UsageType: 'Segregated Designated'
When inspected using the GET /v3/Accounts/{accountId} endpoint, the name would be returned as: `Des Seg Wsale account one`

UsageType specifies an account's type. The account type you choose should depend on your agreement with ClearBank, your FCA permissions, and the purpose of the account.
An account's usage type is immutable. Take care to set the correct usage type when making a new account.

This endpoint uses the X-Request-Id as a duplicate check and to ensure the request is idempotent.

Parameters

  • Authorization string, header, Required

    Your API Token, obtained from the ClearBank Portal.

  • DigitalSignature string, header, Required

    Signed hash of the body of the request. The hash is signed by your private key.

  • X-Request-Id string, header, Required

    A unique identifier for the request; valid for 24 hours, max length 83.

Request Payload (application/json)

  • accountName string, Required

    The friendly name that should be associated with the account.

    Minimum length
    1
    Maximum length
    70
    Pattern
    ^[a-zA-Z0-9\- ,.&]*$
  • owner object, Required

    Set of elements used to identify a person or an organisation.

  • sortCode string, Required

    The sort code these accounts should be created under.

    Pattern
    ^\d{6}$
  • usageType string

    The type of funds the account will hold. Default if not supplied: YourFunds.

    Enum array
    YourFunds, SegregatedPooled, SegregatedDesignated, ClientMoneyPooled, ClientMoneyDesignated, SafeguardedPooled, SafeguardedDesignated, ClientSuspense

request

{
"accountName": "Current Account",
"owner": {
"name": "John Smith"
},
"sortCode": "010203",
"usageType": "YourFunds"
}
Code copied

Response (application/json)

  • 201 Created
  • 400 Bad Request
  • 403 Forbidden
  • 409 Conflict

Created

{
"account": {
"id": "01234567-89ab-cdef-0123-456789abcdef",
"name": "Sample Account Type Name",
"label": "John Smith",
"type": "CACC",
"currency": "GBP",
"balances": [
{
"name": "Current Account",
"amount": 0,
"currency": "GBP",
"status": "VALU"
}
],
"minimumBalance": {
"name": "Current Account",
"amount": 0,
"currency": "GBP",
"status": "VALU"
},
"status": "Enabled",
"statusReason": "AccountHolderDeceased",
"iban": "GB12CLBK01020312345678",
"bban": "CLBK01020312345678",
"upic": "string",
"cuid": "string"
},
"halLinks": [
{
"name": "string",
"href": "string",
"templated": true
}
]
}
Code copied

Bad Request

{
"type": "../dictionary",
"title": "string",
"status": 100,
"detail": "string",
"instance": "../dictionary",
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}
Code copied

Associated Webhooks

Get information for an account (real)

get/v3/Accounts/{accountId}

Gets a detailed view of an account.

Parameters

  • accountId string, path, Required

    The unique identifier for the account. This can be retrieved from GET /v3/Accounts.

  • Authorization string, header, Required

    Your API Token, obtained from the ClearBank Portal.

Response (application/json)

  • 200 OK
  • 400 Bad Request
  • 403 Forbidden
  • 404 Not Found

OK

{
"account": {
"id": "01234567-89ab-cdef-0123-456789abcdef",
"name": "Sample Account Type Name",
"label": "John Smith",
"type": "CACC",
"currency": "GBP",
"balances": [
{
"name": "Current Account",
"amount": 0,
"currency": "GBP",
"status": "VALU"
}
],
"minimumBalance": {
"name": "Current Account",
"amount": 0,
"currency": "GBP",
"status": "VALU"
},
"status": "Enabled",
"statusReason": "AccountHolderDeceased",
"iban": "GB12CLBK01020312345678",
"bban": "CLBK01020312345678",
"upic": "string",
"cuid": "string"
},
"halLinks": [
{
"name": "string",
"href": "string",
"templated": true
}
]
}
Code copied

Bad Request

{
"type": "../dictionary",
"title": "string",
"status": 100,
"detail": "string",
"instance": "../dictionary",
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}
Code copied

Amend an account (real)

patch/v1/accounts/{accountId}

This endpoint is used to amend the properties of an existing real account.

Parameters

  • accountId string, path, Required

    The unique identifier for the real account.

  • Authorization string, header, Required

    Your API Token, obtained from the ClearBank Portal.

  • DigitalSignature string, header, Required

    Signed hash of the body of the request. The hash is signed by your private key.

  • X-Request-Id string, header, Required

    A unique identifier for the request; valid for 24 hours, max length 83.

Request Payload (application/json)

  • status string

    Current status of the account. Valid options include Not Provided, Enabled, Closed, Suspended.

    Enum array
    NotProvided, Enabled, Closed, Suspended
  • statusReason string

    Reason that the account is Closed or Suspended. Valid options include NotProvided, AccountHolderBankrupt, AccountHolderDeceased, AccountSwitched, CompanyNoLongerTrading, DissatisfiedCustomer, DuplicateSoleTraderAccount, FinancialCrime, FraudFirstParty, FraudThirdParty, FraudConfirmed, InternallyDormant, KYCRequired, LegallyDisputed, PotentialSanctionedIndividual, SanctionedIndividual, SuspectMoneyLaundering, TransactionDispute, Other.

    Enum array
    NotProvided, AccountHolderBankrupt, AccountHolderDeceased, AccountSwitched, CompanyNoLongerTrading, DissatisfiedCustomer, DuplicateSoleTraderAccount, FinancialCrime, FraudFirstParty, FraudThirdParty, Other, FraudConfirmed, InternallyDormant, KYCRequired, LegallyDisputed, PotentialSanctionedIndividual, SanctionedIndividual, SuspectMoneyLaundering, TransactionDispute
  • ownerName string

    The name used to identify the legal owner of the account.

    Minimum length
    0
    Maximum length
    70
    Pattern
    ^[^\|_\[\]<>^`~\\$]*$
  • legalOwnerType string

    Nature of funds held in the account. Valid options include: Personal, Business.

    Enum array
    Personal, Business
  • relationshipType string

    Operating nature of the account. Valid options include Single, Joint. If legalOwnerType is Business, then the relationshipType cannot be Joint.

    Enum array
    Single, Joint
  • minimumBalance number

    The minimum allowable balance of the account (example: -£1000). Note that you must send a negative number to create an overdraft. This field can only be used if your organisation is an embedded banking client with an overdraft agreement in place; otherwise the request will be rejected.

request

{
"status": "Enabled",
"statusReason": "AccountHolderDeceased",
"ownerName": "John Smith",
"legalOwnerType": "Personal",
"relationshipType": "Single",
"minimumBalance": 0
}
Code copied

Response (application/json)

  • 204 No content
  • 400 Bad Request
  • 403 Forbidden
  • 409 Conflict

Bad Request

{
"type": "../dictionary",
"title": "string",
"status": 100,
"detail": "string",
"instance": "../dictionary",
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}
Code copied

Conflict

{
"type": "../dictionary",
"title": "string",
"status": 100,
"detail": "string",
"instance": "../dictionary",
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}
Code copied

Virtual GBP accounts

Virtual accounts are held on your platform, but their funds are kept in a real account held with ClearBank.
To create a virtual account with ClearBank, you must create it under one of your real general (also known as pooled) accounts. You can then use this account's virtual IBAN (vIBAN) to send and receive payments using funds from the associated real account.
You can create virtual accounts using the POST /v2/Accounts/{accountId}/Virtual endpoint.

You are responsible for managing and reconciling your virtual accounts' balances.

Get accounts (virtual)

get/v1/accounts/virtual

Lists all of the virtual accounts belonging to an institution.

All virtual accounts are returned including those which have been disabled. A status field is available.

Parameters

  • pageNumber integer, query

    The page number to control returned results into manageable sets. Default if not supplied: 1.

  • pageSize integer, query

    The page size to control returned results into manageable sets. Default if not supplied: 50.

  • Authorization string, header, Required

    Your API Token, obtained from the ClearBank Portal.

Response (application/json)

  • 200 OK
  • 400 Bad Request
  • 403 Forbidden
  • 404 Not Found

OK

{
"accounts": [
{
"id": "01234567-89ab-cdef-0123-456789abcdef",
"name": "John Smith",
"type": "CACC",
"status": "Enabled",
"currency": "GBP",
"iban": "GB12CLBK01020312345678",
"bban": "CLBK01020312345678",
"upic": "string",
"cuid": "string"
}
],
"halLinks": [
{
"name": "string",
"href": "string",
"templated": true
}
]
}
Code copied

Bad Request

{
"type": "../dictionary",
"title": "string",
"status": 100,
"detail": "string",
"instance": "../dictionary",
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}
Code copied

Create accounts (virtual)

post/v2/Accounts/{accountId}/Virtual

Creates a series of virtual accounts.

This endpoint uses accountIdentifier as a duplicate check.

Parameters

  • accountId string, path, Required

    The unique identifier for the real account. This can be retrieved from GET /v3/Accounts.

  • Authorization string, header, Required

    Your API Token, obtained from the ClearBank Portal.

  • DigitalSignature string, header, Required

    Signed hash of the body of the request. The hash is signed by your private key.

  • X-Request-Id string, header, Required

    A unique identifier for the request; valid for 24 hours, max length 83.

Request Payload (application/json)

  • virtualAccounts array, Required

    The virtual accounts that should be created.

request

{
"virtualAccounts": [
{
"ownerName": "John Smith",
"accountIdentifier": {
"iban": "GB12CLBK01020312345678"
}
}
]
}
Code copied

Response (application/json)

  • 202 Accepted
  • 400 Bad Request
  • 403 Forbidden
  • 404 Not Found

Accepted

{
"halLinks": [
{
"name": "string",
"href": "string",
"templated": true
}
]
}
Code copied

Bad Request

{
"type": "../dictionary",
"title": "string",
"status": 100,
"detail": "string",
"instance": "../dictionary",
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}
Code copied

Associated Webhooks

Get all virtual accounts for a real account

get/v2/Accounts/{accountId}/Virtual

Lists all of the virtual accounts belonging to a given account.

All virtual accounts are returned including those which have been disabled. A Status field is available.

Parameters

  • accountId string, path, Required

    The unique identifier for the real account. This can be retrieved from GET /v3/Accounts.

  • pageNumber integer, query

    The page number to control returned results into manageable sets. Default if not supplied: 1.

  • pageSize integer, query

    The page size to control returned results into manageable sets. Default if not supplied: 50.

  • Authorization string, header, Required

    Your API Token, obtained from the ClearBank Portal.

Response (application/json)

  • 200 OK
  • 400 Bad Request
  • 403 Forbidden
  • 404 Not Found

OK

{
"accounts": [
{
"id": "01234567-89ab-cdef-0123-456789abcdef",
"name": "John Smith",
"label": "John Smith",
"type": "CACC",
"status": "Enabled",
"currency": "GBP",
"iban": "GB12CLBK01020312345678",
"bban": "CLBK01020312345678",
"upic": "string",
"cuid": "string"
}
],
"halLinks": [
{
"name": "string",
"href": "string",
"templated": true
}
]
}
Code copied

Bad Request

{
"type": "../dictionary",
"title": "string",
"status": 100,
"detail": "string",
"instance": "../dictionary",
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}
Code copied

Get information for an account (virtual)

get/v2/Accounts/{accountId}/Virtual/{virtualAccountId}

Gets a specific virtual account.

Parameters

  • accountId string, path, Required

    The unique identifier for the real account. This can be retrieved from GET /v3/Accounts.

  • virtualAccountId string, path, Required

    The unique identifier for the virtual account. This can be retrieved from GET /v2/Accounts/{accountId}/Virtual.

  • Authorization string, header, Required

    Your API Token, obtained from the ClearBank Portal.

Response (application/json)

  • 200 OK
  • 400 Bad Request
  • 403 Forbidden
  • 404 Not Found

OK

{
"account": {
"id": "01234567-89ab-cdef-0123-456789abcdef",
"name": "John Smith",
"label": "John Smith",
"type": "CACC",
"status": "Enabled",
"currency": "GBP",
"iban": "GB12CLBK01020312345678",
"bban": "CLBK01020312345678",
"upic": "string",
"cuid": "string"
},
"halLinks": [
{
"name": "string",
"href": "string",
"templated": true
}
]
}
Code copied

Bad Request

{
"type": "../dictionary",
"title": "string",
"status": 100,
"detail": "string",
"instance": "../dictionary",
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}
Code copied

Not Found

{
"type": "../dictionary",
"title": "string",
"status": 100,
"detail": "string",
"instance": "../dictionary",
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}
Code copied

Amend an account (virtual)

patch/v1/accounts/{accountId}/virtual/{virtualAccountId}

This endpoint is used to amend the properties of an existing virtual account.

Parameters

  • accountId string, path, Required

    The unique identifier for the real account. This can be retrieved from GET /v3/Accounts.

  • virtualAccountId string, path, Required

    The unique identifier for the virtual account. This can be retrieved from GET /v2/Accounts/{accountId}/Virtual.

  • Authorization string, header, Required

    Your API Token, obtained from the ClearBank Portal.

  • DigitalSignature string, header, Required

    Signed hash of the body of the request. The hash is signed by your private key.

  • X-Request-Id string, header, Required

    A unique identifier for the request; valid for 24 hours, max length 83.

Request Payload (application/json)

  • ownerName string

    The name used to identify the legal owner of the virtual account.

    Minimum length
    1
    Maximum length
    140
    Pattern
    ^[^\|_\[\]<>^`~\\$]*$
  • legalOwnerType string

    Nature of funds held in the virtual account. Valid options include: Personal, Business.

    Enum array
    Personal, Business
  • relationshipType string

    Operating nature of the virtual account. Valid options include Single, Joint. If legalOwnerType is Business, then the relationshipType cannot be Joint.

    Enum array
    Single, Joint

request

{
"ownerName": "John Smith",
"legalOwnerType": "Personal",
"relationshipType": "Single"
}
Code copied

Response (application/json)

  • 204 No content
  • 400 Bad Request
  • 403 Forbidden
  • 404 Not Found
  • 409 Conflict

Bad Request

{
"type": "../dictionary",
"title": "string",
"status": 100,
"detail": "string",
"instance": "../dictionary",
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}
Code copied

Disable an account (virtual)

delete/v1/accounts/{accountId}/virtual/{virtualAccountId}

Disables the virtual account that belongs to the given account.

Parameters

  • accountId string, path, Required

    The unique identifier for the real account. This can be retrieved from GET /v3/Accounts.

  • virtualAccountId string, path, Required

    The unique identifier for the virtual account. This can be retrieved from GET /v2/Accounts/{accountId}/Virtual.

  • Authorization string, header, Required

    Your API Token, obtained from the ClearBank Portal.

  • X-Request-Id string, header, Required

    A unique identifier for the request; valid for 24 hours, max length 83.

Response (application/json)

  • 204 No content
  • 400 Bad Request
  • 403 Forbidden
  • 404 Not Found

Bad Request

{
"type": "../dictionary",
"title": "string",
"status": 100,
"detail": "string",
"instance": "../dictionary",
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}
Code copied