Valider une facture CII (UN/CEFACT D22B) par API
CII est la syntaxe XML des Nations unies pour l’échange commercial, et c’est celle qu’on trouve à l’intérieur d’un PDF Factur-X. Elle peut aussi être déposée seule, sans conteneur.
Ce que c’est exactement
Une des deux syntaxes que la norme EN 16931 autorise pour porter une facture. Elle n’est pas un format concurrent d’UBL : les deux expriment le même modèle de données, avec des balises différentes. Une règle métier s’écrit donc deux fois, une par syntaxe, et c’est ce que font les artefacts scellés.
Ce qui la distingue d’UBL
CII sépare la remise appliquée au document de celle appliquée au prix d’une ligne. Là où UBL n’a qu’une règle sur l’indicateur de remise, CII en a deux — une par niveau. C’est la différence la plus visible entre les deux jeux de règles, et la raison pour laquelle un même défaut peut porter deux codes selon la syntaxe.
Seule ou dans un PDF
Déposée seule, la facture est jugée sur ses règles métier. Déposée dans un PDF/A-3, elle l’est aussi — plus les contrôles du conteneur.
CII ou UBL : combien de règles diffèrent vraiment
55 règles s’appliquent aux deux syntaxes à l’identique. 3 leur sont propres — c’est là, et seulement là, que le choix de syntaxe change le verdict.
- BR-TMP-3
La quantité de référence du prix diffère entre prix brut et prix net
- PEPPOL-EN16931-R043-1
L'indicateur de remise ou de frais du document n'est ni « true » ni « false »
- PEPPOL-EN16931-R043-2
L'indicateur de remise appliquée au prix n'est ni « true » ni « false »
Contre quoi Factlint le juge
Les socles scellés qui reçoivent ce format aujourd’hui. Chaque verdict cite celui qui l’a rendu, et reste rejouable.
de-2026-08XRechnung 3.0.2 (KoSIT)
eu-en16931-2026-08EN 16931-1:2017
fr-2026-08EN 16931 CIUS France + BR-FR-CTC (FNFE)
Les codes qui s’y appliquent
58 codes documentés s’appliquent à ce format. En voici 12, par ordre alphabétique.
Voir les codes →Essayer
Le validateur gratuit accepte ce format sans compte. En API, l’appel tient en une ligne :
curl -X POST https://api.factlint.com/v1/validate \ -F 'file=@facture.xml' \ -F 'jurisdiction=FR' \ -F 'ruleset=latest' \ -F 'pinned=true' \ -H 'Accept-Language: fr'Ouvrir le validateur