ClearBank

Savings accounts

Savings accounts

Overview

A savings account is an FSCS-protected bank account that can accrue interest on behalf of a retail or business customer. Savings accounts may be held individually or jointly.

ClearBank calculates interest accruals on savings account deposits based on pre-agreed interest configurations. You can update the interest rate on your savings accounts to a pre-agreed configuration at any time.

Interest accruals are posted for you as regular payments to your customers' savings accounts. To learn more about interest configurations, refer to Interest configuration.

If you're interested in using savings accounts, please contact your Client Director.

ClearBank supports the following savings account types:

  • Single customer savings accounts – held by one retail or business customer.
  • Joint savings accounts – held by two or more retail customers.
  • Junior savings accounts (ages 16–17) – held by one retail customer aged 16 or 17 and identified using a dedicated ProductId.
  • Under-16 (U16) savings accounts – held in the name of a parent or guardian; no child customer record is required.

Savings account types

Single

To create a single savings account, create a retail or business customer, then include their customer ID in the customers array when calling POST /v2/savings.

Joint

To create a joint savings account, include multiple customer IDs in the customers array when calling POST /v2/savings. All customers must be retail customers.

Junior (16-17)

Savings accounts for customers aged 16–17 are created using the standard POST /v2/savings endpoint. The productId provided in the request identifies the account as a Junior savings account.

To create a product identification for this account type, please speak to your Client Director.

Under-16 (U16)

Under-16 savings accounts are created using the standard POST /v2/savings endpoint in the name of the parent or guardian. The productId provided in the request identifies the account as an Under-16 savings account.

No customer record or customer ID is required for the child.

To create a product identification for this account type, please speak to your Client Director.


Summary table

Account typeEndpointCustomers providedIdentification method
Single savings accountPOST /v2/savingsOne retail or business customer IDNone
Joint savings accountPOST /v2/savingsMultiple retail customer IDsCustomers array
16–17 savings accountPOST /v2/savingsOne retail customer IDJunior ProductId
Under-16 savings accountPOST /v2/savingsParent/guardian retail customer onlyU16 ProductId

Create savings accounts

Steps to create a savings account

Savings accounts have several interdependencies. When creating a savings account, follow the below steps to ensure you cover them all:

  1. Check you've created the retail or business customer this new savings account will belong to. To create a retail customer, refer to the Create a retail customer endpoint.
  2. Confirm which interest configuration should apply to the account (interestConfigurationId).
    Interest configuration IDs refer to a specific interest accrual arrangement, and are provided to you directly by a ClearBank contact. Refer to Interest configuration for more details.
  3. Create the savings account by calling the POST /v2/savings endpoint using the customer's ID and the interest configuration's ID.
  4. Specify a nominated account to fund or defund the savings account using the POST /v1/accounts/{accountId}/related-accounts endpoint.
    Note: A nominated account is the account that accrued interest, if any, will be transferred into upon closure of the savings account. Name matching between savings and nominated accounts is your responsibility.

Once you've opened a savings account, you can deposit and withdraw payments via Faster Payments or CHAPS. Savings accounts cannot send or receive Bacs payments.

Message flow diagram

Submit the POST /v2/savings endpoint. Once you receive a 201 response, submit the POST /v1/accounts/{accountId}/related-accounts to set up a nominated account. Once you receive a 201 response, funds can now be added to the savings account.

Create joint savings accounts

Both single and joint savings accounts can be created using the POST /v2/savings endpoint. To make joint accounts using this endpoint, specify each customer's ID in the customers array.

Example payload: two customers

{
"ownerName": "John and Jane Smith",
"sortCode": "010203",
"productId": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"customers": [
{
"customerId": "0f1e2d3c-4b5a-6c7d-8e9f-0a1b2c3d4e5f"
},
{
"customerId": "abcdef12-3456-7890-1234-56789abcdef0"
}
],
"interestConfigurationId": "1234abcd-5678-9ef0-1234-56789abcdef0"
}

Example payload: four customers

While joint accounts will typically have two customers, we can support any number of customers where there is a valid use case. Please contact your Client Director before attempting to create a joint account with more than two customers.

{
"ownerName": "John Smith, Jane Smith, Steve Doe, and Emily Doe",
"sortCode": "010203",
"productId": "a1b2c3d4-e5f6-a7b8-c9d0-e1f2a3b4c5d6",
"customers": [
{
"customerId": "9f8e7d6c-5b4a-3c2d-1e0f-9a8b7c6d5e4f"
},
{
"customerId": "0a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d"
},
{
"customerId": "f1e2d3c4-b5a6-c7d8-e9f0-a1b2c3d4e5f6"
},
{
"customerId": "2b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e"
}
],
"interestConfigurationId": "4d5e6f7a-8b9c-0d1e-2f3a-4b5c6d7e8f9a"
}

Create a savings account endpoint

post/v2/savings

Creates a savings account for single and joint account holders. We recommend using this endpoint if you are using joint accounts.

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)

  • ownerName string, Required

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

    Minimum length
    0
    Maximum length
    140
    Pattern
    ^[^\|_\[\]<>^`~\\$]*$
  • sortCode string, Required

    The sort code that the account should be created under.

    Pattern
    ^\d{6}$
  • productId string, Required

    The product identifier of the account. It is used to determine the behaviour of the account.

    Pattern
    ^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$
  • customers array, Required

    The customers that hold the account.

  • interestConfigurationId string

    The unique identifier of the interest configuration. This determines how interest is accrued on the account.

    Pattern
    ^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$

request

{
"ownerName": "John Smith",
"sortCode": "010203",
"productId": "01234567-89ab-cdef-0123-456789abcdef",
"customers": [
{
"customerId": "01234567-89ab-cdef-0123-456789abcdef"
}
],
"interestConfigurationId": "24df1e52-24d9-4bda-86af-c81a7d1932b1"
}
Code copied

Response (application/json)

  • 201 Created
  • 400 Bad Request
  • 404 Not Found
  • 422 Client Error

Created

{
"account": {
"accountId": "01234567-89ab-cdef-0123-456789abcdef",
"productId": "01234567-89ab-cdef-0123-456789abcdef",
"customers": [
{
"customerId": "01234567-89ab-cdef-0123-456789abcdef"
}
],
"interestConfigurationId": "24df1e52-24d9-4bda-86af-c81a7d1932b1",
"accountName": "Savings Account",
"ownerName": "John Smith",
"iban": "GB12CLBK01020312345678",
"bban": "CLBK01020312345678",
"createdDateTime": "2024-01-01T12:34:56.789+00:00"
},
"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

Client Error

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

Associated Webhooks

Manage nominated accounts

ClearBank maintains two methods of managing nominated accounts. The first, newer method uses four related-accounts endpoints. These endpoints are also used to manage Hub Accounts.

To update a nominated account, you can call the DELETE /v1/accounts/{accountId}/related-accounts/{iban} followed by the POST /v1/accounts/{accountId}/related-accounts.

The second legacy method uses just nominated-account endpoints:

Add a nominated account

post/v1/accounts/{accountId}/related-accounts

You can call this endpoint to add a new nominated or associated account to a Hub or Savings Account.

Parameters

  • accountId string, path, Required

    The unique identifier for the 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)

  • relatedAccountType string, Required

    The type of related account you're creating ('Nominated' or 'Associated').

    Minimum length
    1
  • identifier string, Required

    The associated or nominated account's identifier (You can use an IBAN, BBAN or SCAN).

    Minimum length
    0
    Maximum length
    50
  • identifierKind string, Required

    The type of identifier being used. Possible values are: 'IBAN', 'BBAN' or 'SCAN'.

    Minimum length
    1
    Maximum length
    4
  • ownerName string, Required

    The name of the account owner. If creating a nominated account, this should be the same as Hub or Savings Account's.

    Minimum length
    0
    Maximum length
    140
    Pattern
    ^[0-9a-zA-Z/-?:().,’'+ !#%&\*=^_`\{\|\}~"";<>@\[\\]]+

request

{
"relatedAccountType": "Nominated",
"identifier": "GB26CBUK40231512245674",
"identifierKind": "IBAN",
"ownerName": "John Smith"
}
Code copied

Response (application/json)

  • 201 Created
  • 400 Bad Request
  • 404 Not Found
  • 409 Conflict
  • 422 Client Error

Created

{
"account": {
"accountId": "232d0a3c-0933-4894-9fbc-230cf183c7ed",
"relatedAccount": {
"relatedAccountType": "Nominated",
"ownerName": "John Smith",
"identifiers": {
"iban": "GB26CBUK40231512245674",
"bban": "CBUK40231512245674",
"scan": "40231512245674"
},
"createdDateTime": "2019-08-24T14:15:22Z",
"modifiedDateTime": "2019-08-24T14:15:22Z"
}
},
"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

Conflict

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

Client Error

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

Retrieve a nominated account

get/v1/accounts/{accountId}/related-accounts

You can call this endpoint to retrieve the details of all nominated and associated accounts for a given Hub or Savings Account.

Parameters

  • accountId string, path, Required

    The unique identifier for the account.

  • Authorization string, header, Required

    Your API Token, obtained from the ClearBank Portal.

Response (application/json)

  • 200 Success
  • 400 Bad Request
  • 404 Not Found

Success

{
"account": {
"accountId": "232d0a3c-0933-4894-9fbc-230cf183c7ed",
"relatedAccounts": [
{
"relatedAccountType": "Nominated",
"ownerName": "John Smith",
"identifiers": {
"iban": "GB26CBUK40231512245674",
"bban": "CBUK40231512245674",
"scan": "40231512245674"
},
"createdDateTime": "2019-08-24T14:15:22Z",
"modifiedDateTime": "2019-08-24T14:15:22Z"
}
]
},
"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 the account holder of a nominated account

patch/v1/accounts/{accountId}/related-accounts/{iban}

You can call this endpoint to update the name of the account holder for an existing nominated or associated account.

Parameters

  • accountId string, path, Required

    The unique identifier for the Hub or Savings Account.

  • iban string, path, Required

    The IBAN of the linked nominated or associated 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)

  • ownerName string, Required

    The new legal name of the account owner.

    Minimum length
    0
    Maximum length
    140

request

{
"ownerName": "John Smith"
}
Code copied

Response (application/json)

  • 200 Success
  • 400 Bad Request
  • 404 Not Found
  • 422 Client Error

Success

{
"accountId": "232d0a3c-0933-4894-9fbc-230cf183c7ed",
"relatedAccounts": [
{
"relatedAccountType": "Nominated",
"ownerName": "John Smith",
"identifiers": {
"iban": "GB26CBUK40231512245674",
"bban": "CBUK40231512245674",
"scan": "40231512245674"
},
"createdDateTime": "2019-08-24T14:15:22Z",
"modifiedDateTime": "2019-08-24T14:15:22Z"
}
]
}
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

Client Error

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

Remove a nominated account

delete/v1/accounts/{accountId}/related-accounts/{iban}

You can call this endpoint to remove a nominated or associated account from a Hub or Savings Account.

Parameters

  • accountId string, path, Required

    The unique identifier of the Hub or Savings Account.

  • iban string, path, Required

    The IBAN identifier associated with the (nominated or associated) related account.

  • 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
  • 404 Not Found

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

Older, nominated account only endpoints:

Set a nominated account (legacy)

put/v1/accounts/{accountId}/nominated-account

This endpoint is used to set a nominated account.

Parameters

  • accountId string, path, Required

    The unique identifier for the real account associated with the nominated 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)

  • identifier string, Required

    The identifier for the nominated account. IBAN is the preferred format.

    Minimum length
    0
    Maximum length
    50
  • identifierKind string, Required

    The type of identifier for the nominated account. Supported values are 'IBAN', 'BBAN' and 'SCAN' (Sort Code and Account Number).

  • ownerName string, Required

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

    Minimum length
    1
    Maximum length
    140
    Pattern
    ^[0-9a-zA-Z\/\-\?:\(\)\.,’'\+ !#$%&\*=^_`\{\|\}~"";<>@\[\\\]]+$

request

{
"identifier": "GB29NWBK60161331926819 (IBAN), NWBK60161331926819 (BBAN) or 60161331926819 (SCAN)",
"identifierKind": "IBAN",
"ownerName": "John Smith"
}
Code copied

Response (application/json)

  • 200 OK
  • 400 Bad Request
  • 404 Not Found

OK

{
"nominatedAccount": {
"identifier": "GB12CLBK01020312345678",
"identifierKind": "IBAN",
"ownerName": "John Smith"
},
"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

Retrieve a nominated account (legacy)

get/v1/accounts/{accountId}/nominated-account

This endpoint is used to get the details of a nominated account.

Parameters

  • accountId string, path, Required

    The unique identifier for the real account associated with the nominated 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
  • 404 Not Found

OK

{
"nominatedAccount": {
"accountId": "01234567-89ab-cdef-0123-456789abcdef",
"identifier": "GB12CLBK01020312345678",
"identifierKind": "IBAN",
"ownerName": "John Smith",
"createdDateTime": "2024-05-01T00:00:00+01:00",
"modifiedDateTime": "2024-05-01T00:00:00+01:00"
},
"halLinks": [
{
"name": "string",
"href": "string",
"templated": true
}
]
}
Code copied

Receive and manage interest payments

Guidance on configuring interest payments can be found on Interest configuration.

When an interest payment is made to a savings account, you'll be notified via the Interest Paid webhook.

Retrieve savings accounts

To retrieve all your institution's savings accounts, call the GET /v3/accounts endpoint and filter the result for savings accounts.

To retrieve a single savings account, call the GET /v3/Accounts/{accountId} endpoint.

To retrieve end of day balances for a savings account, use the camt.053 endpoints.

Get all real accounts, including savings accounts

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": 2310.55,
"currency": "GBP",
"status": "VALU",
"balanceLastUpdatedAt": "2025-04-19T10:02:00.964Z"
}
],
"minimumBalance": {
"name": "Current Account",
"amount": -200,
"currency": "GBP",
"status": "VALU"
},
"productType": "Segregated",
"accountSubType": "SafeguardedPooled",
"legalOwnerType": "Personal",
"relationshipType": "Single",
"status": "Enabled",
"statusReason": "Other",
"timestampCreated": "2025-02-19T11:32:10.934Z",
"timestampModified": "2025-05-25T18:27:12.524Z",
"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 one savings account

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": 2310.55,
"currency": "GBP",
"status": "VALU",
"balanceLastUpdatedAt": "2025-04-19T10:02:00.964Z"
}
],
"minimumBalance": {
"name": "Current Account",
"amount": -200,
"currency": "GBP",
"status": "VALU"
},
"productType": "Segregated",
"accountSubType": "SafeguardedPooled",
"legalOwnerType": "Personal",
"relationshipType": "Single",
"status": "Enabled",
"statusReason": "Other",
"timestampCreated": "2025-02-19T11:32:10.934Z",
"timestampModified": "2025-05-25T18:27:12.524Z",
"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

Update a savings account

Amend a savings account

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

    Use this field to set the status of the account. If closing or suspending the account, you should provide a StatusReason. If you are not updating the account's status, either use 'NotProvided' or omit this field.

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

    If the account Status is Closed or Suspended, use this field to provide a reason. Use 'Other' if no other options apply. Do not provide this field if you are updating the status to 'Enabled'.

    Enum array
    AccountHolderBankrupt, AccountHolderDeceased, AccountSwitched, CompanyNoLongerTrading, DissatisfiedCustomer, DuplicateSoleTraderAccount, FinancialCrime, FraudFirstParty, FraudThirdParty, FraudConfirmed, InternallyDormant, KYCRequired, LegallyDisputed, PotentialSanctionedIndividual, SanctionedIndividual, SuspectMoneyLaundering, TransactionDispute, Other
  • 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": "Closed",
"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

Close a savings account

Steps to close an account

There are several steps you should follow to close a savings account:

  1. Withdraw all funds from the account.
  2. Verify that a nominated account has been defined. You can obtain details of the currently configured nominated account using the GET /v1/accounts/{accountId}/nominated-account endpoint.
  3. Use the POST /v1/accounts/{accountId}/closure endpoint. This process is asynchronous and can take longer if an interest calculation is pending. Unpaid accrued interest, if any, will be deposited into the nominated account. If there is no interest to be paid, then it's possible to close the account without a nominated account being defined.
  4. (OPTIONAL) Check closure status using the GET /v1/accounts/{accountId}/closure endpoint.
  5. The Account Closure Completed webhook will be sent once the account has closed.

To close an account, submit the POST /v1/accounts/{accountId}/closure endpoint. Once you receive a 202 response, you may check the status of the closure using the GET /v1/accounts/{accountId}/closure endpoint.

Account closure may fail due to the nominated account details being incorrect. You will know from the ClosureFailureReason field in the Account Closure Failed webhook.

See the following possible combinations of accountStatus and closureStatus:

accountStatusclosureStatusDescription
EnabledNoneNo closure request submitted.
EnabledPendingClosure requested, interest being calculated.
EnabledFailedClosure request failed, see closureFailureReasons field for details.
SuspendedPendingClosure requested for suspended account, interest being calculated.
ClosedCompleteClosure completed successfully.


To reset the nominated account and close the account:

  1. OPTIONAL Obtain details of the currently configured nominated account using the GET /v1/accounts/{accountId}/nominated-account endpoint.
  2. Correct the nominated account details using the PUT /v1/accounts/{accountId}/nominated-account endpoint.
  3. Use the POST /v1/accounts/{accountId}/closure endpoint.

    The process is asynchronous. Unpaid accrued interest, if any, will be deposited into the nominated account.

  4. OPTIONAL Check closure status using the GET /v1/accounts/{accountId}/closure endpoint.
  5. The Account Closure Completed webhook will be sent once the account has closed.

To close a savings account, update the nominated account using the PUT /v1/accounts/{accountId}/nominated-account endpoint. Once you receive a 200 response, submit the POST /v1/accounts/{accountId}/closure endpoint.

Close a savings account

post/v1/accounts/{accountId}/closure

This endpoint is used to create an account closure request.

Parameters

  • accountId string, path, Required

    The unique identifier for the 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)

  • closureReason string, Required

    The reason for closing the account. Use 'Other' if no other options apply.

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

request

{
"closureReason": "AccountHolderDeceased"
}
Code copied

Response (application/json)

  • 202 Accepted
  • 400 Bad Request
  • 404 Not Found
  • 409 Conflict

Accepted

{
"accountClosure": {
"accountId": "01234567-89ab-cdef-0123-456789abcdef",
"closureReason": "AccountHolderDeceased",
"closureStatus": "Pending"
},
"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

Conflict

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

Associated Webhooks

Get account closure status

get/v1/accounts/{accountId}/closure

Get current status of the account closure request.

Parameters

  • accountId string, path, Required

    The unique identifier for the account.

  • Authorization string, header, Required

    Your API Token, obtained from the ClearBank Portal.

Response (application/json)

  • 200 OK
  • 400 Bad Request
  • 404 Not Found

OK

{
"accountClosure": {
"accountId": "01234567-89ab-cdef-0123-456789abcdef",
"accountStatus": "Closed",
"closureStatus": "Complete",
"closureFailureReasons": [
"string"
],
"accountModifiedDateTime": "2024-01-01T12:34:56.789+00:00"
},
"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