FAILED PAYMENTSMOLLIE

Why SEPA Direct Debit payments fail on Mollie

The SEPA reason codes behind failed Mollie direct debits, where to read them in the API, which ones Mollie retries or cancels on, and what to do for each one.

Published 6 min read

A SEPA Direct Debit on Mollie does not fail the way a card does. There is no instant decline: the bank answers later, with a short code from the SEPA rulebook such as AM04 or MD06. That code is the most useful thing you get. It tells you whether trying again can work, whether the customer has to act, and whether they have in fact asked for their money back.

This guide goes through the reason codes you will see on Mollie, where to find them in the API, how Mollie’s subscriptions react to each one, and what to do next. It sticks to Mollie’s documentation: the Get payment reference (SEPA Direct Debit details), the Recurring payments guide, the SEPA Direct Debit guide and Mollie’s help center articles Why did my SEPA direct debit payment fail? and What is a SEPA Direct Debit chargeback? (all accessed November 2026). Where we used Mollie’s official API client to confirm a field, we say so. For a broader view of retries, webhooks and asking the customer to pay again, see how to handle failed recurring payments with Mollie.

Where the reason lives

A failed SEPA Direct Debit payment has the status failed. The reason is in the payment’s details object. Mollie’s Get payment reference documents these SEPA Direct Debit fields, and Mollie’s official Node.js client carries the same descriptions:

Field What it holds
details.bankReasonCode Only when the payment failed: the official reason code. Mollie points to the European Payments Council for the full description of each code.
details.bankReason Only when the payment failed: a text description of the reason.
details.dueDate The estimated date the amount is debited from the customer’s account.
details.signatureDate The date the customer signed the mandate, when verified.
details.consumerName, consumerAccount, consumerBic The account holder, IBAN and BIC.

Mollie’s classic webhooks only send the payment ID. Your handler fetches the payment, sees failed, and reads bankReasonCode. Store the code with the payment: you will need it to decide what to do, and later to see which failures you recover.

A reversal (a customer asking their bank for their money back) is different. It shows up as a chargeback on a payment that had succeeded, with its own reason.code and reason.description, which Mollie fills only for SEPA Direct Debit chargebacks. We cover that in chargebacks on Mollie.

The codes, and what each one means for you

Mollie’s help center and recurring payments guide list the codes that matter most. “Subscription behaviour” is what the recurring payments guide says Mollie does with a subscription when a charge fails for that reason.

Code Meaning Subscription behaviour What to do
AM04 Insufficient funds (banks sometimes send MS03 for this) May be retried Give it time; send a reminder; suggest another method if it keeps failing
MS03 Reason not specified Cancelled after repeated failures Treat like insufficient funds at first; contact the customer if it repeats
AC01 Incorrect account number (invalid IBAN) Cancelled immediately Ask for new payment details
AC04 Account closed Cancelled immediately Ask for new payment details
MD07 Debtor deceased Cancelled immediately Stop collecting; handle with care
MD01 No mandate Cancelled after repeated failures Check the mandate; ask the customer to set one up again
MS02 Refusal by the debtor Cancelled after repeated failures Contact the customer: they may want to stop
MD06 Return requested by the customer Cancelled after repeated occurrences (Mollie’s guide says after 3 times) A reversal: see below

Three groups come out of this table:

  1. Money problems (AM04, sometimes MS03). The account is fine; the money was not there that day. These are the payments you can recover by waiting and reminding.
  2. Account problems (AC01, AC04, MD07). Retrying the same IBAN cannot work. Mollie cancels the subscription straight away, so you need a new payment method and a new subscription.
  3. Customer decisions (MS02, MD06, often MD01). The customer, or their bank on their behalf, refused or reclaimed the debit. Retrying without talking to them is the fastest way to a second reversal.

Two sources, two thresholds

Mollie’s documentation is not fully consistent on retries. The recurring payments guide says a failed subscription payment may be retried up to 5 times, once a day, depending on the payment method and failure reason, and that the subscription is cancelled once retries are exhausted. An older help center article describes SEPA subscriptions being cancelled after 2 failures, not counting insufficient funds. We read the developer guide as the more recent reference, but test with your own account rather than relying on either number, and watch the subscription’s status after each failure.

Why reversals deserve their own handling

MD06 is a customer asking for their money back. Mollie’s help center says the customer has up to 8 weeks to do this, and that once they request it, you cannot dispute it. Between 8 weeks and 13 months, a customer can still file an Unauthorised Direct Debit Report; the bank then checks whether the mandate was valid.

So a reversal is rarely a payment problem. Common causes are a forgotten subscription, a charge the customer did not recognise, or a customer who tried to cancel and could not find how. Each one calls for a message, not a retry.

A playbook by code

Insufficient funds (AM04)

  1. Let Mollie’s own retries run if the subscription is still active.
  2. Send one short email on the first failure: the amount, the plan, and the fact that the bank refused the debit because of the balance. Do not shame the customer.
  3. Include a link to pay now by another method. A Mollie payment with sequenceType first collects the amount and sets up a new mandate in one step.
  4. If the subscription ends up cancelled, create a new one once the customer has paid.

Closed or invalid account (AC01, AC04)

  1. Email the same day. The subscription is already cancelled, so waiting does not help.
  2. Ask the customer to pay through a new first payment. They can choose a card or another account.
  3. Create a new subscription on the new mandate, starting after the period they just paid for.

Refusal or reversal (MS02, MD06, MD01)

  1. Pause any further attempts in your own system.
  2. Ask the customer what happened, in plain words, with a clear way to cancel if that is what they want. Customers who can cancel easily have less reason to reverse a debit.
  3. Only collect again once they agree, through a new first payment.

Deceased (MD07)

Stop all collection, end access according to your terms, and route any contact to a person. No automated dunning.

Prevent the next failure

  • Store the IBAN holder and mandate date from details, so support can answer “what is this debit?” quickly.
  • Use a clear description. The subscription description appears in the payment description, so make it recognisable on a bank statement.
  • Remind before annual renewals. A large unexpected debit is the classic cause of both AM04 and MD06.
  • Make cancelling easy. A visible cancel option in your app is cheaper than a reversal.

Doing this with NoChurn

Collecting the debit, Mollie’s retries and the bank details stay with Mollie. NoChurn connects to your Mollie account, imports customers, mandates and subscriptions, and reads each payment again after a webhook, so it sees the reason code. It sends AI-written recovery emails that you review, with a link to pay again and set up a new payment method, and shows reversals read only on the customer timeline and in the churn score. Cancel flows with a one-click cancel always visible and win-back emails at day 30, 60 and 90 are included on every plan. See NoChurn + Mollie.

PROMPT

Read https://www.nochurn.sh/llms.txt,
then follow https://www.nochurn.sh/docs/quickstart/
to add NoChurn to this app. Use a test key
(nc_test_…) until I say we go live.

Stop leaking revenue.

  • Free until $300 MRR
  • No card needed
  • Live in 10 minutes
  • Never a cut of what we recover