Parser ISO 20022

Parser les messages financiers ISO 20022 XML

1
Comprendre Messages ISO 20022
TL;DR

ISO 20022 est le standard de messagerie financiere de nouvelle generation utilisant XML, concu pour remplacer les messages SWIFT MT avec des donnees plus riches et mieux structurees.

Qu’est-ce qu’ISO 20022 ?

ISO 20022 est le standard international pour la messagerie financiere electronique, maintenu par l’Organisation internationale de normalisation. Contrairement au format proprietaire SWIFT MT qui utilise des champs textuels etiquetes, ISO 20022 emploie des messages bases sur XML (egalement appeles messages MX) avec un modele de donnees riche et hierarchique capable de representer des transactions financieres complexes avec une precision bien superieure.

Le standard a ete publie pour la premiere fois en 2004 et est depuis devenu le socle des principaux systemes de paiement dans le monde, notamment SEPA en Europe, Fedwire aux Etats-Unis (adoption d’ISO 20022 en 2025), et les systemes de paiement instantane dans plus de 70 pays. ISO 20022 n’est pas simplement un format de messagerie — c’est une methodologie pour construire des definitions de messages financiers a l’aide d’un dictionnaire de donnees commun.

La migration de SWIFT MT vers ISO 20022 represente la plus grande transformation de l’histoire de la messagerie financiere, affectant chaque banque, infrastructure de marche et tresorerie d’entreprise connectee au reseau SWIFT.

MT vs MX : comparaison cote a cote

MT vs MX Message Structure Comparison A side-by-side diagram comparing the tagged text format of SWIFT MT messages on the left with the XML hierarchical structure of ISO 20022 MX messages on the right, highlighting the difference in data richness and structure. SWIFT MT (Legacy) :20:TXREF20240315001 :23B:CRED :32A:240315EUR25000,00 :50K:/FR7630006000011234 JOHN DOE :59:/DE89370400440532 JANE SMITH :71A:SHA Flat tagged structure Limited field length No structured addresses 4 x 35 char remittance Migration ISO 20022 MX (New) <GrpHdr> <MsgId>MSG001</MsgId> <NbOfTxs>1</NbOfTxs> </GrpHdr> <CdtTrfTxInf> <Amt Ccy="EUR">25000</Amt> <Dbtr><Nm>...</Nm> <PstlAdr>...</PstlAdr> </Dbtr> </CdtTrfTxInf> Hierarchical XML structure Rich structured data Full structured addresses 140 char structured remittance

Correspondance MT vers MX

Le tableau suivant montre comment les types de messages SWIFT MT les plus courants correspondent a leurs equivalents ISO 20022 (MX) :

Message MTEquivalent MXDomaine metierDescription
MT103pacs.008Compensation des paiementsVirement client (d’IF a IF)
MT202pacs.009Compensation des paiementsVirement entre institutions financieres
MT940camt.053Gestion de tresorerieReleve de compte en fin de journee
MT942camt.052Gestion de tresorerieRapport de compte en cours de journee
MT101pain.001Initiation de paiementDemande de virement (client vers banque)
MT900/910camt.054Gestion de tresorerieNotification de debit/credit
MT199admi.004AdministrationMessage en format libre / evenement systeme

Comment fonctionnent les messages ISO 20022

Les messages ISO 20022 suivent une structure XML coherente avec trois couches principales :

  1. Le prefixe du domaine metier identifie le domaine : pain (Payment Initiation), pacs (Payments Clearing and Settlement), camt (Cash Management), sese (Securities Settlement)
  2. L’identifiant de message specifie le type de message exact (par ex., 008 pour le virement client au sein de pacs)
  3. Le numero de version suit l’evolution du schema (par ex., 001.08 est la version 8 de la variante 1)

Chaque message MX contient un Group Header (GrpHdr) avec des metadonnees telles que l’identifiant du message, l’horodatage de creation, le nombre de transactions et la methode de reglement. Les donnees au niveau de la transaction suivent dans des structures repetitives specifiques au type de message.

Le schema XML (XSD) de chaque type de message impose des regles de validation strictes — les types de donnees, les elements obligatoires, les valeurs autorisees et les dependances inter-champs sont tous definis dans le schema. Cela rend la validation automatisee bien plus fiable qu’avec les tags MT en format libre.

Calendrier de migration

La migration du reseau SWIFT de MT vers ISO 20022 suit ce calendrier :

  • Mars 2023 : debut de la periode de coexistence — les formats MT et MX sont acceptes sur SWIFT
  • Novembre 2025 : fin de la coexistence pour les paiements transfrontaliers et le reporting (pacs/camt)
  • 2025+ : poursuite de la migration pour les titres (sese/semt) et les messages de financement du commerce
  • Etat cible : adoption complete d’ISO 20022 pour toutes les categories de trafic SWIFT

Durant la coexistence, SWIFT assure la traduction au sein du reseau entre les formats MT et MX. Cependant, une troncature des donnees se produit lors de la conversion de messages MX riches vers des champs MT plus courts, c’est pourquoi les institutions sont encouragees a adopter ISO 20022 nativement.

Cas d’utilisation courants

  • Paiements transfrontaliers : pacs.008 et pacs.009 gerent les virements clients et interbancaires avec des donnees entierement structurees
  • Gestion de tresorerie : camt.052, camt.053 et camt.054 delivrent des rapports de compte et des releves avec des details de transaction enrichis
  • Initiation de paiement : pain.001 et pain.002 prennent en charge les demandes de paiement client-banque et les rapports de statut
  • Paiements instantanes : la plupart des schemas de paiement instantane (TIPS, FedNow, FAST) utilisent ISO 20022 nativement
  • Reporting reglementaire : le modele de donnees plus riche supporte une conformite amelioree, le filtrage des sanctions et les controles anti-blanchiment
  • Tresorerie d’entreprise : les donnees de remise structurees permettent un rapprochement automatique sans appariement manuel

Essayez ces exemples

pacs.008 valide (virement client) Valide

Un message pacs.008.001.08 (virement client d'institution financiere a institution financiere) valide avec un Group Header contenant l'identifiant du message, l'horodatage de creation et les informations de reglement, ainsi qu'une transaction de virement avec les identifiants de paiement, le montant en EUR, le porteur de frais (partage), les details debiteur/crediteur et les BIC de leurs agents respectifs.

<Document xmlns='urn:iso:std:iso:20022:tech:xsd:pacs.008.001.08'> <FIToFICstmrCdtTrf> <GrpHdr> <MsgId>MSG20240315001</MsgId> <CreDtTm>2024-03-15T10:30:00Z</CreDtTm> <NbOfTxs>1</NbOfTxs> <SttlmInf><SttlmMtd>INDA</SttlmMtd></SttlmInf> </GrpHdr> <CdtTrfTxInf> <PmtId><InstrId>INSTR001</InstrId><EndToEndId>E2E20240315</EndToEndId></PmtId> <IntrBkSttlmAmt Ccy='EUR'>25000.00</IntrBkSttlmAmt> <ChrgBr>SHAR</ChrgBr> <Dbtr><Nm>John Doe</Nm></Dbtr> <DbtrAgt><FinInstnId><BICFI>BANKFRPPXXX</BICFI></FinInstnId></DbtrAgt> <CdtrAgt><FinInstnId><BICFI>BANKDEFFXXX</BICFI></FinInstnId></CdtrAgt> <Cdtr><Nm>Jane Smith</Nm></Cdtr> </CdtTrfTxInf> </FIToFICstmrCdtTrf> </Document>
XML invalide (element BIC obligatoire manquant) Invalide

Ce pacs.008 ne contient pas l'element obligatoire SttlmInf dans le Group Header ni l'element BICFI a l'interieur de DbtrAgt/FinInstnId. Sans les informations de reglement et le BIC de l'agent debiteur, l'institution receptrice ne peut pas traiter le paiement.

<Document xmlns='urn:iso:std:iso:20022:tech:xsd:pacs.008.001.08'> <FIToFICstmrCdtTrf> <GrpHdr> <MsgId>MSG20240315002</MsgId> <CreDtTm>2024-03-15T10:30:00Z</CreDtTm> <NbOfTxs>1</NbOfTxs> </GrpHdr> <CdtTrfTxInf> <PmtId><EndToEndId>E2E002</EndToEndId></PmtId> <IntrBkSttlmAmt Ccy='EUR'>5000.00</IntrBkSttlmAmt> <DbtrAgt><FinInstnId></FinInstnId></DbtrAgt> </CdtTrfTxInf> </FIToFICstmrCdtTrf> </Document>