ClearBank

Interest configuration

Interest configuration

Using the interest configuration endpoints, you can update the interest configuration of your existing savings accounts. This functionality is enabled on a per-client basis. If you're interested in using this functionality, please speak to your Client Director.

The initial interestConfigurationId is usually set during account creation. You can request a new configuration ID from your usual ClearBank contact.

You can:

The interest rate will apply for the whole of the day on which it is set. Interest is calculated in the early hours of the following morning based on data from midnight UK time.

Daily interest example

If you update an interest product at 15:00 on Tuesday, all of Tuesday's interest, even before 15:00, will be calculated at the new interest rate. The Interest Paid and Transaction Settled webhooks will notify you of the amount of interest paid each day.

This diagram shows the message flow:

A message flow diagram describing the above process of setting the daily interest configuration.

Monthly interest example

If you update an interest product at 14:00 on the 5th, interest from the 1st to the 4th will be calculated at the previous rate at the end of the month. Interest from the 5th until the end of the month will be calculated using the new rate. The Interest Paid and Transaction Settled webhooks will notify you of the amount of interest paid at the end of the month.

This diagram shows the message flow:

A message flow diagram describing the above process of setting the monthly interest configuration.

Future-dating interest configurations

You can set multiple future interest configurations for your account with the PUT /v1/accounts/{accountId}/future-configurations endpoint.

Each selected interest configuration will apply from the start of the day provided in the effectiveFrom field. For example, you might set an account to move from interest config A to interest config B on 1 August. Interest will be calculated based on the balance from midnight on 31 July using interest config A. Any future interest interest calculations will be based on interest config B until any further changes to the interest configurations come into effect.

If you update the interest configuration using the POST /interest/v1/accounts/{accountId}/configurations endpoint while future-dated configurations are set, the update will remain active until the next future-dated configuration takes effect. For example, updating to config C on 1 October will apply until 14 October if a future-dated config D is set to start on 15 October. Config D will then take effect as scheduled.

Use the DELETE /v1/accounts/{accountId}/future-configurations endpoint to remove all future-dated interest configurations from an account. The account will remain on its current interest configuration.

This diagram shows an example scenario where you have an introductory interest rate and daily interest payments:

A message flow diagram describing the above process of future-dating an interest config along with a interest paid daily rather than monthly.

For monthly interest payments, it works similarly: if you future-date an interest product to change on 10 November, interest from 1 to 9 November will be calculated at the initial rate. Interest from 10 November until the end of the month will be calculated using the new rate. The Interest Paid and Transaction Settled webhooks will notify you of the amount of interest paid at the end of the month.

Multiple interest configurations example

Multiple interest configurations allow you to offer different interest rates based on the type of product or membership a customer has. Customers can seamlessly switch between products without closing and reopening their account.

In this example, three different savings account memberships are available:

  1. Standard Membership (Product A): This is a non-paid membership where customers earn a 2% interest rate on their savings.
  2. Silver Membership (Product B): For a £5 monthly fee, customers earn a 5% interest rate on their savings.
  3. Gold Membership (Product C): For a £10 monthly fee, customers earn an 8% interest rate on their savings.
  • If a customer with a Standard Membership decides to upgrade to a Silver Membership, they would start earning a 5% interest rate instead of 2%.
  • If a customer with a Gold Membership decides to downgrade to a Standard Membership, they would start earning a 2% interest rate instead of 8%.

A diagram showing the flow of customers subscribed to 3 different interest configurations and how their interest rate changes as they change product.

Interest tiers

You can configure multiple interest tiers when agreeing an interest configuration with us. Tiers allow you to specify balance ranges, each with its own interest rate, allowing you to offer different levels of interest depending on account balance. There are two methods for applying interest to tiers:

  • Whole - The total balance of the account earns the rate of the tier it falls into.
  • Segregated - Each part of the account balance earns the rate for its range.

Interest tiers example:

TierBalance rangeInterest rate
1£0.00 - £1,000.003.00%
2£1,000.01 - £5,000.004.00%
3£5,000.01 - £10,000.004.75%

Using the tier examples above, an account with a balance of £7,500.00 would earn interest in the following way depending on the method applied:

  • Whole: The total balance is in the range of tier 3, so an interest rate of 4.75% applies to the whole balance
  • Segregated:
    • The first £1,000.00 falls into tier 1 and earns an interest rate of 3.00%
    • The next £4,000.00 falls into tier 2 and earns an interest rate of 4.00%
    • The remaining £2,500.00 falls into tier 3 and earns an interest rate of 4.75%

Get an account's interest configurations

get/interest/v1/accounts/{accountId}/configurations

This endpoint is used to retrieve past, current, and future interest configurations for a savings 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
  • 404 Not Found

OK

{
"future": [
{
"effectiveFrom": "2025-08-24",
"interestConfigurationId": "24df1e52-24d9-4bda-86af-c81a7d1932b1",
"name": "string"
}
],
"current": {
"effectiveFrom": "2025-08-24",
"interestConfigurationId": "24df1e52-24d9-4bda-86af-c81a7d1932b1",
"name": "string"
},
"past": [
{
"effectiveFrom": "2025-08-24",
"interestConfigurationId": "24df1e52-24d9-4bda-86af-c81a7d1932b1",
"name": "string"
}
]
}
Code copied

Bad Request

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}
Code copied

Not Found

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}
Code copied

Get details of an interest configuration

get/interest/v1/configurations/{interestConfigurationId}

Get the parameter values of a given interest configuration ID at present or on a previous date.

Returns the setup details of an interest configuration based on a given date. If no date is specified, it retrieves the configuration currently in effect. For a past date, it provides the configuration that was active on that date. Configurations with future start dates are excluded, so providing a future date will yield the same result as using the current date.

Parameters

  • interestConfigurationId string, path, Required

    The unique identifier for the interest configuration.

  • effectiveAt string, query

    The effective date for filtering interest configurations, for example, 2025-08-18. Defaults to the current UTC date-time if not provided.

  • Authorization string, header, Required

    Your API Token, obtained from the ClearBank Portal.

Response (application/json)

  • 200 OK
  • 404 Not Found

OK

{
"interestConfigurations": [
{
"id": "a7a907c5-7062-4d76-8e6c-3b203a758839",
"payablePeriod": "Daily",
"payableAccountId": "7e5e3b83-d76e-4821-9566-a83b322ce2dd",
"effectiveFrom": "2025-08-15",
"effectiveTo": "2025-09-15",
"timeStampCreated": "2025-08-18T11:11:45.5666667",
"timeStampModified": "2025-09-18T09:00:45.5666667",
"payablePeriodOffset": 0,
"interestPaymentRoundingAlgorithm": "Truncate",
"doUnpaidAccrualFractionsRollover": "false",
"tierBalanceAllocation": "Whole",
"interestRate": 7,
"tiers": [
{
"id": "99b386f8-c2f7-4fda-b946-c1384b44bb84",
"fromAmount": 0,
"toAmount": 1000,
"percentPayable": 0.5,
"clearbankMargin": 0.2,
"grossRate": 6.3,
"aer": 6.50210494
}
]
}
]
}
Code copied

Not Found

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}
Code copied

Update interest configuration

post/interest/v1/accounts/{accountId}/configurations

This endpoint is used to update an interest configuration for a savings 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.

  • 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)

  • interestConfigurationId string, Required

    The UUID indicating the interest configuration for the account. If you don't have this, speak to your Client Director.

request

{
"interestConfigurationId": "5C35D48D-0R3D-47BE-9F54-I9F3328L7V2A"
}
Code copied

Response (application/json)

  • 201 Created
  • 400 Bad Request
  • 404 Not Found
  • 409 Conflict

Created

{
"accountId": "3d07c219-0a88-45be-9cfc-91e9d095a1e9",
"interestConfigurationId": "24df1e52-24d9-4bda-86af-c81a7d1932b1",
"effectiveFrom": "2025-08-24"
}
Code copied

Bad Request

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}
Code copied

Not Found

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}
Code copied

Conflict

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}
Code copied

Set future-dated interest configurations

put/interest/v1/accounts/{accountId}/future-configurations

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.

  • 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)

  • interestConfigurations array, Required

    A list of future-dated interest configurations for the account.

request

{
"interestConfigurations": [
{
"interestConfigurationId": "24df1e52-24d9-4bda-86af-c81a7d1932b1",
"effectiveFrom": "2027-10-01"
}
]
}
Code copied

Response (application/json)

  • 200 OK
  • 400 Bad Request
  • 404 Not Found
  • 409 Conflict

Bad Request

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}
Code copied

Not Found

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}
Code copied

Conflict

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}
Code copied

Delete future-dated interest configurations

delete/interest/v1/accounts/{accountId}/future-configurations

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

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

Not Found

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}
Code copied