Skip to main content

Payment Error & Reason Codes Reference

A comprehensive reference of all error, return, rejection, and status reason codes used across Australian and international payment systems.


ISO 20022 — Payment Status Reason Codes

Used in: pacs.002 (status report), pacs.004 (return), camt.055/056 (cancellation)

CodeFull NameMeaningAction
AC01IncorrectAccountNumberAccount number invalid format or check digitVerify account format; request correct details
AC02InvalidDebtorAccountNumberDebtor account number invalidCheck debtor account
AC03InvalidCreditorAccountNumberCreditor account number invalidCheck creditor account
AC04ClosedAccountNumberAccount has been closedObtain updated account details
AC05ClosedDebtorAccountNumberDebtor account closedContact debtor
AC06BlockedAccountAccount is blocked/frozenContact account holder's bank
AC07ClosedCreditorAccountNumberCreditor account closedUpdate creditor account details
AC10InvalidDebtorAccountCurrencyCurrency mismatch with accountVerify payment currency
AC11InvalidCreditorAccountCurrencyCreditor account currency mismatchVerify payment currency
AC13InvalidDebtorAccountTypeAccount type cannot receive this paymentUse correct payment method
AC14InvalidAgentAccountIntermediary agent account invalidContact intermediary
CodeFull NameMeaningAction
AM01ZeroAmountAmount is zeroCorrect payment amount
AM02NotAllowedAmountAmount not within allowed rangeCheck scheme/account limits
AM03NotAllowedCurrencyCurrency not supportedUse supported currency
AM04InsufficientFundsDebtor account has insufficient fundsAdvise customer; retry later
AM05DuplicationDuplicate payment detectedConfirm if duplicate; void if confirmed
AM06TooLowAmountAmount below minimumIncrease amount or use different channel
AM07BlockedAmountAmount held/blockedContact bank for details
AM09WrongAmountAmount differs from agreed/expectedVerify agreement and resubmit
AM10InvalidControlSumBatch control sum doesn't matchRecalculate and resubmit batch
AM11InvalidTransactionCurrencyTransaction currency invalidCorrect currency code
AM12InvalidAmountAmount format invalidFix amount format
AM14ForbiddenAmountAmount forbidden for this payment typeUse appropriate payment channel

Agent / Routing Codes (AG)

CodeFull NameMeaningAction
AG01TransactionForbiddenTransaction not permitted to/from this accountContact bank for authorisation
AG02InvalidBankOperationCodeBank operation code invalidCorrect bank operation code
AG03TransactionNotSupportedTransaction type not supportedUse alternative method
AG04InvalidAgentCountryAgent country code invalidCorrect country code
AG05InvalidAgentAddressAgent address details incorrectCorrect agent address
AG06UnknownEndCustomerEnd beneficiary unknown to bankVerify beneficiary details
AG07UnsuccesfulDirectDebitDirect debit unsuccessfully executedCheck mandate; contact customer
AG08InvalidAccessRightsNo authority to debit/credit this accountVerify payment authority
AG09UnsupportedMessageTypeMessage type not supportedUse correct message format
AG10InvalidAgentBICAgent BIC code is invalidCorrect BIC code

Mandate Codes (MD)

CodeFull NameMeaningAction
MD01NoMandateNo mandate/authorisation existsObtain mandate before initiating
MD02MissingMandatoryInformationInMandateMandate missing required fieldsComplete mandate details
MD03InvalidFileFormatForOtherThanPaymentInitiationAndCustomerPaymentStatusReportFile format errorCorrect file format
MD04InvalidFileFormatForPaymentInitiationPayment initiation file format errorCorrect format
MD05CollectionNotDueCollection date is not validCorrect collection date
MD06RefundRequestByEndCustomerCustomer requested reversal/refundProcess customer request
MD07EndCustomerDeceasedAccount holder is deceasedContact estate/executors

Narrative / Miscellaneous

CodeFull NameMeaningAction
NARRNarrativeFree text explanation providedRead narrative field in <AddtlInf>
FF01InvalidFileFormatGeneric file format errorFix and resubmit
FF05InvalidLocalInstrumentLocal instrument code invalidCorrect local instrument
MS01NotSpecifiedReasonAgentGeneratedReason not specified (agent)Investigate with sending bank
MS02NotSpecifiedReasonCustomerGeneratedReason not specified (customer)Contact customer
MS03NotSpecifiedReasonFinancialInstitutionGeneratedReason unspecified (FI)Contact FI
RC01BankIdentifierIncorrectBIC/routing code incorrectCorrect bank identifier
RC07InvalidCreditorBICIdentifierCreditor BIC invalidFix and resubmit
RR01MissingDebtorAccountDebtor account missingComplete debtor details
RR02MissingDebtorNameOrAddressDebtor name/address missingAdd debtor information
RR03MissingCreditorNameOrAddressCreditor name/address missingAdd creditor information
RR04RegulatoryReasonBlocked for regulatory reasonsProvide regulatory information
SL01SpecificServiceOfferedByDebtorAgentService offered by debtor agentContact debtor's bank

BECS Direct Entry — Return/Dishonour Codes

Used in BECS DE return files sent back to originating banks.

CodeReasonCommon CauseCreditor Action
01Refer to customerBank declines without explanationContact payer directly
02Refer to customer with cautionPotential fraud concernDo not resubmit; investigate
03No authority to debitNo valid DDR/mandateObtain fresh mandate
04Account closedAccount permanently closedObtain new account details
05Account transferred to another ADIAccount moved to different bankGet new BSB/account
06Account inactiveDormant/not transactingContact customer
07Invalid BSBBSB does not existVerify BSB format and value
08Amount not agreedAmount different from mandateReconcile with customer
09Invalid account numberFormat or checksum errorVerify account number
10Customer deceasedAccount holder has diedContact estate
11Account not foundBSB/account combination not foundVerify both BSB and account
12Account not eligible for debitsCredit-only account typeUse different payment method
13Non-sufficient funds (NSF)Insufficient balance at debit timeRetry in future / contact customer
14Funds withheldAccount under attachment or holdContact account holder
15Duplicate transactionSame debit already processedConfirm duplicate; void if needed
19Account number invalid for BSBAccount number doesn't match BSBVerify account details

NPP / Osko Rejection Codes

NPP payments rejected by the receiving bank use ISO 20022 reason codes (subset):

CodeReason in NPP Context
AC01Invalid PayID or BSB/account format
AC04Closed account — PayID or BSB/account no longer active
AC06Account blocked — compliance hold or fraud flag
AM04Insufficient funds (NPP debit side)
MD01PayTo payment: no active mandate
AG01Payment forbidden — sanctioned party
RR04Regulatory hold — AML review required

SWIFT Error Codes

General SWIFT Errors (in FIN/gpi)

Error CodeCategoryMeaning
T00FormatFormat error in field
T01FormatCharacter set error
T26Code wordInvalid code word in field
T28FormatField too long
T32FormatAmount format error
T40ContentInvalid date
T43ContentInvalid currency code
T44ContentAmount exceeds maximum
T50BusinessDuplicate transaction reference
D01BusinessFunds insufficient
D07BusinessBeneficiary account closed

SWIFT gpi Rejection Codes

CodeMeaning
CNCLCancelled by sender
RJCTRejected — see reason code
PDNGPending — compliance review
ACSCAccepted, settlement completed
ACCCAccepted, credit to customer completed

pacs.002 Transaction Status Codes

Used in the <TxSts> field of pacs.002 status report:

CodeFull NameMeaning
ACTCAcceptedTechnicalValidationMessage technically valid; not yet business-validated
ACCPAcceptedCustomerProfilePassed customer-level validation
ACSCAcceptedSettlementCompletedSettlement confirmed (RTGS)
ACSPAcceptedSettlementInProcessSettlement initiated but not yet final
ACWCAcceptedWithChangeAccepted but with modifications
PDNGPendingAwaiting processing (manual review, compliance hold)
RJCTRejectedRejected — see <StsRsnInf> for reason code
PARTPartiallyAcceptedSome transactions in batch accepted, some rejected

camt.055/056 Cancellation Status Codes

CodeMeaning
CNCLCancellation accepted
RJCTCancellation rejected
PDNGCancellation pending — under investigation
PARTPartially cancelled (batch)

Cancellation rejection reasons (<RjctRsn>):

CodeMeaning
LEGLLegal decision — cannot cancel
ARDTAlready returned
NOASNo answer from beneficiary's bank
NOORNo original transaction found
PTNAPayment too near to processing; cannot cancel
CUSTBeneficiary customer declined cancellation
AGNTIncorrect agent details

Error Code Lookup Approach in Code

public enum Iso20022ReasonCode {
AC01("IncorrectAccountNumber", "Account number invalid format"),
AC04("ClosedAccountNumber", "Account has been closed"),
AM04("InsufficientFunds", "Insufficient balance"),
MD01("NoMandate", "No active mandate found"),
NARR("Narrative", "See narrative for details");

private final String shortName;
private final String description;

public ReturnAction getRecommendedAction() {
return switch (this) {
case AC04, AC07 -> ReturnAction.REQUEST_NEW_ACCOUNT_DETAILS;
case AM04 -> ReturnAction.RETRY_LATER;
case MD01 -> ReturnAction.OBTAIN_MANDATE;
case AC01, AC03 -> ReturnAction.VERIFY_ACCOUNT_FORMAT;
default -> ReturnAction.INVESTIGATE;
};
}
}

// Map BECS dishonour to ISO 20022 (for PayTo migration)
public Iso20022ReasonCode fromBecsDishonour(String becsCode) {
return switch (becsCode) {
case "04" -> Iso20022ReasonCode.AC04; // Account closed
case "13" -> Iso20022ReasonCode.AM04; // NSF
case "03" -> Iso20022ReasonCode.MD01; // No mandate
case "07" -> Iso20022ReasonCode.AC01; // Invalid BSB (= account format)
case "15" -> Iso20022ReasonCode.AM05; // Duplicate
default -> Iso20022ReasonCode.NARR;
};
}