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.
| Code | Category | Meaning | Notes |
|---|---|---|---|
ACSC | success | Accepted, settlement complete | Terminal success — ledger booked, nostros adjusted. |
ACSP | pending | Accepted, settlement in process | Transient — happens only on failure paths during settle(). |
ACWP | pending | Accept without posting | Held for 4-eyes approval (high-value) or compliance review (sanctions). HTTP 202. |
RJCT | rjct | Rejected | Terminal — see status_reason for the specific code. |
AC01 | rjct | Incorrect account number | Format/checksum/encoding failed. |
AC03 | rjct | Invalid creditor account number | Creditor account does not exist. |
AC04 | rjct | Closed account number | Creditor account was closed. |
AC06 | rjct | Blocked account | Creditor account is frozen. |
AM04 | rjct | Insufficient funds | MerasPay nostro at the creditor bank is below the requested amount. Liquidity manager will rebalance automatically. |
BE01 | rjct | Inconsistent debtor name | Debtor name does not match the account holder. |
FF01 | rjct | Invalid file format | pacs.008 body failed validation. |
FF08 | rjct | End-to-end ID missing | EndToEndId is required. |
MD07 | rjct | End customer deceased | Used in pacs.004 returns. |
AGNT | rjct | Incorrect agent | Creditor bank BIC is unknown or inactive in the registry. |
DUPL | rjct | Duplicate payment | Used in cancel/return flows. |
RR03 | rjct | Regulatory reason | Sanctions or other regulatory hold rejected by reviewer. |
NARR | rjct | Narrative | Generic; 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.