ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

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 from GrpHdr/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: X01 Invalid XML format, X02 XSD validation failed, X03 Unknown namespace, X04 Duplicate reference, X06 Invalid signature, X07 Unknown sender, X08 Unknown receiver, X10 Message 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 admi-002-rejection.xml
<?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

VersionPublishedUsage
admi.002.001.012009Current 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 RjctgPtyRsn code — 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 timestampRjctnDtTm is 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.
  • 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.002business counterpart: negative status on a transaction syntactically valid but rejected by business rules.

See also: the ISO 20022 index.