Validateur PEPPOL BIS Billing 3.0 V2
Validez une facture UBL (Invoice ou CreditNote) contre EN 16931 et les règles métier OpenPEPPOL, sans rien envoyer au-delà du navigateur.
Collez une facture UBL conforme à PEPPOL BIS Billing 3.0 pour la valider.
Jeu de règles embarqué : 45 règles métier
(BR-*, BR-CO-* calculation, PEPPOL-*, UBL-CR-*),
57 Business Terms EN 16931,
77 codes EAS PEPPOL,
1 profil. Sources :
docs.peppol.eu,
PEPPOL Schematron rules
et la norme EN 16931-1:2017.
Comment ça marche
Le validateur applique trois passes :
- Bonne formation XML : votre document est passé au
DOMParsernatif du navigateur. Toute balise mal fermée ou caractère XML invalide est signalé en premier (E_XML_NOT_WELL_FORMED). - Élément racine UBL : la racine doit être
<Invoice>ou<CreditNote>dans le namespace UBL 2.1. Sinon :E_NOT_UBL_ROOT. - Règles métier PEPPOL BIS Billing 3.0 : les codes
BR-NNetPEPPOL-EN16931-RNNNci-dessous sont vérifiés contre la structure du document. Chaque diagnostic indique le Business Term EN 16931 concerné (BT-1,BT-24, etc.) et le chemin XPath de l'élément fautif.
Règles implémentées
Le validateur V2 cible 45 règles parmi les ~300 du Schematron
PEPPOL-EN16931-UBL.sch. Le sous-ensemble couvre les erreurs
bloquantes les plus fréquentes en intégration, réparties en quatre familles :
Core EN 16931 — BR-01 → BR-20
BR-01— identifiant de spécification (BT-24) PEPPOL BIS Billing 3.0.BR-02— numéro de facture (BT-1).BR-03— date d'émission (BT-2).BR-04— code type de facture (BT-3) parmi 380, 381, 384, 389 (CreditNote : 381, 396).BR-05— devise du document (BT-5) ISO 4217.BR-06,BR-07— noms vendeur (BT-27) et acheteur (BT-44).BR-08,BR-09— codes pays (BT-40, BT-55) ISO 3166-1.BR-10,BR-11— adresses électroniques EAS (BT-34, BT-49) avecschemeIDdans la code list OASIS.BR-12,BR-13,BR-14,BR-15— totauxLegalMonetaryTotal(BT-106, BT-112, BT-109, BT-115).BR-16— au moins une ligne (BG-25).BR-17,BR-18,BR-19,BR-20— nom et adresse du Payee et du représentant fiscal lorsqu'ils sont présents.
Calculation overall — BR-CO-*
Les règles de calcul vérifient la cohérence arithmétique des totaux entre lignes, remises, frais et catégories de TVA. Tolérance par défaut : ±0.011 (niveau centime) pour absorber le double arrondi.
BR-CO-3— exclusivité mutuelle entreTaxPointDate(BT-7) etInvoicePeriod/DescriptionCode(BT-8).BR-CO-9— montant TVA par catégorie = base × taux ÷ 100 (BT-117 = BT-116 × BT-119/100).BR-CO-10— BT-106 (somme des lignes) = somme arithmétique des BT-131.BR-CO-11— BT-107 (total remises document) = somme des BT-92.BR-CO-12— BT-108 (total frais document) = somme des BT-99.BR-CO-13— BT-110 (total TVA) = somme des BT-117.BR-CO-14— BT-112 (total TTC) = BT-109 + BT-110.BR-CO-15— BT-109 (total HT) = BT-106 − BT-107 + BT-108.BR-CO-16— BT-115 (montant dû) = BT-112 − BT-113 + BT-114.BR-CO-17— BT-116 (base TVA par catégorie) ≥ 0.BR-CO-18— au moins un VAT breakdown (BG-23 /cac:TaxTotal/cac:TaxSubtotal).BR-CO-19— sicac:InvoicePeriod(BG-14) est présent, BT-73 et/ou BT-74 doit être renseigné et BT-73 ≤ BT-74.BR-CO-25— instructions de paiement obligatoires si BT-115 > 0.
PEPPOL Schematron — PEPPOL-EN16931-R*
PEPPOL-EN16931-R001— pas d'élémentcbc:*vide.PEPPOL-EN16931-R002—cbc:Notene doit pas être le premier enfant.PEPPOL-EN16931-R003—BuyerReference(BT-10) OUOrderReference(BT-13) requis.PEPPOL-EN16931-R004—CustomizationIDdoit être l'URN exact PEPPOL.PEPPOL-EN16931-R005,R007— montants à 2 décimales maximum.PEPPOL-EN16931-R006—cbc:ProfileID(BT-23) requis.
PEPPOL UBL Customisation — UBL-CR-* (éléments interdits)
UBL-CR-001—cbc:UBLVersionIDinterdit (impliqué par le namespace).UBL-CR-002—cbc:ProfileExecutionIDinterdit (couvert parcbc:ProfileID).UBL-CR-003—cbc:CopyIndicatorinterdit (concerne le transport, pas le sémantique).UBL-CR-004—cbc:UUIDinterdit (BT-1 est l'identifiant unique).UBL-CR-005—cbc:IssueTimeinterdit (BT-2 est à précision jour).
Confidentialité
Limites
Le validateur n'est pas — encore — un remplaçant 1-pour-1 du Schematron officiel. Ce qui n'est pas couvert en MVP :
- Les règles VAT complètes (BR-AE-*, BR-E-*, BR-IC-*, BR-O-*, BR-S-*, BR-Z-*) qui valident la cohérence entre catégorie de TVA, exonération, taux et pays.
- La validation XSD UBL 2.1 stricte (cardinalités enfants, types XSD) — nous nous concentrons sur les Business Terms.
-
La résolution des références entre lignes,
AllowanceCharge, etTaxTotal. -
Les règles de codelist de second rang :
UnitOfMeasure,PaymentMeansCodeUNTDID 4461, catégories de TVA UNTDID 5305. -
Les références
DocumentReferenceet leurs MIME types (BG-24).
Pour un pipeline de production, exécuter le Schematron officiel
PEPPOL-EN16931-UBL.sch reste recommandé.
Documentation associée
- PEPPOL — la vue d'ensemble du réseau, du modèle à quatre coins et du calendrier des mandats 2026.
- EN 16931 — le modèle sémantique européen des éléments cœur d'une facture.
- Validateur cXML — même approche pour les documents Ariba / SAP Business Network.