Peppol & e-facturatie

Peppol: nummer en schemeID

Een standaardartikelnummer in een Peppol-factuur hoort samen met het kenmerk van zijn identificatiestelsel. Controleer dat paar bij de juiste factuurregel. Twee aanwezige nummers kunnen onderling verwisseld zijn, ook wanneer het stelselkenmerk op beide regels bekend is.

Kort antwoord

Leg per onderzochte regel het bedoelde standaardartikelnummer en schemeID naast dezelfde exportversie. Houd de artikelcodes van verkoper en koper in afzonderlijke kolommen. Vraag de bron van een onbekend nummer na voordat je zelf een stelsel kiest.

Deze uitleg gaat over UBL Invoice binnen Peppol BIS Billing 3.0.21, May 2026 Release. Ons oefendossier SI2710 vergelijkt alleen velden in eigen, onvolledige XML-fragmenten. Het beoordeelt geen echt product of volledige factuur.

Een optionele groep met een verplicht kind

De officiële groep StandardItemIdentification staat binnen InvoiceLine / Item. De cardinaliteit is 0..1: de groep kan ontbreken of één keer voorkomen. Neem je haar op, dan hoort daar één cbc:ID bij. De 1..1 van dat kind maakt de hele groep niet op iedere factuurregel verplicht.

Volgens de veldpagina van BT-157 is dit een artikelidentificatie op basis van een geregistreerd stelsel. De plaats in de structuur draagt dus betekenis. Een nummer dat alleen in de omschrijving staat, is daarmee nog niet als standaardartikelidentificatie vastgelegd.

Vraag bij een echte klantafspraak welk artikel en welke verpakking of uitvoering bedoeld worden. De algemene syntax vertelt je niet welk nummer inhoudelijk bij jouw levering past.

Lees nummer en schemeID als paar

Bij deze ID is schemeID verplicht. Het attribuut benoemt het identificatiestelsel en verwijst naar de ISO 6523 ICD-lijst. Bewaar daarom de voorloopnul wanneer je bijvoorbeeld 0160 overneemt; het is een code, geen bedrag om als getal te formatteren.

In de gekoppelde ICD-lijst heet 0160 GTIN, Global Trade Item Number. Dat zegt welk soort identificatie wordt aangeduid. Het is geen bewijs dat een willekeurige tekenreeks een bestaand of juist toegewezen GTIN is. Kopieer 0160 dus niet automatisch naar ieder algemeen artikelcodeveld.

De lijst bevat ook andere stelsels. Laat bij een echte export vaststellen welk stelsel de bron gebruikt en welke onderbouwing bij het artikelnummer hoort. Onze oefening kiest geen stelsel voor een echte onderneming.

Verkoperscode en classificatie hebben andere plaatsen

De BIS-uitleg over artikelidentificaties onderscheidt de artikelcode van koper, die van verkoper en de standaardidentificatie. Voor de eerste twee gebruikt die uitleg geen scheme-attribuut. Het verplichte schemeID van de standaardidentificatie hoort dus niet bij ieder ID dat je onder Item vindt.

Gebruik onze controle van verkopers- en koperscodes om die bronrollen apart te houden. Het factuurregelnummer wijst weer naar de regel zelf.

Een classificatie benoemt het type of de aard van een artikel. Daarvoor staat ItemClassificationCode onder CommodityClassification, met listID. De controle van classificatie en listID behandelt die afzonderlijke combinatie. Een classificatiecode vervangt het standaardartikelnummer niet.

Eigen proef: twee nummers op de verkeerde regel

We verzinnen SI2710 met regels 10 en 20. Ons oefenblad verwacht op 10 het nummer OEFEN-ST-A en op 20 OEFEN-ST-B, telkens naast schemeID 0160. Deze twee oefennummers zijn expres geen GTIN's en mogen niet als echte productnummers worden gebruikt. We onderzoeken alleen plaats en overeenstemming met het oefenblad.

FragmentUitgelezen vergelijking
A · nummers verwisseldBeide regels noemen 0160. Nul van twee nummer-stelselparen past bij de bedoelde regel.
B · nummers teruggezetTwee van twee paren passen. Alleen de twee nummerwaarden zijn veranderd.
C · eerste stelsel gewijzigdRegel 10 noemt nu OEFEN-X. Eén van twee paren past; beide schemeID-attributen bestaan nog.

Een namespacebewuste parser heeft de drie fragmenten uitgelezen. Een afzonderlijke vergelijking met vooraf vastgelegde ja/nee-rijen geeft dezelfde aantallen: A nee/nee, B ja/ja, C nee/ja. De koperscodes K-10/K-20 en verkoperscodes S-10/S-20 blijven in alle fragmenten gelijk.

In A en B vinden we twee keer de bekende code 0160; in C nog één keer. OEFEN-X komt niet in de gelezen ICD-lijst voor. Het aantal aanwezige schemeID-attributen blijft steeds twee. Aanwezigheid, een bekende stelselcode en het bedoelde paar op de juiste regel leveren dus verschillende uitkomsten op.

Wat de twee regelteksten controleren

BR-64 vraagt een stelselkenmerk bij de standaardartikelidentificatie. De gepubliceerde test luidt exists(@schemeID): aanwezigheid. Onze C laat zien waarom die aanwezigheid alleen niet vertelt welke code er is ingevuld.

BR-CL-21 controleert een aanwezig schemeID tegen de toegestane ISO 6523 ICD-codes. De ID-pagina noemt beide regels fatal. Ook een bekende stelselcode vergelijkt het artikelnummer niet met ons oefenblad. De verwisseling in A blijft daarom een afzonderlijke inhoudelijke controlevraag.

Wij hebben de regelteksten gelezen, geen volledige XSD- of Schematron-validatie uitgevoerd. B bevat nog steeds fictieve, onvolledige gegevens. Twee passende oefenparen betekenen geen geldige GTIN's, juiste productkoppeling of verzendbare factuur.

Herstel de bron en controleer beide regels opnieuw

Stel bij A een gerichte vraag: welk bronveld en welke exportkoppeling leveren de standaardidentificatie van regels 10 en 20? Voeg conceptversie, regelnummer, verwachte waarde, aangetroffen waarde en schemeID toe. Laat na herstel opnieuw exporteren en vergelijk beide regels, ook als iemand maar één regel heeft aangepast.

Bewaar de nieuwe export bij de bijbehorende bronversie en vraag apart om het volledige validatierapport. Leg bij een echt standaardnummer ook de herkomst en toepasselijke artikelvariant vast. Een vinkje bij een technische regel bevestigt de echte levering, ontvangeracceptatie of betaling niet.

Officiële bronnen en proefgrenzen

Acht officiële OpenPeppol HTML-pagina's rechtstreeks gelezen op 27 oktober 2026. De release-informatie noemt 3.0.21, gepubliceerd op 20 mei 2026 en verplicht vanaf 17 augustus 2026. SI2710 en alle oefencodes zijn onze eigen fictieve uitwerking. Geen boekhoudpakket, productregister, GTIN-controle, volledige validator, ontvangst of verzending getest.

Bekijk het Peppol-overzicht voor andere gerichte factuurcontroles.