SEPA Instant Credit Transfer
SEPA Instant Credit Transfer
SEPA Instant Credit Transfer (SCT Inst) is a pan-European payment scheme that enables real-time euro transfers, delivering funds to the recipient within 10 seconds, 24 hours a day, 365 days a year.
You can:
- Send an SCT Inst payment
- Receive an SCT Inst payment
- Recall an SCT Inst payment (integrating with recall payments is required)
- Receive and respond to a recall request
- Simulate SCT Inst payment scenarios
You are notified of incoming SCT Inst payments via the SEPA Instant Inbound Payment Settled webhook and the Customer Accounts Transaction Completed webhook.
Sending an SCT Inst payment
To send an SCT Inst payment, use the POST /v1/payments/sepa-instant endpoint.
The SCT Inst scheme does not have a limit for maximum payment amounts, and ClearBank does not impose one. Instead, our clients are responsible for provisioning and managing transaction limits for their underlying customers in accordance with their own operational and risk requirements.
Transactions must be settled within a normal maximum of 5 seconds, with an upper limit of 10 seconds permitted only in exceptional circumstances, as mandated by SCT Inst 2025 rulebook.
You will receive the SEPA Instant Outbound Payment Created webhook. If 10 seconds pass without settlement, you'll receive the SEPA Instant Outbound Payment Delayed webhook. Once the payment has settled, you will receive the SEPA Instant Outbound Payment Settled webhook and the Customer Accounts Transaction Completed webhook.
Cancellation reason codes
Outbound payments may be cancelled due to internal validation failure (the payment did not pass our internal validation rules) or external validation failure (the payment did not pass SEPA scheme or beneficiary bank validation rules). Cancelled payments return a reason code which is reflected in the CancellationCode field of the SEPA Instant Outbound Payment Cancelled webhook. The cancellation codes include, but are not limited to:
| Reason code | Description | Internal validation failure | External validation failure |
|---|---|---|---|
| AB05 | Timeout Creditor Agent | X | |
| AB08 | Offline Creditor Agent | X | |
| AB09 | Error Creditor Agent | X | |
| AB10 | Error Instructed Agent | X | |
| AB15 | Account Is Held Suspense Account / Account Is Repair Suspense Account | X | |
| AC01 | Account identifier invalid or incorrect | X | X |
| AC04 | Account Not Active / Closed | X | X |
| AC06 | Blocked Account | X | X |
| AG01 | Transaction Forbidden | X | |
| AG10 | Agent Suspended | X | |
| AG11 | Creditor Agent Suspended | X | |
| AM03 | EUR Currency Not Enabled | X | |
| AM04 | Insufficient Funds | X | X |
| AM05 | Duplication | X | |
| BE01 | Account Does Not Belong To Institution | X | |
| BE04 | Missing Creditor Address | X | |
| CB01 | Unknown Error | X | X |
| CB02 | A valid creditor agent BIC cannot be derived from the supplied IBAN | X | |
| CB05 | Payment delayed | X | |
| CNOR | Creditor Bank Is Not Registered | X | X |
| DNOR | Debtor Bank Is Not Registered | X | |
| MD07 | End Customer Deceased | X | |
| MS02 | Not Specified Reason Customer Generated | X | |
| MS03 | Payment failed screening, re-send via SCT | X | |
| RC01 | Bank Identifier Incorrect | X | |
| RC05 | Invalid BIC Identifier | X | |
| RR03 | Missing Creditor’s Name Or Address | X | |
| RR04 | Regulatory Reason | X | |
| TM01 | Invalid Cut Off Time | X |
Example Customer Accounts Transaction Completed webhook request body for inbound SCT Inst payment
{"Type":"CustomerAccounts.TransactionCompleted","Version":1,"Payload":{"TransactionId":"e05bfe3b-3187-28b1-340d-57d57a8739fa","EndToEndIdentification":"12345678","CreatedDateTime":"2025-02-10T12:52:43.7433333Z","CompletedDateTime":"2025-02-10T12:52:43.7666667Z","ClearingChannel":"SEPA-Instant","DebitCreditCode":"Credit","Amount":1000.0,"Currency":"EUR","RemittanceInformation":"e05bfe3b-3187-28b1-340d-57d57a8739fa","DebtorAccount":{"AccountId":null,"Iban":"GB68INST20182441739477","Bban":null,"Descriptor":null},"CreditorAccount":{"AccountId":"5602a737-675f-4c85-bbc1-d5d4b4478e64","Iban":"NL25CLRB0066110527","Bban":null,"Descriptor":null}},"Nonce":263934935}
Example webhook response
{"Nonce": 263934935}
Example Customer Accounts Transaction Completed webhook request body for outbound SCT Inst payment
{"Type":"CustomerAccounts.TransactionCompleted","Version":1,"Payload":{"TransactionId":"8fa1ceea-e592-480c-26fa-1fd040c89df1","EndToEndIdentification":"0947eaf6-2b51-496b-afba-969a0a72f38","CreatedDateTime":"2025-02-10T15:54:09.97Z","CompletedDateTime":"2025-02-10T15:54:14.29Z","ClearingChannel":"SEPA-Instant","DebitCreditCode":"Debit","Amount":100.0,"Currency":"EUR","RemittanceInformation":"testing instant","DebtorAccount":{"AccountId":"5602a737-675f-4c85-bbc1-d5d4b4478e64","Iban":"NL25CLRB0066110527","Bban":null,"Descriptor":null},"CreditorAccount":{"AccountId":null,"Iban":"DE25370502991000122343","Bban":null,"Descriptor":null}},"Nonce":1778087803}
Example webhook response
{"Nonce": 1778087803}
Testable IBANs
When you call our endpoints in simulation, any IBANs you provide are validated. To support your testing, the below tables list valid and invalid IBANs for your use:
| Valid IBAN | Country |
|---|---|
| NL73ABNA0529451824 | Netherlands |
| FR7630006000011234567890189 | France |
| GB33BUKB20201555555555 | UK |
| DE75512108001245126199 | Germany |
| DK9520000123456789 | Denmark |
| IE07BOFI900017556967 | Ireland |
| PT88003506514393326125714 | Portugal |
| ES7921000813610123456789 | Spain |
| AT483200000012345864 | Austria |
| Invalid IBAN | Country |
|---|---|
| GB20FMFX42731695687653 | UK |
| NL51IKXV1050288017 | Netherlands |
| BE66173933352443 | Belgium |
| LT089128849492191749 | Lithuania |
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.
If the receiving party rejects the recall request, a rejection code will be provided and populated in the RejectionCode field of the SEPA Instant Recall Request Rejected webhook. The recall rejection codes include, but are not limited to:
| Reason Code | Description |
|---|---|
| AC04 | Closed Account Number |
| AM04 | Insufficient Funds |
| ARDT | The Transaction Has Already Been Returned |
| ARJT | Already rejected original SCT (SEPA Credit Transfer) |
| CUST | Requested By Customer |
| LEGL | Legal Decision |
| NOAS | No Answer From Customer |
| NOOR | No Original Transaction Received |
| RNPR | Original credit transfer was received but is not processable |
| RR04 | Regulatory reason |
External code sets can be downloaded from iso20022.org
Recall reason codes
Recalls can be requested using the following reason codes:
| Reason | Description | Time limit to send recall request |
|---|---|---|
| DUPL | Duplicate sending | 10 business days |
| TECH | Technical problems resulting in an erroneous SCT Inst Transaction | 10 business days |
| FRAD | Fraudulent originated SCT Inst Instruction | 13 months |
| AC03 | Wrong account number in original transfer | 13 months |
| AM09 | Wrong amount in original transfer | 13 months |
| CUST | Requested by customer | 13 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.
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.
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 a delayed outbound SCT Inst payment
To test the SEPA Instant Outbound Payment Delayed webhook, you can provide one of the following values in the reference field of a Send SCT Inst Payment request:
| Reference field value | Simulated behavior |
|---|---|
--DelayPayment-- | Delays the payment by 10 seconds, then proceeds as normal - validation still applies. |
--CancelDelayedPayment-- | Delays the payment by 10 seconds, then cancels the payment with cancellation code CB05. |