diff --git a/addons/gr-mydata-v1.mdx b/addons/gr-mydata-v1.mdx
index 2846e23..9803f9c 100644
--- a/addons/gr-mydata-v1.mdx
+++ b/addons/gr-mydata-v1.mdx
@@ -242,7 +242,7 @@ Example usage:
"cat": "VAT",
"key": "exempt",
"ext": {
- "gr-mydata-exemption": "3"
+ "gr-mydata-exemption": "7"
}
}
],
diff --git a/regimes/ae.mdx b/regimes/ae.mdx
index 7a2ca98..f2ae56e 100644
--- a/regimes/ae.mdx
+++ b/regimes/ae.mdx
@@ -1,6 +1,19 @@
---
title: United Arab Emirates
---
+The UAE tax system is administered by the Federal Tax Authority (FTA).
+VAT was introduced on January 1, 2018, with standard, zero, and
+exempt rate categories.
+
+Businesses must register for VAT if taxable supplies and imports
+exceed AED 375,000 in a 12-month period, with voluntary registration
+available above AED 187,500. Registered businesses receive a Tax
+Registration Number (TRN) which must be included on all tax invoices.
+
+Simplified VAT invoices may be used when the recipient is not VAT
+registered, or when the transaction value does not exceed AED 10,000
+for VAT-registered recipients. Credit notes are supported for
+correcting invoices.
## Base Details
diff --git a/regimes/ar.mdx b/regimes/ar.mdx
index b4a47f4..7f3774c 100644
--- a/regimes/ar.mdx
+++ b/regimes/ar.mdx
@@ -1,19 +1,36 @@
---
title: Argentina
---
-Argentina's tax system is administered by ARCA (Agencia de Recaudación y Control Aduanero), which oversees the collection of IVA (Impuesto al Valor Agregado), the country's value-added tax.
-
-Taxpayers are identified using three main types of tax identification numbers: CUIT (Clave Única de Identificación Tributaria) - 11 digits (XX-XXXXXXXX-X) used by companies and legal entities with prefixes 30, 33 (conflict resolution), and 34 (foreign entities); CUIL (Clave Única de Identificación Laboral) - 11 digits (XX-XXXXXXXX-X) used by individuals and employees with prefixes 20 (males), 27 (females), and 23 (conflict resolution); and CDI (Clave de Identificación) for foreign residents without CUIT/CUIL (not validated).
-
-IVA rates include 27% increased rate for gas, water and telecom services, 21% general rate for most goods and services, and 10.5% reduced rate for essential goods such as construction, medicine, transportation, and food products.
-
-Argentina applies several retention taxes: IVA Retenido (Retained VAT) with variable rates based on taxpayer category and registration status (reference: AFIP RG 2854/2010 and modifications); Ganancias (Income Tax Withholding) applied to payments for services with rates ranging from 0.5% to 35% depending on service type (reference: AFIP RG 830/2000, RG 4003/2017); and Ingresos Brutos (Gross Income Tax), a provincial tax with rates set by each jurisdiction, typically 1% to 5% depending on province and activity.
-
-Electronic invoicing through ARCA's system is required for most transactions. Electronic invoices must include CAE/CAI (Código de Autorización Electrónico - Electronic Authorization Code) and Point of Sale (Punto de Venta) for invoice numbering.
-
-Common invoice types include Tipo A (issued by Responsable Inscripto to another Responsable Inscripto), Tipo B (issued by Responsable Inscripto to Monotributista or final consumer), Tipo C (issued by Monotributista or exempt entities), Tipo E (export invoices), and Credit Notes (Notas de Crédito - corrective documents).
-
-Argentina has different tax regime classifications: Responsable Inscripto (registered taxpayer with full IVA obligations), Monotributo (simplified tax regime for small businesses), Exento (exempt from IVA), No Responsable (not responsible for IVA collection), and Consumidor Final (final consumer - no tax ID required).
+Argentina's tax system is administered by ARCA (Agencia de Recaudación
+y Control Aduanero), which oversees the collection of IVA (Impuesto al
+Valor Agregado), the country's value-added tax.
+
+Taxpayers are identified using three main types of tax identification
+numbers: CUIT (Clave Única de Identificación Tributaria), 11 digits
+(XX-XXXXXXXX-X) used by companies and legal entities with prefixes 30,
+33, and 34; CUIL (Clave Única de Identificación Laboral), 11 digits used
+by individuals with prefixes 20, 27, and 23; and CDI (Clave de
+Identificación) for foreign residents without CUIT/CUIL.
+
+IVA has increased, general, and reduced rates. Argentina also
+applies several retention taxes: IVA Retenido (Retained VAT) with
+variable rates based on taxpayer category; Ganancias (Income Tax
+Withholding) applied to payments for services; and Ingresos Brutos
+(Gross Income Tax), a provincial tax with rates set by each
+jurisdiction.
+
+Electronic invoicing through ARCA is required for most transactions.
+Invoices must include a CAE (Código de Autorización Electrónico) and
+Point of Sale (Punto de Venta) number.
+
+Common invoice types include Tipo A (between Responsable Inscripto
+parties), Tipo B (to Monotributista or final consumer), Tipo C (from
+Monotributista or exempt entities), Tipo E (exports), and Credit Notes
+(Notas de Crédito).
+
+Tax regime classifications include Responsable Inscripto (full IVA
+obligations), Monotributo (simplified regime for small businesses),
+Exento (exempt from IVA), and Consumidor Final (no tax ID required).
## Base Details
diff --git a/regimes/at.mdx b/regimes/at.mdx
index 9e7cb83..3ab9dc2 100644
--- a/regimes/at.mdx
+++ b/regimes/at.mdx
@@ -1,6 +1,15 @@
---
title: Austria
---
+Austria's tax system is administered by the Federal Ministry of
+Finance (Bundesministerium für Finanzen). As an EU member state,
+Austria follows the EU VAT Directive with standard, reduced, and
+intermediate rates.
+
+VAT (Umsatzsteuer, USt) applies to most goods and services.
+Businesses are identified by their UID-Nummer (VAT identification
+number) in the format ATU followed by 8 digits. Austria supports
+credit notes for invoice corrections.
## Base Details
diff --git a/regimes/be.mdx b/regimes/be.mdx
index b486674..ea3c081 100644
--- a/regimes/be.mdx
+++ b/regimes/be.mdx
@@ -1,6 +1,19 @@
---
title: Belgium
---
+Belgium's tax system is administered by the Federal Public Service Finance
+(Service Public Fédéral Finances / Federale Overheidsdienst Financiën).
+As an EU member state, Belgium follows the EU VAT Directive.
+
+VAT (Taxe sur la Valeur Ajoutée, TVA / Belasting over de Toegevoegde Waarde,
+BTW) applies at standard, intermediate, and reduced rates. The intermediate
+rate covers certain goods including social housing, restaurant services, and
+some food products, while the reduced rate applies to basic necessities such
+as food, water, pharmaceuticals, books, and passenger transport.
+
+Businesses are identified by their VAT number (Numéro de TVA / BTW-nummer)
+in the format BE followed by 10 digits. Belgium supports credit notes for
+invoice corrections.
## Base Details
diff --git a/regimes/br.mdx b/regimes/br.mdx
index bf54027..9729b9d 100644
--- a/regimes/br.mdx
+++ b/regimes/br.mdx
@@ -1,7 +1,25 @@
---
title: Brazil
---
-Tax identification in Brazil is provided either through a CNPJ for businesses or a CPF for individuals. Both types are valid for the issuance of NFS-e (electronic service invoices).
+Brazil uses Notas Fiscais Eletrônicas (electronic fiscal notes) such as NFSe,
+NFe, and NFCe for reporting tax information to municipal, state, and federal
+authorities. The tax system is administered by the Receita Federal (Federal
+Revenue Service).
+
+Tax identification is provided through a CNPJ (Cadastro Nacional da Pessoa
+Jurídica) for businesses, consisting of 14 digits, or a CPF (Cadastro de Pessoas
+Físicas) for individuals, consisting of 11 digits. Both types are valid for the
+issuance of NFS-e (electronic service invoices).
+
+Brazilian addresses have three subdivisions relevant for tax purposes: bairro
+(neighbourhood), município (municipality), and estado (state). Municipality codes
+follow the IBGE coding system.
+
+Service notes (NFSe) let service providers document and report taxes such as
+ISS (Imposto Sobre Serviços) related to the services they provide. Municipal
+governments regulate them. Special tax regimes include Simples Nacional for
+simplified taxation of micro and small enterprises, and MEI (Micro-Empreendedor
+Individual) for individual micro-entrepreneurs.
## Base Details
diff --git a/regimes/ca.mdx b/regimes/ca.mdx
index 16c6b54..89331ea 100644
--- a/regimes/ca.mdx
+++ b/regimes/ca.mdx
@@ -1,6 +1,22 @@
---
title: Canada
---
+Canada's tax system is administered by the Canada Revenue Agency
+(CRA). The country uses a multi-layered sales tax system consisting
+of the federal Goods and Services Tax (GST) and various provincial
+taxes.
+
+The Harmonized Sales Tax (HST) combines GST and provincial sales
+tax in participating provinces. Non-participating provinces levy a
+separate Provincial Sales Tax (PST) at varying rates. Zero-rated
+supplies include basic groceries, agricultural products, and
+exports. Exempt supplies include certain financial services,
+educational services, and healthcare services.
+
+Businesses with annual taxable revenues exceeding CAD 30,000 must
+register for GST/HST. Tax identification is through the Business
+Number (BN) assigned by the CRA. Canada supports both credit notes
+and debit notes for invoice corrections.
## Base Details
diff --git a/regimes/ch.mdx b/regimes/ch.mdx
index 9b0787a..118687f 100644
--- a/regimes/ch.mdx
+++ b/regimes/ch.mdx
@@ -1,6 +1,21 @@
---
title: Switzerland
---
+Switzerland's tax system is administered by the Federal Tax Administration
+(Eidgenössische Steuerverwaltung, ESTV). Although not an EU member, Switzerland
+operates its own VAT system (Mehrwertsteuer, MWST).
+
+VAT applies at standard, reduced, and special rates. The reduced rate covers
+everyday goods such as food, non-alcoholic beverages, books, newspapers, and
+medicines, while a special rate applies to accommodation services.
+
+Businesses with annual taxable revenues exceeding CHF 100,000 must register
+for VAT. Tax identification uses the UID (Unternehmens-Identifikationsnummer)
+in the format CHE-XXX.XXX.XXX followed by "MWST" for VAT purposes.
+
+Switzerland supports credit notes for invoice corrections. E-invoicing is not
+mandatory but is increasingly used, particularly in business-to-government (B2G)
+transactions.
## Base Details
diff --git a/regimes/co.mdx b/regimes/co.mdx
index d038a01..9f606ef 100644
--- a/regimes/co.mdx
+++ b/regimes/co.mdx
@@ -1,6 +1,26 @@
---
title: Colombia
---
+Colombia's tax system is administered by the DIAN (Dirección de Impuestos y
+Aduanas Nacionales). Electronic invoicing is mandatory for most businesses
+through the DIAN's e-invoicing platform.
+
+Businesses are identified by their NIT (Número de Identificación Tributaria),
+which includes a check digit. For B2C transactions (using the simplified tag),
+customers may be identified using various document types including Registro
+civil, Tarjeta de identidad, Cédula de ciudadanía, Tarjeta de extranjería,
+Cédula de extranjería, Pasaporte, PEP, or NUIP. If no customer identity is
+provided for simplified invoices, the reserved final consumer code is used
+automatically.
+
+IVA (Impuesto sobre el Valor Agregado) applies at general, reduced, and zero
+rates. Some goods and services are excluded or exempt from IVA.
+
+Invoice series must be pre-registered with the DIAN. Municipality codes are
+required for addresses. Both credit notes and debit notes are supported for
+invoice corrections, each requiring a specific correction cause code from the
+DIAN (e.g. partial refund, revoked, discount, adjustment for credit notes;
+interest, pending charges, change in value for debit notes).
## Base Details
diff --git a/regimes/de.mdx b/regimes/de.mdx
index 92e9c1a..a567141 100644
--- a/regimes/de.mdx
+++ b/regimes/de.mdx
@@ -1,6 +1,20 @@
---
title: Germany
---
+Germany's tax system is administered by the Federal Central Tax Office
+(Bundeszentralamt für Steuern, BZSt). As an EU member state, Germany follows
+the EU VAT Directive with locally adapted rates.
+
+VAT (Umsatzsteuer, USt) applies at standard and reduced rates. The reduced
+rate covers food, books, newspapers, public transport, and cultural events.
+
+Businesses are identified by their Umsatzsteuer-Identifikationsnummer (USt-IdNr)
+in the format DE followed by 9 digits for cross-border transactions, and by
+their Steuernummer (tax number) in regional formats for domestic purposes.
+
+Germany supports credit notes for invoice corrections. E-invoicing is
+progressively becoming mandatory, with XRechnung as the standard for B2G
+transactions and ZUGFeRD/Factur-X widely used for B2B.
## Base Details
diff --git a/regimes/dk.mdx b/regimes/dk.mdx
index 0ef86f1..2506ecf 100644
--- a/regimes/dk.mdx
+++ b/regimes/dk.mdx
@@ -1,6 +1,19 @@
---
title: Denmark
---
+Denmark's tax system is administered by the Danish Tax Agency (Skattestyrelsen).
+As an EU member state, Denmark follows the EU VAT Directive.
+
+VAT (Moms, short for Merværdiafgift) applies at a single standard rate on
+most goods and services. Unlike many other EU countries, Denmark does not
+have reduced VAT rates, making it one of the simplest VAT systems in Europe.
+Certain supplies are zero-rated (e.g. exports, newspapers) or exempt (e.g.
+healthcare, education, financial services).
+
+Businesses are identified by their CVR number (Det Centrale Virksomhedsregister),
+an 8-digit number. The Danish VAT number uses the format DK followed by the
+8-digit CVR number. E-invoicing via the NemHandel/PEPPOL network is mandatory
+for all B2G transactions.
## Base Details
@@ -20,4 +33,14 @@ title: Denmark
| Rate | Keys | Name | Percents | Description |
| ---- | ---- | ---- | -------- | ----------- |
-| general | standard | General Rate | 25.0% | |
\ No newline at end of file
+| general | standard | General Rate | 25.0% | |
+
+## Correction Definitions
+
+Auto-generation of corrective invoices or credit and debit notes is
+supported.
+
+### Invoice Types
+
+The types of invoices that can be created with a preceding definition:
+- credit-note
diff --git a/regimes/el.mdx b/regimes/el.mdx
index b7e28e7..0039d7d 100644
--- a/regimes/el.mdx
+++ b/regimes/el.mdx
@@ -1,6 +1,23 @@
---
title: Greece
---
+Greece's tax system is administered by the Independent Authority for Public
+Revenue (IAPR / AADE). As an EU member state, Greece follows the EU VAT
+Directive with locally adapted rates.
+
+FPA (Fóros Prostithémenis Axías) applies at standard, reduced, and
+super-reduced rates. The islands of Leros, Lesbos, Kos, Samos, and Chios
+benefit from a reduction on all standard rates.
+
+Businesses are identified by their AFM (Arithmós Forologikoú Mitróou), a
+9-digit tax identification number. The Greek VAT number uses the format EL
+followed by the 9-digit AFM.
+
+Greece uses the myDATA platform for tax reporting, where invoices must be
+classified with specific invoice type codes, VAT category codes, income
+classifications, and exemption codes. Payment method codes must also be
+reported. PEPPOL BIS Billing 3.0 is used for B2G e-invoicing. Credit notes
+are supported for invoice corrections.
## Base Details
diff --git a/regimes/es.mdx b/regimes/es.mdx
index f65b8b9..eda9631 100644
--- a/regimes/es.mdx
+++ b/regimes/es.mdx
@@ -1,6 +1,26 @@
---
title: Spain
---
+Spain's tax system is administered by the Agencia Tributaria (AEAT). As an
+EU member state, Spain follows the EU VAT Directive with locally adapted rates.
+
+IVA (Impuesto sobre el Valor Añadido) applies at general, reduced, and
+super-reduced rates. The Canary Islands use IGIC (Impuesto General Indirecto
+Canario) instead of IVA, while Ceuta and Melilla use IPSI (Impuesto sobre la
+Producción, los Servicios y la Importación).
+
+Businesses are identified by their NIF (Número de Identificación Fiscal) or
+CIF for companies. IRPF (Impuesto sobre la Renta de las Personas Físicas)
+retention taxes apply to freelancer invoices at varying rates.
+
+According to Real Decreto 1619/2012, only rectified (rectificativa) invoices
+are recognized in Spanish law. GOBL maps corrective invoices to "rectificación
+modelo íntegro" (complete replacement) and credit notes to "rectificación por
+diferencias" (correction by differences, with quantities inverted during
+conversion). The FacturaE format is used for B2G e-invoicing, with TicketBAI
+required in the Basque Country, VeriFactu being rolled out nationally, and the
+SII (Suministro Inmediato de Información) system providing near-real-time
+reporting of invoicing data to the AEAT.
## Base Details
diff --git a/regimes/fr.mdx b/regimes/fr.mdx
index ef36cda..c5e42dd 100644
--- a/regimes/fr.mdx
+++ b/regimes/fr.mdx
@@ -1,7 +1,24 @@
---
title: France
---
-The French tax regime covers the basics.
+France's tax system is administered by the Direction Générale des Finances
+Publiques (DGFiP). As an EU member state, France follows the EU VAT Directive
+with locally adapted rates.
+
+TVA (Taxe sur la Valeur Ajoutée) applies at standard, intermediate, reduced,
+and super-reduced rates covering various categories of goods and services.
+
+Businesses are identified by three closely related numbers: the VAT code
+(numéro de TVA intracommunautaire), an 11-digit number starting with a
+2-digit checksum followed by the 9-digit SIREN; the SIREN itself, a 9-digit
+company identifier from the national register (Répertoire SIRENE); and the
+SIRET, which extends the SIREN with a 5-digit establishment number to form
+a 14-digit code.
+
+France supports both corrective invoices and credit notes for invoice
+corrections. E-invoicing via the Chorus Pro platform is mandatory for B2G
+transactions, with B2B e-invoicing being progressively mandated through the
+CTC (Continuous Transaction Controls) framework.
## Base Details
diff --git a/regimes/gb.mdx b/regimes/gb.mdx
index c94d16a..ca2e74b 100644
--- a/regimes/gb.mdx
+++ b/regimes/gb.mdx
@@ -1,6 +1,21 @@
---
title: United Kingdom
---
+The United Kingdom's tax system is administered by His Majesty's Revenue and
+Customs (HMRC). Following Brexit, the UK operates its own VAT system
+independently of the EU VAT Directive.
+
+VAT applies at standard, reduced, and zero rates. Zero-rated supplies include
+food, children's clothing, books, and newspapers. Some supplies are exempt
+from VAT, including financial services, education, and healthcare.
+Companies are identified by their VAT Registration Number (VRN) in the format
+GB followed by 9 digits, and optionally by their Company Registration Number
+(CRN) from Companies House.
+
+Northern Ireland (country code XI) has special arrangements for goods under
+the Windsor Framework, remaining aligned with EU VAT rules for goods while
+following UK rules for services. Credit notes are supported for invoice
+corrections.
## Base Details
diff --git a/regimes/ie.mdx b/regimes/ie.mdx
index 5570342..e92adb0 100644
--- a/regimes/ie.mdx
+++ b/regimes/ie.mdx
@@ -1,6 +1,19 @@
---
title: Ireland
---
+Ireland's tax system is administered by the Revenue Commissioners (Na
+Coimisinéirí Ioncaim). As an EU member state, Ireland follows the EU VAT
+Directive with locally adapted rates.
+
+VAT applies at standard, reduced, second reduced, livestock, and zero rates.
+Zero-rated supplies include food, children's clothing, oral medicines, and
+exports.
+
+Businesses are identified by their VAT registration number in the format IE
+followed by 7 digits and 1-2 letters.
+
+Ireland supports credit notes for invoice corrections. E-invoicing via
+PEPPOL is supported for B2G transactions.
## Base Details
diff --git a/regimes/in.mdx b/regimes/in.mdx
index f93c824..1e9168d 100644
--- a/regimes/in.mdx
+++ b/regimes/in.mdx
@@ -1,6 +1,26 @@
---
title: India
---
+India follows a dual GST (Goods and Services Tax) model, where both the Central
+and State Governments levy taxes. CGST (Central GST) is levied by the Central
+Government, SGST/UTGST (State/Union Territory GST) by state governments, and
+IGST (Integrated GST) on interstate supplies and imports.
+
+For intrastate supplies, CGST and SGST/UTGST apply in equal proportions. For
+interstate supplies and imports, IGST applies at a rate equivalent to CGST plus
+SGST. A Compensation Cess may apply on luxury and sin goods. Due to the dual
+model, tax rate allocations between central and state must be managed at the
+application level.
+
+GST rates vary by goods and services across multiple rate slabs. Exports and
+supplies to Special Economic Zones are zero-rated. Exempt supplies include
+fresh fruits and vegetables, educational services, and public road tolls.
+
+Businesses are identified by their GSTIN (Goods and Services Tax Identification
+Number), a unique 15-digit identifier with format and checksum validation.
+Items on invoices must include HSN (Harmonized System of Nomenclature) codes
+for goods classification. India supports both credit notes and debit notes for
+invoice corrections.
## Base Details
diff --git a/regimes/it.mdx b/regimes/it.mdx
index 5df9ac9..4d9d697 100644
--- a/regimes/it.mdx
+++ b/regimes/it.mdx
@@ -1,6 +1,26 @@
---
title: Italy
---
+Italy's tax system is administered by the Agenzia delle Entrate (Revenue
+Agency). All invoices must comply with the FatturaPA electronic format,
+transmitted through the Sistema di Interscambio (SDI).
+
+IVA (Imposta sul Valore Aggiunto) applies at standard, reduced, intermediate,
+and minimum rates covering various categories of goods and services.
+
+Businesses are identified by their Partita IVA (VAT number), an 11-digit code,
+and by the Codice Fiscale (fiscal code) for individuals and entities. The
+FatturaPA format requires a Codice Destinatario (recipient code) or PEC
+(certified email) for invoice routing. Every supplier must declare a fiscal
+regime (Regime Fiscale, e.g. RF01 Ordinary, RF19 Flat rate) in their invoices.
+
+The FatturaPA format supports an extensive set of document types (TD01-TD28)
+covering standard invoices, self-billed invoices, and various special cases.
+Line items may require Nature (Natura) codes to explain VAT exemptions or
+reverse charge situations. Stamp duty (Imposta di bollo) applies to certain
+exempt invoices. Withholding taxes (IRPEF, IRES, INPS, ENASARCO, ENPAM) can
+be applied alongside VAT. Both credit notes and debit notes are supported for
+corrections.
## Base Details
diff --git a/regimes/mx.mdx b/regimes/mx.mdx
index 191639e..0e18187 100644
--- a/regimes/mx.mdx
+++ b/regimes/mx.mdx
@@ -1,6 +1,27 @@
---
title: Mexico
---
+Mexico's tax system is administered by the SAT (Servicio de Administración
+Tributaria). Electronic invoicing through CFDI (Comprobante Fiscal Digital por
+Internet) version 4.0 is mandatory for all businesses.
+
+IVA (Impuesto al Valor Agregado) applies at general, zero, and exempt rates.
+Zero-rated supplies include food, medicine, and exports, while educational
+and medical services are exempt.
+
+Businesses are identified by their RFC (Registro Federal de Contribuyentes),
+a 12-character code for companies or 13-character code for individuals, which
+includes a date component and check digits. Every supplier and customer must
+be associated with a fiscal regime code (RegimenFiscal).
+
+CFDI invoices require specific fields including issue place (LugarExpedicion),
+CFDI use (UsoCFDI), payment method (MetodoPago distinguishing between fully
+paid PUE and pending PPD invoices), payment means (FormaPago), and
+product/service codes (ClaveProdServ) from the SAT catalog. For B2C sales,
+the simplified tag triggers use of the generic RFC code for final consumers.
+For foreign customers, their country and local tax code are mapped
+automatically. Invoices can include complements for fuel account balances and
+food vouchers among others.
## Base Details
diff --git a/regimes/nl.mdx b/regimes/nl.mdx
index f1c04d6..d01d74e 100644
--- a/regimes/nl.mdx
+++ b/regimes/nl.mdx
@@ -1,6 +1,22 @@
---
title: The Netherlands
---
+The Netherlands' tax system is administered by the Belastingdienst (Tax and
+Customs Administration). As an EU member state, the Netherlands follows the
+EU VAT Directive with locally adapted rates.
+
+BTW (Belasting over de Toegevoegde Waarde) applies at standard and reduced
+rates. The reduced rate covers food, water, pharmaceuticals, books, passenger
+transport, hotel accommodation, and cultural and sporting events.
+
+Businesses are identified by their BTW-nummer (VAT number) in the format NL
+followed by 9 digits, the letter B, and 2 check digits (e.g.
+NL123456789B01). The KVK (Kamer van Koophandel) number is the commercial
+register number.
+
+The Netherlands supports credit notes for invoice corrections. E-invoicing
+via PEPPOL is commonly used, and is mandatory for B2G transactions with the
+central government.
## Base Details
diff --git a/regimes/pl.mdx b/regimes/pl.mdx
index f3f45b2..41e4370 100644
--- a/regimes/pl.mdx
+++ b/regimes/pl.mdx
@@ -1,6 +1,21 @@
---
title: Poland
---
+Poland's tax system is administered by the Krajowa Administracja Skarbowa
+(National Revenue Administration, KAS). As an EU member state, Poland follows
+the EU VAT Directive with locally adapted rates.
+
+VAT (Podatek od towarów i usług, PTU) applies at standard, reduced, and
+super-reduced rates. Zero-rated supplies include exports and intra-community
+supplies.
+
+Businesses are identified by their NIP (Numer Identyfikacji Podatkowej), a
+10-digit tax identification number. The Polish VAT number uses the format PL
+followed by the 10-digit NIP.
+
+Poland has implemented the KSeF (Krajowy System e-Faktur) national e-invoicing
+system, which is progressively becoming mandatory for B2B transactions.
+E-invoicing via PEPPOL is used for cross-border and B2G transactions.
## Base Details
diff --git a/regimes/pt.mdx b/regimes/pt.mdx
index 95622bf..fe16421 100644
--- a/regimes/pt.mdx
+++ b/regimes/pt.mdx
@@ -1,6 +1,23 @@
---
title: Portugal
---
+Portugal's tax system is administered by the Autoridade Tributária e Aduaneira
+(AT). As an EU member state, Portugal follows the EU VAT Directive with
+locally adapted rates that vary by region.
+
+IVA (Imposto sobre o Valor Acrescentado) applies at standard, intermediate,
+and reduced rates on the mainland. The autonomous regions of Açores and
+Madeira apply their own reduced rates.
+
+Businesses are identified by their NIF (Número de Identificação Fiscal), a
+9-digit number. The Portuguese VAT number uses the format PT followed by the
+NIF.
+
+Portugal requires all invoicing software to be certified by the AT and
+invoices must include a unique document identifier (ATCUD) and a hash chain
+linking sequential documents. The SAF-T (Standard Audit File for Tax Purposes)
+format is used for tax reporting. Both credit notes and debit notes are
+supported for invoice corrections.
## Base Details
diff --git a/regimes/se.mdx b/regimes/se.mdx
index 21cce7c..dd0dcb6 100644
--- a/regimes/se.mdx
+++ b/regimes/se.mdx
@@ -1,6 +1,27 @@
---
title: Sweden
---
+Sweden's tax system is administered by the Swedish Tax Agency
+(Skatteverket). As an EU member state, Sweden follows the EU VAT Directive
+with locally adapted rates.
+
+Moms (Mervärdesskatt) applies at standard, reduced, and heavily reduced
+rates. Exports and certain financial and healthcare services are exempt.
+
+Businesses are identified by their Organisationsnummer (organization number),
+a 10-digit number validated with the Luhn algorithm. The Swedish VAT number
+uses the format SE followed by the 10-digit organization number plus "01" as
+check digits. Individuals may be identified by their Personnummer (personal
+identity number, format YYMMDD-XXXX) or Samordningsnummer (coordination
+number for non-residents, where the day component is offset by 60). Sole
+proprietorships use the owner's personal number as their organization number.
+
+E-invoicing via PEPPOL BIS Billing 3.0 is mandatory for all B2G transactions
+since April 2019. F-tax (F-skatt) registration indicates that a business
+handles its own tax payments, exempting customers from withholding obligations.
+Reverse charge applies in specific sectors (construction, metals, waste) and
+for cross-border transactions within the EU. Simplified invoices may be used
+for transactions up to 4000 SEK.
## Base Details
diff --git a/regimes/sg.mdx b/regimes/sg.mdx
index e7ef387..6bc5923 100644
--- a/regimes/sg.mdx
+++ b/regimes/sg.mdx
@@ -1,21 +1,22 @@
---
title: Singapore
---
-Singapore offers a simple GST model with a standard rate along with a few exceptions. GST is handled by the Inland Revenue Authority of Singapore ([IRAS](https://www.iras.gov.sg/taxes/goods-services-tax-(gst)))
-
-For GST to be chargeable on a supply of goods and services, the following four conditions must be satisfied:
-
-1. The supply must be made in Singapore
-2. The supply is a taxable supply
-3. The supply is made by a taxable person
-4. The supply is made in the course of furtherance of any business carried on by the taxable person, i.e, GST is not chargeable on personal transactions
-
-GST is chargeable on all imported goods (whether for domestic consumption, sale, or re-export), regardless of whether the importer is GST-registered or not. The importer is required to take up the appropriate import permit and pay GST upon importation of the goods into Singapore. Import GST is not chargeable under the following circumstances:
-
-1. Importation of investment precious metals.
-2. Importation of goods that are specifically given GST reliefs5 under the GST Act.
-3. Importation of goods into Zero-GST/Licensed warehouses administered by Singapore Customs.
-4. Importation of goods by GST-registered businesses that are under Major Exporter Scheme or other approved schemes.
+Singapore's tax system includes a Goods and Services Tax (GST) administered
+by the Inland Revenue Authority of Singapore (IRAS). Zero-rated supplies apply
+to international services and exports. Exempt supplies include financial
+services, sale and lease of residential properties, digital payment tokens,
+and investment precious metals.
+
+Businesses are identified by their Unique Entity Number (UEN). GST-registered
+suppliers must display their GST Registration Number on all tax invoices,
+which in most cases is the same as the UEN.
+
+Three invoicing methods are supported: tax invoices (standard, requiring full
+supplier and customer details), simplified tax invoices (for transactions
+up to 1000 SGD inclusive of GST), and receipts (for non-GST-registered
+customers). Credit notes are supported for correcting invoices; debit notes
+in Singapore are used for requesting payment on non-GST transactions, not
+for invoice corrections.
## Base Details
diff --git a/regimes/us.mdx b/regimes/us.mdx
index 4384104..416ea56 100644
--- a/regimes/us.mdx
+++ b/regimes/us.mdx
@@ -1,6 +1,22 @@
---
title: United States of America
---
+The United States does not have a federal value-added tax (VAT) or goods and
+services tax (GST). Instead, sales taxes are levied at the state and local
+level, with rates and rules varying significantly across jurisdictions.
+
+Sales tax rates vary significantly by jurisdiction, with some states having
+no sales tax at all (e.g. Oregon, Montana, Delaware, New Hampshire). Sales
+tax is generally collected by the seller at the point of sale and remitted to
+the relevant state tax authority.
+
+Businesses are identified by their EIN (Employer Identification Number), a
+9-digit number assigned by the IRS (Internal Revenue Service) in the format
+XX-XXXXXXX. State-level tax registration is separate and varies by
+jurisdiction.
+
+There is no federal e-invoicing mandate. Both credit notes and debit notes
+are supported for invoice corrections.
## Base Details
diff --git a/terms/en16931.yaml b/terms/en16931.yaml
index edf8ed2..b818a92 100644
--- a/terms/en16931.yaml
+++ b/terms/en16931.yaml
@@ -65,7 +65,7 @@ terms:
- id: "BT-9"
name: "Payment due date"
paths:
- - $.doc.payment.terms[*].due_dates
+ - $.doc.payment.terms.due_dates[*].date
notes: |-
Forms part of the general payment details.
@@ -73,10 +73,6 @@ terms:
name: "Buyer reference"
paths:
- $.doc.ordering.code
- - $.doc.ordering.identities[*].code
- notes: |-
- Additional codes defined with types or keys are available in the ordering identities
- array.
- id: "BT-11"
name: "Project reference"
@@ -115,14 +111,12 @@ terms:
- id: "BT-18"
name: "Invoiced object identifier"
- path:
- - $.doc.ordering.code
+ paths:
- $.doc.ordering.identities[*].code
- $.doc.ordering.identities[*].ext['untdid-reference']
notes: |-
- GOBL supports multiple identifiers. If schema is important for the identifier
- and the regular code cannot be used, assume the **first** identifier should be mapped
- to the `BT-18` term.
+ Mapped to the first ordering identity. The scheme identifier (BT-18-1) is
+ stored in the `untdid-reference` extension when present.
- id: "BT-19"
name: "Buyer accounting reference"
@@ -133,7 +127,7 @@ terms:
- id: "BT-20"
name: "Payment terms"
paths:
- - $.doc.payment.terms
+ - $.doc.payment.terms.notes
- id: "BG-1"
name: "INVOICE NOTE"
@@ -179,7 +173,8 @@ terms:
- id: "BT-25"
name: "Preceding invoice reference"
paths:
- - $.doc.preceding
+ - $.doc.preceding[*].series
+ - $.doc.preceding[*].code
- id: "BT-26"
name: "Preceding invoice issue date"
@@ -214,17 +209,22 @@ terms:
- id: "BT-29"
name: "Seller identifier"
paths:
- - $.doc.supplier.uuid
- - $.doc.supplier.identities
+ - $.doc.supplier.identities[*].code
+ - $.doc.supplier.identities[*].ext['iso-scheme-id']
notes: |-
- Supplier UUID is designed for use with internal systems of the document issuer.
- dentifier schemes may be defined using extensions according to the standard
- in use.
+ Identities without a scope and without `ext['iso-scheme-id']` map to the
+ plain party identifier. Identities with `ext['iso-scheme-id']` but no scope
+ map to the global identifier with a scheme.
- id: "BT-30"
name: "Seller legal registration identifier"
paths:
- - $.doc.supplier.identities
+ - $.doc.supplier.identities[*].code
+ - $.doc.supplier.identities[*].scope
+ - $.doc.supplier.identities[*].ext['iso-scheme-id']
+ notes: |-
+ Uses identities where `scope` is `"legal"`. The scheme identifier is
+ stored in `ext['iso-scheme-id']` when present.
- id: "BT-31"
name: "Seller VAT identifier"
@@ -234,9 +234,11 @@ terms:
- id: "BT-32"
name: "Seller tax registration identifier"
paths:
- - $.doc.supplier.identities
+ - $.doc.supplier.identities[*].code
+ - $.doc.supplier.identities[*].scope
notes: |-
- All non-VAT tax registration details can be defined in the `identities` array.
+ Uses identities where `scope` is `"tax"`. The tax scheme type is
+ stored in the identity `type` field.
- id: "BT-33"
name: "Seller additional legal information"
@@ -343,17 +345,22 @@ terms:
- id: "BT-46"
name: "Buyer identifier"
paths:
- - $.doc.customer.uuid
- - $.doc.customer.identities
+ - $.doc.customer.identities[*].code
+ - $.doc.customer.identities[*].ext['iso-scheme-id']
notes: |-
- Customer UUID is designed for use with internal systems of the document issuer.
- Identifier schemes may be defined using extensions according to the standard
- in use.
+ Identities without a scope and without `ext['iso-scheme-id']` map to the
+ plain party identifier. Identities with `ext['iso-scheme-id']` but no scope
+ map to the global identifier with a scheme.
- id: "BT-47"
name: "Buyer legal registration identifier"
paths:
- - $.doc.customer.identities
+ - $.doc.customer.identities[*].code
+ - $.doc.customer.identities[*].scope
+ - $.doc.customer.identities[*].ext['iso-scheme-id']
+ notes: |-
+ Uses identities where `scope` is `"legal"`. The scheme identifier is
+ stored in `ext['iso-scheme-id']` when present.
- id: "BT-48"
name: "Buyer VAT identifier"
@@ -453,20 +460,21 @@ terms:
- id: "BT-60"
name: "Payee identifier"
paths:
- - $.doc.payment.payee.uuid
- - $.doc.payment.payee.identities
+ - $.doc.payment.payee.identities[*].code
+ - $.doc.payment.payee.identities[*].ext['iso-scheme-id']
notes: |-
- Payee UUID is designed for use with internal systems of the document issuer.
- Identifier schemes may be defined using extensions according to the standard
- in use.
+ Identities without a scope map to the payee identifier. The scheme
+ identifier is stored in `ext['iso-scheme-id']` when present.
- id: "BT-61"
name: "Payee legal registration identifier"
paths:
- - $.doc.payment.payee.tax_id
- - $.doc.payment.payee.identities
+ - $.doc.payment.payee.identities[*].code
+ - $.doc.payment.payee.identities[*].scope
+ - $.doc.payment.payee.identities[*].ext['iso-scheme-id']
notes: |-
- The payee's VAT ID may be provided as the primary legal registration identifier.
+ Uses identities where `scope` is `"legal"`. The scheme identifier is
+ stored in `ext['iso-scheme-id']` when present.
- id: "BG-11"
name: "SELLER TAX REPRESENTATIVE PARTY"
@@ -543,11 +551,9 @@ terms:
- id: BT-71
name: Deliver to location identifier
paths:
- - $.doc.delivery.receiver.uuid
- - $.doc.delivery.receiver.identities
- - $.doc.delivery.receiver.tax_id
+ - $.doc.delivery.identities
notes: |-
- Extensions in identities may be used to determine the scheme identifier if required.
+ Delivery location identifiers are stored in the delivery identities array, not on the receiver party. The identity label holds the scheme identifier if present.
- id: BT-72
name: "Actual delivery date"
paths:
@@ -570,7 +576,7 @@ terms:
- id: BG-15
name: DELIVER TO ADDRESS
paths:
- - $.doc.delivery.address
+ - $.doc.delivery.receiver.addresses
terms:
- id: BT-75
name: Deliver to address line 1
@@ -584,7 +590,7 @@ terms:
- id: BT-76
name: Deliver to address line 2
paths:
- - $.doc.delivery.reveiver.addresses[0].street_extra
+ - $.doc.delivery.receiver.addresses[0].street_extra
- id: BT-165
name: Deliver to address line 3
paths: []
@@ -597,7 +603,7 @@ terms:
- id: BT-78
name: Deliver to postal code
paths:
- - $.doc.delivery.reveiver.addresses[0].code
+ - $.doc.delivery.receiver.addresses[0].code
- id: BT-79
name: Deliver to country subdivision
paths:
@@ -615,20 +621,19 @@ terms:
- id: BT-81
name: Payment means type code
paths:
- - $.doc.payment.instructions.key
+ - $.doc.payment.instructions.ext["untdid-payment-means"]
notes: |-
- Mapping of GOBL payment means key to UNTDID 4461 codes is provided
- in library will update extensions.
+ The UNTDID 4461 payment means code is stored in the extension.
+ The GOBL payment instructions key (e.g. "credit-transfer") is
+ mapped bidirectionally to the code by the libraries.
- id: BT-82
name: Payment means text
paths:
- - $.doc.payment.instructions.key
- $.doc.payment.instructions.detail
notes: |-
- In GOBL, payment means keys are self-descriptive, but if additional
- details are required, they can be provided in the detail or description
- fields provided.
+ The libraries map the detail field directly to the payment means
+ text/information field in CII and UBL.
- id: BT-83
name: Remittance information
@@ -656,9 +661,11 @@ terms:
name: Payment account name
paths:
- $.doc.payment.instructions.credit_transfer[*].name
+ notes: |-
+ CII conversion intentionally omits the account name output.
- id: BT-86
- name: Payment serivce provider identifier
+ name: Payment service provider identifier
paths:
- $.doc.payment.instructions.credit_transfer[*].bic
@@ -670,15 +677,15 @@ terms:
- id: BT-87
name: Payment card primary account number
paths:
- - $.doc.payment.instructions.card.first6
- $.doc.payment.instructions.card.last4
notes: |-
- The first 6 and last 4 digits of the card number are split between two
- fields to ensure that the full number is not stored in a single location.
+ Only the last 4 digits are mapped. The libraries extract the
+ last 4 digits when parsing a full PAN from XML.
+
- id: BT-88
name: Payment card holder name
paths:
- - $.doc.payment.instructions.card.name
+ - $.doc.payment.instructions.card.holder
- id: BG-19
name: DIRECT DEBIT
@@ -693,6 +700,9 @@ terms:
name: Bank assigned creditor identifier
paths:
- $.doc.payment.instructions.direct_debit.creditor
+ notes: |-
+ In UBL, this is stored as a SEPA PartyIdentification on
+ the payee party (or supplier if no payee exists).
- id: BT-91
name: Debited account identifier
paths:
@@ -862,7 +872,10 @@ terms:
- id: "BT-115"
name: "Amount due for payment"
paths:
+ - $.doc.totals.payable
- $.doc.totals.due
+ notes: |-
+ Libraries use `payable` by default, overridden by `due` if present.
- id: "BG-23"
name: "VAT BREAKDOWN"
@@ -872,15 +885,15 @@ terms:
- id: "BT-116"
name: "VAT category taxable amount"
paths:
- - $.doc.totals.taxes.categories[code='VAT'].base
+ - $.doc.totals.taxes.categories[code='VAT'].rates[*].base
- id: "BT-117"
name: "VAT category tax amount"
paths:
- - $.doc.totals.taxes.categories[code='VAT'].amount
+ - $.doc.totals.taxes.categories[code='VAT'].rates[*].amount
- id: "BT-118"
name: "VAT category code"
paths:
- - $.doc.totals.taxes.categories[code='VAT'].ext['untdid-tax-category']
+ - $.doc.totals.taxes.categories[code='VAT'].rates[*].ext['untdid-tax-category']
notes: |-
Specific tax category codes can be added in the extensions
using the `untdid-tax-category` extension key defined in the
@@ -888,18 +901,15 @@ terms:
- id: BT-119
name: "VAT category rate"
paths:
- - $.doc.totals.taxes.categories[code='VAT'].percent
+ - $.doc.totals.taxes.categories[code='VAT'].rates[*].percent
- id: "BT-120"
name: "VAT exemption reason text"
- paths:
- - $.doc.notes[key='legal'].text
notes: |-
- Exemption reasons are added to the list of legal notes included in the
- invoice as opposed to being stored in the tax breakdown.
+ Mapping may change in the future.
- id: "BT-121"
name: "VAT exemption reason code"
paths:
- - $.doc.totals.taxes.categories[code='VAT'].ext['cef-vatex']
+ - $.doc.totals.taxes.categories[code='VAT'].rates[*].ext['cef-vatex']
notes: |-
Specific exemption codes can be added in the extensions
using the `cef-vatex` extension key defined in the
@@ -921,13 +931,12 @@ terms:
- id: BT-124
name: "External document location"
paths:
- - $.doc.attachments[*].uri
+ - $.doc.attachments[*].url
- id: BT-125
name: "Attached document"
- paths:
- - $.doc.attachments[*].data
- - $.doc.attachments[*].mime
- - $.doc.attachments[*].name
+ notes: |-
+ Binary content is handled via the AddBinaryAttachment and
+ ExtractBinaryAttachments API methods in both CII and UBL.
- id: BG-25
name: "INVOICE LINE"
@@ -938,6 +947,8 @@ terms:
name: "Invoice line identifier"
paths:
- $.doc.lines[*].i
+ notes: |-
+ Auto-generated from the line index. Not user-provided.
- id: BT-127
name: "Invoice line note"
paths:
@@ -947,9 +958,11 @@ terms:
- id: BT-128
name: "Invoice line object identifier"
paths:
- - $.doc.lines[*].identifier
+ - $.doc.lines[*].identifier.code
+ - $.doc.lines[*].identifier.ext['untdid-reference']
notes: |-
- Use the `untdid-reference` extension if required for greater precision.
+ The reference type code (UNTDID 1153) is stored in the
+ untdid-reference extension when present.
- id: BT-129
name: "Invoiced Quantity"
paths:
@@ -968,7 +981,7 @@ terms:
notes: |-
Reflects the net amount of the line, after applying discounts or charges.
GOBL also supports the `tax_included` property which when used implies that
- the prices are tax-inclusive. In this case, its important to use the
+ the prices are tax-inclusive. In this case, its important to use the
"Remove Included Taxes" function of GOBL when converting.
- id: BT-132
name: "Referenced purchase order line reference"
@@ -1063,3 +1076,113 @@ terms:
name: "PRICE DETAILS"
paths:
- $.doc.lines[*].item
+ terms:
+ - id: BT-146
+ name: "Item net price"
+ paths:
+ - $.doc.lines[*].item.price
+
+ - id: BT-147
+ name: "Item price discount"
+ paths: []
+ notes: |-
+ Not directly supported. GOBL stores net prices only.
+
+ - id: BT-148
+ name: "Item gross price"
+ paths: []
+ notes: |-
+ Not directly supported. GOBL stores net prices only.
+ When parsing, the gross price is used to derive the net price.
+
+ - id: BT-149
+ name: "Item price base quantity"
+ paths:
+ - $.doc.lines[*].item.price
+ notes: |-
+ When parsing, the base quantity is used to normalize the unit price
+ by dividing. The original base quantity value is not preserved.
+
+ - id: BT-150
+ name: "Item price base quantity unit of measure code"
+ paths:
+ - $.doc.lines[*].item.unit
+ notes: |-
+ Same unit as the invoiced quantity. Not separately stored.
+
+ - id: BG-30
+ name: "LINE VAT INFORMATION"
+ paths:
+ - $.doc.lines[*].taxes[cat='VAT']
+ terms:
+ - id: BT-151
+ name: "Invoiced item VAT category code"
+ paths:
+ - $.doc.lines[*].taxes[cat='VAT'].key
+ - $.doc.lines[*].taxes[cat='VAT'].ext['untdid-tax-category']
+ notes: |-
+ Taxes keys are mapped automatically to UNTDID 3505 tax category
+ codes or can be set manually if required.
+ - id: BT-152
+ name: "Invoiced item VAT rate"
+ paths:
+ - $.doc.lines[*].taxes[cat='VAT'].percent
+
+ - id: BG-31
+ name: "ITEM INFORMATION"
+ paths:
+ - $.doc.lines[*].item
+ terms:
+ - id: BT-153
+ name: "Item name"
+ paths:
+ - $.doc.lines[*].item.name
+ - id: BT-154
+ name: "Item description"
+ paths:
+ - $.doc.lines[*].item.description
+ - id: BT-155
+ name: "Item Seller's identifier"
+ paths:
+ - $.doc.lines[*].item.ref
+ - id: BT-156
+ name: "Item Buyer's identifier"
+ paths:
+ - $.doc.lines[*].item.identities[*].code
+ notes: |-
+ Identity without ext['iso-scheme-id'] or label. First
+ plain identity is used as the buyer's item identifier.
+ - id: BT-157
+ name: "Item standard identifier"
+ paths:
+ - $.doc.lines[*].item.identities[*].code
+ - $.doc.lines[*].item.identities[*].ext['iso-scheme-id']
+
+ - id: BT-158
+ name: "Item classification identifier"
+ paths:
+ - $.doc.lines[*].item.identities[*].code
+ - $.doc.lines[*].item.identities[*].label
+ notes: |-
+ Classification identifiers use the identity label to store the
+ scheme identifier (listID). This distinguishes them from standard
+ identifiers which use ext['iso-scheme-id'].
+
+ - id: BT-159
+ name: "Item classification identifier scheme identifier"
+ paths:
+ - $.doc.lines[*].item.identities[*].label
+
+ - id: BG-32
+ name: "ITEM ATTRIBUTES"
+ paths:
+ - $.doc.lines[*].item.meta
+ terms:
+ - id: BT-160
+ name: "Item attribute name"
+ paths:
+ - $.doc.lines[*].item.meta.key
+ - id: BT-161
+ name: "Item attribute value"
+ paths:
+ - $.doc.lines[*].item.meta[key].value