ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

PEPPOL SBDH Validator

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 DOCUMENTID and PROCESSID BusinessScope.

Validator pipeline:

  1. XML parsing (DOMParser in browser, fast-xml-parser fallback).
  2. Lookup of the StandardBusinessDocument root.
  3. Extraction of each header block (Sender, Receiver, DocumentIdentification, BusinessScope).
  4. Application of the rules below.

Rules checked

  • Root element: StandardBusinessDocument (any prefix). The canonical namespace is http://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 the 1.0 header 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, CreationDateAndTime are mandatory. CreationDateAndTime must be RFC 3339 (YYYY-MM-DDThh:mm:ssZ or with explicit offset).
  • BusinessScope: PEPPOL requires two <Scope> entries — one of type DOCUMENTID, one of type PROCESSID. A missing entry raises a warning. InstanceIdentifier values shaped as urn: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-less StandardBusinessDocument raises 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 68 most-used ones for recognition and labelling.

ICD code Registry / country
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

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.xsd is 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

Last updated: May 18, 2026