SEPA Direct Debit (SDD)
This page contains all the relevant information about SEPA Direct Debit (SDD) transfers, including key concepts and the necessary endpoints you need to integrate in your solution.
info
See the overview page to learn more about SEPA and the different types of SEPA payment schemes.
What is SEPA Direct Debit?
SEPA Direct Debit (SDD) is a pull-based payment scheme that allows a creditor to debit a debtor's bank account. Similarly to other SEPA transfers, an SDD requires the IBAN (and occasionally the BIC) of both the sender and the recipient's bank accounts. However, it differs from other SEPA transfers in that the roles are reversed: the recipient of the funds is the one who must request the money transfer from the sender.
SEPA Direct Debit is only available in Euros and can be used for both one-off transactions and recurring payments. It is often used for recurrent payments so that customers can avoid missing payments and being charged additional fees.
The debtor must sign a valid SDD mandate to authorize the creditor to withdraw the money from the debtor's account. Additionally, there are other rules governing SDDs, such as pre-notifications, refunds, returns, etc.
How does a SEPA Direct Debit work?
- The creditor and the debtor must enter into a collection agreement.
-
The creditor must create an SDD mandate following the mandate rules, which the debtor must sign to authorize the creditor to withdraw the SDD amount from their account.
- For B2B SDDs, the mandate must be shared with the debtor's bank.
- The creditor must send a notification to the debtor at least one business day before the debit date.
- On the debit date, the creditor initiates the SDD collection from the debtor's account in the agreed upon amount.
- Before executing an SDD, Solaris checks a variety of the transaction's attributes, such as transaction reference, mandate attributes, SDD limit, direct debit profile, and the status and type of the account.
- Solaris executes the transaction, withdrawing the money from the debtor
and crediting it to the creditor's account. This creates a booking on the
sender's account with the booking type
SEPA_DIRECT_DEBIT
(for theB2B
scheme) orDIRECT_DEBIT
(for theCore
scheme).
SDD mandate
An SDD mandate is a mandatory contract the customer (the debtor) must sign to authorize the creditor to initiate SDD collections from their account. An SDD mandate can be "one-off", valid for only a single collection, or "recurrent", which can be used until the debtor revokes the authorization.
The SDD mandate must contain the legal text, including the following mandatory information:
- A unique mandate reference number
- The name of the debtor
- The debtor's address
- The debtor IBAN
- The BIC of the debtor's bank account (optional)
- The creditor company name
- The creditor's identifier
- The creditor's address
- The type of payment
- Signature place and time
- Signature(s) of both parties
The mandate can be in a physical paper form or an electronic version, and the debtor must sign it with a qualified signature. After a mandate is created and signed, the creditor must send it to the debtor and must continue to store the mandate throughout the validity of the agreement. If the mandate expires or gets revoked by the customer, the creditor must continue to keep the mandate according to the national legal requirements for a minimum of the time a Direct Debit collection under this SDD mandate can be disputed.
attention
The creditor must include the mandate information in each SDD collection debited from the debtor's account.
SDD payment schemes
There are two payment schemes under SDD:
- SEPA Direct Debit Core scheme: available to both businesses and retail customers.
- SEPA Direct Debit Business to Business (B2B) scheme: available only to businesses.
The two schemes work almost in the same way, but there are several key differences:
1. Refunds
In the SDD Core scheme, customers can request refunds for authorized collections for up to 8 weeks after the date the amount was debited from their account (for unauthorized collections, up to 13 weeks). However, due to the typically high volume of transfers in the SDD B2B scheme, customers are not eligible to request refunds.
2. Transaction authorization
In the SDD B2B scheme, the bank typically performs additional verification steps for each transaction to check and validate the mandate before collecting any money.
3. Transaction pre-notification and processing
Core SDDs are usually processed within 2 business days, whereas B2B SDDs can take up to 3 business days to process.
Prerequisites
You must implement the following features before you can use SEPA Direct Debits in your solution:
API documentation
To implement SEPA Direct Debit transfers, integrate the following endpoints in your solution. The following links will take you to the API reference for SEPA Direct Debit transfers where you'll find information about the different API calls and its related properties and examples.
Click the links below to view the API references for SEPA Direct Debits:
- SEPA Direct Debit (endpoints for all customer types)
- SEPA Direct Debit Returns
(Legacy) How to enable SDD for your customers
attention
This section describes a legacy product that Solaris no longer offers.
This section includes the required steps for integrating SDD for your customers. Collecting SDDs at Solaris is only available to the following customer types:
- Businesses
- Freelancers
- Sole proprietors
note
SDDs are not enabled by default for every account. You must sign up for this service and fulfill the regulatory requirements to activate it.
Step 1: Collect the customer's consent to the SDD terms and conditions
note
Please note that the regulatory requirements for SDDs could be different depending on your case. Solaris will provide you the required documents to which you must collect your customers' consent.
Since SDD is an add-on service, your customers must accept the SDD terms and conditions before they can use this feature. You must collect the customer's consent as a checkbox to the following documents:
-
Terms and Conditions for Direct Debit Collection:
-
Terms and Conditions for Tolerated Overdrafts:
Step 2: Create a SEPA direct debit profile for the customer
Customers must have a SEPA direct debit profile with Solaris in order to initiate and receive SDD collections.
What is a direct debit profile?
A SEPA direct debit profile is a resource that includes the customer's financial information, based on which Solaris grants the SDD collection limit. A customer can have multiple direct debit profiles, but only one can be active at a time.
Before you can create a direct debit profile for the customer, you must upload the required document(s) using the documents endpoints described below.
The required document is usually a credit bureau report issued by a recognized credit agency, which includes information about the financial situation of the customer. The API has separate endpoints for freelancers/sole proprietors and business customers.
POST Upload the required document(s)
Use the following endpoints to upload the credit bureau report prior to creating
a direct debit profile. You must upload the file and specify the document_type
in the request body. Use the document type OTHER
.
Request URL (For businesses)
POST /v1/businesses/{business_id}/documents
Request URL (For freelancers and sole proprietors)
POST //v1/persons/{person_id}/documents
Response example
The API returns a document resource with a unique id
, which has been linked to
the related business or person specified in the request URL.
{
"id": "69ec2a9d8dbaf5ea1b13124098a34ea3cdoc",
"name": "credit_report.pdf",
"content_type": "pdf",
"document_type": "OTHER",
"size": 10187,
"customer_accessible": false,
"created_at": "2022-05-20T12:46:09Z",
"deleted_at": "null"
}
POST Create a direct debit profile
To create a direct debit profile for your customer, you must collect the mandatory properties and pass them in the request body of the following endpoints. The API has separate endpoints for freelancers/sole proprietors and business customers.
Mandatory attributes
You must include the following attributes in the request body:
credit_bureau_pd
: The probability of default (PD) rating assigned by the credit bureau. The value must be in decimals.date_of_report
: Date when the credit bureau report was generated.credit_bureau_name
: The name of the credit bureau that generated the report. Possible values areSCHUFA
andCREDITFORM
.founding_date
: (Only for businesses) Date when the company was founded.terms_and_conditions_signed
: The timestamp when the customer signed the SEPA Direct Debit terms and conditions.
Request URL (For businesses)
POST /v1/businesses/{business_id}/direct_debit_profile
Click here to view the full API reference.
Request URL (For freelancers and sole proprietors)
POST /v1/persons/{person_id}/direct_debit_profile
Click here to view the full API reference.
Response example
The API creates a resource with a unique id
and includes the status
of the
profile, the granted collection limit, and the maximum limit allowed to be
collected in a single SDD for this profile.
{
"id": "3cab044c-edf8-4443-841d-489547177469",
"status": "ACCEPTED",
"status_reasons": "string",
"collection_limit": {
"value": 5000,
"unit": "cents",
"currency": "EUR"
},
"single_sdd_limit": {
"value": 5000,
"unit": "cents",
"currency": "EUR"
}
}
Step 3: Create a SEPA direct debit transaction
After creating a direct debit profile for the customer, you can use the following endpoints whenever the customer initiates an SDD collection. The API has separate endpoints for freelancers/sole proprietors and business customers.
You must include the transaction details and the mandate details in the request body of the following endpoints.
info
For more information about the SDD mandate and its related properties, see the previous section.
Request URL (For businesses)
POST /v1/businesses/{business_id}/accounts/{account_id}/sepa_direct_debit
Click here to view the full API reference.
Request URL (For freelancers and sole proprietors)
POST /v1/persons/{person_id}/accounts/{account_id}/sepa_direct_debit
Click here to view the full API reference.
Response example
The API returns a resource with a unique id
for the SDD transaction and
includes the status
of the transaction.
{
"id": "26d9b98485e9450799eb6a062aa0b785dtx",
"status": "accepted",
"reference": "Your Unique Reference",
"amount": {
"value": 100,
"unit": "cents",
"currency": "EUR"
},
"description": "Fee name",
"collection_date": "2021-09-18",
"mandate": {
"reference": "1",
"creditor_identifier": "DEXXXX",
"scheme": "CORE",
"sequence_type": "ONE_OFF",
"signature_date": "2016-02-02",
"debtor_name": "Hans Mustermann",
"debtor_iban": "DE151101010143817XXXX",
"debtor_bic": "SOBKDEB2XXX"
},
"end_to_end_id": "ABC123"
}
Return notifications
Solaris will inform you about invalid SDD collections from your customers' accounts using return notifications. All of the following acceptance criteria in order for an SDD to be considered valid:
- The customer's account exists and is not closed,
- SDD is enabled for the customer's account,
- The customer's account is not blocked, and
- The customer's account has enough funds to cover the SDD.
If the account does not meet the above criteria, then Solaris will generate a return notification. It will include a return code (according to EPC guidelines) that explains why the SDD was rejected. Here are the most common return codes:
AC04
: The debtor's account is closed.AC06
: The debtor's account is blocked.MD01
: The mandate is invalid for the collection.MS03
: Other reason (e.g., insufficient funds).
If an SDD fails for an account that is not blocked or closed, then the customer's account balance may be affected. For example, for an SDD of 15,00 EUR, the customer may see the attempt (-15,00) and then the failure (+15,00) in their account statement.
note
- Always inform customers of SDD returns via push notification and not in the list of bookings in your frontend.
- Please note that returns initiated by the customer (using their right of dispute within 8 weeks of collection date) do not produce return notifications. Only cases in which Solaris rejects the SDD based on the aforementioned criteria result in return notifications.
SEPA_DIRECT_DEBIT_RETURN webhook
Subscribe to the SEPA_DIRECT_DEBIT_RETURN webhook to receive notifications whenever Solaris rejects an SDD from one of your customer's accounts that does not meet the acceptance criteria.
API endpoints
Click here to view the full API reference for the SEPA Direct Debit return endpoints.
SDD refunds
Customer can request SDD refunds only in the context of CORE SDD. Please note that SDD refunds will be rejected in the following cases:
- The account is blocked for any reason
- The direct debit was already returned
- It's not a Core SDD (e.g., B2B cannot be returned)
- The amount is positive
-
valuta_date
is older than 56 days- Older SDDs can only be refunded by contacting the customer support up to 13 months from the valuta date.
Call the following endpoint to issue SDD refunds to your customers.
Request URL
POST /v1/persons/{person_id}/accounts/{account_id}/sepa_direct_debit_returns