PrestaShop Accounting & Invoicing

SEPA Direct Debit with Online Mandates for PrestaShop 8 & 9

Customers sign their SEPA mandate at checkout, you collect into your own bank.

Selling B2B with recurring payments always raises the same question: how do you debit a business customer without a payment provider that takes a fee on every instalment and holds your funds for days? SEPA direct debit is built for this, but it requires a signed mandate, a bank file in the right format, pre-notifications and reject tracking. This module handles all of it inside PrestaShop. Customers sign their mandate online during checkout, with a one-time code sent by email and time-stamped evidence. Every order and every subscription instalment becomes a pre-notified collection. You generate the pain.008 file in one click, upload it to your bank, and the pain.002 or camt.054 return files update payments and rejects.

At a glance
  • SEPA B2B or Core mandate signed online in the checkout, with an email code and SHA-256 evidence
  • pain.008.001.02 or .08 bank file generated in one click, compliant with the ISO 20022 schemas
  • Recurring schedules with a fixed amount or a repeated order, with automatic pre-notifications
  • Rejects imported from pain.002, camt.054 or camt.053: retry, revocation, order updated
  • No commission: funds go straight to your bank account
PrestaShop 8 & 9 SEPA B2B and Core pain.008 ISO 20022 No commission
  • 30-day refund
  • 12 months updates
  • 24h support
www.datafirefly.com/en/
SEPA Direct Debit with Online Mandates for PrestaShop 8 & 9
v1.1.0 · updated 2026-09-24
What it does

The short version.

01

Mandate signed without leaving checkout

In the payment block, customers complete their details, prefilled from the invoice address, and type their IBAN, checked as they type. They accept the official mandate text and receive a 6-digit code by email. The mandate is signed as soon as the code is entered and the order can be confirmed. On the next order, they simply pick their saved account.

02

Signature evidence kept

Each mandate gets a unique mandate reference (UMR). At signature, the module freezes a snapshot: mandate text, details, masked IBAN and its fingerprint, date, IP address, browser and signature method. The SHA-256 fingerprint of this snapshot is stored and printed on the PDF sent to the customer. The IBAN is encrypted with AES-256-GCM in the database.

03

The file for your bank, ready to upload

Due collections are grouped by scheme, FRST or RCUR sequence and date in a pain.008.001.02 or pain.008.001.08 file. Dates are shifted to the TARGET2 calendar and to your bank's submission deadline. Optionally, the daily task generates the file and emails it to you as an attachment.

04

Subscriptions without Stripe

A schedule debits a fixed amount every week, month, quarter, half-year or year, or places a reference order again at current prices before debiting it. Customers receive a summary of the schedule, then a pre-notification before each debit. A schedule created on the 31st stays on the 31st whenever the month allows it.

05

Rejects handled without spreadsheets

Import your bank's pain.002 or camt.054: each rejected collection is marked with its R-code, the order changes status and both the customer and you are notified. Insufficient funds trigger a retry, with a reject fee if your terms of sale provide for it. A closed account or a mandate unknown to the bank revokes the mandate.

06

A dashboard to steer it

Amount to send to the bank, amount in progress, collected this month, 90-day reject rate, monthly recurring revenue, 6-week forecast, latest rejects and mandates awaiting signature to remind: your direct debit activity on one page.

The long version

Everything you'd want to know before you install.

A detailed look at how SEPA Direct Debit with Online Mandates for PrestaShop 8 & 9 works, why we built it the way we did, and the thinking behind the features above.

§ 01

SEPA direct debit or a Stripe subscription

Payment providers offer SEPA direct debit, but every instalment is charged, funds pass through their account before reaching you and your mandates stay with them. With this module, the mandate is signed on your shop, the file leaves from your bank and the money lands in your account. You need a SEPA creditor identifier and a direct debit agreement, both provided by your bank. After that, the cost is limited to your bank's fees on each file.

§ 02

B2B or Core mandate: what the module applies

The B2B scheme is for business customers: the debtor cannot request a refund after the debit and must register the mandate with their bank before the first collection. The module reminds the customer at signature, in the confirmation email and at checkout. The Core scheme suits any customer, with an 8-week refund right. The mandate text uses the official wording, shown in the customer's language with your creditor name and identifier.

§ 03

From cart to bank statement

The customer orders and signs a mandate, or picks one already signed. The order moves to “Awaiting SEPA direct debit” and a collection is created on the date set by your pre-notification period, announced to the customer by email and on the invoice. You generate the file and upload it to your bank. After the period you set without reject, or when you import your bank's camt.054, the collection is marked paid and the order moves to payment accepted.

§ 04

Rejects, from R-code to retry

A reject arrives a few days after the due date, sometimes later for a refund under the Core scheme. When the return file is imported, the module finds the collection by its end-to-end reference, records the R-code and its label, moves the order to “SEPA direct debit rejected” and alerts you. Depending on the code, it schedules a pre-notified retry or revokes the mandate. Beyond the number of rejects you set, the payment method is no longer offered to the customer.

§ 05

Bank changes, reminders and follow-up

A customer who changes bank signs a new mandate from their account: schedules and collections not yet sent move to the new account with fresh pre-notifications, and the old mandate is closed. From the back office, you send a signature request to a customer, remind pending mandates from the dashboard and follow outstanding amounts, rejects and this month's recurring revenue.