XRechnung Checker

Paste or open an XRechnung invoice — UBL or CII. Findings come back under KoSIT's official BR-DE rule identifiers, so you can look every one up in the published Schematron rather than taking our word for it.

🔒 Your data never leaves your browser — the invoice is read locally and never uploaded.

Read locally — nothing is sent anywhere.

XRechnung is Germany's own layer on top of EN 16931

XRechnung is the German CIUS (Core Invoice Usage Specification) of EN 16931 — mandatory for invoicing German public-sector bodies, and widely used in German B2B. It adds its own rules, numbered BR-DE-* by KoSIT (the German standardisation body), on top of the European core. These are not Peppol's rules — a document can pass Peppol BIS Billing 3.0 and still fail XRechnung's German additions, and the reverse.

Why the evaluated share is smaller than Peppol's

This page evaluates 13 of 56 rules for UBL documents, 12 for CII. That is a smaller fraction than this site's Peppol checker manages, for a real reason: most of Peppol's UBL-CR rules are unconditional — "this element should not appear". Most of XRechnung's BR-DE rules are conditional — "if the VAT code is one of S, Z, E or AE, then this must be provided" — which needs evaluating tax-code branches and computed amounts, not just checking whether an element exists. Rather than guess at a condition and risk a false result, this page only evaluates the rules that are unconditional, and lists the rest for reference.

One conditionality mistake was caught and fixed before this page shipped: two rules about the delivery address only apply if the invoice includes a delivery address at all — most domestic invoices do not, and ship straight to the buyer's own address. An early version of this checker missed that condition and would have flagged every ordinary invoice for a "missing" delivery city it was never supposed to have. It is fixed, and a regression test pins the fixed behaviour down.

The official rules are published in German only

KoSIT has never published an English translation of the BR-DE rule texts. Where this page reports a finding, the English sentence describing it is our own description, written and checked against the German original — not an official translation — shown alongside the verbatim German text and the official EN 16931 English business term embedded in it (for example "Seller city" (BT-37), which is KoSIT's own citation of the European term, not something we translated). The full rule list below follows the same rule: German original, official term reference, and nothing invented in between.

The most common rejection is still the CustomizationID

As with Peppol, a structurally sound invoice can be refused simply because it does not declare itself as XRechnung. This page shows what the document declares before any rule is applied.

Every one of the 56 XRechnung rules

KoSIT publishes these rules in German only — no official English translation exists. The German original is quoted verbatim below, alongside the official EN 16931 English business term embedded in it (e.g. BT-37). 13 are evaluated for UBL documents, 12 for CII — the rest are conditional on other field values and are listed for reference. See KoSIT's published Schematron.

BR-DE 56 rules — 13 evaluated for UBL, 12 for CII
RuleSeverityHereOfficial text (German)EN 16931 term
BR-DE-1 fatal ✓ UBL+CII [BR-DE-1] Eine Rechnung (INVOICE) muss Angaben zu "PAYMENT INSTRUCTIONS" (BG-16) enthalten. BG-16
BR-DE-2 fatal ✓ UBL+CII [BR-DE-2] Die Gruppe "SELLER CONTACT" (BG-6) muss übermittelt werden. BG-6
BR-DE-3 fatal ✓ UBL+CII [BR-DE-3] Das Element "Seller city" (BT-37) muss übermittelt werden. BT-37
BR-DE-4 fatal ✓ UBL+CII [BR-DE-4] Das Element "Seller post code" (BT-38) muss übermittelt werden. BT-38
BR-DE-5 fatal ✓ UBL [BR-DE-5] Das Element "Seller contact point" (BT-41) muss übermittelt werden. BT-41
BR-DE-6 fatal ✓ UBL+CII [BR-DE-6] Das Element "Seller contact telephone number" (BT-42) muss übermittelt werden. BT-42
BR-DE-7 fatal ✓ UBL+CII [BR-DE-7] Das Element "Seller contact email address" (BT-43) muss übermittelt werden. BT-43
BR-DE-8 fatal ✓ UBL+CII [BR-DE-8] Das Element "Buyer city" (BT-52) muss übermittelt werden. BT-52
BR-DE-9 fatal ✓ UBL+CII [BR-DE-9] Das Element "Buyer post code" (BT-53) muss übermittelt werden. BT-53
BR-DE-10 fatal ✓ UBL+CII [BR-DE-10] Das Element "Deliver to city" (BT-77) muss übermittelt werden, wenn die Gruppe "DELIVER TO ADDRESS" (BG-15) übermittelt wird. BT-77, BG-15
BR-DE-11 fatal ✓ UBL+CII [BR-DE-11] Das Element "Deliver to post code" (BT-78) muss übermittelt werden, wenn die Gruppe "DELIVER TO ADDRESS" (BG-15) übermittelt wird. BT-78, BG-15
BR-DE-14 fatal ✓ UBL+CII [BR-DE-14] Das Element "VAT category rate" (BT-119) muss übermittelt werden. BT-119
BR-DE-15 fatal ✓ UBL+CII [BR-DE-15] Das Element "Buyer reference" (BT-10) muss übermittelt werden. BT-10
BR-DE-16 fatal [BR-DE-16] Wenn in einer Rechnung die Steuercodes S, Z, E, AE, K, G, L oder M verwendet werden, muss mindestens eines der Elemente "Seller VAT identifier" (BT-31), "Seller tax registration identifier" (BT-32) oder "SELLER TAX REPRESENTATIVE PARTY" (BG-11) übermittelt werden. BT-31, BT-32, BG-11
BR-DE-17 warning [BR-DE-17] Mit dem Element "Invoice type code" (BT-3) sollen ausschließlich folgende Codes aus der Codeliste UNTDID 1001 übermittelt werden: 326 (Partial invoice), 380 (Commercial invoice), 384 (Corrected invoice), 389 (Self-billed invoice) und 381 (Credit note),875 (Partial construction invoice), 876 (Partial final construction invoice), 877 (Final construction invoice). BT-3
BR-DE-18 fatal [BR-DE-18] Skonto Zeilen in <name/> müssen diesem regulärem Ausdruck entsprechen: <value-of select="$XR-SKONTO-REGEX"/>. Die Informationen zur Gewährung von Skonto müssen wie folgt im Element "Payment terms" (BT-20) übermittelt werden: Anzugeben ist im ersten Segment "SKONTO", im zweiten "TAGE=n", im dritten "PROZENT=n". Prozentzahlen sind ohne Vorzeichen sowie mit Punkt getrennt von zwei Nachkommastellen anzugeben. Liegt dem zu berechnenden Betrag nicht BT-115, "fälliger Betrag" zugrunde, sondern nur ein Teil des fälligen Betrags der Rechnung, ist der Grundwert zur Berechnung von Skonto als viertes Segment "BASISBETRAG=n" gemäß dem semantischen Datentypen Amount anzugeben. Jeder Eintrag beginnt mit einer #, die Segmente sind mit einer # getrennt und eine Zeile schließt mit einer # ab. Am Ende einer vollständigen Skontoangabe muss ein XML-konformer Zeilenumbruch folgen. Alle Angaben zur Gewährung von Skonto müssen in Großbuchstaben gemacht werden. Zusätzliches Whitespace (Leerzeichen, Tabulatoren oder Zeilenumbrüche) ist nicht zulässig. Andere Zeichen oder Texte als in den oberen Vorgaben genannt sind nicht zulässig. BT-20
BR-DE-21 warning [BR-DE-21] Das Element "Specification identifier" (BT-24) soll syntaktisch der Kennung des Standards XRechnung entsprechen. BT-24
BR-DE-22 fatal [BR-DE-22] Das "filename"-Attribut aller "EmbeddedDocumentBinaryObject"-Elemente muss eindeutig sein
BR-DE-23-a fatal [BR-DE-23-a] Wenn BT-81 "Payment means type code" einen Schlüssel für Überweisungen enthält (30, 58), muss BG-17 "CREDIT TRANSFER" übermittelt werden. BT-81, BG-17
BR-DE-23-b fatal [BR-DE-23-b] Wenn BT-81 "Payment means type code" einen Schlüssel für Überweisungen enthält (30, 58), dürfen BG-18 und BG-19 nicht übermittelt werden. BT-81
BR-DE-24-a fatal [BR-DE-24-a] Wenn BT-81 "Payment means type code" einen Schlüssel für Kartenzahlungen enthält (48, 54, 55), muss genau BG-18 "PAYMENT CARD INFORMATION" übermittelt werden. BT-81, BG-18
BR-DE-24-b fatal [BR-DE-24-b] Wenn BT-81 "Payment means type code" einen Schlüssel für Kartenzahlungen enthält (48, 54, 55), dürfen BG-17 und BG-19 nicht übermittelt werden. BT-81
BR-DE-25-a fatal [BR-DE-25-a] Wenn BT-81 "Payment means type code" einen Schlüssel für Lastschriften enthält (59), muss genau BG-19 "DIRECT DEBIT" übermittelt werden. BT-81, BG-19
BR-DE-25-b fatal [BR-DE-25-b] Wenn BT-81 "Payment means type code" einen Schlüssel für Lastschriften enthält (59), dürfen BG-17 und BG-18 nicht übermittelt werden. BT-81
BR-DE-26 warning [BR-DE-26] Wenn im Element "Invoice type code" (BT-3) der Code 384 (Corrected invoice) übergeben wird, soll PRECEDING INVOICE REFERENCE BG-3 mind. einmal vorhanden sein. BT-3
BR-DE-27 warning [BR-DE-27] In BT-42 sollen mindestens drei Ziffern enthalten sein.
BR-DE-28 warning [BR-DE-28] In BT-43 soll genau ein @-Zeichen enthalten sein, welches nicht von einem Leerzeichen, einem Punkt, aber mindestens zwei Zeichen auf beiden Seiten flankiert werden soll. Ein Punkt sollte nicht am Anfang oder am Ende stehen.
BR-DE-30 fatal [BR-DE-30] Wenn "DIRECT DEBIT" BG-19 vorhanden ist, dann muss "Bank assigned creditor identifier" BT-90 übermittelt werden.
BR-DE-31 fatal [BR-DE-31] Wenn "DIRECT DEBIT" BG-19 vorhanden ist, dann muss "Debited account identifier" BT-91 übermittelt werden.
BR-DE-CVD-01 fatal [BR-DE-CVD-01] Das Element <name /> "Contract reference" (BT-12) muss übermittelt werden. BT-12
BR-DE-CVD-02 fatal [BR-DE-CVD-02] Das Element <name /> "Tender or lot reference" (BT-17) muss übermittelt werden. BT-17
BR-DE-CVD-03 fatal [BR-DE-CVD-03] In einer Rechnung muss mindestens eine <name /> INVOICE LINE (BG-25) enthalten sein, in der der Scheme identifier von <name /> "Item classification identifier" (BT-158) den Wert 'CVD' und der <name /> "Item attribute name" (BT-160) den Wert 'cva' enthält. BT-158, BT-160
BR-DE-CVD-04 fatal [BR-DE-CVD-04] Ein <name /> "Item classification identifier" (BT-158) mit dem Scheme identifier 'CVD' muss einen Wert aus der Liste der zulässigen Fahrzeugkategorien enthalten. BT-158
BR-DE-CVD-05 fatal [BR-DE-CVD-05] Wenn innerhalb von <name /> ITEM ATTRIBUTES (BG-32) der <name /> "Item attribute name" (BT-160) den Wert 'cva' hat, muss der <name /> "Item attribute value" (BT-161) einen der zulässigen Werte enthalten. BT-160, BT-161
BR-DE-CVD-06-a fatal [BR-DE-CVD-06-a] Wenn der Scheme identifier von <name /> "Item classification identifier" (BT-158) mit dem Wert 'CVD' angegeben ist, muss in derselben Rechnungszeile genau ein <name /> "Item attribute name" (BT-160) mit dem Wert 'cva' vorhanden sein. BT-158, BT-160
BR-DE-CVD-06-b fatal [BR-DE-CVD-06-b] Wenn <name /> "Item attribute name" (BT-160) mit dem Wert 'cva' angegeben ist, muss in derselben Rechnungszeile genau ein <name /> "Item classification identifier" (BT-158) mit dem Scheme identifier 'CVD' vorhanden sein. BT-160, BT-158
BR-DE-TMP-32 information [BR-DE-TMP-32] Eine Rechnung sollte zur Angabe des Liefer-/Leistungsdatums entweder BT-72 "Actual delivery date", BG-14 "Invoicing period" oder in jeder Rechnungsposition BG-26 "Invoice line period" enthalten. BT-72, BG-14, BG-26
BR-DEX-01 fatal [BR-DEX-01] Das Element <name /> "Attached Document" (BT-125) benutzt einen nicht zulässigen MIME-Code: <value-of select="@mimeCode" />. Im Falle einer Extension darf zusätzlich zu der Liste der mime codes (definiert in Abschnitt 8.2, "Binary Object") der MIME-Code application/xml genutzt werden. BT-125
BR-DEX-03 fatal [BR-DEX-03] Eine Sub Invoice Line (BG-DEX-01) muss genau eine "SUB INVOICE LINE VAT INFORMATION" (BG-DEX-06) enthalten.
BR-DEX-04 fatal [BR-DEX-04] Any scheme identifier in <name/> MUST be coded using one of the ISO 6523 ICD list.
BR-DEX-05 fatal [BR-DEX-05] Any scheme identifier in <name/> MUST be coded using one of the ISO 6523 ICD list.
BR-DEX-06 fatal [BR-DEX-06] Any scheme identifier in <name/> MUST be coded using one of the ISO 6523 ICD list.
BR-DEX-07 fatal [BR-DEX-07] Any scheme identifier for an Endpoint Identifier in <name/> MUST belong to the CEF EAS code list.
BR-DEX-08 fatal [BR-DEX-08] Any scheme identifier for a Delivery location identifier in <name/> MUST be coded using one of the ISO 6523 ICD list.
BR-DEX-09 fatal [BR-DEX-09] Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) - Paid amount (BT-113) + Rounding amount (BT-114) + Σ Third party payment amount (BT-DEX-002).
BR-DEX-10 fatal [BR-DEX-10] Das Element "Third party payment type" BT-DEX-001 muss übermittelt werden, wenn die Gruppe "THIRD PARTY PAYMENT" (BG-DEX-09) übermittelt wird.
BR-DEX-11 fatal [BR-DEX-11] Das Element "Third party payment amount" BT-DEX-002 muss übermittelt werden, wenn die Gruppe "THIRD PARTY PAYMENT" (BG-DEX-09) übermittelt wird.
BR-DEX-12 fatal [BR-DEX-12] Das Element "Third party payment description" BT-DEX-003 muss übermittelt werden, wenn die Gruppe "THIRD PARTY PAYMENT" (BG-DEX-09) übermittelt wird.
BR-DEX-13 fatal [BR-DEX-13] Die maximale Anzahl zulässiger Nachkommastellen für das Element "Third party payment amount" (BT-DEX-002) ist 2.
BR-DEX-14 fatal [BR-DEX-14] Die Währungsangabe von "Third party payment amount" BT-DEX-002 muss BT-5 ("Invoice currency code") entsprechen.
BR-DEX-15 warning [BR-DEX-15] This CII file might use the concept of Sub Invoice Lines. However XRechnung does not support this.
BR-TMP-2 warning [BR-TMP-2] BT-124 "External document location" muss eine absolute URL mit gültigem Schema enthalten. BT-124
BR-TMP-3 fatal [BR-TMP-3] Wenn BT-149 (Item price base quantity) sowohl in GrossPriceProductTradePrice als auch in NetPriceProductTradePrice vorhanden ist, müssen die Werte identisch sein. Wenn BT-150 (unit of measure code) auf dem NetPrice-Pfad vorhanden ist, muss es auch auf dem GrossPrice-Pfad vorhanden und identisch sein.
BR-TMP-4 warning [BR-TMP-4] BT-123 "Attached document description" (ram:Name) darf innerhalb eines "Supporting document" (BG-24) höchstens einmal vorkommen. BG-24, BT-123
BR-TMP-5 warning [BR-TMP-5] BT-125 "Attached document" (ram:AttachmentBinaryObject) darf innerhalb eines "Supporting document" (BG-24) höchstens einmal vorkommen. BG-24, BT-125
BR-TMP-CVD-01 fatal [BR-TMP-CVD-01] Das Bildungsschema für <name /> "Item classification identifier" (BT-158) ist aus der Codeliste UNTDID 7143 zu wählen. BT-158