Auf dieser Seite
Die kurze Antwort
PEPPOL-EN16931-P0100 schlägt fehl, wenn cbc:InvoiceTypeCode einen Code außerhalb der Liste von Peppol BIS Billing enthält. Senden Sie 380 für eine Handelsrechnung oder einen anderen Code aus dieser Liste, der das Dokument zutreffend beschreibt, etwa 386 für eine Vorauszahlungsrechnung oder 383 für eine Belastungsanzeige.
Ein Code kann ein echter Rechnungscode aus UNTDID 1001 sein, den BR-CL-01 akzeptiert, und hier trotzdem fehlschlagen. Das aufgezeichnete 325 ist eine Proformarechnung, die keine Zahlung fordert; Peppol BIS Billing hat dafür keinen Code, und eine Umcodierung in 380 würde ein Dokument, das nichts verlangt, als Zahlungsaufforderung darstellen.
Was die Regel prüft
Die Regel liest cbc:InvoiceTypeCode, entfernt umgebende Leerzeichen und vergleicht den Wert mit 26 Codes: 71, 80, 82, 84, 102, 218, 219, 326, 331, 380, 382, 383, 384, 386, 388, 393, 395, 553, 575, 623, 780, 817, 870, 875, 876 und 877.
EN 16931 erlaubt mehr Rechnungscodes. Im Versuch bestanden 325, 389 (Rechnung im Selbstfakturierungsverfahren) und 130 jeweils BR-CL-01 und schlugen nur bei dieser Regel fehl.
Sie greift nur, wenn cbc:ProfileID eine Geschäftsprozesskennung ist, die die Peppol-Regeln kennen. Unter einer unbekannten Prozesskennung ergab 325 im Versuch PEPPOL-EN16931-R007 und keinen Befund dieser Regel; wird die Prozesskennung korrigiert, kann also als Nächstes diese Regel erscheinen.
Auf der Liste zu stehen reicht nicht immer. 326 (Teilrechnung) und 384 (Rechnungskorrektur) sind gelistet, aber PEPPOL-EN16931-P0112 beschränkt sie dann auf Rechnungen zwischen zwei deutschen Parteien; 326 meldete im Versuch beim britischen Beispiel diese Regel.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-3 | Code für den Rechnungstyp | cbc:InvoiceTypeCode |
| BT-23 | Geschäftsprozesstyp | cbc:ProfileID |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Die Codetabelle wurde aus der vollständigen Liste UNTDID 1001 oder aus der Teilmenge von EN 16931 aufgebaut statt aus der Peppol-Teilmenge.
- Entwürfe, Proformarechnungen oder Angebote laufen durch denselben Export wie endgültige Rechnungen und behalten ihren eigenen Typcode.
- Rechnungen im Selbstfakturierungsverfahren, codiert als
389, werden über den gewöhnlichen Billing-Prozess gesendet. - Eine interne Dokumenttypnummer ist zufällig ein gültiger Code aus UNTDID 1001 mit anderer Bedeutung.
So korrigieren Sie das Dokument
- Klären Sie, was das Dokument ist. Handelt es sich um eine gewöhnliche Zahlungsforderung für Waren oder Dienstleistungen, verwenden Sie
380. - Wählen Sie für andere Rechnungsarten den passenden Code aus der obigen Peppol-Liste, nicht aus der vollständigen Liste UNTDID 1001. Bei
326oder384prüfen Sie zusätzlich die Bedingung der deutschen Parteien. - Fordert das Dokument keine Zahlung, wie bei einer Proformarechnung, verhindern Sie, dass es als Peppol-Rechnung gesendet wird, statt es umzucodieren.
- Beschränken Sie die Codetabelle in Ihrer Zuordnung auf die Peppol-Liste, damit ein nicht unterstützter Code schon beim Erzeugen des Dokuments auffällt.
Vorher und nachher
Dies sind Ausschnitte, keine vollständigen Dokumente. Die vollständigen synthetischen Dokumente, aus denen sie stammen, sind unten verlinkt.
Ausschnitt der fehlerhaften Rechnung: ein bekannter Billing-Prozess mit Typcode 325, Proformarechnung
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>EXAMPLE-INV-001</cbc:ID>
<cbc:IssueDate>2026-09-08</cbc:IssueDate>
<cbc:DueDate>2026-10-08</cbc:DueDate>
<cbc:InvoiceTypeCode>325</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>GBP</cbc:DocumentCurrencyCode>Ausschnitt der korrigierten Rechnung: Typcode 380, Handelsrechnung
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>EXAMPLE-INV-001</cbc:ID>
<cbc:IssueDate>2026-09-08</cbc:IssueDate>
<cbc:DueDate>2026-10-08</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>GBP</cbc:DocumentCurrencyCode>Nur cbc:InvoiceTypeCode unterscheidet sich: 325 in der fehlerhaften Rechnung, 380 in der korrigierten. Das fehlerhafte Dokument meldet nur PEPPOL-EN16931-P0100; der Prüfschritt EN 16931 besteht, weil 325 auf der umfassenderen Liste steht, die BR-CL-01 prüft. Der korrigierte Wert passt zu diesem Beispiel, das eine gewöhnliche Rechnung ist; er ist keine Anleitung, eine echte Proformarechnung umzucodieren.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet PEPPOL-EN16931-P0100. Das korrigierte Dokument besteht jeden Prüfschritt ohne Befunde.Fehlerhaftes XML herunterladenKorrigiertes XML herunterladen
Aufgezeichnet mit phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, der Engine hinter dem kostenlosen Validator, mit synthetischen Daten. Ein aufgezeichnetes Ergebnis ist ein Regressionsnachweis für diese Dokumente, keine Zertifizierung.
Wo die Regel gilt
- Gilt nur für UBL
Invoice. EineCreditNoteträgtcbc:CreditNoteTypeCode, dasPEPPOL-EN16931-P0101gegen eine eigene Liste prüft. - Dieselbe Liste gilt unter jeder bekannten Prozesskennung, auch unter
urn:peppol:bis:billing_with_response:325schlug im Versuch auch mit dieser Kennung fehl. - Ein Code, der auf keiner der beiden Listen steht, etwa
999, oder ein leeres Element wird hier und vonBR-CL-01gemeinsam gemeldet.
Verwandte Regeln
- BR-CL-01 prüft dasselbe Element gegen die umfassendere Liste von EN 16931
- PEPPOL-EN16931-P0101 wendet die Peppol-Einschränkung auf Gutschrift-Typcodes an
- PEPPOL-EN16931-R007 muss zuerst bestehen, weil diese Regel nur für einen bekannten Geschäftsprozess läuft
- BR-04 meldet einen Typcode, der ganz fehlt
- Alle Regeln der Referenz ansehen
- Hintergrund (auf Englisch): How Peppol invoice validation actually works
Umfang und Quelle
Geschrieben für Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, angewendet auf Invoice- und CreditNote-Dokumente in UBL 2.1. Andere Profile, Syntaxen und Releases können diese Kennung anders definieren. Version des Hinweiskatalogs 2026-09-24.1: Quelle geprüft am 2026-09-24, Erklärung zuletzt aktualisiert am 2026-09-24.
Die offizielle Definition von PEPPOL-EN16931-P0100 (auf Englisch) enthält den normativen Wortlaut und den Test. Diese Seite ist unsere Erklärung dazu, keine Kopie.
Die Erklärung ändert das Urteil der Engine nicht. Dass Sie diesen Befund beheben, heißt nicht, dass das Dokument jeden Prüfschritt besteht. Die Validierung bescheinigt keine rechtliche oder steuerliche Konformität und überträgt kein Dokument über Peppol.

