A2A · Reference

Reason-code catalogue

The MerasPay A2A engine emits standard ISO 20022 codes. The first four (ACSC, ACSP, ACWP, RJCT) appear in transactions[].status_code; the rest appear in status_reason when status is RJCT.

CodeCategoryMeaningNotes
ACSCsuccessAccepted, settlement completeTerminal success — ledger booked, nostros adjusted.
ACSPpendingAccepted, settlement in processTransient — happens only on failure paths during settle().
ACWPpendingAccept without postingHeld for 4-eyes approval (high-value) or compliance review (sanctions). HTTP 202.
RJCTrjctRejectedTerminal — see status_reason for the specific code.
AC01rjctIncorrect account numberFormat/checksum/encoding failed.
AC03rjctInvalid creditor account numberCreditor account does not exist.
AC04rjctClosed account numberCreditor account was closed.
AC06rjctBlocked accountCreditor account is frozen.
AM04rjctInsufficient fundsMerasPay nostro at the creditor bank is below the requested amount. Liquidity manager will rebalance automatically.
BE01rjctInconsistent debtor nameDebtor name does not match the account holder.
FF01rjctInvalid file formatpacs.008 body failed validation.
FF08rjctEnd-to-end ID missingEndToEndId is required.
MD07rjctEnd customer deceasedUsed in pacs.004 returns.
AGNTrjctIncorrect agentCreditor bank BIC is unknown or inactive in the registry.
DUPLrjctDuplicate paymentUsed in cancel/return flows.
RR03rjctRegulatory reasonSanctions or other regulatory hold rejected by reviewer.
NARRrjctNarrativeGeneric; see status_text for detail.

Operator playbook

For each code, the bank operator's recommended action (resubmit vs wait vs escalate) lives in the internal Operations Guide at bank.merashub.com/ops.