pain.001 est le message ISO 20022 qu'une entreprise envoie à sa banque pour ordonner un ou plusieurs virements. Son nom complet est Customer Credit Transfer Initiation (initiation de virement client) : « pain » désigne la famille des messages d'initiation de paiement, .001 le numéro du message, et le suffixe, par exemple pain.001.001.09, la version. C'est un format XML, validé par un schéma officiel (XSD), qui remplace les formats CSV propres à chaque banque et le message texte SWIFT MT101.
pain.001 en une minute#
- Qui l'envoie : une entreprise (le débiteur, ou un mandataire agissant pour son compte) l'envoie à sa propre banque (l'agent du débiteur).
- Ce qu'il contient : un ou plusieurs lots de virements, chacun avec un compte débiteur, une date d'exécution demandée et un nombre quelconque de paiements aux créanciers.
- Ce qui revient : la banque répond par un pain.002, le Customer Payment Status Report, qui accepte ou rejette le fichier ou certaines transactions avec des codes motifs ISO.
- Ce qui suit : une fois l'ordre accepté, la banque transforme chaque instruction en messages interbancaires tels que le pacs.008, que l'entreprise ne voit jamais.
- Où il est utilisé : les virements SEPA régis par les rulebooks de l'EPC, les paiements transfrontaliers sur Swift sous CBPR+ (
pain.001.001.09) et de nombreux systèmes nationaux. Le corpus d'exemples de Pain001 couvre 42 scénarios sur 17 marchés.
Structure d'un message pain.001#
Toutes les versions partagent le même squelette à trois niveaux, dans un élément <CstmrCdtTrfInitn>.
| Niveau | Élément | Contenu |
|---|---|---|
| 1 | <GrpHdr> En-tête de groupe | Identifiant du message, horodatage de création, nombre de transactions (NbOfTxs), somme de contrôle (CtrlSum), partie initiatrice |
| 2 | <PmtInf> Informations de paiement | Un lot : mode de paiement, date d'exécution demandée, débiteur, compte et agent du débiteur, répartition des frais |
| 3 | <CdtTrfTxInf> Transaction de virement | Un paiement : référence de bout en bout, montant et devise, créancier, compte et agent du créancier, informations de remise |
Un fichier peut contenir plusieurs lots <PmtInf>, et chaque lot de nombreux paiements <CdtTrfTxInf>. NbOfTxs et CtrlSum figurent au niveau du fichier comme du lot et doivent correspondre aux paiements qu'ils comptent : c'est l'un des motifs de rejet les plus fréquents.
Un exemple complet de pain.001#
Voici un virement SEPA unique en pain.001.001.09, repris tel quel du corpus d'exemples de Pain001. Il est validé par le XSD officiel ISO 20022. Les parties, IBAN et BIC sont fictifs.
OML-SCT-20260921
2026-09-21T12:00:00
1
2200.00
Officine Meccaniche Lombarde SpA
20123
Milano
IT
Via Torino 15
SCT-20260921-IT-01
TRF
false
1
2200.00
SEPA
2026-09-22
Officine Meccaniche Lombarde SpA
20123
Milano
IT
Via Torino 15
IT48T78971134594OGDKY5VXE41
TLAOIT60
SLEV
OML-2026-0921-01
2200.00
MHXHITI0
Fonderia Bresciana Srl
25121
Brescia
IT
IT23J14887404856NF3794IGWXN
Fattura 117/2026
Essayez vos propres données dans la démo en ligne : elle génère un fichier pain.001 à partir d'un CSV et le valide par le schéma officiel, sans que les données quittent votre machine.
Les versions de pain.001#
L'ISO publie une nouvelle version lorsque le modèle du message évolue. Chaque banque et chaque système n'acceptent que certaines versions : la version à envoyer est celle qu'indique la documentation du canal de votre banque.
| Version | Remarques |
|---|---|
| pain.001.001.03 | Le pilier historique de SEPA et du CGI ; identifie les banques avec <BIC> |
| .04, .05, .06, .07, .08 | Versions de maintenance utilisées par certains canaux |
| pain.001.001.09 | La version de 2019 retenue par CBPR+ pour Swift ; identifie les banques avec <BICFI> et ajoute le LEI et l'UETR |
| .10, .11, .12 | Améliorations postérieures à 2019 |
| pain.001.001.13 | Publiée par l'ISO le 19 mars 2026 ; ajoute un identifiant unique de transaction facultatif (UnqTxIdr) |
La matrice de compatibilité indique les versions que Pain001 génère, valide et convertit.
pain.001 et les messages apparentés#
| Message | Sens | Objet |
|---|---|---|
| pain.001 | De l'entreprise vers sa banque | Ordonne des virements (envoie des fonds) |
| pain.002 | De la banque vers l'entreprise | Rend compte du statut d'un pain.001 ou d'un pain.008 : accepté, partiellement accepté ou rejeté, avec des codes motifs |
| pain.008 | De l'entreprise vers sa banque | Ordonne des prélèvements (encaisse des fonds en vertu d'un mandat) |
| pacs.008 | De banque à banque | Le virement interbancaire que devient une instruction pain.001 |
| MT101 | Entreprise ou banque, via Swift | L'ancien message texte « Request for Transfer » que remplace pain.001. Swift a reporté en août 2026 le retrait du relais interbancaire MT101 (Swift) ; voir du MT101 au pain.001 |
Le glossaire définit en langage clair le reste du vocabulaire ISO 20022.
Pourquoi les banques rejettent des fichiers pain.001#
Un fichier peut être un XML bien formé et être rejeté malgré tout. Les contrôles s'empilent en couches :
- Schéma : le fichier doit être validé par le XSD officiel de sa version.
- Qualité des données : les IBAN passent leur clé de contrôle, les BIC sont bien formés, les dates et montants sont valides, et
NbOfTxsetCtrlSumcorrespondent aux paiements. - Règles du système : SEPA, CBPR+ et les systèmes nationaux ajoutent leurs propres contraintes, comme le jeu de caractères autorisé ou une adresse postale structurée.
- Profil et canal de votre banque : chaque banque publie ses propres guides d'utilisation en plus de ceux du système.
Pain001 vérifie les trois premières couches avant que le fichier n'atteigne la banque, et indique clairement que la quatrième relève de la banque.
Comment créer un fichier pain.001#
- À partir d'un tableur : Excel vers pain.001 transforme une liste de paiements Excel ou CSV en fichier validé.
- Dans le navigateur : la démo génère et valide un fichier en local, sans aucun envoi.
- Par le code ou la ligne de commande : installez la bibliothèque open source pain001 et exécutez :
La référence technique couvre chaque option, et la FAQ répond aux questions que posent le plus souvent les équipes trésorerie, opérations et développement.
Sources#
- Définitions et archives des messages ISO 20022 : iso20022.org
- Rulebook SEPA Credit Transfer : European Payments Council
- CBPR+ et le relais MT101 : Swift