ClearBank

Faster payments

Faster Payments

When sending payments through our API, Faster Payments are initiated via the POST /{vn}/Payments/FPS endpoint, and confirmation of settlement is provided to you via the Transaction Settled webhook. You can send individual or bulk payments.

ClearBank accounts support inbound and outbound Faster Payments. You can send and receive Faster Payments of up to £1,000,000. Faster Payments are not subject to a cut-off time.

Sometimes you will need to return a faster payment, for example when:

  • the beneficiary name does not match that of the account number,
  • the account has been closed or transferred,
  • the beneficiary has deceased.

To return one single immediate payment, use the POST /v3/payments/fps/return endpoint.

Payments originating overseas need to be sent using a separate endpoint: POST /v2/payments/fps/singlepayment.

Validation

Each Faster Payment is validated against these rules:

ElementTypeValidationDescription
namestringmaxLength: 140
minLength: 1
pattern: ^[a-zA-Z0-9\/\-?:().,’+\s#=!"%&*<>;{@\r\n]*$
Also known as Account Holder Name
This the creditor's name.
If max length exceeds 35 characters, this will be truncated before sending to scheme.
referencestringmaxLength: 35
minLength: 0
pattern: ^[a-zA-Z0-9\/\-?:().,’+\s#=!"%&*<>;{@\r\n]*$
Also known as the Payment Reference
This is the payment reference under remittance information. If the max length exceeds 18 characters, this will be truncated before sending to scheme.

Pattern: Alphanumeric (uppercase and lowercase) and special characters*.
*Special characters: / (forward slash), - (hyphen), ? (question mark), : (colon), ( (left parenthesis), ) (right parenthesis), . (full stop), , (comma), (right single quote), + (plus sign),   (blank space), # (hash), = (equals), ! (exclamation mark), (right double quote), % (percentage), & (ampersand), * (asterisk), < (less than), > (greater than), ; (semicolon), { (left curly bracket), @ (commercial at), CrLf (carriage return line feed).

This endpoint uses the endToEndIdentification field as a duplicate check to ensure the request is idempotent.

Abusive message filtering

To protect payment recipients from harm and abuse, outbound payments are subject to screening to check for profanities.

The screening checks the Reference string of the RemittanceInformation object. If any term in this string matches a term on the profanity list, it will be removed and the field will be blank when the payment reaches the beneficiary.

References will be removed if they match terms found in (but not limited to) the Pay.UK profanities list that can be found on the Reference Documents page of the Knowledge Centre. This can be accessed by signing in to the ClearBank Portal.

The result of the screening can be found in the SupplementaryData object of the Transaction Settled webhook as follows:

Abusive message screening resultSupplementary Data value
Pass (no match)AbusiveMessageScreeningResult:Pass
Fail (match)AbusiveMessageScreeningResult:Fail
AbusiveMessageScreeningIdentifiers:paymentInstruction.creditTransfer.remittanceInformation.structured.creditorReferenceInformation.reference

Send Faster Payments

post/v3/payments/fps

Initiate a payment using the faster payments scheme. This endpoint is FTR compliant.

This endpoint works on a partial acceptance basis - meaning that you can submit 10 payments and only 6 of them may be accepted for processing. Each payment instruction is validated against the scheme specific rules as well as the ISO20022 specification. Currently, only payments through GBP are supported. We have listed possible currencies for future proofing of the API. The remittance information must be scheme compatible. Values exceeding the length limits of the scheme will be truncated. Missing remittance information will be replaced by a blank string.

Parameters

  • Authorization string, header, Required

    Your API Token, retrieved from the web 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.

Request Payload (application/json)

  • paymentInstructions array, Required

    Details of the payments to be made.

    Minimum length
    1
    Maximum length
    10

request

{
"paymentInstructions": [
{
"debtor": {
"legalEntityIdentifier": "string",
"address": "string"
},
"paymentInstructionIdentification": "string",
"debtorAccount": {
"identification": {
"iban": "string",
"other": {
"issuer": "string",
"identification": "string",
"schemeName": {
"code": "BBAN",
"proprietary": "string"
}
}
}
},
"creditTransfers": [
{
"paymentIdentification": {
"instructionIdentification": "string",
"endToEndIdentification": "string"
},
"amount": {
"currency": "GBP",
"instructedAmount": 0
},
"creditor": {
"name": "string",
"legalEntityIndentifier": "string"
},
"creditorAccount": {
"identification": {
"iban": "string",
"other": {
"issuer": "string",
"identification": "string",
"schemeName": {
"code": "BBAN",
"proprietary": "string"
}
}
}
},
"remittanceInformation": {
"structured": {
"creditorReferenceInformation": {
"reference": "string"
}
}
}
}
]
}
]
}
Code copied

Response (application/json)

  • 202 Accepted
  • 400 Bad Request
  • 404 Not Found
  • 422 Client Error

Accepted

{
"transactions": [
{
"endToEndIdentification": "string",
"response": "Accepted"
}
],
"halLinks": [
{
"name": "string",
"href": "string",
"templated": true
}
]
}
Code copied

Bad Request

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

Client Error

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

Associated Webhooks

Return a Faster Payment

post/v3/payments/fps/return

Return an inbound Faster Payment. This endpoint can be used to return domestic payments and payments originating overseas.

This endpoint is the recommended method for returning faster payments that cannot be completed for any reason.

Parameters

  • Authorization string, header, Required

    Your API token, retrieved from the web 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.

Request Payload (application/json)

  • paymentReturnInstruction object, Required

    Information about the payment return.

request

{
"paymentReturnInstruction": {
"TransactionId": "583420ca-a0e3-4e68-b193-c10a8ceb04cc",
"ReasonForReturn": "string"
}
}
Code copied

Response (application/json)

  • 202 Accepted
  • 400 Bad Request
  • 403 Forbidden
  • 404 Not Found
  • 422 Client Error

Bad Request

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

Client Error

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

Associated Webhooks

Send a Faster Payment Originated Overseas

post/v2/payments/fps/singlepayment

To initiate an outbound payment originated overseas, use this single payment endpoint.

Parameters

  • Authorization string, header, Required

    Your API Token, retrieved from the web 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.

Request Payload (application/json)

  • paymentInstruction object, Required

    Information about the single payment.

request

{
"paymentInstruction": {
"debtor": {
"legalEntityIdentifier": "string"
},
"debtorAccount": {
"identification": {
"iban": "string",
"other": {
"identification": "string",
"schemeName": {
"code": "BBAN",
"proprietary": "string"
}
}
}
},
"ultimateDebtor": {
"name": "string",
"address": "string"
},
"ultimateDebtorAccount": {
"identification": {
"bic": "stringst",
"accountNumber": "string"
}
},
"creditTransfer": {
"paymentIdentification": {
"endToEndIdentification": "string"
},
"amount": {
"originalCurrency": "ALL",
"originalAmount": 0,
"exchangeRate": 0,
"instructedAmount": 0
},
"creditor": {
"name": "string",
"legalEntityIdentifier": "string",
"address": "string"
},
"creditorAccount": {
"identification": {
"iban": "string",
"other": {
"identification": "string",
"schemeName": {
"code": "BBAN",
"proprietary": "string"
}
}
}
},
"remittanceInformation": {
"structured": {
"creditorReferenceInformation": {
"reference": "string"
}
},
"unstructured": {
"additionalReferenceInformation": {
"reference": "string"
}
}
}
}
}
}
Code copied

Response (application/json)

  • 202 Success
  • 400 Bad Request
  • 404 Not Found

Success

{
"transaction": {
"endToEndIdentification": "string",
"response": "Accepted"
},
"halLinks": [
{
"name": "string",
"href": "string",
"templated": true
}
]
}
Code copied

Bad Request

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

Associated Webhooks