XRechnung 检查器

粘贴或打开一张 XRechnung 发票 —— UBL 或 CII 都可以。每条发现都按 KoSIT 官方的 BR-DE 规则编号报出,你可以逐条到公开发布的 Schematron 里核对,而不必只听我们的。

🔒 你的数据不会离开浏览器 —— 发票在本地读取,从不上传。

本地读取 —— 不会发送到任何地方。

XRechnung 是德国在 EN 16931 之上自己加的一层

XRechnung 是 EN 16931 的德国 CIUS(核心发票使用规范)—— 向德国公共部门开票时强制使用,在德国 B2B 中也被广泛采用。它在欧洲核心标准之上加了自己的规则,由 KoSIT(德国的标准化机构)编号为 BR-DE-*。这些不是 Peppol 的规则 —— 一份文件可以通过 Peppol BIS Billing 3.0,却仍然过不了 XRechnung 的德国附加规则,反过来也一样。

为什么求值的比例比 Peppol 小

本页对 UBL 文件求值 56 条中的 13 条规则,对 CII 文件求值 12 条。这比本站 Peppol 检查器能做到的比例小,而且有真实的原因:Peppol 的 UBL-CR 规则大多是无条件的 ——「这个元素不应出现」;XRechnung 的 BR-DE 规则大多是有条件的 ——「如果增值税代码是 S、Z、E 或 AE 之一,就必须提供这一项」—— 这需要对税码分支和计算出的金额求值,而不只是检查某个元素在不在。与其去猜条件、冒出错结果的风险,本页只求值无条件的规则,其余的列出供对照。

有一个条件性错误在本页上线之前就被发现并修掉了:两条关于收货地址的规则,只在发票里确实写了收货地址时才适用 —— 大多数内销发票并不写,而是直接发到买方自己的地址。本检查器的早期版本漏掉了这个条件,本会把每一张普通发票都报成「缺少」一个它本来就不该有的收货城市。这已经修好,并且有一条回归测试把修好后的行为钉住。

官方规则只有德语版

KoSIT 从没发布过 BR-DE 规则文字的英文译本。本页报出一条发现时,描述它的那句话是我们自己对照德语原文写并核对过的说明,不是官方译文 —— 旁边同时摆着逐字照录的德语原文,以及其中嵌着的 EN 16931 官方英文业务术语(例如 "Seller city" (BT-37),这是 KoSIT 自己对欧洲术语的引用,不是我们翻译的)。下面的完整规则清单遵循同一条原则:德语原文、官方术语引用,中间不编造任何东西。

最常见的拒收原因,仍然是 CustomizationID

和 Peppol 一样,一张结构完好的发票,可能仅仅因为没有声明自己是 XRechnung 就被拒收。本页在应用任何规则之前,先把文件声明了什么摆出来。

全部 56 条 XRechnung 规则

KoSIT 只以德语发布这些规则 —— 不存在官方英文译本。下面逐字照录德语原文,旁边是其中嵌着的 EN 16931 官方英文业务术语(例如 BT-37)。UBL 文件求值其中 13 条,CII 文件求值 12 条 —— 其余规则取决于别的字段取值,只列出供对照。查看 KoSIT 公开发布的 Schematron。

BR-DE 56 条规则 —— UBL 求值 13 条,CII 求值 12 条
规则严重级别本页求值官方原文(德语)EN 16931 术语
BR-DE-1 致命 ✓ UBL+CII [BR-DE-1] Eine Rechnung (INVOICE) muss Angaben zu "PAYMENT INSTRUCTIONS" (BG-16) enthalten. BG-16
BR-DE-2 致命 ✓ UBL+CII [BR-DE-2] Die Gruppe "SELLER CONTACT" (BG-6) muss übermittelt werden. BG-6
BR-DE-3 致命 ✓ UBL+CII [BR-DE-3] Das Element "Seller city" (BT-37) muss übermittelt werden. BT-37
BR-DE-4 致命 ✓ UBL+CII [BR-DE-4] Das Element "Seller post code" (BT-38) muss übermittelt werden. BT-38
BR-DE-5 致命 ✓ UBL [BR-DE-5] Das Element "Seller contact point" (BT-41) muss übermittelt werden. BT-41
BR-DE-6 致命 ✓ UBL+CII [BR-DE-6] Das Element "Seller contact telephone number" (BT-42) muss übermittelt werden. BT-42
BR-DE-7 致命 ✓ UBL+CII [BR-DE-7] Das Element "Seller contact email address" (BT-43) muss übermittelt werden. BT-43
BR-DE-8 致命 ✓ UBL+CII [BR-DE-8] Das Element "Buyer city" (BT-52) muss übermittelt werden. BT-52
BR-DE-9 致命 ✓ UBL+CII [BR-DE-9] Das Element "Buyer post code" (BT-53) muss übermittelt werden. BT-53
BR-DE-10 致命 ✓ 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 致命 ✓ 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 致命 ✓ UBL+CII [BR-DE-14] Das Element "VAT category rate" (BT-119) muss übermittelt werden. BT-119
BR-DE-15 致命 ✓ UBL+CII [BR-DE-15] Das Element "Buyer reference" (BT-10) muss übermittelt werden. BT-10
BR-DE-16 致命 — [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 警告 — [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 致命 — [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 警告 — [BR-DE-21] Das Element "Specification identifier" (BT-24) soll syntaktisch der Kennung des Standards XRechnung entsprechen. BT-24
BR-DE-22 致命 — [BR-DE-22] Das "filename"-Attribut aller "EmbeddedDocumentBinaryObject"-Elemente muss eindeutig sein —
BR-DE-23-a 致命 — [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 致命 — [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 致命 — [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 致命 — [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 致命 — [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 致命 — [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 警告 — [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 警告 — [BR-DE-27] In BT-42 sollen mindestens drei Ziffern enthalten sein. —
BR-DE-28 警告 — [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 致命 — [BR-DE-30] Wenn "DIRECT DEBIT" BG-19 vorhanden ist, dann muss "Bank assigned creditor identifier" BT-90 übermittelt werden. —
BR-DE-31 致命 — [BR-DE-31] Wenn "DIRECT DEBIT" BG-19 vorhanden ist, dann muss "Debited account identifier" BT-91 übermittelt werden. —
BR-DE-CVD-01 致命 — [BR-DE-CVD-01] Das Element <name /> "Contract reference" (BT-12) muss übermittelt werden. BT-12
BR-DE-CVD-02 致命 — [BR-DE-CVD-02] Das Element <name /> "Tender or lot reference" (BT-17) muss übermittelt werden. BT-17
BR-DE-CVD-03 致命 — [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 致命 — [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 致命 — [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 致命 — [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 致命 — [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 提示 — [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 致命 — [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 致命 — [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 致命 — [BR-DEX-04] Any scheme identifier in <name/> MUST be coded using one of the ISO 6523 ICD list. —
BR-DEX-05 致命 — [BR-DEX-05] Any scheme identifier in <name/> MUST be coded using one of the ISO 6523 ICD list. —
BR-DEX-06 致命 — [BR-DEX-06] Any scheme identifier in <name/> MUST be coded using one of the ISO 6523 ICD list. —
BR-DEX-07 致命 — [BR-DEX-07] Any scheme identifier for an Endpoint Identifier in <name/> MUST belong to the CEF EAS code list. —
BR-DEX-08 致命 — [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 致命 — [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 致命 — [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 致命 — [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 致命 — [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 致命 — [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 致命 — [BR-DEX-14] Die Währungsangabe von "Third party payment amount" BT-DEX-002 muss BT-5 ("Invoice currency code") entsprechen. —
BR-DEX-15 警告 — [BR-DEX-15] This CII file might use the concept of Sub Invoice Lines. However XRechnung does not support this. —
BR-TMP-2 警告 — [BR-TMP-2] BT-124 "External document location" muss eine absolute URL mit gültigem Schema enthalten. BT-124
BR-TMP-3 致命 — [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 警告 — [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 警告 — [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 致命 — [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

关于这些规则。 每一条都有编号、严重级别和通俗解释。每个来源链接都已登记在案,并对线上页面实际复验过,而不是凭印象写上去的. 规则如何编写、测试与保持更新 →