Recurring order without initial payment
Overview
When a customer provides authorization to perform a series of payments with their bank details.
Recurring payments are handled with the use of the directDebitType of the mandate object which points to the type of usage for the particular order. Mark the orders as FIRST, RECURRING, and FINAL.
- Collect payment data and place the order in your shop
- Perform the backend-to-backend payment instrument request POST /payment-instruments with the directDebitType set to FIRST. This request should result in a recurring payment instrument.
- Use the already created payment instrument for executing orders, providing only the directDebitType that stands for the current usage of the mandate (FIRST/RECURRING/FINAL).
Step 1: Create Payment Instrument via Widget
Create Payment Instrument via Widget as a Bridge
MandateId
Management:
requestMandate
:true: The Payengine generates and displays automatically the mandateId in the Widget
requestMandate
:false (default):
The integrator generates the mandateId
following the + pattern, for example, Example: 1234567+1, and the rules below:
mandateId
must be unique for single payments.- Recurring payments use the same unique
mandateId
. - The
mandateId
must be a string of length in the range from 1 to 35, containing only alphanumerics. - The generated
mandateId
must be displayed in the mandate text where the customer should agree to.
Create Payment Instrument via API
MandateId Management: The integrator generates the mandateId following the + pattern, for example, 1234567+1, and the rules below:
mandateId
must be unique for single payments.- Recurring payments use the same unique mandateId
- The
mandateId
must be a string of length in the range from 1 to 35, containing only alphanumerics. - The generated
mandateId
must be displayed in the mandate text where the customer should agree to.
Create payment instrument recurring request
{ "type": "sepa", "merchantPaymentInstrumentId": "1562850642", "payment": {
Create payment instrument recurring response
{ "createdAt": 1562851103400, "modifiedAt": 1562851103400, "paymentInstrumentId": "paymentinstrument_2bil6peicb",
Step 2A: Create debit with directDebitType="FIRST" as first transaction from multiple transactions with the same payment instrument
Following transactions except the last one need directDebitType = "RECURRING".
The final transaction needs the directDebitType = "FINAL"
Step 2B: Create preauth + capture with directDebitType="FIRST" as first transaction from multiple transactions with the same payment instrument
Following transactions except the last one need directDebitType = "RECURRING".
The final transaction needs the directDebitType = "FINAL"
Reuse of payment instrument recurring request
{ "type": "sepa", "merchantPaymentInstrumentId": "1562850642", "payment": {
Reuse of payment instrument recurring response
{ "createdAt": 1562851103400, "modifiedAt": 1562851103400, "paymentInstrumentId": "paymentinstrument_2bil6peicb",
Step 3: Prenotification
Prenotification ("Pre-Notification") is any notification, (for example - an invoice, policy, a contract) of the direct debit recipient to the payer, which announces a debit via SEPA direct debit. The preliminary information must contain the due date and the exact amount and can announce several direct debits. It must be sent to the payer within due time (at least 14 calendar days before the due date, unless a different period has been agreed with the payer) before the due date, so that the payer can adjust to the account balance and provide adequate cover. The manner in which the preliminary information can be given results from the regulations of the respective debt collection agreement between the payer and the payment service provider.
NOTE Payengine is sending out the prenotifictaion email to the customer.
SEPA prenotification template
"Dies ist eine automatisch generierte E-Mail. Neue SEPA-Lastschriftvorankündigung Sehr geehrte Kundin, sehr geehrter Kunde,
Step 4: Reconciliation
For SEPA Direct Debit payments, the funds are not immediately available. A charge, created from a SEPA direct debit source, may remain in an intermediate state for several days from the time of its creation. Once the charge is confirmed, the status of the debit or capture is updated to success.
- When does the merchant get a SEPA direct debit fund?
- Default approximately 9 days (depending on the contract may vary) after the SEPA Direct debit is triggered
- How to reconcile a payment?
- Use PayEngine SEPA Direct Debit settlement file
- There is one record per transaction in the settlement file.
- Every record reference to the collective bank transfer (e.g the merchant had 10 transactions on a specific day and all have the same reference).
There is one collective record per day, which covers the whole payout amount.
- Use the PayEngine notifications.
- Subscription via the PayEngine API (API Notifications Documentation).
- Subscribtion via the PayEngine Merchant Center (Merchant Center Notifications Documentation).
The following events are sent when the charge status is changed:
Event | Description |
---|---|
debit.success | The charge succeeded and the payment is complete. |
preauth.success | The payment is requested. A capture triggers the debit from the customer account |
capture.success | The charge succeeded and the payment is complete. |
chargeback.booked | The charge has failed or the customer canceled the SEPA Direct Debit |
- What is the bank transfer purpose text on the merchant bank statement?
- The money will be transferred to the merchant bank account in a collective transfer and the follow purpose text will appear at the bank statement: - dd.MM.yyyy (from date) - dd.MM.yyyy (until date)
- What is the bank transfer purpose text on the customer bank statement?
- The field
order.statementDescription
will be used as purpose text.
- The field
- When no order.statementDescription is present the following logic will be applied:
order.merchantOrderId
is used when it's presentorder.orderId
is used whenorder.merchantOrderId
is not present
For both cases fields merchant.companyName
and merchant.shopUrl
will be added after either order.merchantOrderId
or order.orderId
separated with space.
The max length of the purpose text is 108 characters and it will be cut off if it is longer.
Payment Disruptions
Debit not Possible: The status of the order will change debit.success/capture.success to chargeback.booked.
Тhis situation may occur due to various problems with the client's account (for example, if no funds are available, the account has been blocked, etc.). If this situation occurs, the bank refunds the payment in the form of a dispute.
Customer Cancels SEPA Direct Debit: The status of the order will be changed from debit.success/capture.success to chargeback.booked. Within eight weeks of debiting the account, if the account holder is not satisfied with his purchase, the bank can refund the money, without asking questions. Between eight weeks and thirteen months after the payment has been created, the customer may dispute a payment with their bank only if the customer considers that the debit has not been authorized.
Step 5 (Оptional): REFUND
To use the refund service of Payengine, configure your bank account connection at the Concardis Merchant Center.