{
  "openapi": "3.0.3",
  "info": {
    "title": "Counterfoil",
    "version": "0.6.0",
    "description": "Read-only notes for EU e-invoice rules, registry version 0.6.0. GET /rules/index.json lists the stored rules. GET /rules/{id}.json returns one rule. GET /bt-map.json returns the invoice field map, which carries its own version. Not a validator. Not tax, legal, or accounting advice. This document does not list a check route or a UBL route."
  },
  "servers": [
    {
      "url": "https://einvoicegoblin.com"
    }
  ],
  "security": [],
  "externalDocs": {
    "description": "llms.txt for the same stored rules",
    "url": "https://einvoicegoblin.com/llms.txt"
  },
  "tags": [
    {
      "name": "rules",
      "description": "Stored business-rule notes. Reading one does not check an invoice."
    },
    {
      "name": "field-map",
      "description": "Which invoice-form boxes match one EN 16931 term. No VAT category code is assigned."
    }
  ],
  "paths": {
    "/rules/index.json": {
      "get": {
        "operationId": "getRuleIndex",
        "tags": [
          "rules"
        ],
        "summary": "List the stored rules",
        "description": "Each entry quotes the official statement and links to the full rule. Meanings and fixes are on the rule, not in this list.",
        "responses": {
          "200": {
            "description": "The stored rule index.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RuleIndex"
                },
                "example": {
                  "name": "counterfoil-rules",
                  "version": "0.6.0",
                  "retrieved": "2026-10-17",
                  "note": "Statements, contexts, and tests are copied from the cited public specifications. Meanings and fixes are Counterfoil readings of those statements. This is not a validator and not tax advice.",
                  "markdown": "/rules/index.md",
                  "llms": "/llms.txt",
                  "openapi": "/openapi.json",
                  "mcp": "/.well-known/mcp/server-card.json",
                  "rules": [
                    {
                      "id": "BR-50",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "payment",
                      "severity": "fatal",
                      "statement": "A Payment account identifier (BT-84) shall be present if Credit transfer (BG-17) information is provided in the Invoice.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-50/",
                      "html": "/rules/BR-50/",
                      "json": "/rules/BR-50.json",
                      "markdown": "/rules/BR-50/index.md"
                    },
                    {
                      "id": "BR-AE-01",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "reverse-charge",
                      "severity": "fatal",
                      "statement": "An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is \"Reverse charge\" shall contain in the VAT Breakdown (BG-23) exactly one VAT category code (BT-118) equal with \"VAT reverse charge\".",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-AE-01/",
                      "html": "/rules/BR-AE-01/",
                      "json": "/rules/BR-AE-01.json",
                      "markdown": "/rules/BR-AE-01/index.md"
                    },
                    {
                      "id": "BR-AE-02",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "reverse-charge",
                      "severity": "fatal",
                      "statement": "An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Reverse charge\" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-AE-02/",
                      "html": "/rules/BR-AE-02/",
                      "json": "/rules/BR-AE-02.json",
                      "markdown": "/rules/BR-AE-02/index.md"
                    },
                    {
                      "id": "BR-AE-03",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "reverse-charge",
                      "severity": "fatal",
                      "statement": "An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is \"Reverse charge\" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-AE-03/",
                      "html": "/rules/BR-AE-03/",
                      "json": "/rules/BR-AE-03.json",
                      "markdown": "/rules/BR-AE-03/index.md"
                    },
                    {
                      "id": "BR-AE-04",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "reverse-charge",
                      "severity": "fatal",
                      "statement": "An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is \"Reverse charge\" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-AE-04/",
                      "html": "/rules/BR-AE-04/",
                      "json": "/rules/BR-AE-04.json",
                      "markdown": "/rules/BR-AE-04/index.md"
                    },
                    {
                      "id": "BR-AE-05",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "reverse-charge",
                      "severity": "fatal",
                      "statement": "In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Reverse charge\" the Invoiced item VAT rate (BT-152) shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-AE-05/",
                      "html": "/rules/BR-AE-05/",
                      "json": "/rules/BR-AE-05.json",
                      "markdown": "/rules/BR-AE-05/index.md"
                    },
                    {
                      "id": "BR-AE-06",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "reverse-charge",
                      "severity": "fatal",
                      "statement": "In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is \"Reverse charge\" the Document level allowance VAT rate (BT-96) shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-AE-06/",
                      "html": "/rules/BR-AE-06/",
                      "json": "/rules/BR-AE-06.json",
                      "markdown": "/rules/BR-AE-06/index.md"
                    },
                    {
                      "id": "BR-AE-07",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "reverse-charge",
                      "severity": "fatal",
                      "statement": "In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is \"Reverse charge\" the Document level charge VAT rate (BT-103) shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-AE-07/",
                      "html": "/rules/BR-AE-07/",
                      "json": "/rules/BR-AE-07.json",
                      "markdown": "/rules/BR-AE-07/index.md"
                    },
                    {
                      "id": "BR-AE-08",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "reverse-charge",
                      "severity": "fatal",
                      "statement": "In a VAT breakdown (BG-23) where the VAT category code (BT-118) is \"Reverse charge\" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are \"Reverse charge\".",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-AE-08/",
                      "html": "/rules/BR-AE-08/",
                      "json": "/rules/BR-AE-08.json",
                      "markdown": "/rules/BR-AE-08/index.md"
                    },
                    {
                      "id": "BR-AE-09",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "reverse-charge",
                      "severity": "fatal",
                      "statement": "The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is \"Reverse charge\" shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-AE-09/",
                      "html": "/rules/BR-AE-09/",
                      "json": "/rules/BR-AE-09.json",
                      "markdown": "/rules/BR-AE-09/index.md"
                    },
                    {
                      "id": "BR-AE-10",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "reverse-charge",
                      "severity": "fatal",
                      "statement": "A VAT breakdown (BG-23) with VAT Category code (BT-118) \"Reverse charge\" shall have a VAT exemption reason code (BT-121), meaning \"Reverse charge\" or the VAT exemption reason text (BT-120) \"Reverse charge\" (or the equivalent standard text in another language).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-AE-10/",
                      "html": "/rules/BR-AE-10/",
                      "json": "/rules/BR-AE-10.json",
                      "markdown": "/rules/BR-AE-10/index.md"
                    },
                    {
                      "id": "BR-CO-10",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "totals",
                      "severity": "fatal",
                      "statement": "Sum of Invoice line net amount (BT-106) = Σ Invoice line net amount (BT-131).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-CO-10/",
                      "html": "/rules/BR-CO-10/",
                      "json": "/rules/BR-CO-10.json",
                      "markdown": "/rules/BR-CO-10/index.md"
                    },
                    {
                      "id": "BR-CO-13",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "totals",
                      "severity": "fatal",
                      "statement": "Invoice total amount without VAT (BT-109) = Σ Invoice line net amount (BT-131) - Sum of allowances on document level (BT-107) + Sum of charges on document level (BT-108).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-CO-13/",
                      "html": "/rules/BR-CO-13/",
                      "json": "/rules/BR-CO-13.json",
                      "markdown": "/rules/BR-CO-13/index.md"
                    },
                    {
                      "id": "BR-CO-14",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "totals",
                      "severity": "fatal",
                      "statement": "Invoice total VAT amount (BT-110) = Σ VAT category tax amount (BT-117).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-CO-14/",
                      "html": "/rules/BR-CO-14/",
                      "json": "/rules/BR-CO-14.json",
                      "markdown": "/rules/BR-CO-14/index.md"
                    },
                    {
                      "id": "BR-CO-15",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "totals",
                      "severity": "fatal",
                      "statement": "Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-CO-15/",
                      "html": "/rules/BR-CO-15/",
                      "json": "/rules/BR-CO-15.json",
                      "markdown": "/rules/BR-CO-15/index.md"
                    },
                    {
                      "id": "BR-DE-15",
                      "country": "DE",
                      "syntax": "ubl",
                      "group": "xrechnung",
                      "severity": "fatal",
                      "statement": "[BR-DE-15] Das Element \"Buyer reference\" (BT-10) muss übermittelt werden.",
                      "source_url": "https://github.com/itplr-kosit/xrechnung-schematron/blob/v2.6.0/src/validation/schematron/ubl/XRechnung-UBL-validation.sch",
                      "html": "/rules/BR-DE-15/",
                      "json": "/rules/BR-DE-15.json",
                      "markdown": "/rules/BR-DE-15/index.md"
                    },
                    {
                      "id": "BR-DE-19",
                      "country": "DE",
                      "syntax": "ubl",
                      "group": "payment",
                      "severity": "warning",
                      "statement": "[BR-DE-19] \"Payment account identifier\" (BT-84) soll eine korrekte IBAN enthalten, wenn in \"Payment means type code\" (BT-81) mit dem Code 58 SEPA als Zahlungsmittel gefordert wird.",
                      "source_url": "https://github.com/itplr-kosit/xrechnung-schematron/blob/v2.6.0/src/validation/schematron/ubl/XRechnung-UBL-validation.sch",
                      "html": "/rules/BR-DE-19/",
                      "json": "/rules/BR-DE-19.json",
                      "markdown": "/rules/BR-DE-19/index.md"
                    },
                    {
                      "id": "BR-DE-23-a",
                      "country": "DE",
                      "syntax": "ubl",
                      "group": "payment",
                      "severity": "fatal",
                      "statement": "[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.",
                      "source_url": "https://github.com/itplr-kosit/xrechnung-schematron/blob/v2.6.0/src/validation/schematron/ubl/XRechnung-UBL-validation.sch",
                      "html": "/rules/BR-DE-23-a/",
                      "json": "/rules/BR-DE-23-a.json",
                      "markdown": "/rules/BR-DE-23-a/index.md"
                    },
                    {
                      "id": "BR-E-01",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "exemption",
                      "severity": "fatal",
                      "statement": "An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is \"Exempt from VAT\" shall contain exactly one VAT breakdown (BG-23) with the VAT category code (BT-118) equal to \"Exempt from VAT\".",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-E-01/",
                      "html": "/rules/BR-E-01/",
                      "json": "/rules/BR-E-01.json",
                      "markdown": "/rules/BR-E-01/index.md"
                    },
                    {
                      "id": "BR-E-02",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "exemption",
                      "severity": "fatal",
                      "statement": "An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Exempt from VAT\" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-E-02/",
                      "html": "/rules/BR-E-02/",
                      "json": "/rules/BR-E-02.json",
                      "markdown": "/rules/BR-E-02/index.md"
                    },
                    {
                      "id": "BR-E-03",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "exemption",
                      "severity": "fatal",
                      "statement": "An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is \"Exempt from VAT\" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-E-03/",
                      "html": "/rules/BR-E-03/",
                      "json": "/rules/BR-E-03.json",
                      "markdown": "/rules/BR-E-03/index.md"
                    },
                    {
                      "id": "BR-E-04",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "exemption",
                      "severity": "fatal",
                      "statement": "An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is \"Exempt from VAT\" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-E-04/",
                      "html": "/rules/BR-E-04/",
                      "json": "/rules/BR-E-04.json",
                      "markdown": "/rules/BR-E-04/index.md"
                    },
                    {
                      "id": "BR-E-05",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "exemption",
                      "severity": "fatal",
                      "statement": "In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Exempt from VAT\", the Invoiced item VAT rate (BT-152) shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-E-05/",
                      "html": "/rules/BR-E-05/",
                      "json": "/rules/BR-E-05.json",
                      "markdown": "/rules/BR-E-05/index.md"
                    },
                    {
                      "id": "BR-E-06",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "exemption",
                      "severity": "fatal",
                      "statement": "In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is \"Exempt from VAT\", the Document level allowance VAT rate (BT-96) shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-E-06/",
                      "html": "/rules/BR-E-06/",
                      "json": "/rules/BR-E-06.json",
                      "markdown": "/rules/BR-E-06/index.md"
                    },
                    {
                      "id": "BR-E-07",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "exemption",
                      "severity": "fatal",
                      "statement": "In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is \"Exempt from VAT\", the Document level charge VAT rate (BT-103) shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-E-07/",
                      "html": "/rules/BR-E-07/",
                      "json": "/rules/BR-E-07.json",
                      "markdown": "/rules/BR-E-07/index.md"
                    },
                    {
                      "id": "BR-E-08",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "exemption",
                      "severity": "fatal",
                      "statement": "In a VAT breakdown (BG-23) where the VAT category code (BT-118) is \"Exempt from VAT\" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are \"Exempt from VAT\".",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-E-08/",
                      "html": "/rules/BR-E-08/",
                      "json": "/rules/BR-E-08.json",
                      "markdown": "/rules/BR-E-08/index.md"
                    },
                    {
                      "id": "BR-E-09",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "exemption",
                      "severity": "fatal",
                      "statement": "The VAT category tax amount (BT-117) In a VAT breakdown (BG-23) where the VAT category code (BT-118) equals \"Exempt from VAT\" shall equal 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-E-09/",
                      "html": "/rules/BR-E-09/",
                      "json": "/rules/BR-E-09.json",
                      "markdown": "/rules/BR-E-09/index.md"
                    },
                    {
                      "id": "BR-E-10",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "exemption",
                      "severity": "fatal",
                      "statement": "A VAT breakdown (BG-23) with VAT Category code (BT-118) \"Exempt from VAT\" shall have a VAT exemption reason code (BT-121) or a VAT exemption reason text (BT-120).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-E-10/",
                      "html": "/rules/BR-E-10/",
                      "json": "/rules/BR-E-10.json",
                      "markdown": "/rules/BR-E-10/index.md"
                    },
                    {
                      "id": "BR-G-01",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "export",
                      "severity": "fatal",
                      "statement": "An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is \"Export outside the EU\" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with \"Export outside the EU\".",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-G-01/",
                      "html": "/rules/BR-G-01/",
                      "json": "/rules/BR-G-01.json",
                      "markdown": "/rules/BR-G-01/index.md"
                    },
                    {
                      "id": "BR-G-02",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "export",
                      "severity": "fatal",
                      "statement": "An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Export outside the EU\" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-G-02/",
                      "html": "/rules/BR-G-02/",
                      "json": "/rules/BR-G-02.json",
                      "markdown": "/rules/BR-G-02/index.md"
                    },
                    {
                      "id": "BR-G-03",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "export",
                      "severity": "fatal",
                      "statement": "An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is \"Export outside the EU\" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-G-03/",
                      "html": "/rules/BR-G-03/",
                      "json": "/rules/BR-G-03.json",
                      "markdown": "/rules/BR-G-03/index.md"
                    },
                    {
                      "id": "BR-G-04",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "export",
                      "severity": "fatal",
                      "statement": "An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is \"Export outside the EU\" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-G-04/",
                      "html": "/rules/BR-G-04/",
                      "json": "/rules/BR-G-04.json",
                      "markdown": "/rules/BR-G-04/index.md"
                    },
                    {
                      "id": "BR-G-05",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "export",
                      "severity": "fatal",
                      "statement": "In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Export outside the EU\" the Invoiced item VAT rate (BT-152) shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-G-05/",
                      "html": "/rules/BR-G-05/",
                      "json": "/rules/BR-G-05.json",
                      "markdown": "/rules/BR-G-05/index.md"
                    },
                    {
                      "id": "BR-G-06",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "export",
                      "severity": "fatal",
                      "statement": "In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is \"Export outside the EU\" the Document level allowance VAT rate (BT-96) shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-G-06/",
                      "html": "/rules/BR-G-06/",
                      "json": "/rules/BR-G-06.json",
                      "markdown": "/rules/BR-G-06/index.md"
                    },
                    {
                      "id": "BR-G-07",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "export",
                      "severity": "fatal",
                      "statement": "In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is \"Export outside the EU\" the Document level charge VAT rate (BT-103) shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-G-07/",
                      "html": "/rules/BR-G-07/",
                      "json": "/rules/BR-G-07.json",
                      "markdown": "/rules/BR-G-07/index.md"
                    },
                    {
                      "id": "BR-G-08",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "export",
                      "severity": "fatal",
                      "statement": "In a VAT breakdown (BG-23) where the VAT category code (BT-118) is \"Export outside the EU\" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are \"Export outside the EU\".",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-G-08/",
                      "html": "/rules/BR-G-08/",
                      "json": "/rules/BR-G-08.json",
                      "markdown": "/rules/BR-G-08/index.md"
                    },
                    {
                      "id": "BR-G-09",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "export",
                      "severity": "fatal",
                      "statement": "The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is \"Export outside the EU\" shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-G-09/",
                      "html": "/rules/BR-G-09/",
                      "json": "/rules/BR-G-09.json",
                      "markdown": "/rules/BR-G-09/index.md"
                    },
                    {
                      "id": "BR-G-10",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "export",
                      "severity": "fatal",
                      "statement": "A VAT breakdown (BG-23) with the VAT Category code (BT-118) \"Export outside the EU\" shall have a VAT exemption reason code (BT-121), meaning \"Export outside the EU\" or the VAT exemption reason text (BT-120) \"Export outside the EU\" (or the equivalent standard text in another language).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-G-10/",
                      "html": "/rules/BR-G-10/",
                      "json": "/rules/BR-G-10.json",
                      "markdown": "/rules/BR-G-10/index.md"
                    },
                    {
                      "id": "BR-IC-01",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "intra-community",
                      "severity": "fatal",
                      "statement": "An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is \"Intra-community supply\" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with \"Intra-community supply\".",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-IC-01/",
                      "html": "/rules/BR-IC-01/",
                      "json": "/rules/BR-IC-01.json",
                      "markdown": "/rules/BR-IC-01/index.md"
                    },
                    {
                      "id": "BR-IC-02",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "intra-community",
                      "severity": "fatal",
                      "statement": "An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Intra-community supply\" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-IC-02/",
                      "html": "/rules/BR-IC-02/",
                      "json": "/rules/BR-IC-02.json",
                      "markdown": "/rules/BR-IC-02/index.md"
                    },
                    {
                      "id": "BR-IC-03",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "intra-community",
                      "severity": "fatal",
                      "statement": "An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is \"Intra-community supply\" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-IC-03/",
                      "html": "/rules/BR-IC-03/",
                      "json": "/rules/BR-IC-03.json",
                      "markdown": "/rules/BR-IC-03/index.md"
                    },
                    {
                      "id": "BR-IC-04",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "intra-community",
                      "severity": "fatal",
                      "statement": "An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is \"Intra-community supply\" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-IC-04/",
                      "html": "/rules/BR-IC-04/",
                      "json": "/rules/BR-IC-04.json",
                      "markdown": "/rules/BR-IC-04/index.md"
                    },
                    {
                      "id": "BR-IC-05",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "intra-community",
                      "severity": "fatal",
                      "statement": "In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Intracommunity supply\" the Invoiced item VAT rate (BT-152) shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-IC-05/",
                      "html": "/rules/BR-IC-05/",
                      "json": "/rules/BR-IC-05.json",
                      "markdown": "/rules/BR-IC-05/index.md"
                    },
                    {
                      "id": "BR-IC-06",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "intra-community",
                      "severity": "fatal",
                      "statement": "In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is \"Intra-community supply\" the Document level allowance VAT rate (BT-96) shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-IC-06/",
                      "html": "/rules/BR-IC-06/",
                      "json": "/rules/BR-IC-06.json",
                      "markdown": "/rules/BR-IC-06/index.md"
                    },
                    {
                      "id": "BR-IC-07",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "intra-community",
                      "severity": "fatal",
                      "statement": "In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is \"Intra-community supply\" the Document level charge VAT rate (BT-103) shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-IC-07/",
                      "html": "/rules/BR-IC-07/",
                      "json": "/rules/BR-IC-07.json",
                      "markdown": "/rules/BR-IC-07/index.md"
                    },
                    {
                      "id": "BR-IC-08",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "intra-community",
                      "severity": "fatal",
                      "statement": "In a VAT breakdown (BG-23) where the VAT category code (BT-118) is \"Intra-community supply\" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are \"Intra-community supply\".",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-IC-08/",
                      "html": "/rules/BR-IC-08/",
                      "json": "/rules/BR-IC-08.json",
                      "markdown": "/rules/BR-IC-08/index.md"
                    },
                    {
                      "id": "BR-IC-09",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "intra-community",
                      "severity": "fatal",
                      "statement": "The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is \"Intra-community supply\" shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-IC-09/",
                      "html": "/rules/BR-IC-09/",
                      "json": "/rules/BR-IC-09.json",
                      "markdown": "/rules/BR-IC-09/index.md"
                    },
                    {
                      "id": "BR-IC-10",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "intra-community",
                      "severity": "fatal",
                      "statement": "A VAT breakdown (BG-23) with the VAT Category code (BT-118) \"Intra-community supply\" shall have a VAT exemption reason code (BT-121), meaning \"Intra-community supply\" or the VAT exemption reason text (BT-120) \"Intra-community supply\" (or the equivalent standard text in another language).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-IC-10/",
                      "html": "/rules/BR-IC-10/",
                      "json": "/rules/BR-IC-10.json",
                      "markdown": "/rules/BR-IC-10/index.md"
                    },
                    {
                      "id": "BR-S-01",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "standard-rated",
                      "severity": "fatal",
                      "statement": "An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is \"Standard rated\" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with \"Standard rated\".",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-S-01/",
                      "html": "/rules/BR-S-01/",
                      "json": "/rules/BR-S-01.json",
                      "markdown": "/rules/BR-S-01/index.md"
                    },
                    {
                      "id": "BR-S-02",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "standard-rated",
                      "severity": "fatal",
                      "statement": "An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Standard rated\" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-S-02/",
                      "html": "/rules/BR-S-02/",
                      "json": "/rules/BR-S-02.json",
                      "markdown": "/rules/BR-S-02/index.md"
                    },
                    {
                      "id": "BR-S-03",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "standard-rated",
                      "severity": "fatal",
                      "statement": "An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is \"Standard rated\" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-S-03/",
                      "html": "/rules/BR-S-03/",
                      "json": "/rules/BR-S-03.json",
                      "markdown": "/rules/BR-S-03/index.md"
                    },
                    {
                      "id": "BR-S-04",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "standard-rated",
                      "severity": "fatal",
                      "statement": "An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is \"Standard rated\" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-S-04/",
                      "html": "/rules/BR-S-04/",
                      "json": "/rules/BR-S-04.json",
                      "markdown": "/rules/BR-S-04/index.md"
                    },
                    {
                      "id": "BR-S-05",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "standard-rated",
                      "severity": "fatal",
                      "statement": "In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Standard rated\" the Invoiced item VAT rate (BT-152) shall be greater than zero.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-S-05/",
                      "html": "/rules/BR-S-05/",
                      "json": "/rules/BR-S-05.json",
                      "markdown": "/rules/BR-S-05/index.md"
                    },
                    {
                      "id": "BR-S-06",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "standard-rated",
                      "severity": "fatal",
                      "statement": "In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is \"Standard rated\" the Document level allowance VAT rate (BT-96) shall be greater than zero.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-S-06/",
                      "html": "/rules/BR-S-06/",
                      "json": "/rules/BR-S-06.json",
                      "markdown": "/rules/BR-S-06/index.md"
                    },
                    {
                      "id": "BR-S-07",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "standard-rated",
                      "severity": "fatal",
                      "statement": "In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is \"Standard rated\" the Document level charge VAT rate (BT-103) shall be greater than zero.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-S-07/",
                      "html": "/rules/BR-S-07/",
                      "json": "/rules/BR-S-07.json",
                      "markdown": "/rules/BR-S-07/index.md"
                    },
                    {
                      "id": "BR-S-08",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "standard-rated",
                      "severity": "fatal",
                      "statement": "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) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is \"Standard rated\" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-S-08/",
                      "html": "/rules/BR-S-08/",
                      "json": "/rules/BR-S-08.json",
                      "markdown": "/rules/BR-S-08/index.md"
                    },
                    {
                      "id": "BR-S-09",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "standard-rated",
                      "severity": "fatal",
                      "statement": "The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is \"Standard rated\" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-S-09/",
                      "html": "/rules/BR-S-09/",
                      "json": "/rules/BR-S-09.json",
                      "markdown": "/rules/BR-S-09/index.md"
                    },
                    {
                      "id": "BR-S-10",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "standard-rated",
                      "severity": "fatal",
                      "statement": "A VAT breakdown (BG-23) with VAT Category code (BT-118) \"Standard rate\" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-S-10/",
                      "html": "/rules/BR-S-10/",
                      "json": "/rules/BR-S-10.json",
                      "markdown": "/rules/BR-S-10/index.md"
                    },
                    {
                      "id": "BR-Z-01",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "zero-rated",
                      "severity": "fatal",
                      "statement": "An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is \"Zero rated\" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with \"Zero rated\".",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-Z-01/",
                      "html": "/rules/BR-Z-01/",
                      "json": "/rules/BR-Z-01.json",
                      "markdown": "/rules/BR-Z-01/index.md"
                    },
                    {
                      "id": "BR-Z-02",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "zero-rated",
                      "severity": "fatal",
                      "statement": "An Invoice that contains an Invoice line where the Invoiced item VAT category code (BT-151) is \"Zero rated\" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-Z-02/",
                      "html": "/rules/BR-Z-02/",
                      "json": "/rules/BR-Z-02.json",
                      "markdown": "/rules/BR-Z-02/index.md"
                    },
                    {
                      "id": "BR-Z-03",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "zero-rated",
                      "severity": "fatal",
                      "statement": "An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is \"Zero rated\" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-Z-03/",
                      "html": "/rules/BR-Z-03/",
                      "json": "/rules/BR-Z-03.json",
                      "markdown": "/rules/BR-Z-03/index.md"
                    },
                    {
                      "id": "BR-Z-04",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "zero-rated",
                      "severity": "fatal",
                      "statement": "An Invoice that contains a Document level charge where the Document level charge VAT category code (BT-102) is \"Zero rated\" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-Z-04/",
                      "html": "/rules/BR-Z-04/",
                      "json": "/rules/BR-Z-04.json",
                      "markdown": "/rules/BR-Z-04/index.md"
                    },
                    {
                      "id": "BR-Z-05",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "zero-rated",
                      "severity": "fatal",
                      "statement": "In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Zero rated\" the Invoiced item VAT rate (BT-152) shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-Z-05/",
                      "html": "/rules/BR-Z-05/",
                      "json": "/rules/BR-Z-05.json",
                      "markdown": "/rules/BR-Z-05/index.md"
                    },
                    {
                      "id": "BR-Z-06",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "zero-rated",
                      "severity": "fatal",
                      "statement": "In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is \"Zero rated\" the Document level allowance VAT rate (BT-96) shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-Z-06/",
                      "html": "/rules/BR-Z-06/",
                      "json": "/rules/BR-Z-06.json",
                      "markdown": "/rules/BR-Z-06/index.md"
                    },
                    {
                      "id": "BR-Z-07",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "zero-rated",
                      "severity": "fatal",
                      "statement": "In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is \"Zero rated\" the Document level charge VAT rate (BT-103) shall be 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-Z-07/",
                      "html": "/rules/BR-Z-07/",
                      "json": "/rules/BR-Z-07.json",
                      "markdown": "/rules/BR-Z-07/index.md"
                    },
                    {
                      "id": "BR-Z-08",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "zero-rated",
                      "severity": "fatal",
                      "statement": "In a VAT breakdown (BG-23) where VAT category code (BT-118) is \"Zero rated\" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amount (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are \"Zero rated\".",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-Z-08/",
                      "html": "/rules/BR-Z-08/",
                      "json": "/rules/BR-Z-08.json",
                      "markdown": "/rules/BR-Z-08/index.md"
                    },
                    {
                      "id": "BR-Z-09",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "zero-rated",
                      "severity": "fatal",
                      "statement": "The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is \"Zero rated\" shall equal 0 (zero).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-Z-09/",
                      "html": "/rules/BR-Z-09/",
                      "json": "/rules/BR-Z-09.json",
                      "markdown": "/rules/BR-Z-09/index.md"
                    },
                    {
                      "id": "BR-Z-10",
                      "country": "EU",
                      "syntax": "ubl",
                      "group": "zero-rated",
                      "severity": "fatal",
                      "statement": "A VAT breakdown (BG-23) with VAT Category code (BT-118) \"Zero rated\" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-Z-10/",
                      "html": "/rules/BR-Z-10/",
                      "json": "/rules/BR-Z-10.json",
                      "markdown": "/rules/BR-Z-10/index.md"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/rules/{id}.json": {
      "get": {
        "operationId": "getRule",
        "tags": [
          "rules"
        ],
        "summary": "Read one stored rule",
        "description": "The example is the stored BR-IC-05 file. Its statement says Intracommunity supply, with no hyphen.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "A stored rule id, such as BR-IC-05. The ids are the ones listed by GET /rules/index.json.",
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9-]+$",
              "example": "BR-IC-05"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "One stored rule. statement, context, and test are copied from the cited source.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Rule"
                },
                "example": {
                  "id": "BR-IC-05",
                  "country": "EU",
                  "syntax": "ubl",
                  "group": "intra-community",
                  "severity": "fatal",
                  "severity_note": "fatal, from the Flag column of the Peppol BIS Billing 3.0 UBL rules index retrieved 2026-10-17.",
                  "spec": "Peppol BIS Billing 3.0, May 2026 release, EN 16931 model bound to UBL",
                  "statement": "In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Intracommunity supply\" the Invoiced item VAT rate (BT-152) shall be 0 (zero).",
                  "statement_lang": "en",
                  "context": "cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] | cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']",
                  "test": "(xs:decimal(cbc:Percent) = 0)",
                  "meaning": "On an invoice line whose VAT category is \"Intracommunity supply\", the line VAT rate (BT-152) must be 0. The official message spells that category without a hyphen. The published test checks that the percent, read as a decimal, equals 0 where the category code is K. The context writes cbc:ID) = 'K' with spaces around the equals sign.",
                  "fix": "Set the line VAT rate (BT-152) to 0 on each line coded K.",
                  "example_fail": "A line VAT category code is K and the line VAT rate is 19.",
                  "example_pass": "A line VAT category code is K and the line VAT rate is 0.",
                  "example_note": "Illustration of the condition in the official statement. Not an example published by the source.",
                  "source_url": "https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-IC-05/",
                  "source_retrieved": "2026-10-17",
                  "last_verified": "2026-10-17"
                }
              }
            }
          },
          "404": {
            "description": "No stored file uses this id. The body is empty, and it is not the rule object."
          }
        }
      }
    },
    "/bt-map.json": {
      "get": {
        "operationId": "getFieldMap",
        "tags": [
          "field-map"
        ],
        "summary": "Read the invoice field map",
        "description": "Names and definitions are copied from the cited Peppol syntax pages. The four VAT treatment labels are not category codes.",
        "responses": {
          "200": {
            "description": "The invoice field map.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FieldMap"
                },
                "example": {
                  "version": "0.1.0",
                  "spec": "Peppol BIS Billing 3.0, May 2026 release, UBL Invoice syntax",
                  "source_retrieved": "2026-10-17",
                  "disclaimer": "Not a validator. Not tax, legal, or accounting advice. Names and definitions are copied from the cited pages. Whitespace inside a copied definition is collapsed to one space. A missing space that is in the official text is kept.",
                  "direct": [
                    {
                      "field": "number",
                      "label": "Number",
                      "bt": "BT-1",
                      "name": "Invoice number",
                      "definition": "A unique identification of the Invoice.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cbc-ID/"
                    },
                    {
                      "field": "issueDate",
                      "label": "Issue date",
                      "bt": "BT-2",
                      "name": "Invoice issue date",
                      "definition": "The date when the Invoice was issued.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cbc-IssueDate/"
                    },
                    {
                      "field": "currency",
                      "label": "Currency",
                      "bt": "BT-5",
                      "name": "Invoice currency code",
                      "definition": "The currency in which all Invoice amounts are given, except for the Total VAT amount in accounting currency.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cbc-DocumentCurrencyCode/"
                    },
                    {
                      "field": "dueDate",
                      "label": "Due date",
                      "bt": "BT-9",
                      "name": "Payment due date",
                      "definition": "The date when the payment is due.Format \"YYYY-MM-DD\". In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cbc-DueDate/"
                    },
                    {
                      "field": "supplyDate",
                      "label": "Date of supply (optional)",
                      "bt": "BT-72",
                      "name": "Actual delivery date",
                      "definition": "The date on which the supply of goods or services was made or completed.",
                      "form_note": "The form calls this box Date of supply. The syntax name is Actual delivery date. The form does not collect the value added tax point date.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-Delivery/cbc-ActualDeliveryDate/"
                    },
                    {
                      "field": "terms",
                      "label": "Terms printed on the invoice",
                      "bt": "BT-20",
                      "name": "Payment terms",
                      "definition": "A textual description of the payment terms that apply to the amount due for payment (Including description of possible penalties).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-PaymentTerms/cbc-Note/"
                    },
                    {
                      "field": "bizName",
                      "label": "Legal name",
                      "bt": "BT-27",
                      "name": "Seller name",
                      "definition": "The full formal name by which the Seller is registered in the national registry of legal entities or as a Taxable person or otherwise trades as a person or persons.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingSupplierParty/cac-Party/cac-PartyLegalEntity/cbc-RegistrationName/"
                    },
                    {
                      "field": "bizVat",
                      "label": "VAT ID",
                      "bt": "BT-31",
                      "name": "Seller VAT identifier",
                      "definition": "The Seller's VAT identifier (also known as Seller VAT identification number) or the local identification (defined by the Seller's address) of the Seller for tax purposes or a reference that enables the Seller to state his registered tax status.",
                      "form_note": "The syntax page gives this one description to BT-31 and BT-32 together. This box is labelled VAT ID, so it is stored only as BT-31. It is not stored as BT-32.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingSupplierParty/cac-Party/cac-PartyTaxScheme/cbc-CompanyID/"
                    },
                    {
                      "field": "bizEmail",
                      "label": "Email (optional)",
                      "bt": "BT-43",
                      "name": "Seller contact email address",
                      "definition": "An e-mail address for the contact point.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingSupplierParty/cac-Party/cac-Contact/cbc-ElectronicMail/"
                    },
                    {
                      "field": "bizIban",
                      "label": "IBAN",
                      "bt": "BT-84",
                      "name": "Payment account identifier",
                      "definition": "A unique identifier of the financial payment account, at a payment service provider, to which payment should be made. Such as IBAN or BBAN.",
                      "form_note": "The box is an IBAN. The term is the payment account identifier. The form does not ask for a payment means type code.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-PaymentMeans/cac-PayeeFinancialAccount/cbc-ID/"
                    },
                    {
                      "field": "bizBic",
                      "label": "BIC (optional)",
                      "bt": "BT-86",
                      "name": "Payment service provider identifier",
                      "definition": "An identifier for the payment service provider where a payment account is located. Such as a BIC or a national clearing code where required. No identification scheme Identifier to be used.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-PaymentMeans/cac-PayeeFinancialAccount/cac-FinancialInstitutionBranch/cbc-ID/"
                    },
                    {
                      "field": "clientName",
                      "label": "Legal name",
                      "bt": "BT-44",
                      "name": "Buyer name",
                      "definition": "The full name of the Buyer.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingCustomerParty/cac-Party/cac-PartyLegalEntity/cbc-RegistrationName/"
                    },
                    {
                      "field": "clientVat",
                      "label": "VAT ID (if they have one)",
                      "bt": "BT-48",
                      "name": "Buyer VAT identifier",
                      "definition": "The Buyer's VAT identifier (also known as Buyer VAT identification number).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingCustomerParty/cac-Party/cac-PartyTaxScheme/cbc-CompanyID/"
                    }
                  ],
                  "line": [
                    {
                      "field": "qty",
                      "label": "Qty",
                      "bt": "BT-129",
                      "name": "Invoiced quantity",
                      "definition": "The quantity of items (goods or services) that is charged in the Invoice line.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-InvoiceLine/cbc-InvoicedQuantity/"
                    },
                    {
                      "field": "price",
                      "label": "Price",
                      "bt": "BT-146",
                      "name": "Item net price",
                      "definition": "The price of an item, exclusive of VAT, after subtracting item price discount.",
                      "form_note": "The form says prices are net of VAT. It has no item price discount.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-InvoiceLine/cac-Price/cbc-PriceAmount/"
                    }
                  ],
                  "rate": {
                    "field": "vatRate",
                    "label": "VAT rate, percent",
                    "other_modes": [
                      "reverse",
                      "export",
                      "exempt"
                    ],
                    "note": "The form says one rate applies to the whole invoice. Domestic VAT uses the rate box. Reverse charge, outside the EU, and exemption print 0 and do not use the rate box. The rate is not a VAT category code.",
                    "terms": [
                      {
                        "bt": "BT-119",
                        "name": "VAT category rate",
                        "definition": "The VAT rate, represented as percentage that applies for the relevant VAT category.",
                        "per": "invoice",
                        "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-TaxTotal/cac-TaxSubtotal/cac-TaxCategory/cbc-Percent/"
                      },
                      {
                        "bt": "BT-152",
                        "name": "Invoiced item VAT rate",
                        "definition": "The VAT rate, represented as percentage that applies to the invoiced item.",
                        "per": "line",
                        "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-InvoiceLine/cac-Item/cac-ClassifiedTaxCategory/cbc-Percent/"
                      }
                    ]
                  },
                  "wording": {
                    "field": "vatNote",
                    "label": "Wording under the totals",
                    "exemption_modes": [
                      "reverse",
                      "export",
                      "exempt"
                    ],
                    "exemption": {
                      "bt": "BT-120",
                      "name": "VAT exemption reason text",
                      "definition": "A textual statement of the reason why the amount is exempted from VAT or why no VAT is being charged.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-TaxTotal/cac-TaxSubtotal/cac-TaxCategory/cbc-TaxExemptionReason/"
                    },
                    "domestic": {
                      "bt": "BT-22",
                      "name": "Invoice note",
                      "definition": "A textual note that gives unstructured information that is relevant to the Invoice as a whole.Such as the reason for any correction or assignment note in case the invoice has been factored.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cbc-Note/"
                    },
                    "note": "On reverse charge, outside the EU, and exemption, the wording is the exemption reason text. On domestic VAT, a sentence the user types is an invoice note. A domestic sentence is not stored as an exemption reason."
                  },
                  "derived": [
                    {
                      "role": "line-net",
                      "bt": "BT-131",
                      "name": "Invoice line net amount",
                      "definition": "The total amount of the Invoice line. The amount is “net” without VAT, i.e. inclusive of line level allowances and charges as well as other relevant taxes.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-InvoiceLine/cbc-LineExtensionAmount/",
                      "because": "Quantity times net price, from the lines that parse. A started line that does not parse has no line net amount."
                    },
                    {
                      "role": "subtotal",
                      "bt": "BT-106",
                      "name": "Sum of Invoice line net amount",
                      "definition": "Sum of all Invoice line net amounts in the Invoice.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-LegalMonetaryTotal/cbc-LineExtensionAmount/",
                      "because": "Present only when every started line parses."
                    },
                    {
                      "role": "subtotal",
                      "bt": "BT-109",
                      "name": "Invoice total amount without VAT",
                      "definition": "The total amount of the Invoice without VAT.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-LegalMonetaryTotal/cbc-TaxExclusiveAmount/",
                      "same_as": "BT-106",
                      "because": "The form has no document-level allowance or charge. The stored BR-CO-13 statement says this total equals the line net sum minus document allowances plus document charges."
                    },
                    {
                      "role": "subtotal",
                      "bt": "BT-116",
                      "name": "VAT category taxable amount",
                      "definition": "Sum of all taxable amounts subject to a specific VAT category code and VAT category rate (if the VAT category rate is applicable).",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-TaxTotal/cac-TaxSubtotal/cbc-TaxableAmount/",
                      "same_as": "BT-106",
                      "because": "The form has one rate and no document-level allowance or charge, so the taxable amount is the line net sum. The category code is not chosen here."
                    },
                    {
                      "role": "vat",
                      "bt": "BT-110",
                      "name": "Invoice total VAT amount",
                      "definition": "The total VAT amount for the Invoice or the VAT total amount expressed in the accounting currency accepted or required in the country of the Seller.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-TaxTotal/cbc-TaxAmount/",
                      "because": "The page total for VAT, in the invoice currency. The syntax page also lists BT-111 on this element. Blank until every started line parses."
                    },
                    {
                      "role": "vat",
                      "bt": "BT-117",
                      "name": "VAT category tax amount",
                      "definition": "The total VAT amount for a given VAT category.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-TaxTotal/cac-TaxSubtotal/cbc-TaxAmount/",
                      "same_as": "BT-110",
                      "because": "One rate means one VAT breakdown. The stored BR-CO-14 statement says the invoice VAT total equals the sum of the category tax amounts."
                    },
                    {
                      "role": "total",
                      "bt": "BT-112",
                      "name": "Invoice total amount with VAT",
                      "definition": "The total amount of the Invoice with VAT.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-LegalMonetaryTotal/cbc-TaxInclusiveAmount/",
                      "because": "Line net sum plus the VAT total. This is not the amount due for payment."
                    }
                  ],
                  "withheld": [
                    {
                      "field": "lines.desc",
                      "label": "Description",
                      "reason": "One text box. The syntax has an item name, which is required, and an item description, which is optional and is for more detail than the name. The form does not collect them separately, so the box is not stored as either term.",
                      "candidates": [
                        {
                          "bt": "BT-153",
                          "name": "Item name",
                          "definition": "A name for an item.",
                          "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-InvoiceLine/cac-Item/cbc-Name/"
                        },
                        {
                          "bt": "BT-154",
                          "name": "Item description",
                          "definition": "A description for an item.The item description allows for describing the item and its features in more detail than the Item name.",
                          "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-InvoiceLine/cac-Item/cbc-Description/"
                        }
                      ]
                    },
                    {
                      "field": "bizAddress",
                      "label": "Address",
                      "reason": "One textarea. The syntax splits the seller address into separate terms. The typed text is not stored as any one of them.",
                      "candidates": [
                        {
                          "bt": "BT-35",
                          "name": "Seller address line 1",
                          "definition": "The main address line in an address.",
                          "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingSupplierParty/cac-Party/cac-PostalAddress/cbc-StreetName/"
                        },
                        {
                          "bt": "BT-36",
                          "name": "Seller address line 2",
                          "definition": "An additional address line in an address that can be used to give further details supplementing the main line.",
                          "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingSupplierParty/cac-Party/cac-PostalAddress/cbc-AdditionalStreetName/"
                        },
                        {
                          "bt": "BT-37",
                          "name": "Seller city",
                          "definition": "The common name of the city, town or village, where the Seller address is located.",
                          "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingSupplierParty/cac-Party/cac-PostalAddress/cbc-CityName/"
                        },
                        {
                          "bt": "BT-38",
                          "name": "Seller post code",
                          "definition": "The identifier for an addressable group of properties according to the relevant postal service.",
                          "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingSupplierParty/cac-Party/cac-PostalAddress/cbc-PostalZone/"
                        }
                      ]
                    },
                    {
                      "field": "clientAddress",
                      "label": "Address",
                      "reason": "One textarea. The syntax splits the buyer address into separate terms. The typed text is not stored as any one of them.",
                      "candidates": [
                        {
                          "bt": "BT-50",
                          "name": "Buyer address line 1",
                          "definition": "The main address line in an address.",
                          "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingCustomerParty/cac-Party/cac-PostalAddress/cbc-StreetName/"
                        },
                        {
                          "bt": "BT-51",
                          "name": "Buyer address line 2",
                          "definition": "An additional address line in an address that can be used to give further details supplementing the main line.",
                          "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingCustomerParty/cac-Party/cac-PostalAddress/cbc-AdditionalStreetName/"
                        },
                        {
                          "bt": "BT-52",
                          "name": "Buyer city",
                          "definition": "The common name of the city, town or village, where the Buyer's address is located.",
                          "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingCustomerParty/cac-Party/cac-PostalAddress/cbc-CityName/"
                        },
                        {
                          "bt": "BT-53",
                          "name": "Buyer post code",
                          "definition": "The identifier for an addressable group of properties according to the relevant postal service.",
                          "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingCustomerParty/cac-Party/cac-PostalAddress/cbc-PostalZone/"
                        }
                      ]
                    },
                    {
                      "field": "bizCountry",
                      "label": "Country",
                      "reason": "The box is a country name. Seller country code is a code. The example on the syntax page is GB. The typed name is not that code.",
                      "candidates": [
                        {
                          "bt": "BT-40",
                          "name": "Seller country code",
                          "definition": "A code that identifies the country.",
                          "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingSupplierParty/cac-Party/cac-PostalAddress/cac-Country/cbc-IdentificationCode/"
                        }
                      ]
                    },
                    {
                      "field": "clientCountry",
                      "label": "Country",
                      "reason": "The box is a country name. Buyer country code is a code. The example on the syntax page is SE. The typed name is not that code.",
                      "candidates": [
                        {
                          "bt": "BT-55",
                          "name": "Buyer country code",
                          "definition": "A code that identifies the country.",
                          "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingCustomerParty/cac-Party/cac-PostalAddress/cac-Country/cbc-IdentificationCode/"
                        }
                      ]
                    },
                    {
                      "field": "bizExtra",
                      "label": "Extra line (optional)",
                      "reason": "The placeholder says register or tax number. Those are different terms. The box does not say which, so it is not stored as either.",
                      "candidates": [
                        {
                          "bt": "BT-30",
                          "name": "Seller legal registration identifier",
                          "definition": "An identifier issued by an official registrar that identifies the Seller as a legal entity or person.",
                          "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingSupplierParty/cac-Party/cac-PartyLegalEntity/cbc-CompanyID/"
                        },
                        {
                          "bt": "BT-32",
                          "name": "Seller tax registration identifier",
                          "definition": "The Seller's VAT identifier (also known as Seller VAT identification number) or the local identification (defined by the Seller's address) of the Seller for tax purposes or a reference that enables the Seller to state his registered tax status.",
                          "form_note": "The syntax page gives this one description to BT-31 and BT-32 together. It does not give BT-32 a separate sentence.",
                          "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AccountingSupplierParty/cac-Party/cac-PartyTaxScheme/cbc-CompanyID/"
                        }
                      ]
                    },
                    {
                      "field": "vatMode",
                      "label": "What should this invoice say?",
                      "reason": "The form asks for a treatment, not a VAT category code. None of the four labels is stored as the VAT category code or the invoiced item VAT category code.",
                      "candidates": [
                        {
                          "bt": "BT-118",
                          "name": "VAT category code",
                          "definition": "Coded identification of a VAT category.",
                          "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-TaxTotal/cac-TaxSubtotal/cac-TaxCategory/cbc-ID/"
                        },
                        {
                          "bt": "BT-151",
                          "name": "Invoiced item VAT category code",
                          "definition": "The VAT category code for the invoiced item.",
                          "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-InvoiceLine/cac-Item/cac-ClassifiedTaxCategory/cbc-ID/"
                        }
                      ]
                    }
                  ],
                  "presentation": [
                    {
                      "field": "numberFormat",
                      "label": "How numbers are written",
                      "reason": "Chooses a thousands separator for the page. It is not a business term."
                    },
                    {
                      "field": "templateLang",
                      "label": "Template language",
                      "reason": "Chooses the template sentence. It is not a business term."
                    },
                    {
                      "field": "showMonogram",
                      "label": "Show an initials mark",
                      "reason": "Shows or hides a mark on the page. It is not a business term."
                    }
                  ],
                  "absent": [
                    {
                      "bt": "BT-10",
                      "name": "Buyer reference",
                      "definition": "An identifier assigned by the Buyer used for internal routing purposes.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cbc-BuyerReference/",
                      "reason": "The form does not ask for a buyer reference."
                    },
                    {
                      "bt": "BT-81",
                      "name": "Payment means type code",
                      "definition": "The means, expressed as code, for how a payment is expected to be or has been settled.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-PaymentMeans/cbc-PaymentMeansCode/",
                      "reason": "The form does not ask how the invoice is paid. An IBAN does not select this code."
                    },
                    {
                      "bt": "BT-111",
                      "name": "Invoice total VAT amount in accounting currency",
                      "definition": "The total VAT amount for the Invoice or the VAT total amount expressed in the accounting currency accepted or required in the country of the Seller.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-TaxTotal/cbc-TaxAmount/",
                      "reason": "The syntax page lists BT-110 and BT-111 on one element. The form has one currency box and does not ask for a VAT accounting currency, so the VAT total is not stored as BT-111."
                    },
                    {
                      "bt": "BT-113",
                      "name": "Paid amount",
                      "definition": "The sum of amounts which have been paid in advance.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-LegalMonetaryTotal/cbc-PrepaidAmount/",
                      "reason": "The form does not ask for an amount already paid."
                    },
                    {
                      "bt": "BT-115",
                      "name": "Amount due for payment",
                      "definition": "The outstanding amount that is requested to be paid.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-LegalMonetaryTotal/cbc-PayableAmount/",
                      "reason": "The printed total is the invoice total with VAT. Amount due for payment is a different term, and the form does not collect the paid amount, so the total is not stored as the amount due."
                    },
                    {
                      "bt": "BT-126",
                      "name": "Invoice line identifier",
                      "definition": "A unique identifier for the individual line within the Invoice.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-InvoiceLine/cbc-ID/",
                      "reason": "The form does not ask for a line identifier."
                    },
                    {
                      "bt": "BT-130",
                      "name": "Invoiced quantity unit of measure code",
                      "definition": "The unit of measure that applies to the invoiced quantity.",
                      "source_url": "https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-InvoiceLine/cbc-InvoicedQuantity/unitCode/",
                      "reason": "The form asks for a quantity and does not ask for a unit."
                    }
                  ],
                  "vat_categories": {
                    "source_url": "https://docs.peppol.eu/poacc/billing/3.0/codelist/UNCL5305/",
                    "list_name": "Duty or tax or fee category code (Subset of UNCL5305)",
                    "note": "Quoted so the form labels can be compared with the code names. The form does not store one of these codes.",
                    "codes": [
                      {
                        "code": "AE",
                        "name": "Vat Reverse Charge",
                        "definition": "Code specifying that the standard VAT rate is levied from the invoicee."
                      },
                      {
                        "code": "B",
                        "name": "Transferred (VAT), In Italy",
                        "definition": "VAT not to be paid to the issuer of the invoice but directly to relevant tax authority. This code is allowed in the EN 16931 for Italy only based on the Italian A-deviation."
                      },
                      {
                        "code": "E",
                        "name": "Exempt from Tax",
                        "definition": "Code specifying that taxes are not applicable."
                      },
                      {
                        "code": "G",
                        "name": "Free export item, VAT not charged",
                        "definition": "Code specifying that the item is free export and taxes are not charged."
                      },
                      {
                        "code": "K",
                        "name": "VAT exempt for EEA intra-community supply of goods and services",
                        "definition": "A tax category code indicating the item is VAT exempt due to an intra-community supply in the European Economic Area."
                      },
                      {
                        "code": "L",
                        "name": "Canary Islands general indirect tax",
                        "definition": "Impuesto General Indirecto Canario (IGIC) is an indirect tax levied on goods and services supplied in the Canary Islands (Spain) by traders and professionals, as well as on import of goods."
                      },
                      {
                        "code": "M",
                        "name": "Tax for production, services and importation in Ceuta and Melilla",
                        "definition": "Impuesto sobre la Producción, los Servicios y la Importación (IPSI) is an indirect municipal tax, levied on the production, processing and import of all kinds of movable tangible property, the supply of services and the transfer of immovable property located in the cities of Ceuta and Melilla."
                      },
                      {
                        "code": "O",
                        "name": "Services outside scope of tax",
                        "definition": "Code specifying that taxes are not applicable to the services."
                      },
                      {
                        "code": "S",
                        "name": "Standard rate",
                        "definition": "Code specifying the standard rate."
                      },
                      {
                        "code": "Z",
                        "name": "Zero rated goods",
                        "definition": "Code specifying that the goods are at a zero rate."
                      }
                    ],
                    "form_labels": [
                      {
                        "value": "domestic",
                        "label": "Domestic VAT — a rate you enter",
                        "because": "The label is not the code name Standard rate, and it is not the code name Zero rated goods."
                      },
                      {
                        "value": "reverse",
                        "label": "Reverse charge — 0%, with a note you can edit",
                        "because": "The label is not the code name Vat Reverse Charge."
                      },
                      {
                        "value": "export",
                        "label": "Outside the EU — 0%, with a note you can edit",
                        "because": "The code list separates Free export item, VAT not charged, VAT exempt for EEA intra-community supply of goods and services, and Services outside scope of tax."
                      },
                      {
                        "value": "exempt",
                        "label": "Exemption or small-business scheme — 0%, you write the note",
                        "because": "The label is wider than the code name Exempt from Tax. It also says small-business scheme."
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "RuleIndex": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "version",
          "retrieved",
          "note",
          "markdown",
          "llms",
          "openapi",
          "mcp",
          "rules"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "version": {
            "type": "string",
            "pattern": "^\\d+\\.\\d+\\.\\d+$"
          },
          "retrieved": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "note": {
            "type": "string"
          },
          "markdown": {
            "type": "string",
            "pattern": "^/"
          },
          "llms": {
            "type": "string",
            "pattern": "^/"
          },
          "openapi": {
            "type": "string",
            "pattern": "^/"
          },
          "mcp": {
            "type": "string",
            "pattern": "^/"
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RuleSummary"
            }
          }
        },
        "description": "The list of stored rules."
      },
      "RuleSummary": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "country",
          "syntax",
          "group",
          "severity",
          "statement",
          "source_url",
          "html",
          "json",
          "markdown"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9-]+$"
          },
          "country": {
            "type": "string",
            "enum": [
              "EU",
              "DE"
            ]
          },
          "syntax": {
            "type": "string",
            "enum": [
              "ubl"
            ]
          },
          "group": {
            "type": "string",
            "enum": [
              "xrechnung",
              "payment",
              "totals",
              "standard-rated",
              "zero-rated",
              "export",
              "intra-community",
              "reverse-charge",
              "exemption"
            ]
          },
          "severity": {
            "type": "string",
            "enum": [
              "fatal",
              "warning"
            ]
          },
          "statement": {
            "type": "string"
          },
          "source_url": {
            "type": "string",
            "pattern": "^https://"
          },
          "html": {
            "type": "string",
            "pattern": "^/"
          },
          "json": {
            "type": "string",
            "pattern": "^/"
          },
          "markdown": {
            "type": "string",
            "pattern": "^/"
          }
        }
      },
      "Rule": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "country",
          "syntax",
          "group",
          "severity",
          "severity_note",
          "spec",
          "statement",
          "statement_lang",
          "context",
          "test",
          "meaning",
          "fix",
          "example_fail",
          "example_pass",
          "example_note",
          "source_url",
          "source_retrieved",
          "last_verified"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9-]+$"
          },
          "country": {
            "type": "string",
            "enum": [
              "EU",
              "DE"
            ]
          },
          "syntax": {
            "type": "string",
            "enum": [
              "ubl"
            ]
          },
          "group": {
            "type": "string",
            "enum": [
              "xrechnung",
              "payment",
              "totals",
              "standard-rated",
              "zero-rated",
              "export",
              "intra-community",
              "reverse-charge",
              "exemption"
            ]
          },
          "severity": {
            "type": "string",
            "enum": [
              "fatal",
              "warning"
            ]
          },
          "severity_note": {
            "type": "string"
          },
          "spec": {
            "type": "string"
          },
          "statement": {
            "type": "string"
          },
          "statement_lang": {
            "type": "string",
            "enum": [
              "en",
              "de"
            ]
          },
          "context": {
            "type": "string"
          },
          "test": {
            "type": "string"
          },
          "meaning": {
            "type": "string"
          },
          "fix": {
            "type": "string"
          },
          "example_fail": {
            "type": "string"
          },
          "example_pass": {
            "type": "string"
          },
          "example_note": {
            "type": "string"
          },
          "source_url": {
            "type": "string",
            "pattern": "^https://"
          },
          "source_retrieved": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "last_verified": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          }
        },
        "description": "One stored rule. statement, context, and test are copied from the cited source."
      },
      "FieldMap": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "version",
          "spec",
          "source_retrieved",
          "disclaimer",
          "direct",
          "line",
          "rate",
          "wording",
          "derived",
          "withheld",
          "presentation",
          "absent",
          "vat_categories"
        ],
        "properties": {
          "version": {
            "type": "string",
            "pattern": "^\\d+\\.\\d+\\.\\d+$"
          },
          "spec": {
            "type": "string"
          },
          "source_retrieved": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "disclaimer": {
            "type": "string"
          },
          "direct": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MappedTerm"
            }
          },
          "line": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MappedTerm"
            }
          },
          "rate": {
            "$ref": "#/components/schemas/RateBlock"
          },
          "wording": {
            "$ref": "#/components/schemas/WordingBlock"
          },
          "derived": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DerivedTerm"
            }
          },
          "withheld": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WithheldBox"
            }
          },
          "presentation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PresentationBox"
            }
          },
          "absent": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AbsentTerm"
            }
          },
          "vat_categories": {
            "$ref": "#/components/schemas/VatCategories"
          }
        },
        "description": "Which invoice-form boxes match one business term. The VAT treatment labels are not category codes."
      },
      "MappedTerm": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "field",
          "label",
          "bt",
          "name",
          "definition",
          "source_url"
        ],
        "properties": {
          "field": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "form_note": {
            "type": "string"
          },
          "bt": {
            "type": "string",
            "pattern": "^BT-\\d+$"
          },
          "name": {
            "type": "string"
          },
          "definition": {
            "type": "string"
          },
          "source_url": {
            "type": "string",
            "pattern": "^https://"
          }
        }
      },
      "RateTerm": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "bt",
          "name",
          "definition",
          "per",
          "source_url"
        ],
        "properties": {
          "per": {
            "type": "string"
          },
          "bt": {
            "type": "string",
            "pattern": "^BT-\\d+$"
          },
          "name": {
            "type": "string"
          },
          "definition": {
            "type": "string"
          },
          "source_url": {
            "type": "string",
            "pattern": "^https://"
          }
        }
      },
      "RateBlock": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "field",
          "label",
          "other_modes",
          "note",
          "terms"
        ],
        "properties": {
          "field": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "other_modes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "note": {
            "type": "string"
          },
          "terms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RateTerm"
            }
          }
        }
      },
      "WordingTerm": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "bt",
          "name",
          "definition",
          "source_url"
        ],
        "properties": {
          "bt": {
            "type": "string",
            "pattern": "^BT-\\d+$"
          },
          "name": {
            "type": "string"
          },
          "definition": {
            "type": "string"
          },
          "source_url": {
            "type": "string",
            "pattern": "^https://"
          }
        }
      },
      "WordingBlock": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "field",
          "label",
          "exemption_modes",
          "exemption",
          "domestic",
          "note"
        ],
        "properties": {
          "field": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "exemption_modes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "exemption": {
            "$ref": "#/components/schemas/WordingTerm"
          },
          "domestic": {
            "$ref": "#/components/schemas/WordingTerm"
          },
          "note": {
            "type": "string"
          }
        }
      },
      "DerivedTerm": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "role",
          "bt",
          "name",
          "definition",
          "source_url",
          "because"
        ],
        "properties": {
          "role": {
            "type": "string"
          },
          "because": {
            "type": "string"
          },
          "same_as": {
            "type": "string",
            "pattern": "^BT-\\d+$"
          },
          "bt": {
            "type": "string",
            "pattern": "^BT-\\d+$"
          },
          "name": {
            "type": "string"
          },
          "definition": {
            "type": "string"
          },
          "source_url": {
            "type": "string",
            "pattern": "^https://"
          }
        }
      },
      "TermCandidate": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "bt",
          "name",
          "definition",
          "source_url"
        ],
        "properties": {
          "form_note": {
            "type": "string"
          },
          "bt": {
            "type": "string",
            "pattern": "^BT-\\d+$"
          },
          "name": {
            "type": "string"
          },
          "definition": {
            "type": "string"
          },
          "source_url": {
            "type": "string",
            "pattern": "^https://"
          }
        }
      },
      "WithheldBox": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "field",
          "label",
          "reason",
          "candidates"
        ],
        "properties": {
          "field": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "candidates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TermCandidate"
            }
          }
        }
      },
      "PresentationBox": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "field",
          "label",
          "reason"
        ],
        "properties": {
          "field": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        }
      },
      "AbsentTerm": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "bt",
          "name",
          "definition",
          "source_url",
          "reason"
        ],
        "properties": {
          "reason": {
            "type": "string"
          },
          "bt": {
            "type": "string",
            "pattern": "^BT-\\d+$"
          },
          "name": {
            "type": "string"
          },
          "definition": {
            "type": "string"
          },
          "source_url": {
            "type": "string",
            "pattern": "^https://"
          }
        }
      },
      "VatCode": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "name",
          "definition"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "definition": {
            "type": "string"
          }
        }
      },
      "FormLabel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "value",
          "label",
          "because"
        ],
        "properties": {
          "value": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "because": {
            "type": "string"
          }
        }
      },
      "VatCategories": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "source_url",
          "list_name",
          "note",
          "codes",
          "form_labels"
        ],
        "properties": {
          "source_url": {
            "type": "string",
            "pattern": "^https://"
          },
          "list_name": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "codes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VatCode"
            }
          },
          "form_labels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormLabel"
            }
          }
        }
      }
    }
  }
}
