SEPA Credit Transfer
SEPA Credit Transfer
SEPA Credit Transfer (SCT) is a payment scheme that enables you to move euros between scheme participants. Transactions are capped at €999,999,999.99 per payment.
You can:
- Send an SCT payment
- Recall an SCT payment
- Return an SCT payment (Integrating with recall and return is required.)
- Receive and respond to an SCT recall request
- Receive an SCT payment
- Receive a returned SCT payment
- Simulate SCT payment scenarios
You will be notified of incoming SCT payments via the SEPA CT Inbound Payment Completed webhook.
Opening hours
Inbound SCT payments can be received on Netherlands business days between 02:30 and 16:30 CET.
Outbound SCT payments can be sent on Netherlands business days between 07:00 and 16:00 CET. Transactions submitted after 16:00 or on bank holidays or weekends will be rejected. If a payment is submitted before the cut-off point but cannot be submitted to scheme, it will be placed in a queue until outbound payments reopen.
Send an SCT payment
To send a payment, use the POST /payments/sepa-ct/v1/customer-payments endpoint. You will receive the SEPA CT Outbound Payment Completed webhook and the Customer Accounts Transaction Completed webhook.
Failure reason codes
Outbound payments may fail 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).
When a payment fails, you'll receive an Outbound Payment Failed webhook, which includes a reason code specifying the reason for failure. The failure codes include, but are not limited to:
| Reason code | Description | Internal validation failure | External validation failure |
|---|---|---|---|
| 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 |
| AM03 | EUR currency not enabled | X | |
| AM04 | Insufficient funds | X | X |
| BE01 | Account does not belong to institution | X | |
| CB01 | Unknown error | X | X |
| CB02 | A valid creditor agent BIC cannot be derived from the supplied IBAN | X | |
| CNOR | Creditor bank is not registered | X | X |
| CUST | Requested by customer | X | |
| RR04 | Regulatory reason | X |
Testable IBANs
When you call our endpoints in simulation, any IBANs you provide are validated. To support your testing, refer to the below tables of valid and invalid IBANs:
| 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 |
Example Customer Accounts Transaction Completed webhook request body for inbound SCT payment
{"Type":"CustomerAccounts.TransactionCompleted","Version":1,"Payload":{"TransactionId":"ce57422c-1276-4820-b97b-e7108f9c59cd","EndToEndIdentification":"Inbound12345677","CreatedDateTime":"2025-02-10T12:54:58.0766667Z","CompletedDateTime":"2025-02-10T12:54:58.0966667Z","ClearingChannel":"SEPA","DebitCreditCode":"Credit","Amount":1000.0,"Currency":"EUR","RemittanceInformation":"Funding","DebtorAccount":{"AccountId":null,"Iban":"NL51XBLT6087402426","Bban":null,"Descriptor":null},"CreditorAccount":{"AccountId":"5602a737-675f-4c85-bbc1-d5d4b4478e64","Iban":"NL25CLRB0066110527","Bban":null,"Descriptor":null}},"Nonce":740685879}
Example webhook response
{"Nonce": 740685879}
Example Customer Accounts Transaction Completed webhook request body for outbound SCT payment
{"Type":"CustomerAccounts.TransactionCompleted","Version":1,"Payload":{"TransactionId":"2a259909-e2b5-4bb5-ba91-5e40070ce901","EndToEndIdentification":"4751967232218871296240","CreatedDateTime":"2024-07-29T09:56:59.58Z","CompletedDateTime":"2024-07-29T10:00:23.82Z","ClearingChannel":"SEPA","DebitCreditCode":"Debit","Amount":224.0,"Currency":"EUR","RemittanceInformation":"deposit","DebtorAccount":{"AccountId":"c182ac1e-3f15-4b58-b9c3-22719a6b6461","Iban":"NL74CLRB0113702695","Bban":null,"Descriptor":null},"CreditorAccount":{"AccountId":null,"Iban":"NL32INGB0000092273","Bban":null,"Descriptor":null}},"Nonce":437327901}
Example webhook response
{"Nonce": 437327901}
Receive an SCT payment
Recall an SCT Payment
You can send an SCT recall requests using the POST /payments/sepa-ct/v1/recall endpoint. Recalls can take up to 15 business days.
If your recall request has been accepted, you will be notified via the SEPA CT Outbound Payment Return Completed and Customer Accounts Transaction Completed webhooks.
If your recall request has been rejected, you will be notified via the SEPA CT Outbound Payment Recall Rejected webhook.
Recall request 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 Transaction | 10 business days |
| FRAD | Fraudulent originated SCT 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 an SCT recall request
You may receive a recall request via the SEPA CT Inbound Payment Recalled webhook. You can review the details of the request by referring to the 'PaymentId' for details of the original payment received and 'CancellationReasonInformation' for the reason the sending party is requesting the recall (see recall request reason codes).
To respond to the recall request, use the /v1/payments/sepa/{paymentId}/recall-response endpoint. 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.
Accept recall requests
You can accept the recall request by setting the RecallResponseAccepted boolean to true.
Reject recall requests
If you do not agree with the reason for the recall cited by the requesting party in the CancellationReasonInformation field, you can reject the recall request by setting the RecallResponseAccepted boolean to false. When rejecting a recall request, the 'RejectCode' field must be populated (see recall response reason codes).
Recall response reason codes
Recalls can be accepted with the following reason code:
| Reason | Description |
|---|---|
| FOCR | Following cancellation request |
Recalls can be rejected for the following reason codes:
| Reason | Description |
|---|---|
| AC04 | Closed account number |
| NOOR | No original transaction received |
| AM04 | Insufficient funds |
| ARDT | Already returned transaction |
| NOAS | No answer from customer |
| LEGL | Legal decision |
| CUST | Customer decision |
Recall requests should be responded to within 15 business days.
Return an SCT payment
SCT payments can also be returned to the payment originator.
You can return a payment using the POST /payments/sepa-ct/v1/payment-returns endpoint. You can only return a payment after receiving the SEPA CT Inbound Payment Completed webhook. Returns must be sent within three business days of the original payment's settlement date.
Once the return has been processed, you will either receive the SEPA CT Inbound Payment Return Completed and Customer Accounts Transaction Completed webhooks or the SEPA CT Inbound Payment Return Failed webhook.
Receive a returned SCT payment
You will be notified of a successful SCT return payment via the SEPA CT Outbound Payment Return Completed webhook.
Simulate SCT payment scenarios
The following will allow you to test SCT payment scenarios in the ClearBank simulation environment.
Simulate a returned SCT payment
To simulate the return of an SCT payment in the simulation environment, use the Send an SCT payment endpoint with the remittanceInformationUnstructured field populated with --SCTRETURN--. This will simulate an outbound SCT payment settling and then being returned by the creditor.
Receipt of the SEPA CT Outbound Payment Return Completed webhook confirms the return payment.
"remittanceInformationUnstructured": "--SCTRETURN--"