einvoice / EN 16931 / XRechnung rule reference
Rule index
Every EN 16931 / XRechnung business rule the einvoice engine can fire, grouped by rule family, one row per rule. The row gives you the answer most lookups actually need — engine severity, profile, the BT/BG business terms the rule touches and the XML location it points at. The rule id links to that rule's own page, which adds the one-line fix in English and German and the verbatim official Schematron assert.
297 rules in total — 284 fatal, 12 warning, 1 information — across 21 families. Family headings are the standard EN 16931 / XRechnung rule-family labels; every cell below is rendered from the remediation catalog the engine itself validates against. The bindings are not uniform: 281 of the 297 bind both invoice syntaxes, 12 of the 297 bind UBL-2.1 only and 4 of the 297 bind UN/CEFACT-CII only, as published per rule id in export/rules.json and shown in the Syntax column. Back to the overview.
Profile says which artifact asserts the rule: en16931 for the 198 rules that come from the EN 16931 UBL Schematron (they fire for any EN 16931 invoice), xrechnung for the 99 that come from the German KoSIT XRechnung Schematron (they fire only when the invoice claims an XRechnung customization). Severity is what the engine does: fatal fails the run, warning and information are reported without failing it unless you raise the threshold. Syntax is which invoice syntax the rule binds, joined on rule id from export/rules.json: a cell naming both UBL-2.1 and UN/CEFACT-CII means the rule fires against either, a cell naming one means it fires only against that one — so a shop that emits a single syntax can see which rows are its own. XML location is the element the rule is anchored to, written as the UBL/CII path fragment the report prints.
Every row has a stable anchor equal to its rule id, so https://verifyhash.com/einvoice/rules/#BR-DE-15 opens this page at that rule — usable in a support reply, a ticket or a CI log.
BR (58)
Core EN 16931 content and cardinality rules.
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-01 | An Invoice shall have a Specification identifier (BT-24). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-24 | cbc:CustomizationID |
BR-02 | An Invoice shall have an Invoice number (BT-1). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-1 | cbc:ID |
BR-03 | An Invoice shall have an Invoice issue date (BT-2). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-2 | cbc:IssueDate |
BR-04 | An Invoice shall have an Invoice type code (BT-3). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-3 | cbc:InvoiceTypeCode |
BR-05 | An Invoice shall have an Invoice currency code (BT-5). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-5 | cbc:DocumentCurrencyCode |
BR-06 | An Invoice shall contain the Seller name (BT-27). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-27 | cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName |
BR-07 | An Invoice shall contain the Buyer name (BT-44). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-44 | cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName |
BR-08 | An Invoice shall contain the Seller postal address (BG-5). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-5 | cac:AccountingSupplierParty/cac:Party/cac:PostalAddress |
BR-09 | The Seller postal address (BG-5) shall contain a Seller country code (BT-40). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-5, BT-40 | cac:AccountingSupplierParty/cac:Party/cac:PostalAddress |
BR-10 | An Invoice shall contain the Buyer postal address (BG-8). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-8 | cac:AccountingCustomerParty/cac:Party/cac:PostalAddress |
BR-11 | The Buyer postal address shall contain a Buyer country code (BT-55). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-55 | cac:AccountingCustomerParty/cac:Party/cac:PostalAddress |
BR-12 | An Invoice shall have the Sum of Invoice line net amount (BT-106). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-106 | cac:LegalMonetaryTotal |
BR-13 | An Invoice shall have the Invoice total amount without VAT (BT-109). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-109 | cac:LegalMonetaryTotal |
BR-14 | An Invoice shall have the Invoice total amount with VAT (BT-112). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-112 | cac:LegalMonetaryTotal |
BR-15 | An Invoice shall have the Amount due for payment (BT-115). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-115 | cac:LegalMonetaryTotal |
BR-16 | An Invoice shall have at least one Invoice line (BG-25). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-25 | cac:InvoiceLine |
BR-17 | The Payee name (BT-59) shall be provided in the Invoice, if the Payee (BG-10) is different from the Seller (BG-4). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-4, BG-10, BT-59 | cac:PayeeParty |
BR-18 | The Seller tax representative name (BT-62) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-4, BG-11, BT-62 | cac:TaxRepresentativeParty |
BR-19 | The Seller tax representative postal address (BG-12) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-4, BG-11, BG-12 | cac:TaxRepresentativeParty |
BR-20 | The Seller tax representative postal address (BG-12) shall contain a Tax representative country code (BT-69), if the Seller (BG-4) has a Seller tax representative party (BG-11). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-4, BG-11, BG-12, BT-69 | cac:TaxRepresentativeParty/cac:PostalAddress |
BR-21 | Each Invoice line shall have an Invoice line identifier (BT-126). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-126 | cac:InvoiceLine |
BR-22 | Each Invoice line shall have an Invoiced quantity (BT-129). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-129 | cac:InvoiceLine |
BR-23 | An Invoice line (BG-25) shall have an Invoiced quantity unit of measure code (BT-130). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-130 | cac:InvoiceLine |
BR-24 | Each Invoice line shall have an Invoice line net amount (BT-131). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-131 | cac:InvoiceLine |
BR-25 | Each Invoice line (BG-25) shall contain the Item name (BT-153). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-153 | cac:InvoiceLine |
BR-26 | Each Invoice line shall contain the Item net price (BT-146). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-146 | cac:InvoiceLine |
BR-27 | The Item net price (BT-146) shall NOT be negative. | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-146 | cac:InvoiceLine |
BR-28 | The Item gross price (BT-148) shall NOT be negative. | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-148 | cac:InvoiceLine |
BR-29 | If both Invoicing period start date (BT-73) and end date (BT-74) are given then the end date shall be later or equal to the start date. | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-73, BT-74 | cac:InvoicePeriod |
BR-30 | If both Invoice line period start date (BT-134) and end date (BT-135) are given then the end date shall be later or equal to the start date. | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-134, BT-135 | cac:InvoiceLine/cac:InvoicePeriod |
BR-31 | Each Document level allowance (BG-20) shall have a Document level allowance amount (BT-92). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-92 | /ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
BR-32 | Each Document level allowance (BG-20) shall have a Document level allowance VAT category code (BT-95). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-95 | /ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
BR-33 | Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-97, BT-98 | /ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
BR-36 | Each Document level charge (BG-21) shall have a Document level charge amount (BT-99). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-99 | /ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = true()] |
BR-37 | Each Document level charge (BG-21) shall have a Document level charge VAT category code (BT-102). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-102 | /ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = true()] |
BR-38 | Each Document level charge (BG-21) shall have a Document level charge reason (BT-104) or a Document level charge reason code (BT-105). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-104, BT-105 | /ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = true()] |
BR-41 | Each Invoice line allowance (BG-27) shall have an Invoice line allowance amount (BT-136). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-27, BT-136 | //cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
BR-42 | Each Invoice line allowance (BG-27) shall have an Invoice line allowance reason (BT-139) or an Invoice line allowance reason code (BT-140). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-27, BT-139, BT-140 | //cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
BR-43 | Each Invoice line charge (BG-28) shall have an Invoice line charge amount (BT-141). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-28, BT-141 | //cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = true()] |
BR-44 | Each Invoice line charge (BG-28) shall have an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-28, BT-144, BT-145 | //cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = true()] |
BR-45 | Each VAT breakdown (BG-23) shall have a VAT category taxable amount (BT-116). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-116 | cac:TaxTotal/cac:TaxSubtotal |
BR-46 | Each VAT breakdown (BG-23) shall have a VAT category tax amount (BT-117). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-117 | cac:TaxTotal/cac:TaxSubtotal |
BR-47 | Each VAT breakdown (BG-23) shall be defined through a VAT category code (BT-118). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-118 | cac:TaxTotal/cac:TaxSubtotal |
BR-48 | Each VAT breakdown (BG-23) shall have a VAT category rate (BT-119), except if the Invoice is not subject to VAT. | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-119 | cac:TaxTotal/cac:TaxSubtotal |
BR-49 | A Payment instruction (BG-16) shall specify the Payment means type code (BT-81). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-16, BT-81 | cac:PaymentMeans |
BR-50 | A Payment account identifier (BT-84) shall be present if Credit transfer (BG-17) information is provided in the Invoice. | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-17, BT-84 | cac:PaymentMeans[cbc:PaymentMeansCode='30' or cbc:PaymentMeansCode='58']/cac:PayeeFinancialAccount |
BR-51 | The last 4 to 6 digits of the Payment card primary account number (BT-87) shall be present if Payment card information (BG-18) is provided. | warning | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-18, BT-87 | cac:PaymentMeans/cac:CardAccount/cbc:PrimaryAccountNumberID |
BR-52 | Each Additional supporting document (BG-24) shall contain a Supporting document reference (BT-122). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-24, BT-122 | cac:AdditionalDocumentReference |
BR-53 | If the VAT accounting currency code (BT-6) is present, then the Invoice total VAT amount in accounting currency (BT-111) shall be provided. | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-6, BT-111 | cbc:TaxCurrencyCode |
BR-54 | Each Item attribute (BG-32) shall contain an Item attribute name (BT-160) and an Item attribute value (BT-161). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-32, BT-160, BT-161 | //cac:AdditionalItemProperty |
BR-55 | Each Preceding Invoice reference (BG-3) shall contain a Preceding Invoice reference (BT-25). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-3, BT-25 | cac:BillingReference |
BR-56 | Each Seller tax representative party (BG-11) shall have a Seller tax representative VAT identifier (BT-63). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-11, BT-63 | cac:TaxRepresentativeParty |
BR-57 | Each Deliver to address (BG-15) shall contain a Deliver to country code (BT-80). | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BG-15, BT-80 | cac:Delivery/cac:DeliveryLocation/cac:Address |
BR-61 | If the Payment means type code (BT-81) means SEPA credit transfer, Local credit transfer or Non-SEPA international credit transfer, the Payment account identifier (BT-84) shall be present. | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-81, BT-84 | cac:PaymentMeans |
BR-62 | The Seller electronic address (BT-34) shall have a Scheme identifier. | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-34 | cac:AccountingSupplierParty/cac:Party/cbc:EndpointID |
BR-63 | The Buyer electronic address (BT-49) shall have a Scheme identifier. | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-49 | cac:AccountingCustomerParty/cac:Party/cbc:EndpointID |
BR-64 | The Item standard identifier (BT-157) shall have a Scheme identifier. | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-157 | cac:InvoiceLine/cac:Item/cac:StandardItemIdentification/cbc:ID |
BR-65 | The Item classification identifier (BT-158) shall have a Scheme identifier. | fatal | en16931 | BR | UBL-2.1 and UN/CEFACT-CII | BT-158 | cac:InvoiceLine/cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode |
BR-CL (23)
Code-list rules — a coded value must come from the referenced official code list.
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-CL-01 | The document type code (BT-3) MUST be coded per UNTDID 1001. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | BT-3 | cbc:InvoiceTypeCode |
BR-CL-03 | CurrencyID MUST be coded using ISO 4217 alpha-3. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cbc:Amount |
BR-CL-04 | Invoice currency code (BT-5) MUST be coded using ISO 4217 alpha-3. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | BT-5 | cbc:DocumentCurrencyCode |
BR-CL-05 | Tax currency code (BT-6) MUST be coded using ISO 4217 alpha-3. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | BT-6 | cbc:TaxCurrencyCode |
BR-CL-06 | Value added tax point date code MUST be coded using a restriction of UNTDID 2005 (UBL) / UNTDID 2475 (CII). | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cac:InvoicePeriod/cbc:DescriptionCode |
BR-CL-07 | Object identifier identification scheme identifier MUST be coded using a restriction of UNTDID 1153. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cac:AdditionalDocumentReference[cbc:DocumentTypeCode = '130']/cbc:ID[@schemeID] |
BR-CL-08 | Invoice note subject code MUST be coded using UNTDID 4451. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | /ubl:Invoice/cbc:Note |
BR-CL-10 | Any identifier identification scheme identifier MUST be coded using one of the ISO 6523 ICD list. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cac:PartyIdentification/cbc:ID[@schemeID] |
BR-CL-11 | Any registration identifier identification scheme identifier MUST be coded using one of the ISO 6523 ICD list. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cac:PartyLegalEntity/cbc:CompanyID[@schemeID] |
BR-CL-13 | Item classification scheme identifier MUST be a UNTDID 7143 code. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cac:CommodityClassification/cbc:ItemClassificationCode[@listID] |
BR-CL-14 | Country codes MUST be coded using ISO 3166-1 alpha-2. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cac:Country/cbc:IdentificationCode |
BR-CL-15 | Item origin country codes MUST be coded using ISO 3166-1. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cac:OriginCountry/cbc:IdentificationCode |
BR-CL-16 | Payment means MUST be coded using the UNCL 4461 code list. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cac:PaymentMeans/cbc:PaymentMeansCode |
BR-CL-17 | Invoice tax categories MUST be coded using the UNCL 5305 subset. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cac:TaxCategory/cbc:ID |
BR-CL-18 | Invoice tax categories MUST be coded using the UNCL 5305 subset. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cac:ClassifiedTaxCategory/cbc:ID |
BR-CL-19 | Coded allowance reasons MUST belong to the UNCL 5189 code list. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cac:AllowanceCharge[cbc:ChargeIndicator = false()]/cbc:AllowanceChargeReasonCode |
BR-CL-20 | Coded charge reasons MUST belong to the UNCL 7161 code list. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cac:AllowanceCharge[cbc:ChargeIndicator = true()]/cbc:AllowanceChargeReasonCode |
BR-CL-21 | Item standard identifier scheme MUST be an ISO 6523 ICD code. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cac:StandardItemIdentification/cbc:ID[@schemeID] |
BR-CL-22 | VAT exemption reason code MUST belong to the CEF VATEX list. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cbc:TaxExemptionReasonCode |
BR-CL-23 | Unit code MUST be coded per UN/ECE Rec 20 with Rec 21 extension. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cbc:InvoicedQuantity[@unitCode] |
BR-CL-24 | For a MIME code in an attribute use the MIMEMediaType subset. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cbc:EmbeddedDocumentBinaryObject[@mimeCode] |
BR-CL-25 | Endpoint identifier scheme identifier MUST belong to the CEF EAS code list. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cbc:EndpointID[@schemeID] |
BR-CL-26 | Delivery location identifier scheme identifier MUST belong to the ISO 6523 ICD code list. | fatal | en16931 | BR-CL | UBL-2.1 and UN/CEFACT-CII | — | cac:DeliveryLocation/cbc:ID[@schemeID] |
BR-CO (19)
Calculation and consistency rules (cross-total arithmetic).
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-CO-03 | Value added tax point date (BT-7) and Value added tax point date code (BT-8) are mutually exclusive. | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BT-7, BT-8 | cac:LegalMonetaryTotal |
BR-CO-04 | Each Invoice line (BG-25) shall be categorized with an Invoiced item VAT category code (BT-151). | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-151 | cac:InvoiceLine |
BR-CO-09 | The Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) shall have a prefix in accordance with ISO code ISO 3166-1 alpha-2 by which the country of issue may be identified. Nevertheless, Greece may use the prefix 'EL'. | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BT-31, BT-48, BT-63 | //cac:PartyTaxScheme[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-CO-10 | Sum of Invoice line net amount (BT-106) = Σ line net amount (BT-131). | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BT-106, BT-131 | cac:LegalMonetaryTotal |
BR-CO-11 | Sum of allowances on document level (BT-107) = Σ Document level allowance amount (BT-92). | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BT-92, BT-107 | cac:LegalMonetaryTotal |
BR-CO-12 | Sum of charges on document level (BT-108) = Σ Document level charge amount (BT-99). | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BT-99, BT-108 | cac:LegalMonetaryTotal |
BR-CO-13 | Invoice total without VAT (BT-109) = Σ line net (BT-131) − document allowances (BT-107) + document charges (BT-108). | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BT-107, BT-108, BT-109, BT-131 | cac:LegalMonetaryTotal |
BR-CO-14 | Invoice total VAT amount (BT-110) = Σ VAT category tax amount (BT-117). | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BT-110, BT-117 | /ubl:Invoice/cac:TaxTotal |
BR-CO-15 | Invoice total with VAT (BT-112) = total without VAT (BT-109) + total VAT (BT-110). | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BT-109, BT-110, BT-112 | cac:LegalMonetaryTotal |
BR-CO-16 | Amount due for payment (BT-115) = Invoice total with VAT (BT-112) − Paid amount (BT-113) + Rounding amount (BT-114). | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BT-112, BT-113, BT-114, BT-115 | cac:LegalMonetaryTotal |
BR-CO-17 | VAT category tax amount (BT-117) = VAT category taxable amount (BT-116) x (VAT category rate (BT-119) / 100), rounded to two decimals. | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BT-116, BT-117, BT-119 | cac:TaxTotal/cac:TaxSubtotal |
BR-CO-18 | An Invoice shall at least have one VAT breakdown group (BG-23). | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BG-23 | cac:TaxTotal/cac:TaxSubtotal |
BR-CO-19 | If Invoicing period (BG-14) is used, the Invoicing period start date (BT-73) or the Invoicing period end date (BT-74) shall be filled, or both. | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BG-14, BT-73, BT-74 | cac:InvoicePeriod |
BR-CO-20 | If Invoice line period (BG-26) is used, the Invoice line period start date (BT-134) or the Invoice line period end date (BT-135) shall be filled, or both. | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BG-26, BT-134, BT-135 | cac:InvoiceLine/cac:InvoicePeriod |
BR-CO-21 | Each Document level allowance (BG-20) shall contain a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98), or both. | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-97, BT-98 | /ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
BR-CO-22 | Each Document level charge (BG-21) shall contain a Document level charge reason (BT-104) or a Document level charge reason code (BT-105), or both. | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-104, BT-105 | /ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = true()] |
BR-CO-23 | Each Invoice line allowance (BG-27) shall contain an Invoice line allowance reason (BT-139) or an Invoice line allowance reason code (BT-140), or both. | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BG-27, BT-139, BT-140 | //cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
BR-CO-24 | Each Invoice line charge (BG-28) shall contain an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145), or both. | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BG-28, BT-144, BT-145 | //cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = true()] |
BR-CO-26 | In order for the buyer to automatically identify a supplier, the Seller identifier (BT-29), the Seller legal registration identifier (BT-30) and/or the Seller VAT identifier (BT-31) shall be present. | fatal | en16931 | BR-CO | UBL-2.1 and UN/CEFACT-CII | BT-29, BT-30, BT-31 | cac:AccountingSupplierParty |
BR-DEC (21)
Decimal-places rules — amounts must not exceed the allowed number of decimals.
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-DEC-01 | Max 2 decimals for the Document level allowance amount (BT-92). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-92 | /ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
BR-DEC-02 | Max 2 decimals for the Document level allowance base amount (BT-93). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-93 | /ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
BR-DEC-05 | Max 2 decimals for the Document level charge amount (BT-99). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-99 | /ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = true()] |
BR-DEC-06 | Max 2 decimals for the Document level charge base amount (BT-100). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-100 | /ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = true()] |
BR-DEC-09 | Max 2 decimals for the Sum of Invoice line net amount (BT-106). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-106 | cac:LegalMonetaryTotal |
BR-DEC-10 | Max 2 decimals for the Sum of allowances on document level (BT-107). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-107 | cac:LegalMonetaryTotal |
BR-DEC-11 | Max 2 decimals for the Sum of charges on document level (BT-108). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-108 | cac:LegalMonetaryTotal |
BR-DEC-12 | Max 2 decimals for the Invoice total amount without VAT (BT-109). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-109 | cac:LegalMonetaryTotal |
BR-DEC-13 | Max 2 decimals for the Invoice total VAT amount (BT-110). | fatal | xrechnung | BR-DEC | UN/CEFACT-CII | BT-110 | cac:TaxTotal/cbc:TaxAmount |
BR-DEC-14 | Max 2 decimals for the Invoice total amount with VAT (BT-112). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-112 | cac:LegalMonetaryTotal |
BR-DEC-15 | Max 2 decimals for the Invoice total VAT amount in accounting currency (BT-111). | fatal | xrechnung | BR-DEC | UN/CEFACT-CII | BT-111 | cac:TaxTotal/cbc:TaxAmount |
BR-DEC-16 | Max 2 decimals for the Paid amount (BT-113). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-113 | cac:LegalMonetaryTotal |
BR-DEC-17 | Max 2 decimals for the Rounding amount (BT-114). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-114 | cac:LegalMonetaryTotal |
BR-DEC-18 | Max 2 decimals for the Amount due for payment (BT-115). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-115 | cac:LegalMonetaryTotal |
BR-DEC-19 | Max 2 decimals for the VAT category taxable amount (BT-116). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-116 | cac:TaxTotal/cac:TaxSubtotal |
BR-DEC-20 | Max 2 decimals for the VAT category tax amount (BT-117). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-117 | cac:TaxTotal/cac:TaxSubtotal |
BR-DEC-23 | Max 2 decimals for the Invoice line net amount (BT-131). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-131 | cac:InvoiceLine |
BR-DEC-24 | Max 2 decimals for the Invoice line allowance amount (BT-136). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-136 | //cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
BR-DEC-25 | Max 2 decimals for the Invoice line allowance base amount (BT-137). Same line-level allowance context as BR-DEC-24, over ``cbc:BaseAmount`` (UBL) / ``../ram:BasisAmount`` (CII). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-137 | //cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
BR-DEC-27 | Max 2 decimals for the Invoice line charge amount (BT-141). The charge twin of BR-DEC-24 (ChargeIndicator true() / 'true'). | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-141 | //cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = true()] |
BR-DEC-28 | Max 2 decimals for the Invoice line charge base amount (BT-142). The charge twin of BR-DEC-25. | fatal | xrechnung | BR-DEC | UBL-2.1 and UN/CEFACT-CII | BT-142 | //cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = true()] |
BR-AE (10)
VAT breakdown rules for VAT category code AE.
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-AE-01 | 'Reverse charge' (AE) items require exactly one AE VAT breakdown (BG-23) row. | fatal | en16931 | BR-AE | UBL-2.1 and UN/CEFACT-CII | BG-20, BG-21, BG-23, BG-25, BT-95, BT-102, BT-118, BT-151 | cac:TaxCategory |
BR-AE-02 | An Invoice with a Reverse charge (AE) Invoice line (BT-151) shall carry a Seller identifier AND a Buyer identifier. | fatal | en16931 | BR-AE | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-31, BT-32, BT-47, BT-48, BT-63, BT-151 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[cbc:ID='AE'] |
BR-AE-03 | An Invoice with a Reverse charge (AE) Document level allowance (BT-95) shall carry a Seller identifier AND a Buyer identifier. | fatal | en16931 | BR-AE | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-31, BT-32, BT-47, BT-48, BT-63, BT-95 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='AE'] |
BR-AE-04 | An Invoice with a Reverse charge (AE) Document level charge (BT-102) shall carry a Seller identifier AND a Buyer identifier. | fatal | en16931 | BR-AE | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-31, BT-32, BT-47, BT-48, BT-63, BT-102 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='AE'] |
BR-AE-05 | In a Reverse charge (AE) Invoice line the Invoiced item VAT rate (BT-152) shall be 0. | fatal | en16931 | BR-AE | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-151, BT-152 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'AE'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AE-06 | In a Reverse charge (AE) Document level allowance the allowance VAT rate (BT-96) shall be 0. | fatal | en16931 | BR-AE | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-95, BT-96 | cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='AE'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AE-07 | In a Reverse charge (AE) Document level charge the charge VAT rate (BT-103) shall be 0. | fatal | en16931 | BR-AE | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-102, BT-103 | cac:AllowanceCharge[cbc:ChargeIndicator=true()]/cac:TaxCategory[normalize-space(cbc:ID)='AE'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AE-08 | The Reverse charge (AE) VAT breakdown taxable amount (BT-116) shall equal the exact sum of AE line nets − AE allowances + AE charges. | fatal | en16931 | BR-AE | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-92, BT-95, BT-99, BT-102, BT-116, BT-118, BT-131, BT-151 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'AE'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AE-09 | The VAT category tax amount (BT-117) in a Reverse charge (AE) VAT breakdown shall equal 0. | fatal | en16931 | BR-AE | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-117, BT-118 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'AE'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AE-10 | A VAT breakdown (BG-23) with a Reverse charge (AE) VAT category code (BT-118) SHALL have a VAT exemption reason code (BT-121) meaning 'Reverse charge' or the reason text (BT-120) 'Reverse charge' — the presence-required shape shared with BR-E-10. | fatal | en16931 | BR-AE | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-118, BT-120, BT-121 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'AE'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AF (10)
VAT breakdown rules for VAT category code L (IGIC, Canary Islands general indirect tax).
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-AF-01 | IGIC (L) items and the VAT breakdown (BG-23) must agree. | fatal | en16931 | BR-AF | UBL-2.1 and UN/CEFACT-CII | BG-20, BG-21, BG-23, BG-25, BT-95, BT-102, BT-118, BT-151 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='L'] |
BR-AF-02 | An IGIC (L) Invoice line (BT-151) requires the Seller VAT identifier (BT-31), Seller tax registration id (BT-32) and/or Seller tax representative VAT id (BT-63) — both official disjuncts are VAT-scoped (the BR-Z/E-02 symmetric shape, not BR-S-02's scheme-agnostic tail). | fatal | en16931 | BR-AF | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-31, BT-32, BT-63, BT-151 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[cbc:ID='L'] |
BR-AF-03 | An IGIC (L) Document level allowance (BT-95) requires the Seller VAT identifier disjunct (same shape as BR-AF-02). | fatal | en16931 | BR-AF | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-31, BT-32, BT-63, BT-95 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='L'] |
BR-AF-04 | An IGIC (L) Document level charge (BT-102) requires the Seller VAT identifier disjunct. | fatal | en16931 | BR-AF | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-31, BT-32, BT-63, BT-102 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='L'] |
BR-AF-05 | In an IGIC (L) Invoice line the Invoiced item VAT rate (BT-152) shall be 0 (zero) or greater than zero. | fatal | en16931 | BR-AF | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-151, BT-152 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'L'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AF-06 | In an IGIC (L) Document level allowance the allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero. | fatal | en16931 | BR-AF | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-95, BT-96 | cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='L'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AF-07 | In an IGIC (L) Document level charge the charge VAT rate (BT-103) shall be 0 (zero) or greater than zero. | fatal | en16931 | BR-AF | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-102, BT-103 | cac:AllowanceCharge[cbc:ChargeIndicator=true()]/cac:TaxCategory[normalize-space(cbc:ID)='L'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AF-08 | For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is 'IGIC', the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) plus document level charge amounts (BT-99) minus document level allowance amounts (BT-92) where the VAT category code is 'IGIC' and the VAT rate equals BT-119. | fatal | en16931 | BR-AF | UBL-2.1 | BG-23, BT-92, BT-95, BT-96, BT-99, BT-102, BT-103, BT-116, BT-118, BT-119, BT-131, BT-151, BT-152 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'L'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AF-09 | The VAT category tax amount (BT-117) in an IGIC (L) VAT breakdown shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119). | fatal | en16931 | BR-AF | UBL-2.1 | BG-23, BT-116, BT-117, BT-118, BT-119 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'L'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AF-10 | A VAT breakdown (BG-23) with an IGIC (L) VAT category code (BT-118) shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120). | fatal | en16931 | BR-AF | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-118, BT-120, BT-121 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'L'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AG (10)
VAT breakdown rules for VAT category code M (IPSI, tax for Ceuta and Melilla).
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-AG-01 | IPSI (M) items and the VAT breakdown (BG-23) must agree. | fatal | en16931 | BR-AG | UBL-2.1 and UN/CEFACT-CII | BG-20, BG-21, BG-23, BG-25, BT-95, BT-102, BT-118, BT-151 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='M'] |
BR-AG-02 | An IPSI (M) Invoice line (BT-151) requires the Seller VAT identifier (BT-31), Seller tax registration id (BT-32) and/or Seller tax representative VAT id (BT-63) — both official disjuncts are VAT-scoped (the BR-Z/E/AF-02 symmetric shape, not BR-S-02's scheme-agnostic tail). | fatal | en16931 | BR-AG | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-31, BT-32, BT-63, BT-151 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[cbc:ID='M'] |
BR-AG-03 | An IPSI (M) Document level allowance (BT-95) requires the Seller VAT identifier disjunct (same shape as BR-AG-02). | fatal | en16931 | BR-AG | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-31, BT-32, BT-63, BT-95 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='M'] |
BR-AG-04 | An IPSI (M) Document level charge (BT-102) requires the Seller VAT identifier disjunct. | fatal | en16931 | BR-AG | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-31, BT-32, BT-63, BT-102 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='M'] |
BR-AG-05 | In an IPSI (M) Invoice line the Invoiced item VAT rate (BT-152) shall be 0 (zero) or greater than zero. | fatal | en16931 | BR-AG | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-151, BT-152 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'M'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AG-06 | In an IPSI (M) Document level allowance the allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero. | fatal | en16931 | BR-AG | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-95, BT-96 | cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='M'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AG-07 | In an IPSI (M) Document level charge the charge VAT rate (BT-103) shall be 0 (zero) or greater than zero. | fatal | en16931 | BR-AG | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-102, BT-103 | cac:AllowanceCharge[cbc:ChargeIndicator=true()]/cac:TaxCategory[normalize-space(cbc:ID)='M'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AG-08 | For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is 'IPSI', the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) plus document level charge amounts (BT-99) minus document level allowance amounts (BT-92) where the VAT category code is 'IPSI' and the VAT rate equals BT-119. | fatal | en16931 | BR-AG | UBL-2.1 | BG-23, BT-92, BT-95, BT-96, BT-99, BT-102, BT-103, BT-116, BT-118, BT-119, BT-131, BT-151, BT-152 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'M'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AG-09 | The VAT category tax amount (BT-117) in an IPSI (M) VAT breakdown shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119). | fatal | en16931 | BR-AG | UBL-2.1 | BG-23, BT-116, BT-117, BT-118, BT-119 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'M'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-AG-10 | A VAT breakdown (BG-23) with an IPSI (M) VAT category code (BT-118) shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120). | fatal | en16931 | BR-AG | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-118, BT-120, BT-121 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'M'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-B (2)
VAT breakdown rules for VAT category code B (Italian split payment).
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-B-01 | An Invoice where the VAT category code (BT-151, BT-95 or BT-102) is 'Split payment' shall be a domestic Italian invoice. | fatal | en16931 | BR-B | UBL-2.1 and UN/CEFACT-CII | BT-95, BT-102, BT-151 | cbc:IdentificationCode |
BR-B-02 | An Invoice with a 'Split payment' (B) VAT category code (BT-151, BT-95, BT-118 or BT-102) shall not also contain a 'Standard rated' (S) VAT category code. | fatal | en16931 | BR-B | UBL-2.1 and UN/CEFACT-CII | BG-20, BG-21, BG-25, BT-95, BT-102, BT-118, BT-151 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID |
BR-E (10)
VAT breakdown rules for VAT category code E.
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-E-01 | 'Exempt from VAT' (E) items require exactly one E VAT breakdown (BG-23) row. | fatal | en16931 | BR-E | UBL-2.1 and UN/CEFACT-CII | BG-20, BG-21, BG-23, BG-25, BT-95, BT-102, BT-118, BT-151 | cac:TaxCategory |
BR-E-02 | An Exempt (E) Invoice line (BT-151) requires the Seller VAT identifier / tax registration id / tax representative VAT id. | fatal | en16931 | BR-E | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-31, BT-32, BT-63, BT-151 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[cbc:ID='E'] |
BR-E-03 | An Exempt (E) Document level allowance (BT-95) requires the Seller VAT identifier disjunct. | fatal | en16931 | BR-E | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-31, BT-32, BT-63, BT-95 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='E'] |
BR-E-04 | An Exempt (E) Document level charge (BT-102) requires the Seller VAT identifier disjunct. | fatal | en16931 | BR-E | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-31, BT-32, BT-63, BT-102 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='E'] |
BR-E-05 | In an Exempt (E) Invoice line the Invoiced item VAT rate (BT-152) shall be 0. | fatal | en16931 | BR-E | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-151, BT-152 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-E-06 | In an Exempt (E) Document level allowance the allowance VAT rate (BT-96) shall be 0. | fatal | en16931 | BR-E | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-95, BT-96 | cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-E-07 | In an Exempt (E) Document level charge the charge VAT rate (BT-103) shall be 0. | fatal | en16931 | BR-E | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-102, BT-103 | cac:AllowanceCharge[cbc:ChargeIndicator=true()]/cac:TaxCategory[normalize-space(cbc:ID)='E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-E-08 | The Exempt (E) VAT breakdown taxable amount (BT-116) shall equal the sum of E line net amounts − E allowances + E charges (exact on UBL; the ±1 band around the round2 bucket sums on CII — see :func:`_breakdown_taxable_sum_mismatch`). | fatal | en16931 | BR-E | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-92, BT-95, BT-99, BT-102, BT-116, BT-118, BT-131, BT-151 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-E-09 | The VAT category tax amount (BT-117) in an Exempt (E) VAT breakdown shall equal 0. | fatal | en16931 | BR-E | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-117, BT-118 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-E-10 | A VAT breakdown (BG-23) with an Exempt from VAT (E) VAT category code (BT-118) SHALL have a VAT exemption reason code (BT-121) or text (BT-120) — the presence-required mirror image of BR-Z-10/BR-S-10. | fatal | en16931 | BR-E | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-118, BT-120, BT-121 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-G (10)
VAT breakdown rules for VAT category code G.
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-G-01 | 'Export outside the EU' (G) items require exactly one G VAT breakdown (BG-23) row. | fatal | en16931 | BR-G | UBL-2.1 and UN/CEFACT-CII | BG-20, BG-21, BG-23, BG-25, BT-95, BT-102, BT-118, BT-151 | cac:TaxCategory |
BR-G-02 | An Invoice with an Export outside the EU (G) Invoice line (BT-151) shall carry a VAT-scoped Seller identifier (BT-31/BT-63). | fatal | en16931 | BR-G | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-31, BT-63, BT-151 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[cbc:ID='G'] |
BR-G-03 | An Invoice with an Export outside the EU (G) Document level allowance (BT-95) shall carry a VAT-scoped Seller identifier. | fatal | en16931 | BR-G | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-31, BT-63, BT-95 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='G'] |
BR-G-04 | An Invoice with an Export outside the EU (G) Document level charge (BT-102) shall carry a VAT-scoped Seller identifier. | fatal | en16931 | BR-G | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-31, BT-63, BT-102 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='G'] |
BR-G-05 | In an Export outside the EU (G) Invoice line the Invoiced item VAT rate (BT-152) shall be 0. | fatal | en16931 | BR-G | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-151, BT-152 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'G'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-G-06 | In an Export outside the EU (G) Document level allowance the allowance VAT rate (BT-96) shall be 0. | fatal | en16931 | BR-G | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-95, BT-96 | cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='G'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-G-07 | In an Export outside the EU (G) Document level charge the charge VAT rate (BT-103) shall be 0. | fatal | en16931 | BR-G | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-102, BT-103 | cac:AllowanceCharge[cbc:ChargeIndicator=true()]/cac:TaxCategory[normalize-space(cbc:ID)='G'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-G-08 | The Export outside the EU (G) VAT breakdown taxable amount (BT-116) shall equal the sum of G line nets − G allowances + G charges (exact on UBL; the ±1 band around the round2 bucket sums on CII — see :func:`_breakdown_taxable_sum_mismatch`). | fatal | en16931 | BR-G | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-92, BT-95, BT-99, BT-102, BT-116, BT-118, BT-131, BT-151 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'G'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-G-09 | The VAT category tax amount (BT-117) in an Export outside the EU (G) VAT breakdown shall equal 0. | fatal | en16931 | BR-G | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-117, BT-118 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'G'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-G-10 | A VAT breakdown (BG-23) with an Export outside the EU (G) VAT category code (BT-118) SHALL have a VAT exemption reason code (BT-121) or text (BT-120) — the presence-required shape shared with BR-E-10. | fatal | en16931 | BR-G | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-118, BT-120, BT-121 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'G'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-IC (12)
VAT breakdown rules for the intra-community VAT category.
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-IC-01 | 'Intra-community supply' (K) items require exactly one K VAT breakdown (BG-23) row. | fatal | en16931 | BR-IC | UBL-2.1 and UN/CEFACT-CII | BG-20, BG-21, BG-23, BG-25, BT-95, BT-102, BT-118, BT-151 | cac:TaxCategory |
BR-IC-02 | An Invoice with an Intra-community supply (K) Invoice line (BT-151) shall carry a VAT-scoped Seller identifier AND the Buyer VAT identifier. | fatal | en16931 | BR-IC | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-31, BT-48, BT-63, BT-151 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[cbc:ID='K'] |
BR-IC-03 | An Invoice with an Intra-community supply (K) Document level allowance (BT-95) shall carry a VAT-scoped Seller identifier AND the Buyer VAT identifier. | fatal | en16931 | BR-IC | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-31, BT-48, BT-63, BT-95 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='K'] |
BR-IC-04 | An Invoice with an Intra-community supply (K) Document level charge (BT-102) shall carry a VAT-scoped Seller identifier AND the Buyer VAT identifier. | fatal | en16931 | BR-IC | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-31, BT-48, BT-63, BT-102 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='K'] |
BR-IC-05 | In an Intra-community supply (K) Invoice line the Invoiced item VAT rate (BT-152) shall be 0. | fatal | en16931 | BR-IC | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-151, BT-152 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-IC-06 | In an Intra-community supply (K) Document level allowance the allowance VAT rate (BT-96) shall be 0. | fatal | en16931 | BR-IC | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-95, BT-96 | cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-IC-07 | In an Intra-community supply (K) Document level charge the charge VAT rate (BT-103) shall be 0. | fatal | en16931 | BR-IC | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-102, BT-103 | cac:AllowanceCharge[cbc:ChargeIndicator=true()]/cac:TaxCategory[normalize-space(cbc:ID)='K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-IC-08 | The Intra-community supply (K) VAT breakdown taxable amount (BT-116) shall equal the exact sum of K line nets − K allowances + K charges. | fatal | en16931 | BR-IC | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-92, BT-95, BT-99, BT-102, BT-116, BT-118, BT-131, BT-151 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-IC-09 | The VAT category tax amount (BT-117) in an Intra-community supply (K) VAT breakdown shall equal 0. | fatal | en16931 | BR-IC | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-117, BT-118 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-IC-10 | A VAT breakdown (BG-23) with the VAT category code (BT-118) "Intra-community supply" (K) SHALL have a VAT exemption reason code (BT-121) or text (BT-120) — the K twin of BR-E-10 / BR-AE-10. | fatal | en16931 | BR-IC | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-118, BT-120, BT-121 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-IC-11 | In an Invoice with an Intra-community supply (K) VAT breakdown (BG-23) the Actual delivery date (BT-72) or the Invoicing period (BG-14) shall not be blank. | fatal | en16931 | BR-IC | UBL-2.1 and UN/CEFACT-CII | BG-14, BG-23, BT-72, BT-118 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory |
BR-IC-12 | In an Invoice with an Intra-community supply (K) VAT breakdown (BG-23) the Deliver to country code (BT-80) shall not be blank. | fatal | en16931 | BR-IC | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-80, BT-118 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory |
BR-O (14)
VAT breakdown rules for VAT category code O.
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-O-01 | 'Not subject to VAT' (O) items require exactly one O VAT breakdown (BG-23) row. | fatal | en16931 | BR-O | UBL-2.1 and UN/CEFACT-CII | BG-20, BG-21, BG-23, BG-25, BT-95, BT-102, BT-118, BT-151 | cac:TaxCategory |
BR-O-02 | An Invoice with a 'Not subject to VAT' (O) Invoice line (BT-151) shall NOT contain a Seller/tax-representative/Buyer VAT identifier. | fatal | en16931 | BR-O | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-31, BT-48, BT-63, BT-151 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[cbc:ID='O'] |
BR-O-03 | An Invoice with a 'Not subject to VAT' (O) Document level allowance (BT-95) shall NOT contain any VAT identifier. | fatal | en16931 | BR-O | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-31, BT-48, BT-63, BT-95 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='O'] |
BR-O-04 | An Invoice with a 'Not subject to VAT' (O) Document level charge (BT-102) shall NOT contain any VAT identifier. | fatal | en16931 | BR-O | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-31, BT-48, BT-63, BT-102 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='O'] |
BR-O-05 | A 'Not subject to VAT' (O) Invoice line shall NOT contain an Invoiced item VAT rate (BT-152) — ``not(cbc:Percent)``. | fatal | en16931 | BR-O | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-151, BT-152 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-O-06 | A 'Not subject to VAT' (O) Document level allowance shall NOT contain a Document level allowance VAT rate (BT-96). | fatal | en16931 | BR-O | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-95, BT-96 | cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-O-07 | A 'Not subject to VAT' (O) Document level charge shall NOT contain a Document level charge VAT rate (BT-103). | fatal | en16931 | BR-O | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-102, BT-103 | cac:AllowanceCharge[cbc:ChargeIndicator=true()]/cac:TaxCategory[normalize-space(cbc:ID)='O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-O-08 | The 'Not subject to VAT' (O) VAT breakdown taxable amount (BT-116) shall equal the exact sum of O line nets − O allowances + O charges. | fatal | en16931 | BR-O | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-92, BT-95, BT-99, BT-102, BT-116, BT-118, BT-131, BT-151 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-O-09 | The VAT category tax amount (BT-117) in a 'Not subject to VAT' (O) VAT breakdown shall equal 0. | fatal | en16931 | BR-O | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-117, BT-118 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-O-10 | A VAT breakdown (BG-23) with a 'Not subject to VAT' (O) VAT category code (BT-118) SHALL have a VAT exemption reason code (BT-121) or text (BT-120). | fatal | en16931 | BR-O | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-118, BT-120, BT-121 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-O-11 | An Invoice with a 'Not subject to VAT' (O) VAT breakdown (BG-23) shall NOT contain any other VAT breakdown group. | fatal | en16931 | BR-O | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-118 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory |
BR-O-12 | An Invoice with a 'Not subject to VAT' (O) VAT breakdown (BG-23) shall NOT contain an Invoice line (BG-25) whose Invoiced item VAT category code (BT-151) is not 'Not subject to VAT'. | fatal | en16931 | BR-O | UBL-2.1 and UN/CEFACT-CII | BG-23, BG-25, BT-118, BT-151 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory |
BR-O-13 | An Invoice with a 'Not subject to VAT' (O) VAT breakdown (BG-23) shall NOT contain a Document level allowance (BG-20) whose VAT category code (BT-95) is not 'Not subject to VAT'. | fatal | en16931 | BR-O | UBL-2.1 and UN/CEFACT-CII | BG-20, BG-23, BT-95, BT-118 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory |
BR-O-14 | An Invoice with a 'Not subject to VAT' (O) VAT breakdown (BG-23) shall NOT contain a Document level charge (BG-21) whose VAT category code (BT-102) is not 'Not subject to VAT'. | fatal | en16931 | BR-O | UBL-2.1 and UN/CEFACT-CII | BG-21, BG-23, BT-102, BT-118 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory |
BR-S (10)
VAT breakdown rules for VAT category code S.
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-S-01 | Standard-rated (S) items and the VAT breakdown must agree. | fatal | en16931 | BR-S | UBL-2.1 and UN/CEFACT-CII | BG-20, BG-21, BG-23, BG-25, BT-95, BT-102, BT-118, BT-151 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='S'] |
BR-S-02 | An Invoice with a Standard-rated (S) Invoice line (BT-151) shall contain the Seller VAT Identifier (BT-31), Seller tax registration id (BT-32) and/or Seller tax representative VAT id (BT-63). | fatal | en16931 | BR-S | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-31, BT-32, BT-63, BT-151 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[cbc:ID='S'] |
BR-S-03 | An Invoice with a Standard-rated (S) Document level allowance (BT-95) shall contain the Seller VAT id / tax registration id / tax rep VAT id (same seller disjunct as BR-S-02). | fatal | en16931 | BR-S | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-31, BT-32, BT-63, BT-95 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='S'] |
BR-S-04 | An Invoice with a Standard-rated (S) Document level charge (BT-102) shall contain the Seller VAT id / tax registration id / tax rep VAT id (same seller disjunct as BR-S-02). | fatal | en16931 | BR-S | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-31, BT-32, BT-63, BT-102 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='S'] |
BR-S-05 | In an Invoice line where the Invoiced item VAT category code (BT-151) is 'Standard rated' the Invoiced item VAT rate (BT-152) shall be greater than zero. | fatal | en16931 | BR-S | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-151, BT-152 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-S-06 | In a Document level allowance where the allowance VAT category code (BT-95) is 'Standard rated' the allowance VAT rate (BT-96) shall be greater than zero. | fatal | en16931 | BR-S | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-95, BT-96 | cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-S-07 | In a Document level charge where the charge VAT category code (BT-102) is 'Standard rated' the charge VAT rate (BT-103) shall be greater than zero. | fatal | en16931 | BR-S | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-102, BT-103 | cac:AllowanceCharge[cbc:ChargeIndicator=true()]/cac:TaxCategory[normalize-space(cbc:ID)='S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-S-08 | For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "Standard rated", the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) plus document level charge amounts (BT-99) minus document level allowance amounts (BT-92) where the VAT category code is "Standard rated" and the VAT rate equals BT-119. | fatal | en16931 | BR-S | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-92, BT-95, BT-96, BT-99, BT-102, BT-103, BT-116, BT-118, BT-119, BT-131, BT-151, BT-152 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-S-09 | The VAT category tax amount (BT-117) in a Standard-rated (S) VAT breakdown shall equal the VAT category taxable amount (BT-116) x the VAT category rate (BT-119). | fatal | en16931 | BR-S | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-116, BT-117, BT-118, BT-119 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-S-10 | A VAT breakdown (BG-23) with a Standard rated (S) VAT category code (BT-118) shall not have a VAT exemption reason text (BT-120) or code (BT-121). | fatal | en16931 | BR-S | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-118, BT-120, BT-121 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-Z (10)
VAT breakdown rules for VAT category code Z.
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-Z-01 | If any line/allowance/charge is Zero rated (Z), the VAT breakdown must contain exactly one Zero rated category. | fatal | en16931 | BR-Z | UBL-2.1 and UN/CEFACT-CII | BG-20, BG-21, BG-23, BG-25, BT-95, BT-102, BT-118, BT-151 | cac:TaxCategory |
BR-Z-02 | A Zero-rated (Z) Invoice line (BT-151) requires the Seller VAT identifier / tax registration id / tax representative VAT id. | fatal | en16931 | BR-Z | UBL-2.1 and UN/CEFACT-CII | BT-31, BT-32, BT-63, BT-151 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[cbc:ID='Z'] |
BR-Z-03 | A Zero-rated (Z) Document level allowance (BT-95) requires the Seller VAT identifier disjunct. | fatal | en16931 | BR-Z | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-31, BT-32, BT-63, BT-95 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='Z'] |
BR-Z-04 | A Zero-rated (Z) Document level charge (BT-102) requires the Seller VAT identifier disjunct. | fatal | en16931 | BR-Z | UBL-2.1 and UN/CEFACT-CII | BT-31, BT-32, BT-63, BT-102 | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cbc:ID='Z'] |
BR-Z-05 | In a Zero-rated (Z) Invoice line the Invoiced item VAT rate (BT-152) shall be 0. | fatal | en16931 | BR-Z | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-151, BT-152 | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-Z-06 | In a Zero-rated (Z) Document level allowance the allowance VAT rate (BT-96) shall be 0. | fatal | en16931 | BR-Z | UBL-2.1 and UN/CEFACT-CII | BG-20, BT-95, BT-96 | cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cac:TaxCategory[normalize-space(cbc:ID)='Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-Z-07 | In a Zero-rated (Z) Document level charge the charge VAT rate (BT-103) shall be 0. | fatal | en16931 | BR-Z | UBL-2.1 and UN/CEFACT-CII | BG-21, BT-102, BT-103 | cac:AllowanceCharge[cbc:ChargeIndicator=true()]/cac:TaxCategory[normalize-space(cbc:ID)='Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-Z-08 | The Zero-rated (Z) VAT breakdown taxable amount (BT-116) shall equal the exact sum of Z line net amounts − Z allowances + Z charges. | fatal | en16931 | BR-Z | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-92, BT-95, BT-99, BT-102, BT-116, BT-118, BT-131, BT-151 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-Z-09 | The VAT category tax amount (BT-117) in a Zero-rated (Z) VAT breakdown shall equal 0. | fatal | en16931 | BR-Z | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-117, BT-118 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-Z-10 | A VAT breakdown (BG-23) with a Zero rated (Z) VAT category code (BT-118) shall not have a VAT exemption reason text (BT-120) or code (BT-121). | fatal | en16931 | BR-Z | UBL-2.1 and UN/CEFACT-CII | BG-23, BT-118, BT-120, BT-121 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] |
BR-DE (31)
German XRechnung national CIUS rules (KoSIT).
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-DE-1 | An invoice must contain PAYMENT INSTRUCTIONS (BG-16). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BG-16 | cac:PaymentMeans |
BR-DE-2 | SELLER CONTACT (BG-6) must be transmitted. | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BG-6 | /ubl:Invoice/cac:AccountingSupplierParty |
BR-DE-3 | Seller city (BT-37) must be transmitted (non-empty). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BT-37 | /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress |
BR-DE-4 | Seller post code (BT-38) must be transmitted (non-empty). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BT-38 | /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress |
BR-DE-5 | Seller contact point (BT-41) must be transmitted (non-empty). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BT-41 | /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Contact |
BR-DE-6 | Seller contact telephone number (BT-42) must be transmitted. | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BT-42 | /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Contact |
BR-DE-7 | Seller contact email address (BT-43) must be transmitted. | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BT-43 | /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Contact |
BR-DE-8 | Buyer city (BT-52) must be transmitted (non-empty). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BT-52 | /ubl:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PostalAddress |
BR-DE-9 | Buyer post code (BT-53) must be transmitted (non-empty). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BT-53 | /ubl:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PostalAddress |
BR-DE-10 | Deliver to city (BT-77) must be transmitted when DELIVER TO ADDRESS (BG-15) is present. | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BG-15, BT-77 | /ubl:Invoice/cac:Delivery/cac:DeliveryLocation/cac:Address |
BR-DE-11 | Deliver to post code (BT-78) must be transmitted when DELIVER TO ADDRESS (BG-15) is present. | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BG-15, BT-78 | /ubl:Invoice/cac:Delivery/cac:DeliveryLocation/cac:Address |
BR-DE-14 | VAT category rate (BT-119) must be transmitted (non-empty) in every top-level VAT breakdown row. | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BT-119 | /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal |
BR-DE-15 | Buyer reference (BT-10) must be transmitted (non-empty). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BT-10 | cbc:BuyerReference |
BR-DE-16 | If VAT category codes S/Z/E/AE/K/G/L/M are used, one of Seller VAT identifier (BT-31), Seller tax registration identifier (BT-32) or SELLER TAX REPRESENTATIVE PARTY (BG-11) must be present. | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BG-11, BT-31, BT-32 | cac:TaxRepresentativeParty |
BR-DE-17 | BT-3 should be one of 326, 380, 384, 389, 381, 875, 876, 877. | warning | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BT-3 | cbc:InvoiceTypeCode |
BR-DE-18 | Skonto (cash-discount) lines in Payment terms (BT-20). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BT-20, BT-115 | cac:PaymentTerms/cbc:Note |
BR-DE-19 | With payment means code 58 (SEPA credit transfer), BT-84 should be a correct IBAN (official regex + mod-97 transcription). | warning | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BT-81, BT-84 | /ubl:Invoice/cac:PaymentMeans[normalize-space(cbc:PaymentMeansCode) = ('30','58')] |
BR-DE-20 | With payment means code 59 (SEPA direct debit), BT-91 should be a correct IBAN. | warning | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BT-81, BT-91 | /ubl:Invoice/cac:PaymentMeans[normalize-space(cbc:PaymentMeansCode) = '59'] |
BR-DE-21 | BT-24 should be the XRechnung specification identifier (CIUS, extension or CVD variant) — untrimmed string equality. | warning | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BT-24 | cbc:CustomizationID |
BR-DE-22 | The filename attribute of all EmbeddedDocumentBinaryObject elements must be unique (across cac:AdditionalDocumentReference). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | — | cac:AdditionalDocumentReference |
BR-DE-23-a | Codes 30/58 (credit transfer) require CREDIT TRANSFER (BG-17). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BG-17, BT-81 | /ubl:Invoice/cac:PaymentMeans[normalize-space(cbc:PaymentMeansCode) = ('30','58')] |
BR-DE-23-b | Codes 30/58 forbid PAYMENT CARD (BG-18) and DIRECT DEBIT (BG-19). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BG-18, BG-19, BT-81 | /ubl:Invoice/cac:PaymentMeans[normalize-space(cbc:PaymentMeansCode) = ('30','58')] |
BR-DE-24-a | Codes 48/54/55 (card) require PAYMENT CARD INFORMATION (BG-18). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BG-18, BT-81 | /ubl:Invoice/cac:PaymentMeans[normalize-space(cbc:PaymentMeansCode) = ('48','54','55')] |
BR-DE-24-b | Codes 48/54/55 forbid CREDIT TRANSFER (BG-17) and DIRECT DEBIT (BG-19). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BG-17, BG-19, BT-81 | /ubl:Invoice/cac:PaymentMeans[normalize-space(cbc:PaymentMeansCode) = ('48','54','55')] |
BR-DE-25-a | Code 59 (direct debit) requires DIRECT DEBIT (BG-19). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BG-19, BT-81 | /ubl:Invoice/cac:PaymentMeans[normalize-space(cbc:PaymentMeansCode) = '59'] |
BR-DE-25-b | Code 59 forbids CREDIT TRANSFER (BG-17) and PAYMENT CARD (BG-18). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BG-17, BG-18, BT-81 | /ubl:Invoice/cac:PaymentMeans[normalize-space(cbc:PaymentMeansCode) = '59'] |
BR-DE-26 | Type code 384 (Corrected invoice) should carry a PRECEDING INVOICE REFERENCE (BG-3). | warning | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BG-3, BT-3 | cbc:InvoiceTypeCode |
BR-DE-27 | BT-42 should contain at least three digits. Evaluated per seller Contact; an ABSENT telephone normalizes to '' and fires too. | warning | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BT-42 | /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Contact |
BR-DE-28 | BT-43 should look like an email address (exactly one '@', flanked per the official regex). | warning | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BT-43 | /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Contact |
BR-DE-30 | DIRECT DEBIT (BG-19) requires the Bank assigned creditor identifier (BT-90: a SEPA-scheme PartyIdentification of the seller or payee). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BG-19, BT-90 | cac:PaymentMeans/cac:PaymentMandate |
BR-DE-31 | DIRECT DEBIT (BG-19) requires the Debited account identifier (BT-91). | fatal | xrechnung | BR-DE | UBL-2.1 and UN/CEFACT-CII | BG-19, BT-91 | cac:PaymentMeans/cac:PaymentMandate |
BR-DE-TMP (1)
German XRechnung national rules (BR-DE-TMP).
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-DE-TMP-32 | An invoice should state the delivery/service date via BT-72 (Actual delivery date), BG-14 (Invoicing period) or a BG-26 (Invoice line period) on EVERY line. | information | xrechnung | BR-DE-TMP | UBL-2.1 and UN/CEFACT-CII | BG-14, BG-26, BT-72 | cac:Delivery/cbc:ActualDeliveryDate |
BR-DEX (15)
German XRechnung extension-layer rules (BR-DEX).
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-DEX-01 | Every 'Attached Document' binary object (BT-125) must use an Extension-allowed MIME code. Context is cbc:EmbeddedDocumentBinaryObject anywhere in the document; the extra allowance over EN 8.2 is application/xml. An absent @mimeCode also fires (empty node-set). | fatal | xrechnung | BR-DEX | UBL-2.1 and UN/CEFACT-CII | BT-125 | cbc:EmbeddedDocumentBinaryObject |
BR-DEX-02 | The 'Invoice line net amount' (BT-131) of an INVOICE LINE (BG-25) or a SUB INVOICE LINE (BG-DEX-01) should equal the sum of the directly nested SUB INVOICE LINEs' net amounts. | warning | xrechnung | BR-DEX | UBL-2.1 | BG-25, BG-DEX-01, BT-131 | cac:InvoiceLine |
BR-DEX-03 | A SUB INVOICE LINE (BG-DEX-01) must carry exactly one SUB INVOICE LINE VAT INFORMATION (BG-DEX-06) — i.e. its Item must have exactly one cac:ClassifiedTaxCategory. Fires if any sub-line item has 0 or >1. | fatal | xrechnung | BR-DEX | UBL-2.1 | BG-DEX-01, BG-DEX-06 | cac:SubInvoiceLine/cac:Item |
BR-DEX-04 | Any scheme identifier on a Party identifier (cac:Party Identification/cbc:ID) must be an ISO 6523 ICD (extension) code — or 'SEPA' when the identifier belongs to the Seller or the Payee. | fatal | xrechnung | BR-DEX | UBL-2.1 and UN/CEFACT-CII | — | cac:PartyIdentification/cbc:ID[@schemeID and $isExtension] |
BR-DEX-05 | Any scheme identifier on a legal registration identifier (cac:PartyLegalEntity/cbc:CompanyID, BT-30/BT-47) must be an ISO 6523 ICD (extension) code. | fatal | xrechnung | BR-DEX | UBL-2.1 and UN/CEFACT-CII | BT-30, BT-47 | cac:PartyLegalEntity/cbc:CompanyID[@schemeID and $isExtension] |
BR-DEX-06 | Any scheme identifier on an item standard identifier (cac:StandardItemIdentification/cbc:ID, BT-157) must be an ISO 6523 ICD (extension) code. | fatal | xrechnung | BR-DEX | UBL-2.1 and UN/CEFACT-CII | BT-157 | cac:StandardItemIdentification/cbc:ID[@schemeID and $isExtension] |
BR-DEX-07 | Any scheme identifier on an Endpoint identifier (cbc:Endpoint ID, BT-34/BT-49) must belong to the CEF EAS (extension) code list. | fatal | xrechnung | BR-DEX | UBL-2.1 and UN/CEFACT-CII | BT-34, BT-49 | cbc:EndpointID[@schemeID and $isExtension] |
BR-DEX-08 | Any scheme identifier on a Deliver-to location identifier (cac:DeliveryLocation/cbc:ID, BT-71) must be an ISO 6523 ICD (extension) code. | fatal | xrechnung | BR-DEX | UBL-2.1 and UN/CEFACT-CII | BT-71 | cac:DeliveryLocation/cbc:ID[@schemeID and $isExtension] |
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). | fatal | xrechnung | BR-DEX | UBL-2.1 | BT-112, BT-113, BT-114, BT-115, BT-DEX-002 | cac:LegalMonetaryTotal |
BR-DEX-10 | 'Third party payment type' (BT-DEX-001, cbc:ID) must be present (non-empty) in every THIRD PARTY PAYMENT group (BG-DEX-09). | fatal | xrechnung | BR-DEX | UBL-2.1 | BG-DEX-09, BT-DEX-001 | /ubl:Invoice/cac:PrepaidPayment |
BR-DEX-11 | 'Third party payment amount' (BT-DEX-002, cbc:PaidAmount) must be present (non-empty) in every THIRD PARTY PAYMENT group (BG-DEX-09). | fatal | xrechnung | BR-DEX | UBL-2.1 | BG-DEX-09, BT-DEX-002 | /ubl:Invoice/cac:PrepaidPayment |
BR-DEX-12 | 'Third party payment description' (BT-DEX-003, cbc:InstructionID) must be present (non-empty) in every THIRD PARTY PAYMENT group (BG-DEX-09). | fatal | xrechnung | BR-DEX | UBL-2.1 | BG-DEX-09, BT-DEX-003 | /ubl:Invoice/cac:PrepaidPayment |
BR-DEX-13 | 'Third party payment amount' (BT-DEX-002) may carry at most 2 fractional digits: string-length(substring-after(cbc:PaidAmount, '.')) <= 2 (no '.' -> '' -> length 0 -> holds). | fatal | xrechnung | BR-DEX | UBL-2.1 | BT-DEX-002 | /ubl:Invoice/cac:PrepaidPayment |
BR-DEX-14 | The currency of 'Third party payment amount' (BT-DEX-002) must equal BT-5 (Invoice currency code): cbc:PaidAmount/@currencyID = parent::node()/cbc:DocumentCurrencyCode. A missing @currencyID or a missing DocumentCurrencyCode makes the node-set comparison false -> fires. | fatal | xrechnung | BR-DEX | UBL-2.1 | BT-5, BT-DEX-002 | /ubl:Invoice/cac:PrepaidPayment |
BR-DEX-15 | A CII file should not use the concept of Sub Invoice Lines (ram:ParentLineID) — XRechnung does not support them (warning). | warning | xrechnung | BR-DEX | UN/CEFACT-CII | — | /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument |
BR-DE-CVD (7)
German XRechnung Clean-Vehicle-Directive profile rules — applied only when the invoice carries the CVD specification identifier (BT-24 ending in …xrechnung:cvd_0.9); they require the contract and tender references plus the vehicle-classification data (BT-158 'CVD' + BT-160 'cva') that Clean Vehicle Directive reporting needs.
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-DE-CVD-01 | A CVD invoice must transmit the 'Contract reference' (BT-12, cac:ContractDocumentReference/cbc:ID, non-empty). | fatal | xrechnung | BR-DE-CVD | UBL-2.1 and UN/CEFACT-CII | BT-12 | cac:ContractDocumentReference/cbc:ID |
BR-DE-CVD-02 | A CVD invoice must transmit the 'Tender or lot reference' (BT-17, cac:OriginatorDocumentReference/cbc:ID, non-empty). | fatal | xrechnung | BR-DE-CVD | UBL-2.1 and UN/CEFACT-CII | BT-17 | cac:OriginatorDocumentReference/cbc:ID |
BR-DE-CVD-03 | A CVD invoice must contain at least one INVOICE LINE (BG-25) whose Item carries an 'Item classification identifier' (BT-158) with scheme identifier 'CVD' AND an 'Item attribute name' (BT-160) with the value 'cva' — both on the SAME cac:Item. | fatal | xrechnung | BR-DE-CVD | UBL-2.1 and UN/CEFACT-CII | BG-25, BT-158, BT-160 | cac:InvoiceLine/cac:Item |
BR-DE-CVD-04 | In a CVD invoice, an 'Item classification identifier' (BT-158) with scheme identifier 'CVD' must contain one of the permitted vehicle categories M1, M2, M3, N1, N2, N3 (normalize-space comparison, per the official test). | fatal | xrechnung | BR-DE-CVD | UBL-2.1 and UN/CEFACT-CII | BT-158 | /ubl:Invoice/cac:InvoiceLine/cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode |
BR-DE-CVD-05 | In a CVD invoice, when the 'Item attribute name' (BT-160) within ITEM ATTRIBUTES (BG-32) is 'cva', the 'Item attribute value' (BT-161) must be one of 'clean', 'zero-emission', 'other' (normalize-space comparison; an absent cbc:Value normalizes to '' and fires). | fatal | xrechnung | BR-DE-CVD | UBL-2.1 and UN/CEFACT-CII | BG-32, BT-160, BT-161 | /ubl:Invoice/cac:InvoiceLine/cac:Item/cac:AdditionalItemProperty[cbc:Name = 'cva'] |
BR-DE-CVD-06-a | In a CVD invoice line whose Item carries an 'Item classification identifier' (BT-158) with scheme identifier 'CVD', exactly one 'Item attribute name' (BT-160) with the value 'cva' must be present on that Item. | fatal | xrechnung | BR-DE-CVD | UBL-2.1 and UN/CEFACT-CII | BT-158, BT-160 | /ubl:Invoice/cac:InvoiceLine/cac:Item |
BR-DE-CVD-06-b | In a CVD invoice line whose Item carries an 'Item attribute name' (BT-160) with the value 'cva', exactly one 'Item classification identifier' (BT-158) with scheme identifier 'CVD' must be present on that Item. | fatal | xrechnung | BR-DE-CVD | UBL-2.1 and UN/CEFACT-CII | BT-158, BT-160 | /ubl:Invoice/cac:InvoiceLine/cac:Item |
BR-TMP (2)
German XRechnung temporary rules (KoSIT BR-TMP): BR-TMP-2 checks that an external document location (BT-124) is an absolute URL with a valid scheme; BR-TMP-3 exists only in the CII syntax binding and checks gross/net item-price base-quantity (BT-149/BT-150) consistency.
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-TMP-2 | The 'External document location' (BT-124) must be an absolute URL with a valid scheme. | warning | xrechnung | BR-TMP | UBL-2.1 and UN/CEFACT-CII | BT-124 | /ubl:Invoice/cac:AdditionalDocumentReference/cac:Attachment/cac:ExternalReference |
BR-TMP-3 | When the 'Item price base quantity' (BT-149) is present in BOTH GrossPriceProductTradePrice and NetPriceProductTradePrice of a line, the values must be identical, and when both carry a unit of measure code (BT-150) the unit codes must be identical too. | fatal | xrechnung | BR-TMP | UN/CEFACT-CII | BT-149, BT-150 | /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem |
BR-TMP-CVD (1)
German XRechnung Clean-Vehicle-Directive code-list rule — the BT-158 scheme identifier must come from UNTDID 7143 (extended with 'CVD').
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
BR-TMP-CVD-01 | In a CVD invoice, the scheme identifier of every 'Item classification identifier' (BT-158) must come from the code list UNTDID 7143 (extended with 'CVD'). Official membership test is contains() over the space-flanked official list — see :func:`_untdid_7143_cvd_ok`. | fatal | xrechnung | BR-TMP-CVD | UBL-2.1 and UN/CEFACT-CII | BT-158 | /ubl:Invoice/cac:InvoiceLine/cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode |
PEPPOL-EN16931 (21)
Peppol-derived rules as vendored inside the official KoSIT XRechnung Schematron artifact — the KoSIT-vendored subset only, NOT full Peppol BIS Billing 3.0 support.
| Rule | Requirement | Severity | Profile | Family | Syntax | BT/BG terms | XML location |
|---|---|---|---|---|---|---|---|
PEPPOL-EN16931-R001 | Business process MUST be provided. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | cbc:ProfileID |
PEPPOL-EN16931-R005 | VAT accounting currency code MUST be different from invoice currency code when provided. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | cbc:TaxCurrencyCode |
PEPPOL-EN16931-R008 | Document MUST not contain empty elements. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | //*[not(*) and not(normalize-space())] |
PEPPOL-EN16931-R010 | Buyer electronic address MUST be provided. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | cac:AccountingCustomerParty/cac:Party/cbc:EndpointID |
PEPPOL-EN16931-R020 | Seller electronic address MUST be provided. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | cac:AccountingSupplierParty/cac:Party/cbc:EndpointID |
PEPPOL-EN16931-R040 | Allowance/charge amount must equal base amount * percentage/100 if base amount and percentage exists. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | /ubl:Invoice/cac:AllowanceCharge |
PEPPOL-EN16931-R041 | Allowance/charge base amount MUST be provided when allowance/charge percentage is provided. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | /ubl:Invoice/cac:AllowanceCharge[cbc:MultiplierFactorNumeric and not(cbc:BaseAmount)] |
PEPPOL-EN16931-R042 | Allowance/charge percentage MUST be provided when allowance/charge base amount is provided. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | /ubl:Invoice/cac:AllowanceCharge[not(cbc:MultiplierFactorNumeric) and cbc:BaseAmount] |
PEPPOL-EN16931-R043 | Allowance/charge ChargeIndicator value MUST equal 'true' or 'false'. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | /ubl:Invoice/cac:AllowanceCharge |
PEPPOL-EN16931-R044 | Charge on price level is NOT allowed. Only value 'false' allowed. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | cac:Price/cac:AllowanceCharge |
PEPPOL-EN16931-R046 | Item net price MUST equal (Gross price - Allowance amount) when gross price is provided. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | cac:Price/cac:AllowanceCharge |
PEPPOL-EN16931-R053 | Only one tax total with tax subtotals MUST be provided. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | cac:TaxTotal |
PEPPOL-EN16931-R054 | Only one tax total without tax subtotals MUST be provided when tax currency code is provided. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | cac:TaxTotal |
PEPPOL-EN16931-R055 | Invoice total VAT amount and Invoice total VAT amount in accounting currency MUST have the same operational sign. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | cac:TaxTotal/cbc:TaxAmount |
PEPPOL-EN16931-R061 | Mandate reference MUST be provided for direct debit. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | cac:PaymentMeans[some $code in tokenize('49 59', '\s') satisfies normalize-space(cbc:PaymentMeansCode) = $code]/cac:PaymentMandate/cbc:ID |
PEPPOL-EN16931-R101 | Element Document reference can only be used for Invoice line object. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | cac:InvoiceLine/cac:DocumentReference |
PEPPOL-EN16931-R110 | Start date of line period MUST be within invoice period. (Line start >= document invoice-period start.) | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | /ubl:Invoice[cac:InvoicePeriod/cbc:StartDate]/cac:InvoiceLine/cac:InvoicePeriod/cbc:StartDate |
PEPPOL-EN16931-R111 | End date of line period MUST be within invoice period. (Line end <= document invoice-period end.) | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | /ubl:Invoice[cac:InvoicePeriod/cbc:EndDate]/cac:InvoiceLine/cac:InvoicePeriod/cbc:EndDate |
PEPPOL-EN16931-R120 | Invoice line net amount MUST equal (Invoiced quantity * (Item net price/item price base quantity) + Sum of invoice line charge amount - sum of invoice line allowance amount. | warning | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | cac:InvoiceLine/cbc:LineExtensionAmount |
PEPPOL-EN16931-R121 | Base quantity MUST be a positive number above zero. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | cac:InvoiceLine/cac:Price/cbc:BaseQuantity |
PEPPOL-EN16931-R130 | Unit code of price base quantity MUST be same as invoiced quantity. | fatal | xrechnung | PEPPOL-EN16931 | UBL-2.1 and UN/CEFACT-CII | — | cac:Price/cbc:BaseQuantity[@unitCode] |