From 75687a481c4a0c9627423c980270e441090ffd01 Mon Sep 17 00:00:00 2001 From: Sam Lown Date: Fri, 24 Nov 2023 11:03:20 +0000 Subject: [PATCH] Release 0.63.1 --- data/regimes/ca.json | 77 +++++++++++++++++++ data/regimes/co.json | 8 +- data/regimes/de.json | 173 +++++++++++++++++++++++++++++++++++++++++++ data/regimes/es.json | 8 +- data/regimes/fr.json | 8 +- data/regimes/gb.json | 8 +- data/regimes/it.json | 8 +- data/regimes/mx.json | 8 +- data/regimes/nl.json | 8 +- data/regimes/pt.json | 8 +- data/regimes/us.json | 8 +- version.go | 2 +- 12 files changed, 314 insertions(+), 10 deletions(-) create mode 100644 data/regimes/ca.json create mode 100644 data/regimes/de.json diff --git a/data/regimes/ca.json b/data/regimes/ca.json new file mode 100644 index 00000000..3c142480 --- /dev/null +++ b/data/regimes/ca.json @@ -0,0 +1,77 @@ +{ + "$schema": "https://gobl.org/draft-0/tax/regime", + "name": { + "en": "Canada" + }, + "time_zone": "America/Toronto", + "country": "CA", + "currency": "CAD", + "categories": [ + { + "code": "GST", + "name": { + "en": "GST" + }, + "title": { + "en": "General Sales Tax" + }, + "rates": [ + { + "key": "zero", + "name": { + "en": "Zero Rate" + }, + "desc": { + "en": "Some supplies are zero-rated under the GST, mainly: basic groceries, agricultural products, farm livestock, most fishery products such, prescription drugs and drug-dispensing services, certain medical devices, feminine hygiene products, exports, many transportation services where the origin or destination is outside Canada" + }, + "values": [ + { + "percent": "0.0%" + } + ] + }, + { + "key": "standard", + "name": { + "en": "Standard rate" + }, + "desc": { + "en": "For the majority of sales of goods and services: it applies to all products or services for which no other rate is expressly provided." + }, + "values": [ + { + "since": "2022-01-01", + "percent": "5%" + } + ] + } + ], + "sources": [ + { + "title": { + "en": "GST/HST provincial rates table" + }, + "url": "https://www.canada.ca/en/revenue-agency/services/tax/businesses/topics/gst-hst-businesses/charge-collect-which-rate/calculator.html" + } + ] + }, + { + "code": "HST", + "name": { + "en": "HST" + }, + "title": { + "en": "Harmonized Sales Tax" + } + }, + { + "code": "PST", + "name": { + "en": "PST" + }, + "title": { + "en": "Provincial Sales Tax" + } + } + ] +} \ No newline at end of file diff --git a/data/regimes/co.json b/data/regimes/co.json index 4f272971..cf818583 100644 --- a/data/regimes/co.json +++ b/data/regimes/co.json @@ -14,11 +14,13 @@ { "key": "simplified", "name": { + "de": "Vereinfachte Rechnung", "en": "Simplified Invoice", "es": "Factura Simplificada", "it": "Fattura Semplificata" }, "desc": { + "de": "Wird für B2C-Transaktionen verwendet, wenn die Kundendaten nicht verfügbar sind. Bitte wenden Sie sich an die örtlichen Behörden, um die Grenzwerte zu ermitteln.", "en": "Used for B2C transactions when the client details are not available, check with local authorities for limits.", "es": "Usado para transacciones B2C cuando los detalles del cliente no están disponibles, consulte con las autoridades locales para los límites.", "it": "Utilizzato per le transazioni B2C quando i dettagli del cliente non sono disponibili, controllare con le autorità locali per i limiti." @@ -27,6 +29,7 @@ { "key": "reverse-charge", "name": { + "de": "Umkehr der Steuerschuld", "en": "Reverse Charge", "es": "Inversión del Sujeto Pasivo", "it": "Inversione del soggetto passivo" @@ -35,6 +38,7 @@ { "key": "self-billed", "name": { + "de": "Rechnung durch den Leistungsempfänger", "en": "Self-billed", "es": "Facturación por el destinatario", "it": "Autofattura" @@ -43,8 +47,10 @@ { "key": "customer-rates", "name": { + "de": "Kundensätze", "en": "Customer rates", - "es": "Tarifas aplicables al destinatario" + "es": "Tarifas aplicables al destinatario", + "it": "Aliquote applicabili al destinatario" } } ], diff --git a/data/regimes/de.json b/data/regimes/de.json new file mode 100644 index 00000000..fca75c52 --- /dev/null +++ b/data/regimes/de.json @@ -0,0 +1,173 @@ +{ + "$schema": "https://gobl.org/draft-0/tax/regime", + "name": { + "en": "Germany", + "fr": "Deutschland" + }, + "time_zone": "Europe/Berlin", + "country": "DE", + "currency": "EUR", + "tags": [ + { + "key": "simplified", + "name": { + "de": "Vereinfachte Rechnung", + "en": "Simplified Invoice", + "es": "Factura Simplificada", + "it": "Fattura Semplificata" + }, + "desc": { + "de": "Wird für B2C-Transaktionen verwendet, wenn die Kundendaten nicht verfügbar sind. Bitte wenden Sie sich an die örtlichen Behörden, um die Grenzwerte zu ermitteln.", + "en": "Used for B2C transactions when the client details are not available, check with local authorities for limits.", + "es": "Usado para transacciones B2C cuando los detalles del cliente no están disponibles, consulte con las autoridades locales para los límites.", + "it": "Utilizzato per le transazioni B2C quando i dettagli del cliente non sono disponibili, controllare con le autorità locali per i limiti." + } + }, + { + "key": "reverse-charge", + "name": { + "de": "Umkehr der Steuerschuld", + "en": "Reverse Charge", + "es": "Inversión del Sujeto Pasivo", + "it": "Inversione del soggetto passivo" + } + }, + { + "key": "self-billed", + "name": { + "de": "Rechnung durch den Leistungsempfänger", + "en": "Self-billed", + "es": "Facturación por el destinatario", + "it": "Autofattura" + } + }, + { + "key": "customer-rates", + "name": { + "de": "Kundensätze", + "en": "Customer rates", + "es": "Tarifas aplicables al destinatario", + "it": "Aliquote applicabili al destinatario" + } + } + ], + "scenarios": [ + { + "schema": "bill/invoice", + "list": [ + { + "tags": [ + "reverse-charge" + ], + "note": { + "key": "legal", + "src": "reverse-charge", + "text": "Reverse Charge / Umkehr der Steuerschuld." + } + } + ] + } + ], + "corrections": [ + { + "schema": "bill/invoice", + "types": [ + "credit-note" + ] + } + ], + "categories": [ + { + "code": "VAT", + "name": { + "de": "MwSt", + "en": "VAT" + }, + "title": { + "de": "Mehrwertsteuer", + "en": "Value Added Tax" + }, + "rates": [ + { + "key": "zero", + "name": { + "de": "Nullsatz", + "en": "Zero Rate" + }, + "values": [ + { + "percent": "0.0%" + } + ] + }, + { + "key": "standard", + "name": { + "de": "Standardsteuersatz", + "en": "Standard rate" + }, + "desc": { + "de": "Für den Großteil der Verkäufe von Waren und Dienstleistungen gilt: Dies gilt für alle Produkte oder Dienstleistungen, für die ausdrücklich kein anderer Satz festgelegt ist.", + "en": "For the majority of sales of goods and services: it applies to all products or services for which no other rate is expressly provided." + }, + "values": [ + { + "since": "2022-01-01", + "percent": "19%" + }, + { + "since": "2020-07-01", + "percent": "16%" + }, + { + "since": "2007-07-01", + "percent": "19%" + }, + { + "since": "1993-01-01", + "percent": "16%" + } + ] + }, + { + "key": "reduced", + "name": { + "de": "Verminderter Steuersatz", + "en": "Reduced rate" + }, + "desc": { + "de": "Insbesondere anwendbar auf Grundnahrungsmittel, Bücher und Zeitschriften, kulturelle Veranstaltungen, Hotelunterkünfte, öffentliche Verkehrsmittel, medizinische Produkte oder Hausrenovierung.", + "en": "Applicable in particular to basic foodstuffs, books and magazines, cultural events, hotel accommodations, public transportation, medical products, or home renovation." + }, + "values": [ + { + "since": "2022-01-01", + "percent": "7%" + }, + { + "since": "2020-07-01", + "percent": "5%" + }, + { + "since": "2007-07-01", + "percent": "7%" + }, + { + "since": "1993-01-01", + "percent": "5%" + } + ] + } + ], + "sources": [ + { + "title": { + "de": "Umsatzsteuer/Güter - und Dienstleistungssteuer (USt/GST) (1976-2023)", + "en": "Value Added Tax/Goods and Services Tax (VAT/GST) (1976-2023)" + }, + "url": "https://www.oecd.org/tax/tax-policy/tax-database/" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/regimes/es.json b/data/regimes/es.json index 79ccdd27..b7aad4c6 100644 --- a/data/regimes/es.json +++ b/data/regimes/es.json @@ -11,11 +11,13 @@ { "key": "simplified", "name": { + "de": "Vereinfachte Rechnung", "en": "Simplified Invoice", "es": "Factura Simplificada", "it": "Fattura Semplificata" }, "desc": { + "de": "Wird für B2C-Transaktionen verwendet, wenn die Kundendaten nicht verfügbar sind. Bitte wenden Sie sich an die örtlichen Behörden, um die Grenzwerte zu ermitteln.", "en": "Used for B2C transactions when the client details are not available, check with local authorities for limits.", "es": "Usado para transacciones B2C cuando los detalles del cliente no están disponibles, consulte con las autoridades locales para los límites.", "it": "Utilizzato per le transazioni B2C quando i dettagli del cliente non sono disponibili, controllare con le autorità locali per i limiti." @@ -24,6 +26,7 @@ { "key": "reverse-charge", "name": { + "de": "Umkehr der Steuerschuld", "en": "Reverse Charge", "es": "Inversión del Sujeto Pasivo", "it": "Inversione del soggetto passivo" @@ -32,6 +35,7 @@ { "key": "self-billed", "name": { + "de": "Rechnung durch den Leistungsempfänger", "en": "Self-billed", "es": "Facturación por el destinatario", "it": "Autofattura" @@ -40,8 +44,10 @@ { "key": "customer-rates", "name": { + "de": "Kundensätze", "en": "Customer rates", - "es": "Tarifas aplicables al destinatario" + "es": "Tarifas aplicables al destinatario", + "it": "Aliquote applicabili al destinatario" } }, { diff --git a/data/regimes/fr.json b/data/regimes/fr.json index c8f51e5a..885eb10b 100644 --- a/data/regimes/fr.json +++ b/data/regimes/fr.json @@ -14,11 +14,13 @@ { "key": "simplified", "name": { + "de": "Vereinfachte Rechnung", "en": "Simplified Invoice", "es": "Factura Simplificada", "it": "Fattura Semplificata" }, "desc": { + "de": "Wird für B2C-Transaktionen verwendet, wenn die Kundendaten nicht verfügbar sind. Bitte wenden Sie sich an die örtlichen Behörden, um die Grenzwerte zu ermitteln.", "en": "Used for B2C transactions when the client details are not available, check with local authorities for limits.", "es": "Usado para transacciones B2C cuando los detalles del cliente no están disponibles, consulte con las autoridades locales para los límites.", "it": "Utilizzato per le transazioni B2C quando i dettagli del cliente non sono disponibili, controllare con le autorità locali per i limiti." @@ -27,6 +29,7 @@ { "key": "reverse-charge", "name": { + "de": "Umkehr der Steuerschuld", "en": "Reverse Charge", "es": "Inversión del Sujeto Pasivo", "it": "Inversione del soggetto passivo" @@ -35,6 +38,7 @@ { "key": "self-billed", "name": { + "de": "Rechnung durch den Leistungsempfänger", "en": "Self-billed", "es": "Facturación por el destinatario", "it": "Autofattura" @@ -43,8 +47,10 @@ { "key": "customer-rates", "name": { + "de": "Kundensätze", "en": "Customer rates", - "es": "Tarifas aplicables al destinatario" + "es": "Tarifas aplicables al destinatario", + "it": "Aliquote applicabili al destinatario" } } ], diff --git a/data/regimes/gb.json b/data/regimes/gb.json index 28211996..b21be1b7 100644 --- a/data/regimes/gb.json +++ b/data/regimes/gb.json @@ -10,11 +10,13 @@ { "key": "simplified", "name": { + "de": "Vereinfachte Rechnung", "en": "Simplified Invoice", "es": "Factura Simplificada", "it": "Fattura Semplificata" }, "desc": { + "de": "Wird für B2C-Transaktionen verwendet, wenn die Kundendaten nicht verfügbar sind. Bitte wenden Sie sich an die örtlichen Behörden, um die Grenzwerte zu ermitteln.", "en": "Used for B2C transactions when the client details are not available, check with local authorities for limits.", "es": "Usado para transacciones B2C cuando los detalles del cliente no están disponibles, consulte con las autoridades locales para los límites.", "it": "Utilizzato per le transazioni B2C quando i dettagli del cliente non sono disponibili, controllare con le autorità locali per i limiti." @@ -23,6 +25,7 @@ { "key": "reverse-charge", "name": { + "de": "Umkehr der Steuerschuld", "en": "Reverse Charge", "es": "Inversión del Sujeto Pasivo", "it": "Inversione del soggetto passivo" @@ -31,6 +34,7 @@ { "key": "self-billed", "name": { + "de": "Rechnung durch den Leistungsempfänger", "en": "Self-billed", "es": "Facturación por el destinatario", "it": "Autofattura" @@ -39,8 +43,10 @@ { "key": "customer-rates", "name": { + "de": "Kundensätze", "en": "Customer rates", - "es": "Tarifas aplicables al destinatario" + "es": "Tarifas aplicables al destinatario", + "it": "Aliquote applicabili al destinatario" } } ], diff --git a/data/regimes/it.json b/data/regimes/it.json index bd9e5e3e..bb3ba93b 100644 --- a/data/regimes/it.json +++ b/data/regimes/it.json @@ -11,11 +11,13 @@ { "key": "simplified", "name": { + "de": "Vereinfachte Rechnung", "en": "Simplified Invoice", "es": "Factura Simplificada", "it": "Fattura Semplificata" }, "desc": { + "de": "Wird für B2C-Transaktionen verwendet, wenn die Kundendaten nicht verfügbar sind. Bitte wenden Sie sich an die örtlichen Behörden, um die Grenzwerte zu ermitteln.", "en": "Used for B2C transactions when the client details are not available, check with local authorities for limits.", "es": "Usado para transacciones B2C cuando los detalles del cliente no están disponibles, consulte con las autoridades locales para los límites.", "it": "Utilizzato per le transazioni B2C quando i dettagli del cliente non sono disponibili, controllare con le autorità locali per i limiti." @@ -24,6 +26,7 @@ { "key": "reverse-charge", "name": { + "de": "Umkehr der Steuerschuld", "en": "Reverse Charge", "es": "Inversión del Sujeto Pasivo", "it": "Inversione del soggetto passivo" @@ -32,6 +35,7 @@ { "key": "self-billed", "name": { + "de": "Rechnung durch den Leistungsempfänger", "en": "Self-billed", "es": "Facturación por el destinatario", "it": "Autofattura" @@ -40,8 +44,10 @@ { "key": "customer-rates", "name": { + "de": "Kundensätze", "en": "Customer rates", - "es": "Tarifas aplicables al destinatario" + "es": "Tarifas aplicables al destinatario", + "it": "Aliquote applicabili al destinatario" } }, { diff --git a/data/regimes/mx.json b/data/regimes/mx.json index c9581c23..73bad476 100644 --- a/data/regimes/mx.json +++ b/data/regimes/mx.json @@ -11,11 +11,13 @@ { "key": "simplified", "name": { + "de": "Vereinfachte Rechnung", "en": "Simplified Invoice", "es": "Factura Simplificada", "it": "Fattura Semplificata" }, "desc": { + "de": "Wird für B2C-Transaktionen verwendet, wenn die Kundendaten nicht verfügbar sind. Bitte wenden Sie sich an die örtlichen Behörden, um die Grenzwerte zu ermitteln.", "en": "Used for B2C transactions when the client details are not available, check with local authorities for limits.", "es": "Usado para transacciones B2C cuando los detalles del cliente no están disponibles, consulte con las autoridades locales para los límites.", "it": "Utilizzato per le transazioni B2C quando i dettagli del cliente non sono disponibili, controllare con le autorità locali per i limiti." @@ -24,6 +26,7 @@ { "key": "reverse-charge", "name": { + "de": "Umkehr der Steuerschuld", "en": "Reverse Charge", "es": "Inversión del Sujeto Pasivo", "it": "Inversione del soggetto passivo" @@ -32,6 +35,7 @@ { "key": "self-billed", "name": { + "de": "Rechnung durch den Leistungsempfänger", "en": "Self-billed", "es": "Facturación por el destinatario", "it": "Autofattura" @@ -40,8 +44,10 @@ { "key": "customer-rates", "name": { + "de": "Kundensätze", "en": "Customer rates", - "es": "Tarifas aplicables al destinatario" + "es": "Tarifas aplicables al destinatario", + "it": "Aliquote applicabili al destinatario" } } ], diff --git a/data/regimes/nl.json b/data/regimes/nl.json index 8320bcaf..c7b43a5c 100644 --- a/data/regimes/nl.json +++ b/data/regimes/nl.json @@ -11,11 +11,13 @@ { "key": "simplified", "name": { + "de": "Vereinfachte Rechnung", "en": "Simplified Invoice", "es": "Factura Simplificada", "it": "Fattura Semplificata" }, "desc": { + "de": "Wird für B2C-Transaktionen verwendet, wenn die Kundendaten nicht verfügbar sind. Bitte wenden Sie sich an die örtlichen Behörden, um die Grenzwerte zu ermitteln.", "en": "Used for B2C transactions when the client details are not available, check with local authorities for limits.", "es": "Usado para transacciones B2C cuando los detalles del cliente no están disponibles, consulte con las autoridades locales para los límites.", "it": "Utilizzato per le transazioni B2C quando i dettagli del cliente non sono disponibili, controllare con le autorità locali per i limiti." @@ -24,6 +26,7 @@ { "key": "reverse-charge", "name": { + "de": "Umkehr der Steuerschuld", "en": "Reverse Charge", "es": "Inversión del Sujeto Pasivo", "it": "Inversione del soggetto passivo" @@ -32,6 +35,7 @@ { "key": "self-billed", "name": { + "de": "Rechnung durch den Leistungsempfänger", "en": "Self-billed", "es": "Facturación por el destinatario", "it": "Autofattura" @@ -40,8 +44,10 @@ { "key": "customer-rates", "name": { + "de": "Kundensätze", "en": "Customer rates", - "es": "Tarifas aplicables al destinatario" + "es": "Tarifas aplicables al destinatario", + "it": "Aliquote applicabili al destinatario" } } ], diff --git a/data/regimes/pt.json b/data/regimes/pt.json index 1a8a5ea1..84f969f5 100644 --- a/data/regimes/pt.json +++ b/data/regimes/pt.json @@ -11,11 +11,13 @@ { "key": "simplified", "name": { + "de": "Vereinfachte Rechnung", "en": "Simplified Invoice", "es": "Factura Simplificada", "it": "Fattura Semplificata" }, "desc": { + "de": "Wird für B2C-Transaktionen verwendet, wenn die Kundendaten nicht verfügbar sind. Bitte wenden Sie sich an die örtlichen Behörden, um die Grenzwerte zu ermitteln.", "en": "Used for B2C transactions when the client details are not available, check with local authorities for limits.", "es": "Usado para transacciones B2C cuando los detalles del cliente no están disponibles, consulte con las autoridades locales para los límites.", "it": "Utilizzato per le transazioni B2C quando i dettagli del cliente non sono disponibili, controllare con le autorità locali per i limiti." @@ -24,6 +26,7 @@ { "key": "reverse-charge", "name": { + "de": "Umkehr der Steuerschuld", "en": "Reverse Charge", "es": "Inversión del Sujeto Pasivo", "it": "Inversione del soggetto passivo" @@ -32,6 +35,7 @@ { "key": "self-billed", "name": { + "de": "Rechnung durch den Leistungsempfänger", "en": "Self-billed", "es": "Facturación por el destinatario", "it": "Autofattura" @@ -40,8 +44,10 @@ { "key": "customer-rates", "name": { + "de": "Kundensätze", "en": "Customer rates", - "es": "Tarifas aplicables al destinatario" + "es": "Tarifas aplicables al destinatario", + "it": "Aliquote applicabili al destinatario" } }, { diff --git a/data/regimes/us.json b/data/regimes/us.json index 8ca8689c..3818d389 100644 --- a/data/regimes/us.json +++ b/data/regimes/us.json @@ -10,11 +10,13 @@ { "key": "simplified", "name": { + "de": "Vereinfachte Rechnung", "en": "Simplified Invoice", "es": "Factura Simplificada", "it": "Fattura Semplificata" }, "desc": { + "de": "Wird für B2C-Transaktionen verwendet, wenn die Kundendaten nicht verfügbar sind. Bitte wenden Sie sich an die örtlichen Behörden, um die Grenzwerte zu ermitteln.", "en": "Used for B2C transactions when the client details are not available, check with local authorities for limits.", "es": "Usado para transacciones B2C cuando los detalles del cliente no están disponibles, consulte con las autoridades locales para los límites.", "it": "Utilizzato per le transazioni B2C quando i dettagli del cliente non sono disponibili, controllare con le autorità locali per i limiti." @@ -23,6 +25,7 @@ { "key": "reverse-charge", "name": { + "de": "Umkehr der Steuerschuld", "en": "Reverse Charge", "es": "Inversión del Sujeto Pasivo", "it": "Inversione del soggetto passivo" @@ -31,6 +34,7 @@ { "key": "self-billed", "name": { + "de": "Rechnung durch den Leistungsempfänger", "en": "Self-billed", "es": "Facturación por el destinatario", "it": "Autofattura" @@ -39,8 +43,10 @@ { "key": "customer-rates", "name": { + "de": "Kundensätze", "en": "Customer rates", - "es": "Tarifas aplicables al destinatario" + "es": "Tarifas aplicables al destinatario", + "it": "Aliquote applicabili al destinatario" } } ], diff --git a/version.go b/version.go index fdca5c74..6d2596df 100644 --- a/version.go +++ b/version.go @@ -8,7 +8,7 @@ import ( type Version string // VERSION is the current version of the GOBL library. -const VERSION Version = "v0.63.0" +const VERSION Version = "v0.63.1" // Semver parses and returns semver func (v Version) Semver() *semver.Version {