Validateur SBDH PEPPOL
Validateur d'enveloppe SBDH (Standard Business Document Header) côté client. Vérifie sender / receiver ICD, document type, process ID PEPPOL BIS 3.0, RFC 3339, présence du payload — sans envoyer la moindre donnée à un serveur.
Collez une enveloppe SBDH (StandardBusinessDocument) pour valider l'en-tête PEPPOL.
Comment ça marche
SBDH (Standard Business Document Header) est l'enveloppe XML normalisée
par ISO/IEC 9735 et profilée par UN/CEFACT puis par GS1 XML 3.0 pour
encapsuler un document métier (UBL Invoice, UBL CreditNote, EDIFACT
INVOIC…) pendant son transport. Sur le réseau OpenPEPPOL, chaque
document échangé entre Access Points via AS4 est emballé dans un
<StandardBusinessDocument> qui transporte :
- Les identifiants ISO 6523 du sender et du receiver (ex.
0192:991825827). - La nature exacte du payload (Standard URI, TypeVersion, Type local).
- Un GUID d'instance (
InstanceIdentifier) pour la traçabilité. - Le BusinessScope
DOCUMENTIDetPROCESSIDPEPPOL.
Le pipeline du validateur :
- Parsing XML (DOMParser côté navigateur, fast-xml-parser fallback).
- Recherche de la racine
StandardBusinessDocument. - Extraction de chaque bloc d'en-tête (Sender, Receiver, DocumentIdentification, BusinessScope).
- Application des contrôles ci-dessous.
Règles vérifiées
- Élément racine :
StandardBusinessDocument(préfixe libre). Le namespace canonique esthttp://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader— un namespace différent déclenche un avertissement, pas une erreur. - HeaderVersion : doit valoir exactement
1.0(SBDH 1.3 reste sur le tag1.0). Toute autre valeur ou absence déclenche une erreur bloquante. - Sender / Receiver : au moins un de chaque, avec
<Identifier>non vide. Le scheme ICD (préfixe avant le:) est confronté à la liste ISO 6523 ci-dessous ; un ICD non reconnu déclenche un avertissement. - DocumentIdentification : les cinq champs
Standard,TypeVersion,InstanceIdentifier,Type,CreationDateAndTimesont obligatoires.CreationDateAndTimedoit être au format RFC 3339 (YYYY-MM-DDThh:mm:ssZou avec offset). - BusinessScope : PEPPOL exige deux entrées
<Scope>— l'une de typeDOCUMENTID, l'autre de typePROCESSID. L'absence de l'une ou de l'autre déclenche un avertissement. LesInstanceIdentifierau formaturn:peppol:bis:…sont confrontés à la liste embarquée. - Loopback : si Sender et Receiver portent exactement la même valeur, un avertissement est émis (configuration souvent involontaire en intégration).
- Présence du payload : un élément métier doit
suivre le
<StandardBusinessDocumentHeader>; unStandardBusinessDocumentsans corps déclenche un avertissement.
Schémas ISO 6523 ICD supportés
La liste suivante couvre les ICD activement utilisés sur le réseau OpenPEPPOL. Le registre OASIS complet contient ~250 codes ; nous en embarquons les 68 principaux pour la reconnaissance et l'étiquetage.
| Code ICD | Registre / pays |
|---|---|
0002 | FR SIRENE |
0007 | SE Organisationsnummer |
0009 | FR SIRET |
0037 | LY-FI Finnish OVT |
0060 | DUNS |
0088 | GS1 GLN |
0090 | SST |
0096 | DK CVR (legacy) |
0097 | IT Fiscal Code (CF) |
0106 | EU VIES VAT |
0130 | DG GROW Directorate |
0135 | SIA Object Identifier |
0142 | SECETI |
0151 | AU Business Number (ABN) |
0183 | CH UID |
0184 | DK CVR-P |
0190 | NL Chamber of Commerce (KVK) |
0191 | EE Commercial Register |
0192 | NO Enhetsregisteret |
0193 | UBL.BE |
0195 | SG Unique Entity Number (UEN) |
0196 | IS Kennitala |
0198 | DK ERST (Erhvervsstyrelsen) |
0199 | LEI (Legal Entity Identifier) |
0200 | LV Register |
0201 | IT IPA Index |
0204 | DE Leitweg-ID (LWID) |
0208 | BE CBE (Crossroads Bank for Enterprises) |
0209 | GS1 Identification Keys |
0210 | IT Codice Fiscale (CF) |
0211 | IT Partita IVA (VAT) |
0212 | SE F-skattebevis |
0213 | BE Belgian Registration |
0218 | FI Y-tunnus (Business ID) |
0221 | JP CGI Corporate Number |
0230 | CN Unified Social Credit Identifier |
9901 | DK P-nummer (legacy) |
9910 | HU VAT |
9913 | ES VAT |
9914 | AT VAT |
9915 | AT Government |
9918 | IBAN (international bank account) |
9920 | ES VAT (legacy) |
9922 | AD VAT |
9923 | AL VAT |
9924 | BA VAT |
9925 | BE VAT |
9926 | BG VAT |
9927 | CY VAT |
9928 | CZ VAT |
9929 | DE VAT |
9930 | EE VAT |
9931 | GR VAT |
9932 | ES VAT |
9933 | FI VAT |
9934 | FR VAT |
9935 | GB VAT |
9936 | HR VAT |
9937 | LU VAT |
9938 | LV VAT |
9939 | LT VAT |
9940 | MT VAT |
9941 | NL VAT |
9942 | PT VAT |
9943 | RO VAT |
9944 | SE VAT |
9945 | SI VAT |
9946 | SK VAT |
Identifiants PEPPOL BIS 3.0 reconnus
Le validateur reconnaît les identifiants courants de la suite PEPPOL BIS 3.0 et leur attache un libellé :
urn:peppol:bis:billing:3.0:invoice— Invoice.urn:peppol:bis:billing:3.0:creditnote— CreditNote.urn:peppol:bis:ordering:3.0:order— Order.urn:peppol:bis:ordering:3.0:orderresponse— OrderResponse.urn:peppol:bis:despatch:3.0:despatchadvice— DespatchAdvice.urn:peppol:bis:catalogue:3.0:catalogue— Catalogue.urn:peppol:bis:mlr:3.0:mlr— Message Level Response.
Côté process :
urn:peppol:bis:billing:3.0— Process Billing 3.0.urn:peppol:bis:ordering:3.0— Process Ordering 3.0.urn:peppol:bis:despatch:3.0— Process Despatch 3.0.
Limites
-
Pas de validation XSD complète de l'enveloppe — uniquement les règles
listées ci-dessus. Le schéma officiel
StandardBusinessDocumentHeader.xsdest strict sur quelques cardinalités secondaires que nous ne couvrons pas. - Pas de validation du payload wrappé. Si le corps est un UBL Invoice, utilisez Validateur UBL 2.1 ou Validateur PEPPOL en aval.
- Pas de vérification de signature ni de chaîne TLS — l'enveloppe est examinée en clair, sans couche AS4.
Confidentialité
Documentation associée
- UBL / PEPPOL — la vue d'ensemble du réseau OpenPEPPOL.
- PEPPOL BIS Billing 3.0 — la spécification de référence pour les factures sur PEPPOL.
- PEPPOL Code Lists — la liste à jour des document type IDs et process IDs.
- UN/CEFACT SBDH 1.3 — le schéma XSD officiel et son guide d'implémentation.