Skip to content
GitHub

Design decisions

  • VAT stays EN-shaped. Every EU format is VAT-based, so vatBreakdown and line vat stay as in EN 16931, with otherTaxes and withholdings beside them. A generic multi-scheme tax model only pays off for non-EU fiscal formats (CFDI, NF-e).
  • kind is only the accounting direction (invoice / creditNote). Debit notes, corrected, prepayment and self-billed invoices are UNCL 1001 typeCodes plus selfBilled, nationalType and correction, which combine freely; a single wider enum could not express a self-billed corrective credit note.
  • id and issueDate are required. Every EU format mandates them; a document without them is a parse error, not a partial invoice.
  • Extensions are typed per country, not a free-form list, so a parser cannot silently write a field nobody reads.