Réconcilier des paiements multi-pays. 7 chapitres et un QCM final.
Boucler la caisse quand l'entreprise encaisse dans dix pays. Lire un camt.053, un BAI2, un CNAB 240 et un CFONB120 sans se tromper de champ, rapprocher un rapport d'acquéreur du virement reçu, arbitrer entre date de comptabilisation et date de valeur, réconcilier un encaissement mobile money, comptabiliser le change selon IAS 21, puis automatiser sans perdre la piste d'audit.
Convertir camt.053, BAI2, CNAB 240 et CFONB120 vers un modèle d'écriture pivot unique, sans perdre le signe ni la devise
Rapprocher un rapport de règlement d'acquéreur du virement reçu et rattacher chaque écart à sa cause
Distinguer date de comptabilisation, date de valeur et date de mise à disposition, puis choisir celle qui sert de fenêtre de rapprochement
Réconcilier un encaissement mobile money contre trois registres : plateforme, journal de callbacks, crédit bancaire
Chapitre 1. Un pivot unique, deux relevés : camt.053 et BAI2.
Une entreprise présente dans dix pays ne reçoit pas dix relevés comparables. Elle reçoit du XML ISO 20022 de sa banque allemande, du BAI2 de sa banque américaine, du CNAB 240 de sa banque brésilienne, du CFONB120 de sa banque française. Quatre grammaires pour dire qu'un compte a été crédité. La tentation est d'écrire un moteur de rapprochement par pays, un choix qui, à cinq ans, coûte plus cher que tous les autres. La méthode qui tient sépare deux couches, d'un côté des parseurs propres à chaque format, qui produisent tous le même objet, une écriture pivot, de l'autre un moteur qui ne connaît que ce pivot. Ajouter un pays revient alors à écrire un parseur, pas à reprendre les règles métier. Voici les champs que ce pivot doit porter.
Identifiant de compte normalisé, IBAN quand il existe, sinon couple (code banque, numéro de compte) plus le pays
Devise du compte, en ISO 4217, jamais déduite du pays
Montant en unité mineure, entier signé : le signe vient d'une règle de format, pas du parseur générique
Sens explicite (crédit ou débit), redondant avec le signe et vérifié contre lui
Date de comptabilisation et date de valeur, deux champs distincts, jamais fusionnés
Code de nature d'origine, conservé tel quel, plus une famille pivot interne (virement reçu, prélèvement, frais, rejet…)
Référence de la banque, l'identifiant que la banque saura retrouver en cas de litige
Référence du donneur d'ordre (EndToEndId, référence client, Nosso Número selon le format)
Libellé brut intégral, non tronqué, non normalisé
Empreinte du fichier source et numéro de ligne, pour remonter à la preuve en une requête
Format
Origine et zone d'usage
Unité physique
Écriture du montant
Dates portées
camt.053
ISO 20022, norme mondiale diffusée par les banques de toutes zones
Arborescence XML auto-descriptive
Décimal, devise dans l'attribut Ccy, sens dans CdtDbtInd
BookgDt (comptabilisation) et ValDt (valeur)
BAI2
Bank Administration Institute, banques nord-américaines, également servi en Australie
Lignes de champs séparés par des virgules, terminées par /
Entier sans séparateur décimal, nature portée par le type code
Date « as-of » du groupe, disponibilité par le champ Funds Type
CNAB 240
FEBRABAN, standard d'échange banque-entreprise au Brésil
Enregistrements de 240 positions, groupés en lots par service
Entier à positions fixes, décimales implicites
Date d'occurrence et date de crédit, portées par le segment
CFONB120
CFONB, format de relevé de la place française
Enregistrements de 120 caractères, sans séparateur
14 caractères dont le dernier code à la fois un chiffre et le signe
Date de comptabilisation et date de valeur, en JJMMAA
Les quatre familles de relevés qui alimentent ce pivot
🔑
Le signe, puis l'équilibre
Chaque format code le sens autrement, camt.053 séparant le montant et l'indicateur CdtDbtInd, BAI2 le déduisant du type code, CFONB120 l'enfermant dans le dernier caractère du montant. Un parseur qui recopie un entier sans appliquer la règle du format produit un solde faux. Le garde-fou est le même partout, le solde initial plus la somme algébrique des mouvements égalant le solde final. Un fichier qui ne s'équilibre pas ne rentre pas dans le moteur. Exigez de chaque banque un fichier de recette portant un débit, un crédit, un rejet et un solde négatif.
Le camt.053 est le relevé de fin de journée d'ISO 20022. Sa force tient à trois éléments que les formats à positions ne savent pas porter : une devise attachée à chaque montant, deux dates séparées, une classification normalisée de l'opération. Sa faiblesse tient à sa souplesse, deux banques produisant des camt.053 valides et pourtant différents, parce que chacune choisit ce qu'elle structure vraiment et ce qu'elle laisse en texte libre.
camt.053, une entrée de relevé réduite aux champs qui servent au rapprochement
Avec `Amt` et son attribut `Ccy`, la devise appartient au montant, pas au compte. Un compte multi-devises porte des entrées de devises différentes.
`CdtDbtInd` vaut CRDT ou DBIT. Le montant, lui, reste toujours positif : le convertir en entier signé est le travail du parseur.
`BookgDt` et `ValDt` portent, dans l'exemple, une comptabilisation le vendredi 10 et une valeur le lundi 13. Trois jours de trésorerie séparent les deux.
`BkTxCd` porte trois niveaux tirés des listes de codes externes ISO 20022 : domaine PMNT, famille RCDT (virement reçu), sous-famille ESCT. C'est le champ qui permet d'aiguiller une écriture sans lire le libellé.
`AcctSvcrRef` et `EndToEndId` donnent la référence que la banque retrouvera, et celle que le donneur d'ordre a posée. La seconde est la vraie clé de rapprochement automatique.
Dans BAI2 (Bank Administration Institute, deuxième version en 1987), un fichier contient des groupes, un groupe des comptes, un compte des mouvements
# Les lignes commencant par # sont des annotations, absentes du fichier reel.
# 01 en-tete de fichier : emetteur, destinataire, date, heure, id, version 2
01,BANKUS33,ACMECORP,260710,0800,001,,,2/
# 02 en-tete de groupe : date « as-of » de la restitution et devise du groupe
02,ACMECORP,BANKUS33,1,260710,,USD,/
# 03 compte + soldes : type code 010 = solde d'ouverture, en CENTIMES
03,0012345678,USD,010,15234025,,/
# 16 mouvement : type code 142 = credit ACH recu ; funds type Z = disponibilite inconnue
16,142,1250000,Z,0004512,PAYOUT-BATCH-42,ADYEN SETTLEMENT/
# 49 fin de compte : total de controle = somme des montants des 03 et 16, puis nb de lignes
49,16484025,3/
# 98 fin de groupe : total, nombre de comptes, nombre de lignes du groupe
98,16484025,1,5/
# 99 fin de fichier : total, nombre de groupes, nombre de lignes du fichier
99,16484025,1,7/
Champ
Valeur
Ce qu'elle dit
Type code (solde)
010
Solde d'ouverture du compte
Type code (solde)
015
Solde de clôture du compte
Type code (solde)
045
Solde de clôture disponible, différent du précédent si des fonds sont encore indisponibles
Type code (résumé)
100 / 400
Total des crédits / total des débits de la journée
Funds Type
0 / 1 / 2
Fonds disponibles immédiatement, à un jour, à deux jours ou plus
Funds Type
S / D
Disponibilité répartie : les champs suivants détaillent les tranches
Funds Type
V / Z
Date de valeur explicite / disponibilité non communiquée
Les codes BAI2 qu'un rapprochement lit en premier (montants toujours écrits en unité mineure, sans séparateur décimal)
🎯 Question éclair
Dans un BAI2, un enregistrement 16 porte le montant 1250000 sur un groupe déclaré en USD. Que vaut ce mouvement ?
Chapitre 2. CNAB 240 et CFONB120 : les fichiers à positions.
Le Brésil et la France partagent une famille de formats et rien d'autre, celle des enregistrements de longueur fixe où seule la position compte. Un caractère décalé, et tout le reste de la ligne devient faux sans qu'aucune erreur ne soit levée. Le contrôle d'équilibre du chapitre précédent est ici la seule protection réelle.
Le CNAB 240, dont la version 10.11 date du 21 août 2023, est publié par la FEBRABAN, la fédération des banques brésiliennes, et non par le régulateur. Un fichier porte des enregistrements de 240 positions, organisés en lots, à raison d'un lot par service et par compte payeur. Un même fichier peut donc mélanger un lot de virements et un lot de boletos.
Hiérarchie d'un fichier CNAB 240
Registro tipo 0
Header de arquivo
Un seul par fichier : entreprise, banque, date et heure de génération
➜
Registro tipo 1
Header de lote
Ouvre un lot : type de service, forme de paiement, compte payeur
➜
Registro tipo 3
Detalhe, découpé en segments
Chaque segment porte une facette du même événement (identification, valeurs, adresse)
➜
Registro tipo 5
Trailer de lote
Totaux du lot : nombre d'enregistrements et somme des valeurs
➜
Registro tipo 9
Trailer de arquivo
Totaux du fichier : nombre de lots et nombre d'enregistrements
Le fichier qui intéresse la réconciliation est le retorno de cobrança, la restitution que la banque renvoie sur les boletos émis. Deux segments y portent tout ce qu'un comptable cherche. Le segment T identifie le titre et son code de mouvement retour, celui qui dit si le boleto a été payé, rejeté ou radié. Le segment U porte les valeurs.
Segment T, identification du titre (Nosso Número côté banque, Seu Número côté entreprise), code de mouvement retour, motif d'occurrence, montant de la tarifa bancaire
Segment U, montant payé, montant net crédité, intérêts et remises appliqués, date de l'occurrence et date de crédit effective
La date de crédit n'est pas la date de paiement : le payeur règle le boleto un jour, l'argent arrive sur le compte un ou plusieurs jours plus tard
Le montant payé n'est pas le montant émis : intérêts de retard, remise pour paiement anticipé et tarifa creusent l'écart
CFONB120 : l'overpunch, et ce qu'il implique en multi-pays
Le CFONB120 aligne des enregistrements de 120 caractères : un 01 pour l'ancien solde, des 04 pour les mouvements, des 05 de complément, un 07 pour le nouveau solde. Le dossier d'encyclopédie en donne la cartographie position par position. Un seul point compte pour un moteur multi-pays, le dernier caractère du montant codant à la fois un chiffre et le signe, héritage des cartes perforées. { vaut +0, } vaut −0, A à I valent +1 à +9, J à R valent −1 à −9.
🔑
La conséquence architecturale
Trois conventions de montant cohabitent dans le même moteur : décimal explicite en camt.053, entier en unité mineure en BAI2 et CNAB 240, entier plus overpunch en CFONB120. La conversion vers l'unité mineure signée du pivot appartient au parseur, jamais au moteur de rapprochement. Un test unitaire par format, avec un montant positif, un négatif et un zéro, suffit à empêcher la classe d'incident la plus coûteuse.
🎯 Question éclair
Dans un retorno de cobrança CNAB 240, où se lit la date à laquelle l'argent d'un boleto payé arrive réellement sur le compte de l'entreprise ?
Chapitre 3. Les fichiers d'acquéreur et leurs écarts.
Le relevé bancaire montre une ligne, un virement de l'acquéreur, qui recouvre des milliers de transactions, des remboursements, des impayés et six familles de frais. Le rapport de règlement est la pièce qui explique le passage de l'un à l'autre. Sans lui, la ligne bancaire n'est pas justifiable, et la piste d'audit s'arrête au montant net.
Les grands acquéreurs publient la structure de ces rapports, à commencer par le settlement details report d'Adyen, qui aligne vingt-quatre colonnes, dont Gross Currency, Gross Credit (GC), Exchange Rate, Net Currency et Net Credit (NC). Quatre colonnes y isolent les coûts, Commission, Markup, Scheme Fees et Interchange. Chez Stripe, le rapport Payout reconciliation n'existe que pour les comptes en versement automatique, et le rapport Balance porte les colonnes automatic_payout_id et automatic_payout_effective_at, cette dernière exprimée en UTC.
Nature de la colonne
Exemple Adyen
Exemple Stripe
Usage au rapprochement
Identifiant de lot
Batch Number
automatic_payout_id
Relie la ligne du relevé bancaire à l'ensemble des transactions qu'elle règle
Type d'écriture
Type : Settled, Refunded, Chargeback, Fee, MerchantPayout
Devise payée par le client, celle du chiffre d'affaires
Devise de règlement
Net Currency
settlement_currency
Devise reçue en banque, celle du compte crédité
Taux appliqué
Exchange Rate
Écart entre montant et montant converti
Isole l'écart de change du reste des écarts
Référence marchand
Merchant Reference
transaction_id et métadonnées
Relie la transaction à la commande dans le système de vente
Ce que porte un rapport de règlement, et à quoi chaque colonne sert
Les quatre sauts qu'un écart peut trahir
Commande
→ transaction acquéreur
Écart typique : capture jamais demandée, ou capture partielle non répercutée
➜
Transaction
→ ligne du rapport de règlement
Écart typique : transaction reportée au lot suivant, ou retenue en réserve
➜
Rapport
→ virement annoncé
Écart typique : frais facturés hors transaction, déduction de facture, correction de dépôt
➜
Virement
→ ligne du relevé bancaire
Écart typique : conversion par la banque, frais de réception, rejet et réémission
Les six écarts qui reviennent partout
Écart observé
Cause la plus fréquente
Où le prouver
Le net du rapport dépasse le virement
Frais périodiques ou déduction de facture prélevés sur le lot
Lignes de type Fee ou InvoiceDeduction du même lot
Une vente du jour manque au lot
Coupure de lot : la transaction bascule au lot suivant
Horodatage de la transaction contre l'heure de coupure du lot
Un montant négatif inattendu
Remboursement ou impayé rattaché à une vente d'un mois antérieur
Référence d'origine portée par la ligne de contre-passation
Le brut cumulé ne fait pas le chiffre d'affaires
Ventes en devise étrangère converties au règlement
Colonnes de devise brute, de taux et de devise nette
Un montant retenu sans explication
Réserve glissante appliquée par l'acquéreur
Clause contractuelle de réserve et ligne dédiée du rapport
Le virement n'arrive jamais
Coordonnées bancaires rejetées, ou virement scindé par devise
Statut du versement côté acquéreur, avant toute écriture d'écart
Typologie d'écarts entre rapport de règlement et relevé bancaire
ℹ️
L'ancre qui fait tenir la chaîne
Le libellé du virement porte l'identifiant de lot de l'acquéreur, la documentation d'Adyen montrant un libellé bancaire de la forme TX4313726XT batch 4, TestMerchant. Un moteur qui extrait cet identifiant rapproche le virement du lot sans intervention humaine. Faites de cette extraction une règle nommée et testée, pas une expression régulière enfouie dans un script.
Des rapports de règlement dont la structure est publiéeAdyenStripeWorldline
🎯 Question éclair
Le total net d'un rapport de règlement dépasse de 340 € le virement reçu, sur un lot par ailleurs cohérent. Quelle hypothèse examiner en premier ?
Chapitre 4. Dates de valeur, fuseaux et coupures.
Un rapprochement multi-pays échoue rarement sur les montants. Il échoue sur les dates. Une même opération porte quatre dates différentes, chacune vraie dans son référentiel, et le comptable qui en choisit une au hasard fabrique des suspens de fin de mois. La discipline consiste à nommer les quatre et à décider laquelle sert de fenêtre.
Date
Ce qu'elle marque
Où elle se lit
Ce qu'elle pilote
Date d'opération
L'instant où le client a payé
Rapport d'acquéreur, journal de transactions
Le rattachement du produit à un exercice
Date de comptabilisation
L'écriture sur le compte bancaire
BookgDt en camt.053, date « as-of » en BAI2, positions 35-40 en CFONB120
Le lettrage avec le grand livre
Date de valeur
Le point de départ du calcul d'intérêts
ValDt en camt.053, positions 43-48 en CFONB120
La position de trésorerie et les agios
Date de mise à disposition
Le moment où les fonds deviennent utilisables
Champ Funds Type en BAI2, date de crédit du segment U en CNAB 240
Le pilotage de la liquidité au jour le jour
Les quatre dates d'une même opération, et ce qu'elles décident
ℹ️
La règle de date de valeur ne vaut pas partout
Dans l'Espace économique européen, l'article 87 de la directive (UE) 2015/2366 impose que la date de valeur au crédit du bénéficiaire ne soit pas postérieure au jour ouvrable où le compte de son prestataire est crédité. Hors de cette zone, la date de valeur relève du contrat de compte, et l'écart avec la comptabilisation peut atteindre plusieurs jours. Un moteur de trésorerie qui suppose la règle européenne partout se trompe sur ses positions en Amérique et en Asie.
Ne jamais rapprocher sur une égalité de dates. Une référence identique rapproche ; une date sert de fenêtre de tolérance, calibrée par corridor
Stocker l'heure en UTC et le fuseau d'origine séparément. Adyen publie une colonne TimeZone à côté de la date de création, Stripe exprime automatic_payout_effective_at en UTC
Connaître l'heure de coupure de chaque acquéreur et de chaque banque, exprimée dans son fuseau : c'est elle qui décide de quel côté d'une fin de mois tombe une vente du soir
Tenir un calendrier de jours ouvrés par pays, jours fériés locaux compris. Un virement émis la veille d'un pont indien n'arrive pas au rythme d'un virement européen
Rattacher le produit à la date d'opération, jamais à la date de règlement, sous peine de déplacer du chiffre d'affaires d'un exercice à l'autre
Vendredi 10, 21:40 heure locale
Le client paie
La transaction est horodatée après la coupure de lot de l'acquéreur. Elle rejoint le lot du samedi.
Samedi 11
Clôture du lot
Le rapport de règlement est produit. Le net est arrêté, les frais du lot y figurent.
Lundi 13
Virement émis
L'acquéreur envoie les fonds. Le libellé porte l'identifiant de lot.
Mardi 14
Comptabilisation bancaire
BookgDt au 14. L'écriture apparaît au relevé et se lettre avec le grand livre.
Mercredi 15
Date de valeur
ValDt au 15 hors zone couverte par la DSP2. La trésorerie ne compte les fonds qu'à cette date.
Cet exemple tient sur cinq jours calendaires et trois dates de référence distinctes. Le produit se rattache au vendredi 10, tandis que le lettrage bancaire se fait au mardi 14 et que la trésorerie compte au mercredi 15. Trois chiffres justes, trois usages différents.
🎯 Question éclair
Sur quel critère un moteur de rapprochement multi-pays doit-il fonder son appariement principal ?
Chapitre 5. Le mobile money : trois registres, aucune ligne bancaire.
Sur une large partie de l'Afrique subsaharienne et de l'Asie du Sud, comme dans certains corridors d'Amérique centrale, l'encaissement n'arrive pas sur un compte bancaire. Il arrive sur un compte de monnaie électronique tenu par un opérateur, rattaché à un numéro court. L'argent y reste jusqu'à ce que l'entreprise déclenche un transfert vers sa banque. Aucun relevé bancaire ne décrit les ventes de la journée.
plus de 2 000 Md USD
valeur transitée par le mobile money dans le monde en 2025, en hausse de 23 % sur un an
GSMA, State of the Industry Report on Mobile Money 2026
593 M
comptes mobile money actifs mensuels dans le monde en 2025, pour 2,3 milliards de comptes enregistrés
GSMA, State of the Industry Report on Mobile Money 2026
3,1 M
marchands acceptant M-PESA au Kenya, pour 46,41 milliards de transactions sur l'exercice clos le 31/03/2026
Safaricom, résultats annuels FY26, mai 2026
La conséquence opérationnelle est directe, le rapprochement se faisant à trois registres, et non à deux. Il compare le journal des notifications reçues par le système marchand, le relevé de la plateforme de l'opérateur et le crédit bancaire du transfert périodique. Les trois doivent boucler séparément.
Rapprochement à trois registres d'un encaissement mobile money
Client
Paie vers le numéro court du marchand
Compte de paiement de type facturier ou compte marchand, selon le service souscrit
➜
Opérateur
Notifie le système marchand
Confirmation portant l'identifiant de transaction, le montant et la référence saisie par le client
➜
Système marchand
Journalise et rapproche la commande
Déduplication sur l'identifiant de transaction, jamais sur montant et heure
➜
Opérateur
Tient le solde du compte marchand
Le relevé de la plateforme fait foi contre le journal des notifications
➜
Marchand
Déclenche le transfert vers la banque
Une seule ligne au relevé bancaire, pour des milliers d'encaissements
L'identifiant de transaction de l'opérateur est la clé unique. La notification C2B de M-PESA le porte sous TransID, avec TransAmount, BusinessShortCode et l'horodatage TransTime
La référence de commande est saisie par le client, dans le champ BillRefNumber sur un numéro de type facturier. Elle est fautive dans une proportion non négligeable des cas : rapprochement approché obligatoire
Les notifications se perdent et se répètent. La livraison n'est pas garantie une fois : dédupliquer sur l'identifiant, puis interroger l'API de statut de transaction en cas de doute
Le numéro du payeur peut être masqué selon la configuration du service : ne bâtissez pas votre appariement sur lui
Le float du compte marchand est un actif à part, à suivre comme une caisse : Mobile Money Limited, filiale de MTN Ghana, déclare 38,4 milliards GHS de float pour la seule année 2025 (résultats MTN Ghana, mars 2026)
⚠️
Le journal des notifications n'est pas une source de vérité
Un système marchand qui ne connaît que ses propres callbacks croit avoir encaissé ce qu'il a reçu. Une notification perdue devient une commande impayée alors que l'argent est arrivé ; une notification rejouée devient un doublon d'encaissement. Le relevé de la plateforme de l'opérateur arbitre, et lui seul. Téléchargez-le quotidiennement, rapprochez-le du journal, et traitez les écarts comme des incidents, pas comme du bruit.
🎯 Question éclair
Une notification d'encaissement mobile money arrive deux fois avec le même identifiant de transaction. Que doit faire le système marchand ?
Chapitre 6. Multi-devises et change.
Vendre en dix devises et rendre compte dans une seule impose deux conversions, à deux instants différents, la première étant opérée par l'acquéreur ou la banque, à son taux, au moment du règlement. La seconde est comptable. Elle traduit l'opération dans la monnaie de présentation des comptes. Confondre les deux fabrique un écart de change qui ressemble à une perte d'exploitation.
IAS 21, la norme de l'IASB sur les effets des variations des cours des monnaies étrangères, pose le cadre comptable, où une opération en devise se comptabilise au cours au comptant du jour de l'opération. À la clôture, les éléments monétaires (créances, dettes, trésorerie) sont réévalués au cours de clôture. Les éléments non monétaires évalués au coût historique restent à leur cours d'origine. Les écarts qui en résultent passent en résultat.
Étape
Cours appliqué
Qui l'applique
Effet comptable
Vente à un client, en devise étrangère
Cours au comptant du jour de l'opération
L'entreprise, selon IAS 21
Constate le produit et une créance en devise
Règlement par l'acquéreur
Taux publié dans le rapport de règlement
L'acquéreur ou le PSP
Fige le montant encaissé en devise de règlement
Clôture de période
Cours de clôture, sur les seuls éléments monétaires
L'entreprise, selon IAS 21
Écart de change en résultat, isolé du chiffre d'affaires
Les trois cours d'une même vente, et ce qu'ils produisent
⚠️
Trois conventions de décimales, un seul entier
L'unité mineure change avec la devise. ISO 4217 attribue deux décimales à l'euro et au dollar, aucune au yen japonais et au won coréen, trois au dinar koweïtien, au dinar bahreïni et au dinar tunisien. Un moteur qui divise systématiquement par cent surestime un montant en yen d'un facteur cent et sous-estime un montant en dinar d'un facteur dix. La table des exposants ISO 4217 se charge une fois, au démarrage, et sert à toutes les conversions.
Stocker trois valeurs, jamais une : montant en devise d'opération, montant en devise de règlement, et le taux qui relie les deux
Ne jamais recalculer un taux à partir du quotient de deux montants arrondis : l'arrondi masque les frais et fabrique un faux taux
Fixer la règle d'arrondi une fois pour toutes et la documenter. Un demi-centime arbitré différemment par deux systèmes crée des écarts d'un centime par transaction, invisibles à l'unité et massifs au million
Isoler la marge de change de l'acquéreur : elle se déduit de la comparaison entre le taux du rapport et un cours de référence du même jour, et se négocie comme une commission
Traiter la conversion imposée au porteur (la conversion dynamique de devise) comme une ligne à part : elle change le montant brut sans changer la vente
Reste le cas des devises non convertibles ou soumises à contrôle des changes, dans lequel les fonds encaissés localement ne sortent pas librement du pays. La créance existe, l'encaissement aussi, le rapatriement non. Ces soldes se suivent dans un compte dédié, pays par pays, avec leur ancienneté.
🎯 Question éclair
Une vente de 5 000 JPY est encaissée par un acquéreur qui règle en euros. Comment le montant brut doit-il être écrit dans le pivot ?
Chapitre 7. Automatiser sans perdre la piste d'audit.
L'automatisation d'un rapprochement échoue de deux façons opposées. Trop prudente, elle laisse une file de suspens que personne ne traite. Trop permissive, elle apparie des lignes qui n'ont rien à voir et fabrique une comptabilité fausse mais équilibrée. La sortie tient dans une cascade de règles nommées, ordonnées de la plus sûre à la plus risquée, chacune traçant ce qu'elle a fait.
Cascade de rapprochement, du plus sûr au plus incertain
Niveau 1
Référence de bout en bout identique
`EndToEndId`, identifiant de lot, référence structurée. Appariement automatique, sans revue
➜
Niveau 2
Référence approchée et montant exact
Référence tronquée par le format ou saisie par le client. Appariement automatique, avec journal de la correspondance retenue
➜
Niveau 3
Montant exact, contrepartie et fenêtre de dates
Automatique sous seuil de montant, revue humaine au-dessus
➜
Niveau 4
Groupement : un versement contre n transactions
Proposé par le moteur, validé par une personne, jamais appliqué seul
➜
Niveau 5
Suspens
Aucune règle n'a conclu : la ligne part en file d'exceptions, avec son ancienneté
Les références qui survivent au voyage
`EndToEndId` ISO 20022, posé par le donneur d'ordre, restitué au bénéficiaire quand la chaîne le préserve
UETR Swift, identifiant unique de bout en bout au format UUID version 4, obligatoire dans le champ 121 de l'en-tête utilisateur pour tous les utilisateurs Swift depuis le 18 novembre 2018
Référence créancier structurée ISO 11649, préfixe RF, deux chiffres de contrôle calculés en MOD 97-10, puis jusqu'à 21 caractères libres. Le contrôle détecte une saisie fautive avant qu'elle n'entre dans le moteur
`EndToEndId` Pix, 32 caractères imposés par le Banco Central do Brasil : E, ISPB de l'agent sur 8 chiffres, horodatage yyyyMMddHHmm en UTC, puis 11 caractères de séquence
Identifiant de lot d'acquéreur, présent à la fois dans le rapport et dans le libellé du virement, c'est le pivot du niveau de règlement
🔑
Ce qu'une décision automatique doit écrire
Chaque appariement produit une trace : identifiant de la règle qui a conclu, niveau de la cascade, empreinte du fichier source et numéro de ligne, horodatage, auteur (robot ou personne). Elle se conserve avec la pièce, et l'appariement reste annulable sans qu'elle disparaisse. Sans elle, un contrôleur ne peut ni rejouer un rapprochement ni comprendre pourquoi deux lignes ont été jugées identiques.
Le fichier source ne se modifie jamais. Il se conserve tel que reçu, avec son empreinte cryptographique et sa date de réception
Une règle qui apparie ne compense pas. Créer une écriture d'ajustement pour faire disparaître un écart est une décision comptable, soumise à seuil et à approbation distincte
Les suspens vieillissent et se comptent. Un tableau d'ancienneté par pays et par acquéreur, revu chaque semaine, empêche la file de devenir un cimetière
Le taux de rapprochement automatique se mesure par corridor, pas globalement : un bon chiffre mondial masque toujours un pays qui ne boucle plus
Toute règle nouvelle se teste sur l'historique avant activation, et son effet se mesure sur le taux d'appariement erroné, pas seulement sur le taux d'appariement
Un dernier arbitrage revient dans tous les projets. Il oppose le moteur unique, déployé pour tous les pays, à l'outil retenu filiale par filiale. Le moteur unique gagne dès que les mêmes clients paient dans plusieurs pays, parce qu'un remboursement traverse alors les frontières comptables. L'outil local, lui, garde sa place quand un pays impose un format déclaratif propre. Le partage se fait sur le pivot, commun partout et spécifique nulle part.
🎯 Question éclair
Pourquoi la trace d'un appariement automatique doit-elle porter l'identifiant de la règle qui a conclu ?