SEPA direct debits
SEPA direct debits (SDDs) enable companies and governments (referred to as creditors) to collect payments from companies and individuals (referred to as debtors) by pulling payments from their accounts using a mandate. SDDs can be of type core (between companies and individuals or between companies) or B2B (between companies exclusively).
SEPA creditor identifier
A creditor identifier is required to collect payments through SDD. Companies can request their creditor identifier to their bank or country’s central bank. Your creditor identifier will be added to your Numeral account.
Managing SEPA direct debit mandates
A mandate is required to collect a payment through SDD. The mandate needs to include information about the creditor, creditor identifier, debtor, mandate type, and payment collection schedule as well as a unique reference mandate (URM).
One-off mandates can be used only once. Recurring mandates can be used multiple times and are valid until they are revoked or expire after 36 months without being used.
Mandates will only be managed in a future version. Until then, companies should manage their mandates outside of Numeral and pass mandate information when creating payment orders.
Creating a payment order for a SEPA direct debit
SEPA direct debit payments can be created using the Create a payment order API endpoint, with sepa
as type
, debit
as direction
, and the following direct_debit_mandate
object with:
- The
reference
(URM) of the mandate - The signature date of the mandate as
signature_date
- The
type
of the mandate:core
for a core mandateb2b
for a B2B mandate
- The
sequence
of the mandate:one_off
for a one-off direct debitfirst
for the first direct debit of a mandatefinal
for the final direct debit of a mandaterecurring
for all the direct debits of a mandate occurring between the first and the final
curl --request POST \
--url https://sandbox.numeral.io/v1/payment_orders \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: Your_API_Key'
--data '
{
"id": "3dfebc2a-8022-448b-a031-2b453c84df5f",
"object": "payment_order",
"type": "sepa",
"direction": "debit",
"amount": 1000,
"currency": "EUR",
"direct_debit_mandate": {
"type": "core",
"reference": "REF#36327372323",
"signature_date": "2022-02-18",
"sequence": "recurring",
},
"status": "pending_approval"
/* fields omitted for simplicity */
}
SDD payment orders approved will be batched into a payment file and sent to the bank. The collection date will be the earliest date possible, depending on the mandate type and sequence.
Tracking a SEPA direct debit
After a SDD payment order has been approved, its status is updated as it is sent to and processed by the bank. The payment order can either be:
executed
, when it has been executed by the creditor's bankrejected
, if it has been rejected by the creditor’s bankreturned
, if it has been rejected, returned, refunded, or reversed by the debtor's bank
Status updates are notified by events that can be retrieved using the API or received through webhooks.
SEPA direct debit returns
As described previously, a SDD can be returned by the debtor's bank. This can happen if the account has been closed or does not have sufficient funds, the mandate has been blacklisted or has not been registered (in the case of a B2B SDD), or the debtor disputes the SDD.
When a SDD is returned by the debtor's bank, a return is automatically created. It is linked to the original payment order through the related_payment
attribute for end-to-end traceability and also includes a standard SEPA error code as the return_reason
. It is notified by a return.received
event.
curl --request POST \
--url https://sandbox.numeral.io/v1/returns \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: Your_API_Key'
--data '
{
"id": "b6ab2878-c5ce-4b49-99ce-54da0e26d5ec",
"object": "return",
"type": "sepa",
"related_payment": "3cc4a9d8-b2d5-11ed-afa1-0242ac120002",
"value_date": "2023-02-15",
"returned_amount": 1000,
"currency": "EUR",
"return_reason": "RR04",
"status": "received",
"reconciliation_status": "reconciled"
/* fields omitted for simplicity */
}
SDD returns will typically result in two transactions booked on the corresponding connected account:
- One
credit
transaction, automatically reconciled with the original payment order - One
debit
transaction, automatically reconciled with the return
Updated 5 months ago