Search Overlay

SEPA Direct Debit

SEPA Direct Debit (SDD) is a popular and widely-used payment method within the Single Euro Payments Area (SEPA), which encompasses 36 European countries. SDD allows businesses to collect payments in euros from customers with bank accounts in any SEPA country. This method is particularly useful for recurring payments, such as subscriptions, utilities, and memberships, as it offers a convenient and automated way to manage payments. 

SDD rulebook and implementation guidelines

SEPA Direct Debit at a glance

Payment type

Bank Transfer (SEPA)

Consumer markets Europe
The consumer is debited in EUR
Processing currency EUR
Single payments

YES

  • Mandate creation necessary: Yes
  • Minimum amount:  N/A
  • Maximum amount:  Set on a per merchant basis
  • Payments API:  Yes
  • Checkout:  No
  • Paysafe JS:  No
Merchant-initiated payments Yes
Processing Time 3 business days 
Refunds

Not Supported

Reporting

You can review your transactions in the Paysafe Business Portal

Guarantee

YES

Languages supported EN

Key features of SEPA Direct Debit

SEPA has enabled customers to make cashless euro payments via direct debit to anywhere in the European Union (EU), as well as a number of non-EU countries, in a fast, safe and efficient way, just like national payments. Following are some key features:

  1. SEPA Direct Debit is pull-based. Once given a mandate by their customer, it is the merchant who initiates payments.
  2. SEPA Direct Debit payments are bank-to-bank. There are no card networks involved in the SEPA Direct Debit scheme. All communications happen directly between the banks.

Implementation Flow

  • Set Up the Mandate: Obtain your customer’s consent for SEPA payments by establishing a mandate using the Mandate API. If you already have a mandate ID, you can skip this step and continue with the next one. 
  • Send a Pre-Notification: Notify your consumer in advance about the planned debit from their account. This step ensures compliance and keeps your customer informed. 

To process a SEPA Direct Debit (SDD) Core payment with Paysafe, follow these steps: 

  1. Create a customer - Create a customer profile with the required information. 
  2. Create a paymentHandle - Based on the payment type, select a payment handle with the billing details. 
  3. Link customer mandate to created paymentHandle - Link the mandate to the payment handle via a unique reference number. 
  4. Request payment with the paymentToken - Initiate the payment processing request with the required transaction information.  

Webhooks

Payment handle webhooks 

Webhook Description
PAYMENT_HANDLE_PAYABLE The payment handle for processing payments is created. 

Following is the sample payload that will be received when the payment handle is created. 

 

{
"attemptNumber": "1",
"type": "PAYMENT_HANDLE",
"payload": {
"id": "a5575d5c-07c1-4338-b906-bf9c7322d820",
"usage": "MULTI_USE",
"executionMode": "SYNCHRONOUS",
"status": "PAYABLE",
"paymentType": "SEPA",
"paymentHandleToken": "DUCilKHkodg3ZjT",
"billingDetails": {
"id": "8627ccf6-492b-4270-ba73-61bdcd5cb8d5",
"nickName": "Home",
"street2": "Unit 201",
"city": "Toronto",
"country": "CA",
"zip": "M5H 2N2",
"street": "100 Queen"
},
"action": "NONE"
},
"resourceId": "a5575d5c-07c1-4338-b906-bf9c7322d820",
"eventName": "PAYMENT_HANDLE_PAYABLE"
}

Payment Webhooks

Webhook Description
PAYMENT_COMPLETED The transaction was completed successfully, and request is sent to the bank. 
SETTLEMENT_CANCELLED The settlement while in pending state (before request is sent to the bank) is cancelled by the merchant
SETTLEMENT_PROCESSING The settlement is being processed, request successfully sent to the bank and waiting for acknowledgement. 
SETTLEMENT_COMPLETED The settlement is completed, successfully sent to bank and received positive acknowledgement from bank
SETTLEMENT_CLEARED The settlement is cleared, no return/rejection is received from the bank. 
PAYMENT_RETURNED_COMPLETED Failed payment reported by the bank 
PAYMENT_FAILED The payment failed during the validation process i.e., risk rule failure

Following is the sample payload that will be received when the payment is completed.

{
"payload": {
"accountId": "1004858530",
"id": "621f366f-f125-4c5b-a1fe-7e8b508d70c8",
"merchantRefNum": "255354621431850940",
"amount": 500,
"currencyCode": "EUR",
"gatewayReconciliationId": "144668760",
"status": "COMPLETED",
"paymentType": "SEPA",
"txnTime": "2024-08-16T13:19:04Z",
"statusTime": "2024-08-16T13:19:04Z",
"processorCode": "JPMCS",
"mandateId": "85f2ab71-566a-4cbd-bf70-2b5a187fedd5",
"dueDate": "2024-08-16T13:19:04Z",
"billingDetails": {
"street1": "100 Queen",
"street2": "Unit 201",
"city": "Toronto",
"country": "CA",
"zip": "M5H 2N2"
},
"profile": {
"id": "e817633e-225a-4d5b-b9b4-15268ddfb35c"
},
"customerId": "e817633e-225a-4d5b-b9b4-15268ddfb35c",
"description": "Magazine subscription",
"settleWithAuth": true,
"sepa": {
"lastDigits": "8408",
"accountHolderName": "John Doe",
"bic": "ZLDEVCC1",
"mandateReference": "PEKBV6833",
"bankReference": "PEKBV6833"
},
"settlementId": "621f366f-f125-4c5b-a1fe-7e8b508d70c8",
"settlementAmount": 500,
"settlementStatus": "PENDING"
},
"attemptNumber": "1",
"type": "PAYMENT",
"eventDate": "2024-08-16T13:19:04Z",
"eventName": "PAYMENT_COMPLETED"
}

Following is the sample payload that will be received when the settlement is cancelled.

{
"payload": {
"accountId": "1004858530",
"id": "a1b4ec4f-9aa5-43a7-99d9-b1e3df95da32",
"merchantRefNum": "477903334702291260",
"amount": 500,
"currencyCode": "EUR",
"gatewayReconciliationId": "144668780",
"status": "CANCELLED",
"statusTime": "2024-08-16T14:05:34Z",
"paymentType": "SEPA",
"txnTime": "2024-08-16T14:04:25Z",
"processorCode": "JPMCS"
},
"attemptNumber": "1",
"type": "SETTLEMENT",
"eventDate": "2024-08-16T14:04:25Z",
"eventName": "SETTLEMENT_CANCELLED"
}

Following is the sample payload that will be received when the settlement is being processed.

{
"payload": {
"accountId": "1004858530",
"id": "621f366f-f125-4c5b-a1fe-7e8b508d70c8",
"merchantRefNum": "255354621431850940",
"amount": 500,
"currencyCode": "EUR",
"gatewayReconciliationId": "144668760",
"status": "PROCESSING",
"statusTime": "2024-08-16T13:30:57Z",
"paymentType": "SEPA",
"txnTime": "2024-08-16T13:19:04Z",
"processorCode": "JPMCS"
},
"attemptNumber": "1",
"type": "SETTLEMENT",
"eventDate": "2024-08-16T13:19:04Z",
"eventName": "SETTLEMENT_PROCESSING"
}

Following is the sample payload that will be received when the settlement is completed.

{
"payload": {
"accountId": "1004858530",
"id": "621f366f-f125-4c5b-a1fe-7e8b508d70c8",
"merchantRefNum": "255354621431850940",
"amount": 500,
"currencyCode": "EUR",
"gatewayReconciliationId": "144668760",
"status": "COMPLETED",
"statusTime": "2024-08-16T13:34:41Z",
"paymentType": "SEPA",
"txnTime": "2024-08-16T13:19:04Z",
"processorCode": "JPMCS"
},
"attemptNumber": "1",
"type": "SETTLEMENT",
"eventDate": "2024-08-16T13:19:04Z",
"eventName": "SETTLEMENT_COMPLETED"

Following is the sample payload that will be received when the settlement is cleared.

{
"payload": {
"accountId": "1004858530",
"id": "621f366f-f125-4c5b-a1fe-7e8b508d70c8",
"merchantRefNum": "255354621431850940",
"amount": 500,
"currencyCode": "EUR",
"gatewayReconciliationId": "144668760",
"status": "COMPLETED",
"statusTime": "2024-08-16T13:34:41Z",
"paymentType": "SEPA",
"txnTime": "2024-08-16T13:19:04Z",
"processorCode": "JPMCS"
},
"attemptNumber": "1",
"type": "SETTLEMENT",
"eventDate": "2024-08-16T13:19:04Z",
"eventName": "SETTLEMENT_CLEARED"
}

Following is the sample payload that will be received when the payment return is completed.

{
"payload": {
"accountId": "1004858530",
"id": "da9279ac-fe62-4c5c-bbc9-a210fd07e433",
"merchantRefNum": "255354621431850940",
"amount": 500,
"currencyCode": "EUR",
"gatewayReconciliationId": "144668760",
"status": "COMPLETED",
"paymentType": "SEPA",
"txnTime": "2024-08-16T13:40:50Z",
"statusTime": "2024-08-16T13:40:50Z",
"processorCode": "JPMCS",
"paymentId": "621f366f-f125-4c5b-a1fe-7e8b508d70c8",
"settlementId": "621f366f-f125-4c5b-a1fe-7e8b508d70c8",
"bankResponse": {
"name": "JP Morgan Chase (SEPA)",
"scheme": "SEPA",
"message": "Invalid Debtor Account Number",
"reasonCode": "AC02"
},
"reason": "Invalid Account"
},
"attemptNumber": "1",
"type": "PAYMENT_RETURN",
"eventDate": "2024-08-16T13:40:50Z",
"eventName": "PAYMENT_RETURN_COMPLETED"
}

Testing Credentials

You can test your integration's ability to manage different responses, ensuring it effectively handles failure scenarios. In these cases, you will receive a result code along with a refusal reason, providing details on why the payment request was unsuccessful. 

SEPA IBAN BIC Country/Region
NL77ABNA0492122466 ABNANL2A EU
NL76ABNA0472095185 ABNANL2A EU