admi.002 — Message Rejection
The technical rejection of an ISO 20022 message. Reference of the rejected message, reason code and structured description: the generic error-handling building block of the admi (Administration) sub-domain.
Purpose and place in the flow
admi.002 is a generic technical-rejection message sent by a receiver
when an incoming ISO 20022 message cannot be processed: invalid XML structure, unknown
namespace, failed signature, unknown BIC, malformed UETR. Where pacs.002
or camt.029 are business responses (accept/reject of a
transaction), admi.002 is a technical response independent of the rejected
message's functional domain.
The message can be generated at multiple chain levels: by the SWIFTNet gateway when it detects a defect before routing, by the RTGS (T2, CHIPS, Fedwire) when the XSD parser fails, by the destination bank before business processing. Mostly used in the admi sub-domain, it can technically answer any ISO 20022 message.
XML structure
admi.002 is wrapped in <Document> with the version namespace, then
the root element <admi.002.001.01> (the element name reuses the
full code). Two main blocks:
- RltdRef (Related Reference) — the reference of the original message that is rejected. Must point to the rejected message's
GrpHdr/MsgId. - Rsn (Reason) — structured rejection reason block containing reason code, datetime, error location, readable description.
Key fields
RltdRef/Ref— Rejected message identifier (max 35 chars, verbatim fromGrpHdr/MsgId). Indispensable for reconciliation: it tells the originator which of their messages was rejected.Rsn/RjctgPtyRsn— Reason code on the rejecting party's side. External codes in practice:X01Invalid XML format,X02XSD validation failed,X03Unknown namespace,X04Duplicate reference,X06Invalid signature,X07Unknown sender,X08Unknown receiver,X10Message outside operating hours.Rsn/RjctnDtTm— Rejection datetime (ISO 8601 with timezone).Rsn/ErrLctn— Error location in the original message, ideally an XPath (/Document/FIToFICstmrCdtTrf/CdtTrfTxInf/PmtId/UETR).Rsn/RsnDesc— Free-text description (max 350 chars). Read by operators in N2/N3 support.Rsn/AddtlData— Additional technical data (log identifier, internal gateway code, transport-layer message ID).
XML example
Rejection by BNP Paribas' SWIFTNet gateway of pacs.008 BNPP-CBPR-20260514-001
for a malformed UETR. Rejection code X02 (XSD validation), precise XPath identifying
the offending field, readable description.
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:admi.002.001.01">
<admi.002.001.01>
<RltdRef>
<Ref>BNPP-CBPR-20260514-001</Ref>
</RltdRef>
<Rsn>
<RjctgPtyRsn>X02</RjctgPtyRsn>
<RjctnDtTm>2026-05-14T10:31:42+01:00</RjctnDtTm>
<ErrLctn>/Document/FIToFICstmrCdtTrf/CdtTrfTxInf/PmtId/UETR</ErrLctn>
<RsnDesc>Malformed UETR: the value supplied is not a valid UUID v4 (RFC 4122). Must be 36 characters, lowercase, dashes.</RsnDesc>
<AddtlData>BNPAFRPP gateway, msg 0x4F2A</AddtlData>
</Rsn>
</admi.002.001.01>
</Document> Versions
| Version | Published | Usage |
|---|---|---|
admi.002.001.01 | 2009 | Current stable version. Largely unchanged since initial publication. |
Unlike pacs/pain/camt messages with 8–11 versions, admi.002 has remained frozen at v01 because its minimal structure suffices for every technical-error use case. The SWIFT Registration Authority has not planned a v02 on the 2027 roadmap.
Common pitfalls
- Missing or incorrect
RltdRef— without the rejected message reference, the originator can't know which of their sends triggered the issue. The most frequent and most penalising defect in operations. - Proprietary
RjctgPtyRsncode — use only the published ISO 20022 external codes (X01–X20). An internal code (BNPP-001) is uninterpretable on the originator side. - Free-text
ErrLctn— prefer a valid XPath that enables automated inspection of the rejected message on the originator side. - admi.002 vs pacs.002 — pacs.002 is a business status on a transaction (rejection for insufficient funds, closed account…). admi.002 is a technical rejection before business processing. Confusing the two blurs diagnosis.
- No timestamp —
RjctnDtTmis important for traceability: at high volume, it's what enables correlation with gateway logs. - Infinite loop — a malformed admi.002 must not be rejected with another admi.002, or you get a loop. SWIFTNet convention: admi rejections are silent on the gateway side, logged but not echoed.
Related messages
- admi.004 — System Event Notification. System notification (maintenance, incident).
- admi.005 — Report Query Request. Report request.
- admi.006 — Resend Request. Message retransmission request.
- admi.007 — Receipt Acknowledgement. Positive acknowledgement (opposite of admi.002).
- pacs.008, pacs.009, pain.001 — messages typically rejected by admi.002 when their structure is invalid.
- pacs.002 — business counterpart: negative status on a transaction syntactically valid but rejected by business rules.
See also: the ISO 20022 index.