PEPPOL SBDH Validator
On this page
Client-side validator for the SBDH (Standard Business Document Header) envelope. Checks sender / receiver ICDs, document type, PEPPOL BIS 3.0 process ID, RFC 3339 timestamps, payload presence — without sending a byte to a server.
Paste a SBDH envelope (StandardBusinessDocument) to validate the PEPPOL header.
How it works
SBDH (Standard Business Document Header) is the XML envelope normalised
by ISO/IEC 9735, profiled by UN/CEFACT and refined by GS1 XML 3.0 to
wrap a business document (UBL Invoice, UBL CreditNote, EDIFACT INVOIC…)
for transport. On the OpenPEPPOL network, every document handed off
between Access Points over AS4 is packed inside a
<StandardBusinessDocument> carrying:
- The ISO 6523 sender and receiver identifiers (e.g.
0192:991825827). - The exact payload nature (Standard URI, TypeVersion, local Type).
- An instance GUID (
InstanceIdentifier) for traceability. - The PEPPOL
DOCUMENTIDandPROCESSIDBusinessScope.
Validator pipeline:
- XML parsing (DOMParser in browser, fast-xml-parser fallback).
- Lookup of the
StandardBusinessDocumentroot. - Extraction of each header block (Sender, Receiver, DocumentIdentification, BusinessScope).
- Application of the rules below.
Rules checked
- Root element:
StandardBusinessDocument(any prefix). The canonical namespace ishttp://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader— a different namespace raises a warning, not an error. - HeaderVersion: must be exactly
1.0(SBDH 1.3 still uses the1.0header tag). Any other value, or absence, raises a blocking error. - Sender / Receiver: at least one of each, with a
non-empty
<Identifier>. The ICD scheme (the prefix before:) is checked against the ISO 6523 list below — an unknown ICD raises a warning. - DocumentIdentification: the five fields
Standard,TypeVersion,InstanceIdentifier,Type,CreationDateAndTimeare mandatory.CreationDateAndTimemust be RFC 3339 (YYYY-MM-DDThh:mm:ssZor with explicit offset). - BusinessScope: PEPPOL requires two
<Scope>entries — one of typeDOCUMENTID, one of typePROCESSID. A missing entry raises a warning.InstanceIdentifiervalues shaped asurn:peppol:bis:…are checked against the bundled list. - Loopback: when Sender and Receiver carry the exact same value, a warning is emitted (most often unintentional in integration).
- Payload presence: a business element must follow the
<StandardBusinessDocumentHeader>; a body-lessStandardBusinessDocumentraises a warning.
Supported ISO 6523 ICD schemes
The list below covers the ICDs actively used on the OpenPEPPOL network. The full OASIS registry contains ~250 codes — we bundle the 105 most-used ones for recognition and labelling.
| ICD code | Registry / country |
|---|---|
0002 | FR SIRENE — System Information et Repertoire des Entreprise et des Etablissements: SIRENE |
0007 | SE ORGNR — Organisationsnummer |
0009 | FR SIRET — SIRET-CODE |
0037 | FI OVT — LY-tunnus |
0060 | DUNS — Data Universal Numbering System (D-U-N-S Number) |
0088 | GS1 GLN |
0096 | DK P — The Danish Business Authority - P-number (DK:P) |
0097 | IT FTI — FTI - Ediforum Italia |
0106 | NL KVK — Vereniging van Kamers van Koophandel en Fabrieken in Nederland (Association of Chambers of Commerce and Industry in the Netherlands), Scheme |
0130 | EU NAL — Directorates of the European Commission |
0135 | IT SIA — SIA Object Identifiers |
0142 | IT SECETI — SECETI Object Identifiers |
0151 | AU ABN — Australian Business Number (ABN) Scheme |
0158 | SK ICO — Identification number of economic subject (ICO) |
0183 | CH UIDB — Swiss Unique Business Identification Number (UIDB) |
0184 | DK DIGST — The Danish Business Authority - CVR-number (DK:CVR) |
0188 | JP SST — Corporate Number of The Social Security and Tax Number System |
0190 | NL OINO — Organisatie-identificatienummer (OIN) |
0191 | EE CC — Company code |
0192 | NO ORG — Organisasjonsnummer (Enhetsregisteret) |
0193 | UBLBE — UBL.BE Party Identifier |
0195 | SG UEN — Singapore Nationwide E-Invoice Framework |
0196 | IS KTNR — Icelandic identifier |
0198 | DK ERST — The Danish Business Authority - SE-number (DK:SE) |
0199 | LEI — Legal Entity Identifier (LEI) |
0200 | LT LEC — Legal entity code |
0201 | IT CUUO — Codice Univoco Unità Organizzativa iPA |
0204 | DE LWID — Peppol-Leitweg-ID |
0205 | IT COD — CODDEST |
0208 | BE EN — Numero d'entreprise / ondernemingsnummer / Unternehmensnummer |
0209 | GS1 — GS1 identification keys |
0210 | IT CFI — CODICE FISCALE |
0211 | IT IVA — PARTITA IVA |
0212 | FI ORG — Finnish Organization Identifier |
0213 | FI VAT — Finnish Organization Value Add Tax Identifier |
0215 | FI NSI — Net service ID |
0216 | FI OVT2 — OVTcode |
0218 | LV URN — Unified registration number |
0221 | JP IIN — The registered number of the qualified invoice issuer |
0225 | FR CTC — FRCTC Electronic Address |
0230 | MY EIF — National e-Invoicing Framework |
0235 | AE TIN — UAE Tax Identification Number (TIN) |
0240 | LU MAT — Register of legal persons |
0242 | SPIS — OpenPeppol Service Provider Identification Scheme |
0244 | NG TID — Tax Identification (Tax ID) |
0245 | SK DIC — Tax identification number (DIČ) |
0246 | DE GEBA — German Electronic Business Address |
0248 | OM VAT — Oman Value Added Tax Identification Number (VATIN) |
9901 | DK CPR — Danish Ministry of the Interior and Health |
9902 | DK CVR — The Danish Commerce and Companies Agency |
9904 | DK SE — Danish Ministry of Taxation, Central Customs and Tax Administration |
9905 | DK VANS — Danish VANS providers |
9906 | IT VAT — Ufficio responsabile gestione partite IVA |
9907 | IT CF — TAX Authority |
9908 | NO ORGNR — Enhetsregisteret ved Bronnoysundregisterne |
9909 | NO VAT — Norwegian VAT number |
9910 | HU VAT — Hungary VAT number |
9912 | EU VAT — National ministries of Economy |
9913 | EU REID — Business Registers Network |
9914 | AT VAT — Österreichische Umsatzsteuer-Identifikationsnummer |
9915 | AT GOV — Österreichisches Verwaltungs bzw. Organisationskennzeichen |
9916 | AT CID — Firmenidentifikationsnummer der Statistik Austria |
9917 | IS KT — Icelandic National Registry |
9918 | IBAN — SOCIETY FOR WORLDWIDE INTERBANK FINANCIAL, TELECOMMUNICATION S.W.I.F.T |
9919 | AT KUR — Kennziffer des Unternehmensregisters |
9920 | ES VAT — Agencia Española de Administración Tributaria |
9921 | IT IPA — Indice delle Pubbliche Amministrazioni |
9922 | AD VAT — Andorra VAT number |
9923 | AL VAT — Albania VAT number |
9924 | BA VAT — Bosnia and Herzegovina VAT number |
9925 | BE VAT — Belgium VAT number |
9926 | BG VAT — Bulgaria VAT number |
9927 | CH VAT — Switzerland VAT number |
9928 | CY VAT — Cyprus VAT number |
9929 | CZ VAT — Czech Republic VAT number |
9930 | DE VAT — Germany VAT number |
9931 | EE VAT — Estonia VAT number |
9932 | GB VAT — United Kingdom VAT number |
9933 | GR VAT — Greece VAT number |
9934 | HR VAT — Croatia VAT number |
9935 | IE VAT — Ireland VAT number |
9936 | LI VAT — Liechtenstein VAT number |
9937 | LT VAT — Lithuania VAT number |
9938 | LU VAT — Luxemburg VAT number |
9939 | LV VAT — Latvia VAT number |
9940 | MC VAT — Monaco VAT number |
9941 | ME VAT — Montenegro VAT number |
9942 | MK VAT — Macedonia, the former Yugoslav Republic of VAT number |
9943 | MT VAT — Malta VAT number |
9944 | NL VAT — Netherlands VAT number |
9945 | PL VAT — Poland VAT number |
9946 | PT VAT — Portugal VAT number |
9947 | RO VAT — Romania VAT number |
9948 | RS VAT — Serbia VAT number |
9949 | SI VAT — Slovenia VAT number |
9950 | SK VAT — Slovakia VAT number |
9951 | SM VAT — San Marino VAT number |
9952 | TR VAT — Turkey VAT number |
9953 | VA VAT — Holy See (Vatican City State) VAT number |
9954 | NL OIN — Dutch Originator's Identification Number |
9955 | SE VAT — Swedish VAT number |
9956 | BE CBE — Belgian Crossroad Bank of Enterprise number |
9957 | FR VAT — French VAT number |
9958 | DE LID — Peppol-Leitweg-ID |
9959 | US EIN — US Employer ID Number |
PEPPOL BIS 3.0 identifiers recognised
The validator recognises the common PEPPOL BIS 3.0 identifiers and attaches a label:
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.
Process IDs:
urn:peppol:bis:billing:3.0— Billing 3.0 process.urn:peppol:bis:ordering:3.0— Ordering 3.0 process.urn:peppol:bis:despatch:3.0— Despatch 3.0 process.
Limits
-
No full XSD validation of the envelope — only the rules above. The
official
StandardBusinessDocumentHeader.xsdis strict on a few secondary cardinalities we do not cover. - No validation of the wrapped payload. If the body is a UBL Invoice, run it through UBL 2.1 Validator or PEPPOL Validator downstream.
- No signature or TLS chain verification — the envelope is examined in cleartext, outside the AS4 transport layer.
Privacy
Related documentation
- UBL / PEPPOL — overview of the OpenPEPPOL network.
- PEPPOL BIS Billing 3.0 — reference specification for invoices on PEPPOL.
- PEPPOL Code Lists — the up-to-date list of document type and process IDs.
- UN/CEFACT SBDH 1.3 — the official XSD and implementation guide.