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.

— 01

Fondamentaux

— 02

Standards

— 03

Messages phares

— 04

Outils

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 :

  1. Bonne formation XML : votre document est passé au DOMParser natif du navigateur. Toute balise mal fermée ou caractère XML invalide est signalé en premier (E_XML_NOT_WELL_FORMED).
  2. Élément racine UBL : la racine doit être <Invoice> ou <CreditNote> dans le namespace UBL 2.1. Sinon : E_NOT_UBL_ROOT.
  3. Règles métier PEPPOL BIS Billing 3.0 : les codes BR-NN et PEPPOL-EN16931-RNNN ci-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-01BR-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) avec schemeID dans la code list OASIS.
  • BR-12, BR-13, BR-14, BR-15 — totaux LegalMonetaryTotal (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 entre TaxPointDate (BT-7) et InvoicePeriod/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 — si cac: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ément cbc:* vide.
  • PEPPOL-EN16931-R002cbc:Note ne doit pas être le premier enfant.
  • PEPPOL-EN16931-R003BuyerReference (BT-10) OU OrderReference (BT-13) requis.
  • PEPPOL-EN16931-R004CustomizationID doit être l'URN exact PEPPOL.
  • PEPPOL-EN16931-R005, R007 — montants à 2 décimales maximum.
  • PEPPOL-EN16931-R006cbc:ProfileID (BT-23) requis.

PEPPOL UBL Customisation — UBL-CR-* (éléments interdits)

  • UBL-CR-001cbc:UBLVersionID interdit (impliqué par le namespace).
  • UBL-CR-002cbc:ProfileExecutionID interdit (couvert par cbc:ProfileID).
  • UBL-CR-003cbc:CopyIndicator interdit (concerne le transport, pas le sémantique).
  • UBL-CR-004cbc:UUID interdit (BT-1 est l'identifiant unique).
  • UBL-CR-005cbc:IssueTime interdit (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, et TaxTotal.
  • Les règles de codelist de second rang : UnitOfMeasure, PaymentMeansCode UNTDID 4461, catégories de TVA UNTDID 5305.
  • Les références DocumentReference et 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.

Dernière mise à jour: 14 mai 2026