Overview SEPA Reason Codes

Published on

21/08/2026

Updated on

21/08/2026

Reading time

6 min

Reason Codes

Synonyms: Return code, reason for return, return code, R-transaction code

Short definition

Reason codes are standardized four-digit keys used by payment service providers in SEPA transactions to explain why a payment was not executed as instructed, or why it was returned or recalled. They serve as the machine-readable counterpart to the plain-text return reason and form the basis for all automated return processing.

Reason codes do not originate from the SEPA rulebooks themselves but from the ISO 20022 External Code Sets. The European Payments Council (EPC) selects a permissible subset for each payment scheme and specifies which codes may be used for specific “R-transactions” and by which parties. National clearing rules (such as the Bundesbank’s procedural rules for the SEPA-Clearer(opens in new tab) in Germany) may supplement these with additional checks and codes.

A key practical point: a reason code indicates what happened, not who was at fault or whether resubmission is advisable. Interpreting this information is always the task of the processing system.

Where reason codes occur

MessageDirectionUse
pain.002Bank → CustomerStatus report on submitted file; reject before execution
pacs.002InterbankingRejection of a payment prior to clearing; in the case of SCT Inst, additionally a negative confirmation.
pacs.004InterbankingReturn, refund, and reversal after clearing/settlement
camt.056InterbankingRequest for Cancellation / Recall – Reason for Callback
camt.029InterbankingResponse to the recall – positive or negative, with justification
camt.054Bank → CustomerDebit/credit advice for the returned item

One and the same code can be valid in multiple messages, but not in all of them. For instance, MD06 is permitted only for refunds, while FF01 is permitted only for rejects.

Classification of R-transactions

R-Trans-actionTimeTriggererProceeding
Rejectbefore settlementeach participating bank or CSMSCT, SCT Inst, SDD
Returnafter settlement, typically up to D+5Beneficiary’s bank or paying agentSCT, SCT Inst, SDD
Refundup to 8 weeks (authorized) or 13 months (unauthorized)Payer / Party liable for paymentonly SDD Core
Reversalup to D+5 after the due datePayee (Creditor)only SDD
Recall / RFROafter settlementPayer’s bank or payerSCT, SCT Inst
Inquiryany timePayer’s bankSCT (Claim of Non-Receipt / Value Date Correction)

The most important codes

SEPA Direct Debit (SDD Core and B2B)

CodeISO-DescriptionPractical significancePermitted in
AC01Incorrect Account NumberIBAN incorrect in format or contentReject, Return
AC04Closed Account NumberAccount closed – follow-up pointlessReject, Return
AC06Blocked AccountAccount blocked; potential direct debit blockReject, Return
AC13Invalid Debtor Account TypeB2B direct debit to a consumer accountReject, Return
AG01Transaction ForbiddenDirect debit not permitted for this accountReject, Return
AG02Invalid Bank Operation CodeIncorrect procedure code, e.g. B2B instead of COREReject, Return
AM04Insufficient FundsMissing coverage – the classic follow-up caseReject, Return
AM05DuplicationDouble booking detectedReject, Return, Reversal
BE05Unrecognised Initiating PartyCreditor Identifier unknown to the paying agent or invalidReject, Return
MD01No MandateNo valid mandate – objection within 13 monthsReject, Return, Refund
MD02Missing Mandatory Mandate InformationMandatory information in the mandate is incompleteReject
MD06Refund Request By End CustomerRequest for reimbursement within the 8-week periodRefund
MD07End Customer DeceasedAccount holder deceasedReject, Return
MS02Not Specified Reason Customer GeneratedCustomer objects without stating reasonsReject, Return, Reversal, Refusal
MS03Not Specified Reason Agent GeneratedThe bank gives no reasonReject, Return, Reversal
RC01Bank Identifier IncorrectBIC invalid or unreachableReject, Return
RR01RR04Missing information / Regulatory ReasonRegulatory reasons, including embargoesReject, Return
SL01Specific Service Offered By Debtor AgentThe payment agency’s blocklist/whitelist service is taking effectReject, Return
FF01Invalid File FormatFile or format errorReject

SEPA Credit Transfer (SCT)

CodeISO-DescriptionPractical significancePermitted in
AC01Incorrect Account NumberBeneficiary’s IBAN incorrectReject, Return
AC04Closed Account NumberRecipient account closedReturn, negative Recall-Answer
AC06Blocked AccountRecipient account blockedReturn
AG01Transaction ForbiddenCredit to this account not permittedReturn
AG02Invalid Bank Operation CodeMessage/procedure invalidReject, Return
AM05DuplicationDouble bookingReject, Return
BE04Missing Creditor AddressRecipient address missing – becomes more relevant from November 2026 due to structured addressesReturn
CNOR / DNORCreditor / Debtor Bank Is Not RegisteredInstitution is not a scheme participant or is unreachableReject, Return
ED05Settlement FailedSettlement in CSM failedReject
FF01Invalid File FormatFormat errorReject
MD07End Customer DeceasedRecipient deceasedReturn
MS02 / MS03Not Specified ReasonNo reason given – customer or bankReject, Return
RC01Bank Identifier IncorrectIncorrect BICReject, Return
RR01RR04Missing information / Regulatory ReasonRegulatory reasonsReject, Return
TM01Cut Off TimeSubmission deadline passedReject

A separate set of codes applies to the SCT Inquiry (Claim of Non-Receipt, Value Date Correction): ACNR, ACVA, MODI as positive, ARJT, CVAA, RJNR, RJVA, RNPR, NOOR as negative resoponses.

SEPA Instant Credit Transfer (SCT Inst) – additional codes

In principle, the same set of codes applies to SCT Inst as to SCT, supplemented by codes for time-critical processing. These form the core of any instant payment error analysis:

CodeISO-DescriptionPractical significance
AB05Timeout Creditor AgentBeneficiary’s bank is not responding in time
AB06Timeout Instructed AgentIntermediary institution is not responding in time
AB07Offline AgentIntermediary institution is not reachable
AB08Offline Creditor AgentBeneficiary’s bank is not reachable
AB09Error Creditor AgentTechnical error at the beneficiary’s bank
AB10Error Instructed AgentTechnical error at the intermediary institution
AG09Payment Not ReceivedPayment not received by the receiving institution
AG10 / AG11Agent Suspended / Creditor Agent SuspendedParticipant suspended from the scheme
AM23Amount Exceeds Settlement LimitInstitution’s clearing limit exceeded
TM01Invalid Cut Off TimeTime window violated

The AB-series represents the key difference compared to the classic SCT. It is derived from the procedure’s timing model and must be evaluated separately during monitoring: clusters indicate accessibility issues at a counterparty institution rather than data errors.

Note: With the elimination of the scheme-wide maximum amount,  AM23 has become significantly more relevant in practice as an institution-specific limit.

Recall, Request for Recall by the Originator and Return codes

Recall by the payer’s bank (camt.056) – permitted reasons:

CodeMeaning
DUPLDuplicate Payment
TECHTechnical Problem at the institution
FRADFraudulent Origin

Request for Recall by the Originator (RFRO) – issued by the customer:

CodeMeaning
CUSTRequested by Customer
AM09Wrong Amount
AC03Invalid Creditor Account Number – wrong recipient IBAN

Reply to Recall/RFRO (camt.029):

CodeMeaning
FOCRFollowing Cancellation Request – positive response, repayment will be made
ARDTThe transaction has already been returned
AC04Recipient’s account closed
AM04Insufficient Funds
NOASNo Answer From Customer
NOORNo Original Transaction Received
CUSTDeclined by customer
LEGLLegal Decision

FOCR is the only positive response code and triggers the actual repayment. All others are rejections and do not initiate a flow of funds—a distinction frequently overlooked in analyses of returned payments.

Differentiation: Verification of Payee

VoP results are not reason codes, although in practice they are frequently conflated with them. They arise prior to payment initiation—not afterwards—and are not part of R-transactions.

The VoP scheme yields four possible results for the combination of account number and name:

  • Match – complete accordance
  • Close Match – approximate accordance; the correct name is displayed to the payer
  • No Match – no accordance
  • Verification check not possible – Check cannot be performed, e.g. because the account is not held by the responding PSP or the service is unavailable

The “Close Match” result does not apply to the account number + identification code combination. The technical reason codes underlying the “not possible” status are specified in the Inter-PSP API Specifications rather than the rulebook.

Practical implication: A negative VoP response does not prevent the payment; instead, it generates a warning that the payer can override. A reason code, on the other hand, documents a payment that has already failed or been reversed.

Practical notes

MS02 and MS03 are not error codes; they simply indicate that no reason was provided. A high volume of these codes among returned items points to a quality issue on the counterparty’s side and precludes automated follow-up decisions.

Clearly distinguish between AC01 and AC04. AC01 may indicate a data entry error and justifies data correction, whereas AC04 signifies that the account definitively does not exist. Resubmission logic that treats both codes the same way generates avoidable subsequent returns and fees.

AM04 is the only classic case for a retry. Resubmitting items with any other code is almost always economically disadvantageous.

MD01 and MD06 differ in terms of the timeframe, not the outcome. MD06 represents an authorized dispute raised within eight weeks, while MD01 represents a dispute due to a missing mandate raised within 13 months—entailing a significantly heavier burden of proof for the payee.

Code lists have version numbers. ISO 20022 External Code Sets are updated regularly; EPC guidance and Bundesbank procedural rules align with the schemes’ annual release schedules. A code list stored in a system without versioning and a maintenance process will inevitably become outdated.

Take national extensions into account. The Bundesbank’s SEPA-Clearer uses additional validation and rejection codes not found in the EPC rulebook. Systems implemented solely based on EPC guidance will default to a fallback path when encountering these codes.

Sources and maintenance status

SourceDocumentStatus
ISO 20022 Registration AuthorityExternal Code Sets (ExternalStatusReason1Code, ExternalReturnReason1Code, ExternalPaymentCancellationReason1Code)continuously updated
EPCEPC173-14 – Guidance on Reason Codes for SDD R-transactions, v8.028.11.2024
EPCEPC135-18 – Guidance on Reason Codes for SCT R-transactions, v6.028.11.2024
EPCEPC059-18 – Guidance on Reason Codes for SCT Inst R-transactions, v7.005.10.2025
EPCEPC218-23 – Verification of Payee Scheme Rulebook, v1.1published 16.03.2026, valid from 20.09.2026
Deutsche BundesbankVerfahrensregeln für die Abwicklung von SEPA-Zahlungen über den SEPA-Clearer des EMZvalid from 15.11.2026
Die Deutsche KreditwirtschaftAnlage 3 des DFÜ-Abkommens – Spezifikation der DatenformateVersion 26.11, valid from 15.11.2026

 

Maßgeblich ist immer die zum Verarbeitungszeitpunkt gültige Fassung. Die EPC-Guidance-Dokumente sind Auslegungshilfen, rechtlich verbindlich sind die jeweiligen Scheme Rulebooks und Implementation Guidelines!


Editorial note: This article reflects the status as of August 2026. To be reviewed during the next update: the impact of the switch to structured addresses on November 22, 2026, on BE04 and the RR series.