>_ Analyst Engineering

SEPA Direct Debit for Analysts: Mandates, pacs.003, and R-Transactions

Written by Ahmed at Analyst Engineering, a Senior Technical Business Analyst with 10+ years in banking and payments delivery.

Cover for a SEPA Direct Debit guide, showing the mandate, the pacs.003 collection, and the five R-transactions that can follow it.

Key takeaways

  • A SEPA Direct Debit is pulled by the creditor under a mandate the debtor signed. The pair of the Unique Mandate Reference and the Creditor Identifier (without its business code) must identify that mandate for its whole life, so both are permanent keys, not display fields.
  • FRST has not been mandatory since the November 2016 rulebook. A first collection can be sent as RCUR, FRST is still accepted and processed as recurrent, and since 2016 every collection, first or not, can reach the debtor bank as late as D-1.
  • SDD Core gives the debtor a no-questions-asked refund for eight weeks after the debit and a refund claim for unauthorised collections for 13 months. SDD B2B removes the eight-week refund entirely, which is why the debtor bank must check every B2B collection against mandate data the debtor confirmed.
  • There are five SDD R-transactions with different timing and messages: reject before settlement (pacs.002), refusal by the debtor (handled as a reject or a return), return after settlement (pacs.004, by D+5 for Core and D+3 for B2B), refund (pacs.004, Core and unauthorised claims), and reversal by the creditor (pacs.007, within five inter-PSP business days of the due date).
  • Current as of October 2026, the SDD Core and SDD B2B rulebooks in effect are the 2025 version 1.2, published 30 September 2026, whose only change is postponing the end date for unstructured addresses. The implementation guidelines use the 2019 ISO 20022 versions: pain.008.001.08, pacs.003.001.08, pacs.002.001.10, pacs.004.001.09, pacs.007.001.09.

A SEPA Direct Debit (SDD) is a euro payment pulled by the creditor under a mandate the debtor signed, sent as pain.008 to the creditor’s bank and as pacs.003 between banks. Almost all of the analysis work sits in the mandate keys and the five R-transactions: reject, refusal, return, refund, and reversal, each with its own message, initiator, and deadline. SDD Core gives consumers an eight-week no-questions refund; SDD B2B removes it and makes the debtor bank check the mandate instead.

Direct debits invert everything an analyst learns on credit transfers. The money moves towards the party that sent the instruction. The debtor never sends anything. The bank that debits the account has, in Core, no obligation to check that a mandate exists at all, and protects its customer after the fact with a refund right that lasts eight weeks. Specify an SDD flow by analogy with SEPA Credit Transfer and you will get the happy path right and most of the exception paths wrong.

This sits in the schemes track of The ISO 20022 Reference, next to SEPA Credit Transfer. It assumes you know the pain versus pacs split and focuses on what is specific to direct debits.

Which rulebook version applies right now?

Current as of October 2026: the SDD Core rulebook in effect is the 2025 SDD Core rulebook version 1.2, and the SDD B2B rulebook in effect is the 2025 SDD B2B rulebook version 1.2. Both were published on 30 September 2026 and replaced version 1.1. Version 1.2 does one thing: it postpones the end date after which unstructured addresses are no longer permitted. The EPC had set that date to 22 November 2026, then moved it to 15 November 2026, and in September 2026 delayed it without setting a new one. No other business or operational rule changed. The address story is covered in structured addresses.

The implementation guidelines for the 2025 rulebooks are built on the 2019 ISO 20022 message versions:

LegMessagePurpose
Creditor to creditor bankpain.008.001.08Collection initiation
Creditor bank to creditorpain.002.001.10Status and rejects
Creditor to creditor bankpain.007.001.09Reversal request
Bank to bankpacs.003.001.08The inter-PSP collection
Bank to bankpacs.002.001.10Reject before settlement
Bank to bankpacs.004.001.09Return or refund after settlement
Bank to bankpacs.007.001.09Reversal

What is coming: the next regular SDD rulebooks will not take effect before the end of the third quarter of 2028, aligned with the EU Payment Services Regulation. Among the accepted changes are Name elements extended from 70 to 140 characters, a new FR01 reason code for reject, return, and refund of a possibly fraudulent collection, and usage rule changes on organisation and private identification to align with the Funds Transfer Regulation, covered in the travel rule article. Put a named owner on that release.

What is the mandate, and which fields are permanent keys?

The mandate is the debtor’s authorisation for the creditor to collect and for the debtor’s bank to debit. In SDD Core it lives with the creditor: the creditor stores it, and dematerialises its data into every collection. The debtor bank receives the mandate data inside the pacs.003 and, in Core, is not obliged to check it against anything.

Two identifiers carry the mandate through its life.

The Unique Mandate Reference (UMR), rulebook attribute AT-M001, sent in MndtRltdInf/MndtId. Up to 35 characters, and the implementation guidelines say it is case insensitive: 123AAa45678 and 123AAA45678 are the same mandate. Your duplicate checks and mandate lookups have to respect that.

The Creditor Identifier (CI), attribute AT-E005, sent in CdtrSchmeId. Its structure is fixed:

DE98ZZZ09999999999
DE        positions 1-2   ISO country code of the issuing country
98        positions 3-4   check digits, MOD 97-10 over country + national part
ZZZ       positions 5-7   Creditor Business Code ("ZZZ" when unused)
0999...   positions 8-35  national identifier

The rule that matters: the UMR combined with the CI without the business code must let anyone retrieve the mandate indefinitely. The business code is excluded from the check digit and the creditor may change it for business reasons. A system that keys mandates on the full 35-character CI breaks the first time a creditor reorganises its business lines.

Two other mandate rules generate defects:

  • 36 months of inactivity. If a creditor presents no collection under a mandate for 36 months, counted from the last collection even if it was rejected, returned, or refunded, the creditor must cancel the mandate. The rulebook does not oblige the banks to check this; it is the creditor’s obligation, so it belongs in the creditor’s requirements.
  • Pre-notification. The creditor must notify the debtor of the amount and date at least 14 calendar days before the due date unless they agreed another timeline. An amount mismatch between pre-notification and collection is a listed root cause behind MD06 refunds.

How is a mandate amendment carried?

There is no separate amendment message. The creditor accepts the change, then sends the new data in the next collection with AmdmntInd set to true and the original values under AmdmntInfDtls.

What changedElement under AmdmntInfDtls
New UMROrgnlMndtId (the old reference)
New CI or creditor nameOrgnlCdtrSchmeId
Debtor account, same bankOrgnlDbtrAcct with the old IBAN
Debtor account, different bankOrgnlDbtrAcct/Id/Othr/Id = SMNDA

SMNDA (Same Mandate with a New Debtor Account) is the case that causes production incidents. The new debtor bank has never seen the mandate, and many creditor systems still hard-code FRST for the next collection. The 2025 guidelines are explicit that with SMNDA present, the sequence type may be FRST, RCUR, FNAL, or OOFF, with no restriction. Your creditor-side system must emit the amendment block exactly once, on the next collection, and stop emitting it afterwards. Sending it on every collection, or never, are both defects I have seen survive into production.

Is FRST still required?

No, and a surprising number of specifications still say it is.

The rulebook change history is explicit: from the effective date of version 9.0 in November 2016, every collection (first, recurrent, or one-off) can be presented up to D-1, and the use of FRST for the first collection of a recurrent series is no longer mandatory. A first collection can be identified the same way as subsequent ones, with RCUR. The current rulebook keeps FRST as an optional value and says a collection marked first is processed as recurrent.

The implementation guidelines still make PmtTpInf/SeqTp mandatory, with four codes:

CodeMeaning
OOFFOne-off collection under a mandate used once
FRSTFirst of a recurrent series (optional)
RCURRecurrent, not the last
FNALLast of the series; the mandate may be cancelled with it

What the debtor bank may still do is reject a sequence that contradicts the mandate history. The EPC reason code guidance lists “recurrent after a one-off” and “one-off after a recurrent” under AG02. So the requirement is not “send FRST first”, it is “keep the sequence consistent with the mandate type, and treat a used OOFF mandate as spent”.

What are the presentation timelines?

One rule for every sequence type since 2016, and the same in Core and B2B.

D-14 calendar days   earliest the debtor bank may receive the collection
D-14 calendar days   latest pre-notification to the debtor (unless agreed)
D-1 inter-PSP day    latest the debtor bank may receive the collection
D                    due date = settlement date = debit date (general rule)
D+5 inter-PSP days   latest settlement of a Core return
D+3 inter-PSP days   latest settlement of a B2B return

Inter-PSP business days follow the TARGET calendar. If D is not a TARGET day, settlement moves to the next one. At inter-PSP level a due date may never be changed; a late collection must get a new due date from the creditor or its bank before it is sent. Intraday cut-off times are not in the scheme at all. They are agreed between creditor, bank, and clearing and settlement mechanism (CSM), which is why “the scheme says D-1” is never the creditor’s real deadline.

What are the five R-transactions?

R-transactions are the exception flows, so called because their names start with R. The rulebook requires that R-transactions presented within the scheme rules are processed, and that rejects, returns, and refunds clear through the same CSM as the original collection unless the participants agreed otherwise.

R-transactionWho initiatesWhenInter-PSP messageWindow
RejectCreditor bank, CSM, or debtor bankBefore settlementpacs.002Before settlement
RefusalDebtor, to its bankBefore settlement, any reasonBecomes a reject (pacs.002) or, after settlement, a returnCore: before or after; B2B: by preference on D
ReturnDebtor bankAfter settlementpacs.004Core D+5, B2B D+3 inter-PSP days
RefundDebtor, via its bankAfter settlementpacs.004Core: 8 weeks authorised, 13 months unauthorised
ReversalCreditor or creditor bankAfter settlementpacs.007 (pain.007 from the creditor)Within 5 inter-PSP days after the due date

Three rules worth writing into the specification verbatim:

The refund is unconditional in Core for eight weeks. The debtor bank grants it on a no-questions-asked basis and recovers it from the creditor bank, plus a refund compensation for interest. The creditor cannot contest it inside the scheme. Your creditor-side design needs a process for receiving refunds weeks after the creditor thought the money was safe.

The 13-month claim is not a refund on request. For an unauthorised collection, the debtor claims within 13 months of the debit date, the debtor bank can request a copy of the mandate through the creditor bank, and the claim is accepted or rejected. MD01 is the reason code when no valid mandate exists.

The reversal is optional to offer and mandatory to accept. The creditor bank does not have to offer reversals to its creditors, but every debtor bank must handle reversals it receives and does not check them. A reversal returns the full amount of an erroneous collection, and the rulebook bars processing it after five inter-PSP business days following the due date.

Two things that look like R-transactions are not in the scheme. A revocation (creditor recalls a collection from its own bank before an agreed date) and a request for cancellation (creditor bank recalls from the CSM before settlement) are both bilateral. The EPC guidelines define no message for them; if your CSM supports a cancellation, you follow its specification, and you document which one you use. The general ISO 20022 mechanics of returns, reversals, and recalls are in returns, reversals, and recalls.

Which reason codes should the specification cover?

The EPC publishes guidance on SDD R-transaction reason codes (EPC173-14, version 8.1, published 30 September 2026) listing each code, the R-transactions it may appear on, the use cases, and the suggested creditor action. The ones that drive most volume and most customer conversations:

CodeMeaningR-transaction types
AC01Incorrect account identifierReject, return
AC04Account closedReject, return
AC13Debtor account is a consumer account (B2B only)Reject, return
AG02Invalid operation code or sequence typeReject, return
AM04Insufficient fundsReject, return
AM05Duplicate collectionReject, return, reversal
BE05Creditor identifier incorrectReject, return
MD01No valid mandate, or unauthorised transactionReject, return, refund
MD02Mandate data missing or incorrectReject
MD06Refund request by end customer (Core)Refund
MD07Debtor deceasedReject, return
MS02Refusal by the debtorReject, return, reversal, refusal
MS03Reason not specifiedReject, return, reversal
RR01 to RR04Regulatory reasons (missing account, name, address)Reject, return
SL01Specific service offered by the debtor bank (blocking, limits)Reject, return

MS03 deserves a note. In some countries data protection law forbids codes such as AC04, AM04, or MD07, and MS03 is the permitted alternative. The guidance asks banks to avoid general codes when a more precise one is allowed. For the creditor this means MS03 is a real, recurring code with no actionable cause, and the customer journey for it must exist. Mapping every code to a creditor action and a debtor message is the method in reason code mapping, and the full external code set is in ISO 20022 reason codes.

The domain grounding behind schemes like this one is in Break Into Banking, and the R-transaction matrix below drops straight into the specification templates in the BA Deliverables Template Pack.

What changes in SDD B2B?

The messages and datasets are identical except for the scheme code (LclInstrm/Cd = B2B instead of CORE) and the removal of most refund references. The behaviour is very different, because the refund right is gone.

  • Non-consumers only. The debtor bank must ensure the debtor is not a consumer before debiting. A B2B collection on a consumer account is rejected or returned with AC13.
  • The debtor bank checks the mandate. It must obtain the debtor’s confirmation of the B2B mandate data received with the first collection before debiting, store it, and check each later collection against it. A collection for a mandate the debtor has not confirmed is rejected with MD01.
  • No refund for authorised collections. The debtor can still claim for an unauthorised collection within 13 months, but under B2B that is between the debtor and its bank: the debtor bank cannot recover it from the creditor bank under the scheme.
  • Shorter return window. Returns settle at the latest three inter-PSP business days after settlement, and should ideally happen by D.
  • Mandate cancellation must reach the debtor bank. The debtor has to tell its bank when it cancels a mandate so the stored instructions are updated.

For a creditor this is a trade: more certainty after D+3, more onboarding friction before the first collection. For a debtor bank it is a mandate store, a confirmation workflow, and a per-collection check that Core never required.

How do you model the collection lifecycle?

As a state machine, with the clock as an input. A Core collection on the creditor side can move through:

CREATED -> SUBMITTED -> ACCEPTED_BY_BANK -> SETTLED (D)
SUBMITTED -> REJECTED                       (pain.002 / pacs.002, before D)
SETTLED -> RETURNED                         (pacs.004, until D+5)
SETTLED -> REVERSED                         (pacs.007, until D+5)
SETTLED -> REFUNDED                         (pacs.004, until 8 weeks)
SETTLED -> REFUNDED_UNAUTHORISED            (pacs.004, until 13 months)

Two properties to enforce. First, the money can come back long after the collection looked final, so “settled” is not terminal for eight weeks, and for unauthorised claims not for 13 months. Second, every R-transaction must match its original through OrgnlEndToEndId and OrgnlTxId, or it becomes unmatched cash and a reconciliation break. The free duplicate refund investigation lab practises exactly that matching under pressure.

What does the SDD test matrix look like?

Derive it from the rulebook and the implementation guidelines, not from the base schema. A starting set, organised so each row is one assertion:

#ScenarioExpected result
1First collection sent as RCUR, CoreAccepted, processed as recurrent
2RCUR on a mandate already used as OOFFRejected, AG02
3Collection received at D-1 inter-PSP dayAccepted, settles on D
4Collection after the D-1 cut-offNot sent with the original D; new due date assigned before submission
5UMR differs only by letter case from a known mandateTreated as the same mandate
6Amendment with SMNDA, then sequence RCURAccepted; amendment block sent once only
7Insufficient funds on DReturn AM04 settled by D+5 (Core)
8Return arriving at D+6Not processed; debtor bank informed
9Debtor refund request at 7 weeks 6 daysRefund MD06, no reason requested
10Refund request at 8 weeks + 1 day, valid mandate existsNo unconditional refund; only an unauthorised claim, which is rejected
11Unauthorised claim at month 12, no mandateRefund MD01 after mandate copy request fails
12Creditor reversal at due date + 3 inter-PSP daysReversal pacs.007 processed, full amount
13Creditor reversal at due date + 6 inter-PSP daysNot processed
14B2B collection on a consumer accountReject or return AC13
15B2B collection, mandate not confirmed by debtorReject MD01
16B2B return at D+4Not processed
17Return received with MS03Mapped to a generic creditor action and debtor message
18Mandate with no collection for 36 monthsCreditor system cancels it; new collection blocked

Rows 8, 13, and 16 are the ones that get skipped, because they test something that must not happen. Write them anyway, following negative test design: an R-transaction outside its window is a real event in production, and a creditor system that books it is a ledger defect. For timing rows, build the date logic into a decision table first; the table is what reviewers can check and what testers can derive from.

The takeaway

SEPA Direct Debit is a creditor-pulled scheme whose analysis lives in two places: the mandate keys and the exception flows. Treat the UMR and the Creditor Identifier (minus its business code) as permanent keys, carry amendments exactly once, and stop requiring FRST, which the rulebook made optional in 2016. Then specify all five R-transactions as dated state transitions: rejects before D, returns by D+5 in Core and D+3 in B2B, reversals within five inter-PSP days of the due date, refunds for eight weeks, and unauthorised claims for 13 months.

Core and B2B share messages and differ in who carries the risk. Core protects the debtor after the fact with a refund; B2B protects the debtor up front by making its bank check the mandate. Specify the one you are actually building, against the 2025 version 1.2 rulebooks, and keep the 2028 changes on someone’s calendar.

The rest of the scheme layer is on The ISO 20022 Reference.

Ahmed is a Senior Technical Business Analyst with 10+ years in banking and payments. He builds practical guides and tools for analysts at The Tech BA Toolkit.

Tags: SEPA, Direct Debit, ISO 20022, Payments, Functional Analysis, Testing

About the author

Analyst Engineering is written by Ahmed, a Senior Technical Business Analyst with 10+ years of banking and payments delivery experience: ISO 20022 and SWIFT messaging, payments API integration, Kafka event validation, and production support. Every article comes from real delivery work, and each one is reviewed and updated as tools and standards change.

Go deeper on this

Not ready to buy? The free downloads are a no-cost place to start, and every article here stays free.

Free account

Practice on the Labs, keep your progress

A free account, no password: an email link signs you in. It saves your steps and self-assessments on the Labs, shows your missions on a dashboard, unlocks the solutions, and, if you tick the box, sends you new missions and articles when they ship.

Your email is used to sign you in. Nothing else, unless you ask. Privacy.