ClearBank

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 per payment.

You can:

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.

A message flow diagram explaining how to send an SCT payment

Send an SCT outbound payment

post/payments/sepa-ct/v1/customer-payments

This endpoint is used to create an outbound SCT payment.

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)

  • 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\-\?:\(\)\.,'\+](/?([0-9a-zA-Z\-\?:\(\)\.,'\+ ]/?)*[0-9a-zA-Z\-\?:\(\)\.,'\+]+)?)
  • amount number, Required

    Amount of money to be moved between the debtor and creditor, before deduction of charges.

    Pattern
    [0-9]{0,15}([\.]([0-9]{0,2})){0,1}
  • currency string, Required

    An active or a historic currency where the unit of currency is explicit and compliant with ISO 4217.

    Minimum length
    1
    Pattern
    ^[A-Z]{3}$
  • debtor object, Required

  • creditor object, Required

  • creditorAgent object, Required

  • remittanceInformationUnstructured string, Required

    Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts receivable system, in an unstructured form. Test the return of an SCT payment in the simulation environment by populating with '--SCTRETURN--'

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

request

{
"endToEndId": "End2EndId",
"amount": "2.99",
"currency": "EUR",
"debtor": {
"name": "John Doe",
"accountIban": "NL59ABNA8424598490",
"postalAddress": {
"streetName": "My Street",
"buildingNumber": "1",
"townName": "London",
"postCode": "XX99 9XX",
"countrySubdivision": "London",
"country": "GB"
},
"identification": {
"organisationIdentification": {
"bic": "BUKBNL20"
},
"privateIdentification": {
"dateAndPlaceOfBirth": {
"dateOfBirth": "2004-05-15",
"placeOfBirth": "Birth Town"
},
"other": "Other identification."
}
}
},
"creditor": {
"name": "John Doe",
"accountIban": "NL59ABNA8424598490",
"postalAddress": {
"streetName": "My Street",
"buildingNumber": "1",
"townName": "London",
"postCode": "XX99 9XX",
"countrySubdivision": "London",
"country": "GB"
},
"identification": {
"organisationIdentification": {
"bic": "BUKBNL20"
},
"privateIdentification": {
"dateAndPlaceOfBirth": {
"dateOfBirth": "2004-05-15",
"placeOfBirth": "Birth Town"
},
"other": "Other identification."
}
}
},
"creditorAgent": {
"bic": "BUKBNL20"
},
"remittanceInformationUnstructured": "My remittance information."
}
Code copied

Response (application/json)

  • 202 Accepted
  • 400 Bad Request
  • 409 Conflict

Accepted

{
"paymentId": "1bfb7a86-7d9b-45ff-9d5c-34048efc4c8a"
}
Code copied

Bad Request

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

Conflict

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

Associated Webhooks

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.

A message flow diagram explaining how to an SCT recall request is sent, then accepted or rejected by the original creditor

Recall request 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 Transaction10 business days
FRADFraudulent originated SCT Instruction13 months
AC03Wrong account number in original transfer13 months
AM09Wrong amount in original transfer13 months
CUSTRequested by customer13 months

Request an SCT payment recall

post/payments/sepa-ct/v1/recall

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

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 identifier of the Outbound SCT payment to be recalled.

    Maximum length
    36
    Pattern
    [0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}
  • recallCode string, Required

    Reason code to recall an Outbound SCT Payment

    Minimum length
    4
    Maximum length
    4
    Pattern
    ^[A-Z0-9]{1,4}$
  • additionalInfo string

    Additional Information

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

request

{
"paymentId": "1bfb7a86-7d9b-45ff-9d5c-34048efc4c8a",
"recallCode": "CUST",
"additionalInfo": "Some additional information."
}
Code copied

Response (application/json)

  • 202 Accepted
  • 400 Bad Request
  • 409 Conflict

Bad Request

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

Conflict

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

Associated Webhooks

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.

A message flow diagram showing how to accept an inbound SCT recall request

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

A message flow diagram showing how to reject an inbound SCT recall request

Recall response reason codes

Recalls can be accepted with the following reason code:

ReasonDescription
FOCRFollowing cancellation request

Recalls can be rejected for the following reason codes:

ReasonDescription
AC04Closed account number
NOORNo original transaction received
AM04Insufficient funds
ARDTAlready returned transaction
NOASNo answer from customer
LEGLLegal decision
CUSTCustomer decision

Recall requests should be responded to within 15 business days.

Respond to an SCT recall request

post/payments/sepa-ct/v1/recall-response

This endpoint is used to approve or reject a recall request of an inbound SCT payment.

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 identifier of the Inbound SCT payment to be recalled.

    Maximum length
    36
    Pattern
    [0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}
  • recallResponseAccepted boolean, Required

    Accept or reject a request for recall of an SCT inbound payment

  • rejectCode string

    Reason code required if recall request is rejected

    Minimum length
    4
    Maximum length
    4
    Pattern
    ^[A-Z0-9]{1,4}$
  • additionalInfo string

    Additional information

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

request

{
"paymentId": "1bfb7a86-7d9b-45ff-9d5c-34048efc4c8a",
"recallResponseAccepted": "True",
"rejectCode": "CUST",
"additionalInfo": "Additional details."
}
Code copied

Response (application/json)

  • 202 Accepted
  • 400 Bad Request

Bad Request

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

Associated Webhooks

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.

A message flow diagram explaining how to send an SCT return

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.

Return an SCT payment

post/payments/sepa-ct/v1/payment-returns

This endpoint is used to return an inbound SCT payment.

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 identifier of the payment to be returned.

    Maximum length
    36
    Pattern
    [0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}

request

{
"paymentId": "b907589a-f3c5-4328-84c5-c83df6f66d07"
}
Code copied

Response (application/json)

  • 202 Accepted
  • 400 Bad Request
  • 409 Conflict

Bad Request

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

Conflict

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

Associated Webhooks

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 an inbound SCT payment

post/v1/payments/sepa-ct/emulator/inbound/payment

Simulates an inbound SCT payment for testing purposes in the ClearBank simulation environment.

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.

    Pattern
    [0-9]{0,15}([\.]([0-9]{0,2})){0,1}
  • creditorAccount string, Required

    International Bank Account Number (IBAN) - identifier used internationally by financial institutions to uniquely identify the account of a customer.

    Minimum length
    1
    Pattern
    [A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}
  • 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
    Pattern
    ([0-9a-zA-Z\-\?:\(\)\.,'\+](/?([0-9a-zA-Z\-\?:\(\)\.,'\+ ]/?)*[0-9a-zA-Z\-\?:\(\)\.,'\+]+)?)
  • reference string, Required

    Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts receivable system, in an unstructured form

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

    Business identifier code (BIC) - Code allocated to a financial institution by the ISO 9362 Registration Authority

    Minimum length
    1
    Pattern
    [A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}

request

{
"amount": "2.99",
"creditorAccount": "GB33BUKB20201555555555",
"endToEndId": "End2EndId",
"reference": "TestReference",
"debtorAgentBic": "BUKBGB20"
}
Code copied

Response (application/json)

  • 202 Accepted
  • 400 Bad Request

Bad Request

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

Associated Webhooks

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