Intégration

Factur-X → UBL Belgique : conversion CII sans re-saisie

Mis à jour le 3 min de lecture Par FacturX API

Convertir le XML CII d'un Factur-X en UBL pour un destinataire belge : mapping syntaxique, PDF joint, champs manquants, recette deux syntaxes.

Vous émettez déjà en Factur-X (PDF/A-3 + XML CII). Un destinataire — ou un circuit belge — attend du UBL. Re-saisir la facture dans un second outil est la pire option : double source de vérité, écarts de totaux, tickets support.

Ce guide traite la conversion de syntaxe (CII embarqué → UBL) et la conservation du PDF lisible. Ce n’est pas l’article « quel format choisir » (Factur-X vs UBL vs CII). Aucune conclusion réglementaire sur les obligations belges ou françaises : uniquement le fichier.

Versions d’artefacts runtime FacturX API : GET /meta.

En bref

  • Le CII dans le Factur-X porte déjà la plupart des BT EN16931 ; UBL est un re-binding, pas une nouvelle saisie métier.
  • Le PDF joint doit rester aligné sur les totaux du XML converti.
  • Les champs « métier OF / ERP » souvent hors XML restent le vrai trou — la conversion ne les invente pas.
  • Peppol et circuit PA FR sont des canaux ; ici on parle du fichier seul.
  • Recette utile : même facture, deux syntaxes, mêmes totaux, même jeu de BR-* critiques.

Ce que le XML Factur-X contient déjà

Un Factur-X valide embarque un XML CII. En pratique vous avez déjà parties, lignes, TVA, totaux, souvent des références. La conversion lit ce XML (pas le PDF OCR). Si le CII est incomplet, UBL le sera aussi.

Extraction / contrôle : Extraire le XML d’un PDF Factur-X.

Table CII → UBL (carte mentale)

ZoneCII (idée)UBL (idée)Vigilance
En-têteExchangedDocumentInvoice / cbc:ID, IssueDateType UNTDID
VendeurSellerTradePartyAccountingSupplierPartyschemeID SIRET/TVA
AcheteurBuyerTradePartyAccountingCustomerPartyPays ISO
LignesIncludedSupplyChainTradeLineItemInvoiceLineUnités UNECE
Totauxsummation CIILegalMonetaryTotalArrondis
TVAbreakdown CIITaxTotal / TaxSubtotalCatégories

Implémentez via une lib éprouvée ou un mapping déclaratif versionné, avec fixtures.

PDF lisible en pièce jointe UBL

  1. UBL seul — le destinataire n’a besoin que du XML.
  2. UBL + PDF — le PDF Factur-X d’origine (ou régénéré) voyage en pièce jointe.

Règle d’or : les montants du PDF ne contredisent pas le UBL.

Champs souvent hors XML

Sur les flux organisme de formation / services, le métier vit dans l’ERP (sessions, financements, mentions longues). La conversion CII→UBL ne crée pas ces champs. Si le destinataire les exige hors modèle, c’est un accord d’échange — pas un bug du convertisseur.

Peppol vs circuit PA FR : fichier seulement

Fichier = UBL bien formé + EN16931. Canal = Peppol, PA, API partenaire… Cet article s’arrête au fichier.

Recette : même facture, deux syntaxes

  1. Partir d’un Factur-X dont le CII passe le preflight.
  2. Produire le UBL.
  3. Comparer PayableAmount, ventilations TVA, lignes, IDs parties.
  4. Valider le UBL (XSD + Schematron).
  5. Archiver le couple hashé (CII source, UBL produit).

CI : Valider EN16931 dans GitHub Actions.

Limites assumées

  • Pas de verdict sur l’obligation d’émettre en UBL en Belgique.
  • Pas de garantie Peppol BIS au-delà d’EN16931 cœur.
  • Preuve packs FacturX API : /meta.

Équipe FacturX API

Continuer la lecture

Étape suivante recommandée

Vous avez un Factur-X propre et un destinataire UBL.

Voici ce que vous allez obtenir :

  • Extraire et hasher le CII source
  • Convertir puis diff des totaux
  • Valider UBL en CI
  • Décider PDF joint vs XML seul
#Factur-X #UBL #Belgique #CII #conversion #EN16931