SEPA Direct Debit
SEPA Direct Debit lets you collect euro payments directly from a payer's bank account within the Single Euro Payments Area (SEPA). The payer authorises the collection by granting a SEPA mandate, which you must present at checkout and which the payer must accept before the payment is created.
This payment method supports both SEPA schemes:
ddfor the consumer (B2C) schemedd_b2bfor the business-to-business (B2B) scheme
There is no hosted page and no browser redirection. The transaction is submitted to the payer's financial institution during the next export cycle, so it stays in the started status until submission happens, and its final status is delivered asynchronously via postback.
| Networks | Features | Integrations | payment_type |
|---|---|---|---|
| SEPA banks |
|
| dd / dd_b2b |
Payment workflow
The following diagram explains the SEPA Direct Debit payment workflow for the Server-to-Server integration.
Scroll horizontally if the diagram is wider than your screen.
- 1PayerMerchant (Acceptor)
1. Provides IBAN and accepts the SEPA mandate at checkout
- 2Merchant (Acceptor)OneAPI
2. Create Direct Debit payment (Payment API, IBAN + mandate)
- 3OneAPIMerchant (Acceptor)
3. Response with status started (1)
- OneAPI
Queued for the next SEPA export cycle
- 4OneAPIBank (Financial Institution)
4. Submit direct debit collection (same or next business day)
- OneAPI
Status changes to pending (2)
- 5OneAPIMerchant (Acceptor)
5. Postback — pending (2)
- Bank (Financial Institution)
Bank statement reconciliation (camt.053 / MT940 / CDZ)
- 6Bank (Financial Institution)OneAPI
6. Debit settled, no reason code
- OneAPI
Status changes to completed (3). On a return, status becomes chargeback (13), declined (6), or error (4) instead
- 7OneAPIMerchant (Acceptor)
7. Postback — completed (3)
- 8Merchant (Acceptor)Payer
8. Shows final order confirmation
The transaction moves through the following statuses (identical for B2C and B2B). The Status Code column is the transaction's status code:
| Status | Status Code | When |
|---|---|---|
started | 1 | Payment created; queued for the next SEPA export cycle |
pending | 2 | Collection submitted to the bank via the export file. Treated as a successful state |
completed | 3 | The debit settled and no return was received |
chargeback | 13 | The collection was returned (a return with or without a reason code) |
declined | 6 | Return with a decline reason code |
error | 4 | Return with an error reason code |
The started status in the synchronous response is not the final result. SEPA is processed asynchronously, so use the postbacks sent on each status change as the source of truth. A standalone mandate reference created with the Mandate Reference API stays in the registered (9) status.
Legal Implications
Before creating an initial SEPA Direct Debit payment you must display the SEPA mandate information to the payer and have them explicitly agree to the collection of the debited amount. The mandate text must include the creditor details, the mandate reference, the account holder, and the IBAN.
For B2C, the payer has the right to demand a refund of a charged amount for up to eight weeks from the date of the charge. For B2B, there is no refund right for authorised collections after the debit. All examples of SEPA legal texts are provided for guidance only and are not guaranteed to be legally compliant.
For recurring collections, the payer must additionally receive a pre-notification announcing the amount and the due date before each collection.
Integration options
Choose how you want to accept SEPA Direct Debit: