ediverse Explorer la plateforme

À la une PEPPOL BIS Billing 3.0 L’obligation européenne d’e-invoicing arrive : France sept 2026, Belgique janv 2026, Allemagne 2025.

Financial EDI en Belgique — CODA, OGM, SEPA

Au-delà de la facture, l'EDI financier belge repose sur trois piliers nationaux : CODA (relevés bancaires codifiés), OGM/VCS (communication structurée modulo 97) et SEPA avec spécificités belges. Tous interagissent avec la facture PEPPOL-BIS 3.0 du 1ᵉʳ janvier 2026 via le champ BT-83 PaymentID.

CODA — Coded Statement of Account

Le format CODA (Coded Statement of Account) est l'équivalent belge du CAMT.053 ISO 20022, mais antérieur de 30 ans. Créé par Febelfin (Association belge des Banques et des Sociétés de Bourse) en 1991, il reste massivement utilisé en B2B malgré la promotion d'ISO 20022.

  • Format : texte ASCII fixe, lignes de 128 caractères, structurées en types de transactions (0/1/2/3/4/8/9).
  • Encoding : ASCII pur (pas d'UTF-8). Caractères accentués remplacés par leurs équivalents non-accentués.
  • Ligne 0 (Header) : identifie le compte, la date, la banque émettrice, le solde initial.
  • Ligne 1 (Old balance) : solde de départ.
  • Ligne 2 (Movement) : chaque transaction. Code transaction Belgilux à 8 chiffres (référence Bourse/transfert).
  • Ligne 3 (Information) : communication libre + OGM/VCS si présent. C'est cette ligne qui contient le BT-83 pour réconcilier la facture.
  • Ligne 8 (New balance) : solde final.
  • Ligne 9 (Footer) : totaux et signature.
text exemple-coda-bnp-paribas-fortis.txt
0000201020260519        00000000000        Releve 87       BNP PARIBAS FORTIS              EUR0000000000000        0
12087BE68539007547034EUR000000010500050000026051900000000000000000ACME BELGIUM SA                 00000        00000
21000100000000ACME-INV-2026-000412+++097/3300/57894+++0000000000000003000000000000026051901001
22000100000003                                                                                                BLZ
23000100000003BE68539007547034EUR                  ACME BELGIUM SA                              SOL    00000
3100010000200001                                                                            00000000        0
8087BE68539007547034EUR00000000010505000260519                                                                0
9               000000000000000000000000010500050000000000000        0

Dans cet exemple : BNP Paribas Fortis envoie à Acme Belgium SA un relevé CODA pour le 19 mai 2026 avec un crédit de 105,00 € identifié par la communication structurée +++097/3300/57894+++ qui correspond exactement à la facture ACME-INV-2026-000412.

Communications structurées OGM/VCS

L'OGM (Overschrijving met Gestructureerde Mededeling, en néerlandais) ou VCS (Virement avec Communication Structurée, en français) est le standard belge pour les communications de paiement. C'est un code de 12 chiffres avec checksum modulo 97, formaté +++NNN/NNNN/NNNCC+++.

python ogm_compute.py
def ogm_compute(digits10: str) -> str:
    """
    Calcule la communication structuree belge (OGM / Gestructureerde
    mededeling) a partir d'une chaine de 10 chiffres reference.

    Format final : +++NNN/NNNN/NNNCC+++  (12 caracteres total)
    """
    base = int(digits10)
    check = base % 97
    if check == 0:
        check = 97
    full = digits10 + str(check).zfill(2)
    return f"+++{full[:3]}/{full[3:7]}/{full[7:12]}+++"


def ogm_verify(s: str) -> bool:
    """Verifie qu'une communication structuree est valide."""
    digits = ''.join(c for c in s if c.isdigit())
    if len(digits) != 12:
        return False
    base = int(digits[:10])
    check = int(digits[10:])
    expected = base % 97 or 97
    return check == expected


print(ogm_compute("0973300578"))  # +++097/3300/57894+++
print(ogm_verify("+++097/3300/57894+++"))  # True
  • Format affichage : +++097/3300/57894+++ (3-4-5 chiffres séparés par barres obliques, encadrés par triple plus).
  • Checksum : 2 derniers chiffres = (10 premiers chiffres) modulo 97 ; si résultat = 0, alors 97.
  • Usage standard : facture, abonnement, cotisation, remboursement. Génération unique par invoice ID.
  • Avantage opérationnel : réconciliation automatique facture ↔ paiement sans matching manuel.
  • Intégration ERP : SAP, Odoo, Sage, Exact, Yuki, WinBooks supportent natively le générateur OGM/VCS.

SEPA SCT et SDD spécificités belges

La Belgique participe pleinement à la zone SEPA (Single Euro Payments Area) depuis le 1ᵉʳ février 2014 (fin transition pain.001/003 vers pain.001/008 ISO 20022). Spécificités :

  • SEPA Credit Transfer (SCT) : virement standard 24h ouvré. Tarification souvent gratuite en B2C, payante en B2B (~0,10 €).
  • SEPA Instant (SCT Inst) : virement instantané 10 secondes 24/7/365, généralisé en Belgique depuis novembre 2021. Limite plafonnée à 100 000 € par paiement.
  • SEPA Direct Debit Core (SDD CORE) : prélèvement consommateurs. Mandat papier ou e-mandate via SignHub Belgium. Notification au débiteur minimum 14 jours avant prélèvement.
  • SEPA Direct Debit B2B (SDD B2B) : prélèvement assujetti TVA-TVA. Notification 1 jour ouvré. Pas de refund automatique (R-Message limité).
  • Identifiant créancier (Creditor ID) belge : format BE<check 2>ZZZ<BCE 10>. Ex. BE12ZZZ0473495177 pour Acme Belgium SA.
  • BIC obligatoire : uniquement pour les paiements cross-border SEPA. Pas obligatoire pour les paiements intra-BE (depuis 2016 SEPA Regulation art. 5).

ISO 20022 camt/pain en Belgique

Les banques belges supportent depuis 2014 les formats ISO 20022 XML aux côtés de CODA pour les exports/imports automatisés :

  • pain.001.001.03 : initiation de virement (Customer Credit Transfer Initiation). Format d'envoi des fichiers de paiements multiples.
  • pain.008.001.02 : initiation de prélèvement (Customer Direct Debit Initiation).
  • camt.053.001.02 : relevé de compte XML — équivalent ISO 20022 du CODA. Plus riche en métadonnées (BankToCustomerStatement).
  • camt.054.001.02 : notification de mouvements (BankToCustomerDebitCreditNotification) — pour intra-day updates.
  • Coexistence pragmatique : la plupart des banques offrent simultanément CODA + camt.053. Les fiduciaires et éditeurs comptables préfèrent encore CODA (parser plus simple, taille plus compacte).

Intégration avec PEPPOL BT-83

Le pont entre la facture PEPPOL-BIS 3.0 et le paiement SEPA/CODA repose sur deux mécanismes :

  1. BT-83 PaymentID dans le UBL contient l'OGM/VCS belge. L'AP émetteur génère idéalement cet OGM à la volée à partir de l'invoice ID.
  2. Le débiteur paie par SEPA SCT en utilisant l'OGM affiché sur la facture.
  3. La banque créditrice produit CODA qui contient l'OGM dans la ligne 3.
  4. L'ERP du créancier matche automatiquement la ligne CODA avec la facture PEPPOL via l'OGM partagé.

Résultat : un cycle facture → paiement → réconciliation entièrement automatisé, sans intervention humaine.

Banques opératrices CODA

BanqueBICCODAcamt.053SCT Inst
BNP Paribas FortisGEBABEBBOuiOuiOui
KBC BankKREDBEBBOuiOuiOui
Belfius BankGKCCBEBBOuiOuiOui
ING BelgiumBBRUBEBBOuiOuiOui
Argenta SpaarbankARSPBE22OuiOuiOui
Crelan (anc. AXA Banque)NICABEBBOuiOuiOui
ABN AMRO BelgiumABNABE2AOuiOuiOui
Deutsche Bank BelgiumDEUTBEBEOuiOuiOui
Triodos Bank BelgiumTRIOBEBBOuiOuiOui
BPost BankBPOTBEB1OuiLimitéOui

Toutes les principales banques belges publient leur format CODA en téléchargement automatisé via Isabel 6 (portail multi-banque Belgium) ou via leur propre portail business (BNP MyPortal, KBC Business Dashboard, Belfius Web Banking Pro).

Liens transverses