Auf dieser Seite
Die kurze Antwort
PEPPOL-EN16931-P0104 schlägt für jede cac:TaxCategory fehl, die VATEX-EU-G trägt, deren cbc:ID aber nicht G ist. Der Code besagt, dass die Lieferung eine Ausfuhr außerhalb der EU ist, und EN 16931 gibt Ausfuhren eine eigene Kategorie, G, getrennt von steuerbefreiten Lieferungen und solchen zum Nullsatz. Verlassen die Waren die EU, setzen Sie die Kategorie auf G; verlassen sie die EU nicht, ist der Ausfuhrcode falsch.
Im aufgezeichneten Beispiel behält eine Rechnung an einen Käufer in New York den Ausfuhrcode und den Text Export outside the EU, stellt aber ihre Aufschlüsselung und ihre Position in die Kategorie E. Der Prüfschritt EN 16931 akzeptiert das, weil eine steuerbefreite Aufschlüsselung mit Grund vollständig ist; nur der Peppol-Prüfschritt erkennt, dass der Grund der Kategorie widerspricht.
Was die Regel prüft
Die Regel wählt eine cac:TaxCategory über ihren Befreiungsgrund-Code in Großbuchstaben aus und lässt sie nur bestehen, wenn die Kategorie ohne Randleerzeichen G ist. Im Versuch wurde vatex-eu-g in der steuerbefreiten Aufschlüsselung genauso gemeldet wie der Code in Großbuchstaben.
Der Code selbst wird nicht gekürzt. Im Versuch bestand VATEX-EU-G mit einem Leerzeichen davor oder danach in derselben steuerbefreiten Aufschlüsselung jeden Prüfschritt: BR-CL-22 entfernt die Randleerzeichen und akzeptiert den Wert, und diese Regel erkennt ihn nicht mehr. Die Auffüllung verdeckt den Widerspruch, ohne ihn zu beheben.
Andere falsche Kategorien scheitern auf dieselbe Weise, jeweils mit ihren eigenen Regeln dazu. Im Versuch meldete eine Aufschlüsselung zum Nullsatz mit VATEX-EU-G diese Regel und BR-Z-10, das dort keinen Befreiungsgrund zulässt, und eine nicht steuerbare Aufschlüsselung mit dem Code meldete nur diese Regel.
Die Prüfung liest weder die Anschrift des Käufers noch die Lieferanschrift, daher kann die Regel nicht erkennen, ob die Waren die EU wirklich verlassen haben. Sie hält nur Code und Kategorie aneinander fest.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-121 | Code für den Grund der Umsatzsteuerbefreiung | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCode |
| BT-118 | Code der Umsatzsteuerkategorie | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID |
| BT-151 | Code der Umsatzsteuerkategorie des in Rechnung gestellten Artikels | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Verkäufe außerhalb der EU werden als steuerbefreit gebucht, weil keine Umsatzsteuer berechnet wird, während der Befreiungscode aus einem separaten Ausfuhrkennzeichen stammt.
- Im britischen Umsatzsteuerrecht sind Warenausfuhren zum Nullsatz besteuert, daher werden sie auf
Zabgebildet, und die AusfuhrkategorieGaus EN 16931 wird nie verwendet. - Pro Kunde ist ein einziger Befreiungscode eingerichtet, sodass ein Kunde im Ausland
VATEX-EU-Gin jeder Aufschlüsselung erhält, auch bei Dienstleistungen, die anders besteuert werden.
So korrigieren Sie das Dokument
- Prüfen Sie, ob die Lieferung eine Ausfuhr von Waren ist, die die EU verlassen, mit den Nachweisen, die Ihr Umsatzsteuerrecht verlangt. Diese Entscheidung, nicht das Fehlen von Umsatzsteuer, bestimmt die Kategorie.
- Ist es eine Ausfuhr, setzen Sie
cbc:IDin der Aufschlüsselung und in jeder Position, jedem Nachlass und jedem Zuschlag, die sie abdeckt, aufG, mit dem Satz0, und behalten SieVATEX-EU-G. Das korrigierte Beispiel brauchte keine weitere Änderung: Die Umsatzsteuer-Identifikationsnummer des Verkäufers war fürBR-G-02bereits vorhanden. - Ist es keine Ausfuhr, behalten Sie die tatsächliche Kategorie und ersetzen Sie
VATEX-EU-Gdurch den Code für diese Behandlung, oder entfernen Sie den Code und geben Sie einen Begründungstext an, wie esBR-E-10bei einer steuerbefreiten Aufschlüsselung erlaubt. Bei einer Aufschlüsselung zum Nullsatz oder zum Normalsatz entfernen Sie den Code und geben auch keinen Begründungstext an:BR-Z-10undBR-S-10lassen keines von beiden zu. - Leiten Sie Kategorie und Befreiungscode aus einer einzigen Steuerfindung ab, damit eine spätere Änderung am einen den anderen nicht zurücklässt.
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: eine Ausfuhr, in der Aufschlüsselung und in der Position als steuerbefreit, E, codiert
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>E</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReasonCode>VATEX-EU-G</cbc:TaxExemptionReasonCode>
<cbc:TaxExemptionReason>Export outside the EU</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
<!-- totals and the start of the invoice line omitted from this fragment -->
<cac:ClassifiedTaxCategory>
<cbc:ID>E</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>Ausschnitt der korrigierten Rechnung: Die Ausfuhr hat an beiden Stellen die Kategorie G
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>G</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReasonCode>VATEX-EU-G</cbc:TaxExemptionReasonCode>
<cbc:TaxExemptionReason>Export outside the EU</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
<!-- totals and the start of the invoice line omitted from this fragment -->
<cac:ClassifiedTaxCategory>
<cbc:ID>G</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>Die fehlerhafte Rechnung hat E, wo die korrigierte G hat, in der Aufschlüsselung und in der Kategorie der Position; der Code VATEX-EU-G, der Begründungstext, der Käufer in den Vereinigten Staaten und die Beträge sind in beiden gleich. Das fehlerhafte Dokument meldet nur diese Peppol-Regel, da eine steuerbefreite Aufschlüsselung mit Grund und einem Steuersatz von null jede Regel von EN 16931 erfüllt.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet PEPPOL-EN16931-P0104. 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 für UBL
InvoiceundCreditNote. Eine steuerbefreite Gutschrift mitVATEX-EU-Gmeldete im Versuch diese Regel. - Nachlässe und Zuschläge auf Dokumentenebene tragen ebenfalls eine
cac:TaxCategory, daher wird ein Code dort auf dieselbe Weise geprüft. Die Kategorie einer Position ist einecac:ClassifiedTaxCategory, die diese Regel nicht liest. - Eine Regel von Peppol BIS Billing im Peppol-Prüfschritt. Im Prüfschritt EN 16931 bestätigt
BR-CL-22nur, dassVATEX-EU-Gein gelisteter Code ist.
Verwandte Regeln
- BR-G-10 verlangt einen Befreiungsgrund in einer Ausfuhraufschlüsselung, den VATEX-EU-G liefert
- PEPPOL-EN16931-P0106 bindet den innergemeinschaftlichen Code VATEX-EU-IC auf dieselbe Weise an die Kategorie K
- PEPPOL-EN16931-P0110 erkennt die umgekehrte Verwechslung, einen Code der Differenzbesteuerung für Kunstgegenstände in einer Ausfuhraufschlüsselung
- BR-Z-10 meldet VATEX-EU-G ein zweites Mal, wenn eine Ausfuhr zum Nullsatz codiert ist
- 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-28.1: Quelle geprüft am 2026-09-28, Erklärung zuletzt aktualisiert am 2026-09-28.
Die offizielle Definition von PEPPOL-EN16931-P0104 (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.

