ClearBank

SEPA Instant Credit Transfer

SEPA Instant Credit Transfer

SEPA Instant Credit Transfer (SCT Inst) is a payment scheme that enables customers to make and receive payments quickly. It allows payments up to a maximum value of €100,000, which can settle in as little as 10 seconds - and no more than 25 seconds. Payments can be sent at any time, including bank holidays and weekends.

You can:

Sending an SCT Inst payment

To send an SCT Inst payment, use the POST /v1/payments/sepa-instant endpoint.

You will receive the SEPA Instant Outbound Payment Created webhook. Once the payment has settled, you will receive the SEPA Instant Outbound Payment Settled webhook and the Customer Accounts Transaction Completed webhook.

A message flow diagram explaining how to send an SCT Inst payment

Send an SCT Inst payment

post/v1/payments/sepa-instant

This endpoint is used to create an outbound SCT Inst payment. You can pay up to €100,000.00 to external accounts, and up to €999,999,999.99 for your internal ClearBank accounts. If you make an error on an internal payment, this can only be corrected with a new payment request: you cannot recall payments made to your own 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)

  • amount number, Required

    Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency (EUR). Note: the maximum is €100,000.00 for external payments where the creditor's account is not yours.

    Minimum
    0
    Maximum
    999999999.99
  • creditor object, Required

  • creditorAgent object, Required

  • debtor object, Required

  • endToEndId string, Required

    Unique identification, as assigned by the originating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain.

    Minimum length
    1
    Maximum length
    35
    Pattern
    ^[0-9a-zA-Z/\-\?:\(\)\.,'\+ ]+$
  • reference string

    Information supplied to enable the matching of an entry with the items that the transfer is intended to settle, such as commercial invoices in an accounts' receivable system.

    Minimum length
    1
    Maximum length
    35
  • ultimateCreditor object

  • ultimateDebtor object

request

{
"amount": 10,
"creditor": {
"name": "John Doe",
"accountIban": "NL01CLRB0123456789",
"postalAddress": {
"streetName": "Morissette Union",
"buildingNumber": "99",
"townName": "Sipesville",
"postCode": "RV7 4IS",
"countrySubdivision": "Buckinghamshire",
"country": "GB"
},
"identification": {
"organisationIdentification": {
"bic": "CLRBNL2AXXX"
}
}
},
"creditorAgent": {
"bic": "CLRBNL2AXXX"
},
"debtor": {
"name": "John Doe",
"accountIban": "NL45INGB4887467303",
"postalAddress": {
"streetName": "Morissette Union",
"buildingNumber": "99",
"townName": "Sipesville",
"postCode": "RV7 4IS",
"countrySubdivision": "Buckinghamshire",
"country": "GB"
},
"identification": {
"organisationIdentification": {
"bic": "CLRBNL2AXXX"
}
}
},
"endToEndId": "0947eaf6-2b51-496b-afba-969a0a712d1",
"reference": "INV-00002 2020-01-21",
"ultimateCreditor": {
"name": "John Doe",
"identification": {
"organisationIdentification": {
"bic": "CLRBNL2AXXX"
}
}
},
"ultimateDebtor": {
"name": "John Doe",
"identification": {
"organisationIdentification": {
"bic": "CLRBNL2AXXX"
}
}
}
}
Code copied

Response (application/json)

  • 202 Accepted
  • 400 Bad Request

Accepted

{
"paymentId": "1fd63af1-83e2-3a8a-1014-3daa0e1c5f28"
}
Code copied

Bad Request

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

Associated Webhooks

Cancellation reason codes

Cancelled outbound payments can return the following reason codes:

Reason CodeDescription
AC01Account identifier invalid or incorrect.
AM02Amount not allowed.
AM04Insufficient funds on the account.
CB01Unknown error.
CNORCreditor bank is not registered.
MS03Payment failed screening, re-send via SCT.

Receive an SCT Inst payment

Receipt of an SCT Inst payment can be confirmed by subscribing to the SEPA Instant Inbound Payment Settled webhook.

Request an SCT Inst recall

Send a recall request

You can send SCT Inst recall requests using the POST /v1/payments/sepa-instant/{paymentId}/recall endpoint. You will receive confirmation via the SEPA Instant Recall Payment Created webhook, and a response via either the SEPA Instant Recall Payment Settled or SEPA Instant Recall Request Rejected webhooks.

Recall requests remain valid for a maximum of 15 business days. If after 15 business days the receiving party has not responded, the recall request is automatically rejected and the SEPA Instant Recall Request Rejected webhook is sent.

A message flow diagram explaining a successful SCT Inst recall which results in receiving a SEPA Instant Recall Payment Settled webhook

A message flow diagram explaining a rejected SCT Inst recall which results in receiving a SEPA Instant Recall Request Rejected webhook

Recall an SCT Inst payment

post/v1/payments/sepa-instant/{paymentId}/recall

This endpoint is used to create a recall request for an outbound payment.

Parameters

  • paymentId string, path, Required
  • 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)

  • originalInstructedAmount number, Required

    Amount of money moved between the debtor and creditor (EUR).

    Minimum
    0
    Maximum
    100000
  • reasonCodeForRecall string, Required

    Value must be one of "DUPL, FRAD, TECH, CUST, AC03, AM09". DUPL = Duplicate, FRAD = Fraud, TECH = Technical problem, AC03 = Invalid creditor number, CUST = Requested by customer, AM09 = Wrong amount

    Minimum length
    1
  • additionalInformation string

    Can only be used for "FRAD, CUST, AC03, AM09". Further details on the cancellation request reason.

    Maximum length
    105
  • originalInstructedDate string, Required

    Original date of transaction.

    Pattern
    YYYY-MM-DD

request

{
"originalInstructedAmount": "1000",
"reasonCodeForRecall": "DUPL",
"additionalInformation": "Lorem ipsum",
"originalInstructedDate": "2024-08-23"
}
Code copied

Response (application/json)

  • 202 Accepted
  • 400 Bad Request
  • 409 Conflict

Bad Request

{
"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

Associated Webhooks

Recall reason codes

Recalls can be requested using the following reason codes:

ReasonDescriptionTime limit to send recall request
DUPLDuplicate sending10 business days
TECHTechnical problems resulting in an erroneous SCT Inst Transaction10 business days
FRADFraudulent originated SCT Inst Instruction13 months
AC03Wrong account number in original transfer13 months
AM09Wrong amount in original transfer13 months
CUSTRequested by customer13 months

Receive and respond to a recall request

If you receive a recall request, you will be notified via the SEPA Instant Recall Request Received webhook. You can review the details of the request by referring to the OriginalTransactionId for details of the original payment received and ReasonCode for the reason the sending party is requesting the recall (see Recall reason codes)

To respond to the recall request, use the POST /v1/payments/sepa-instant/{paymentId}/recall-response endpoint. Set the approve boolean true to accept the request or false to reject it.

Following your approval of a recall request, the amount of the original payment is ring-fenced and returned to the sending party. You can be notified of the status of the status of the return payment via the SEPA Instant Recall Payment Created webhook, SEPA Instant Recall Payment Settled webhook, and SEPA Instant Recall Payment Cancelled webhook.

Recall requests should be responded to within 15 business days. If after 15 business days you do not accept or reject the recall, ClearBank will automatically reject the request.

A message flow diagram explaining receiving a recall request, being notified via the SEPA Instant Recall Request Received webhook, responding with 'approve' set to 'true' using the POST /v1/payments/sepa-instant/{paymentId}/recall-response endpoint and receiving the SEPA Instant Recall Payment Created webhook and SEPA Instant Recall Payment Settled webhook following the return of the recalled amount.

A message flow diagram explaining receiving a recall request, being notified via the SEPA Instant Recall Request Received webhook and responding with 'approve' set to 'false' with a valid 'rejectionCode' using the POST /v1/payments/sepa-instant/{paymentId}/recall-response endpoint

Respond to an SCT Inst recall request

post/v1/payments/sepa-instant/{paymentId}/recall-response

This endpoint is used to accept or reject an incoming SEPA ICT recall request.

Parameters

  • paymentId string, path, Required
  • 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)

  • approve boolean, Required

    To accept a recall, set the value to true. To reject a recall, set the value to false. If set to false, rejectionCode is required.

  • rejectionCode string

    Value must be one of "AC04, NOOR, AM04, ARDT, NOAS, LEGL, CUST". AC04 = Closed account, NOOR = No Original Transaction Received, AM04 = insufficient funds, ARDT = The transaction has already been returned, NOAS = No answer from customer, LEGL = Legal decision, CUST = Requested by customer. Rejection codes should only be set when rejecting the recall. In order to reject a recall, please set the the value of the Approve field to false.

request

{
"approve": "false",
"rejectionCode": "AM04"
}
Code copied

Response (application/json)

  • 202 Accepted
  • 400 Bad Request
  • 409 Conflict

Bad Request

{
"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

Associated Webhooks

The following diagram outlines the process following the unlikely event that there is an issue with the pacs.004 payment that is sent following your approval of an inbound recall request.

A message flow diagram explaining responding to a recall request with 'approve' followed by the pacs.004 payment being rejected at RT1 resulting in receiving a SEPA Instant Recall Payment Cancelled webhook

Following a rejected pacs.004 and receipt of the SEPA Instant Recall Payment Cancelled webhook, the ring-fence is removed from the recall amount and you must re-initiate the recall response using the POST /v1/payments/sepa-instant/{paymentId}/recall-response endpoint.

Simulate SCT Inst payment scenarios

Simulate an inbound SCT Inst payment

post/v1/sepa-instant-emulator/inbound-payment

Generates an inbound SCT Inst payment for testing purposes in our simulation environment for testing purposes.

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)

  • PaymentId string, Required

    Unique identification, as assigned by the original first instructing agent, to unambiguously identify the transaction.

    Minimum length
    1
    Maximum length
    35
    Pattern
    ^[0-9a-zA-Z/\-\?:\(\)\.,'\+ ]+$
  • EndToEndId string, Required

    Unique identification, as assigned by the originating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain.

    Minimum length
    1
    Maximum length
    35
    Pattern
    ^[0-9a-zA-Z/\-\?:\(\)\.,'\+ ]+$
  • Reference string

    Information supplied to enable the matching of an entry with the items that the transfer is intended to settle, such as commercial invoices in an accounts' receivable system

  • Amount number

    Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency (EUR).

    Minimum
    0
    Maximum
    100000
  • Debtor object, Required

  • UltimateDebtor object

  • Creditor object, Required

  • UltimateCreditor object

request

{
"PaymentId": "0947eaf62b51496bafba969a0a712d12",
"EndToEndId": "0947eaf62b51496bafba969a0a712d12",
"Reference": "INV-00002 2020-01-21",
"Amount": "10.00",
"Debtor": {
"Name": "John Doe",
"AccountIban": "NL45INGB4887467303",
"AgentBic": "CLRBNL2AXXX",
"OrganisationBic": "CLRBNL2AXXX",
"PostalAddress": {
"StreetName": "Morissette Union",
"BuildingNumber": "99",
"TownName": "Sipesville",
"PostCode": "RV7 4IS",
"CountrySubdivision": "Buckinghamshire",
"Country": "GB"
}
},
"UltimateDebtor": {
"Name": "John Doe",
"OrganisationBic": "CLRBNL2AXXX"
},
"Creditor": {
"Name": "John Doe",
"AccountIban": "NL01CLRB0123456789",
"AgentBic": "CLRBNL2AXXX",
"OrganisationBic": "CLRBNL2AXXX",
"PostalAddress": {
"StreetName": "Morissette Union",
"BuildingNumber": "99",
"TownName": "Sipesville",
"PostCode": "RV7 4IS",
"CountrySubdivision": "Buckinghamshire",
"Country": "GB"
}
},
"UltimateCreditor": {
"Name": "John Doe",
"OrganisationBic": "CLRBNL2AXXX"
}
}
Code copied

Response (application/json)

  • 202 Accepted
  • 400 Bad Request
  • 404 Not Found

Bad Request

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"errors": {
"property1": [
"string"
],
"property2": [
"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

Associated Webhooks

Simulate an inbound SCT Inst recall request

post/v2/sepa-instant-emulator/inbound-payment/recall

Generates an inbound SCT Inst recall request in our simulation environment for testing purposes.

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)

  • Reference string

    Information supplied to enable the matching of an entry with the items that the transfer is intended to settle, such as commercial invoices in an accounts' receivable system

  • ReasonForRecall string, Required

    The reason code used to recall the payment.

    Enum array
    DUPL, FRAD, TECH, CUST, AC03, AM09
  • Amount number, Required

    Amount of money moved between the debtor and creditor (EUR).

    Minimum
    0
    Maximum
    100000
  • PaymentId string, Required

    Original payment ID used in the inbound payment to be recalled.

    Minimum length
    1
    Maximum length
    35
    Pattern
    ^[0-9a-zA-Z/\-\?:\(\)\.,'\+ ]+$
  • EndToEndId string, Required

    Original endToEndId used in the inbound payment to be recalled.

    Minimum length
    1
    Maximum length
    35
    Pattern
    ^[0-9a-zA-Z/\-\?:\(\)\.,'\+ ]+$

request

{
"Reference": "INV-00002 2020-01-21",
"ReasonForRecall": "DUPL",
"Amount": "1000",
"PaymentId": "0947eaf62b51496bafba969a0a712d12",
"EndToEndId": "0947eaf62b51496bafba969a0a712d12"
}
Code copied

Response (application/json)

  • 202 Accepted
  • 400 Bad Request
  • 404 Not Found
  • 500 Server Error

Bad Request

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"errors": {
"property1": [
"string"
],
"property2": [
"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

Server Error

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

Associated Webhooks