diff --git a/regimes/ca/README.md b/regimes/ca/README.md index 3fd6bf1f..deba21d5 100644 --- a/regimes/ca/README.md +++ b/regimes/ca/README.md @@ -1,3 +1,3 @@ # 🇨🇦 GOBL Canada Tax Regime -Example Canada GOBL files can be found in the [`examples`](./examples) (YAML uncalculated documents) and [`examples/out`](./examples/out) (JSON calculated envelopes) subdirectories. +Find example CA GOBL files in the [`examples`](../../examples/ca) (uncalculated documents) and [`examples/out`](../../examples/ca/out) (calculated envelopes) subdirectories. diff --git a/regimes/co/README.md b/regimes/co/README.md index 6e30e57b..68181c86 100644 --- a/regimes/co/README.md +++ b/regimes/co/README.md @@ -1,8 +1,8 @@ # 🇨🇴 GOBL Colombia Tax Regime -Example CO GOBL files can be found in the [`examples`](./examples) (YAML uncalculated documents) and [`examples/out`](./examples/out) (JSON calculated envelopes) subdirectories. +Find example CO GOBL files in the [`examples`](../../examples/co) (uncalculated documents) and [`examples/out`](../../examples/co/out) (calculated envelopes) subdirectories. -## Colombia specifics +## Colombia-specific Requirements Please also see the [DIAN Addon](../../addons/co/dian) package named `co-dian-v2` which should be included in your documents. diff --git a/regimes/de/README.md b/regimes/de/README.md index ceb844b6..611ed4a3 100644 --- a/regimes/de/README.md +++ b/regimes/de/README.md @@ -1,3 +1,3 @@ # 🇩🇪 GOBL Germany Tax Regime -Example DE GOBL files can be found in the [`examples`](./examples) (YAML uncalculated documents) and [`examples/out`](./examples/out) (JSON calculated envelopes) subdirectories. +Find example DE GOBL files in the [`examples`](../../examples/de) (uncalculated documents) and [`examples/out`](../../examples/de/out) (calculated envelopes) subdirectories. diff --git a/regimes/es/README.md b/regimes/es/README.md index 0b727040..7b48d08e 100644 --- a/regimes/es/README.md +++ b/regimes/es/README.md @@ -1,8 +1,10 @@ # 🇪🇸 GOBL Spain Tax Regime -Example ES GOBL files can be found in the [`examples`](./examples) and [`examples/out`](./examples/out) (JSON calculated envelopes) subdirectories. +Find example ES GOBL files in the [`examples`](../../examples/es) (uncalculated documents) and [`examples/out`](../../examples/es/out) (calculated envelopes) subdirectories. -## Corrective Invoices +## Spain-specific Requirements + +### Corrective Invoices According to Spanish law on invoicing [Real Decreto 1619/2012, de 30 de noviembre](https://www.boe.es/buscar/act.php?id=BOE-A-2012-14696), only "rectified" invoices are recognized. There are, in fact, no mentions of international credit or debit notes at all. diff --git a/regimes/fr/README.md b/regimes/fr/README.md index 93943345..260aebc0 100644 --- a/regimes/fr/README.md +++ b/regimes/fr/README.md @@ -1,8 +1,10 @@ # 🇫🇷 GOBL France Tax Regime -Example FR GOBL files can be found in the [`examples`](./examples) (YAML uncalculated documents) and [`examples/out`](./examples/out) (JSON calculated envelopes) subdirectories. +Find example FR GOBL files in the [`examples`](../../examples/fr) (uncalculated documents) and [`examples/out`](../../examples/fr/out) (calculated envelopes) subdirectories. -## Tax IDs +## France-specific Requirements + +### Tax IDs France has three main company IDs which are all very closely related and may be included on Invoice documents: diff --git a/regimes/gr/README.md b/regimes/gr/README.md index 15e86c86..931e3818 100644 --- a/regimes/gr/README.md +++ b/regimes/gr/README.md @@ -2,7 +2,7 @@ Greece uses the myDATA and Peppol BIS Billing 3.0 formats for their e-invoicing/tax-reporting system. -Example GR GOBL files can be found in the [`examples`](./examples) (YAML uncalculated documents) and [`examples/out`](./examples/out) (JSON calculated envelopes) subdirectories. +Find example GR GOBL files in the [`examples`](../../examples/gr) (uncalculated documents) and [`examples/out`](../../examples/gr/out) (calculated envelopes) subdirectories. ## Public Documentation @@ -10,7 +10,7 @@ Example GR GOBL files can be found in the [`examples`](./examples) (YAML uncalcu * [Greek Peppol BIS Billing 3.0](https://www.gsis.gr/sites/default/files/eInvoice/Instructions%20to%20B2G%20Suppliers%20and%20certified%20PEPPOL%20Providers%20for%20the%20Greek%20PEPPOL%20BIS-EN-%20v1.0.pdf) * [VAT Rates](https://www.gov.gr/en/sdg/taxes/vat/general/basic-vat-rates) -## Greece specifics +## Greece-specific Requirements ### Invoice Type diff --git a/regimes/it/README.md b/regimes/it/README.md index a3118bca..bde8715c 100644 --- a/regimes/it/README.md +++ b/regimes/it/README.md @@ -2,7 +2,7 @@ Italy uses the FatturaPA format for their e-invoicing system. -Example IT GOBL files can be found in the [`examples`](./examples) (YAML uncalculated documents) and [`examples/out`](./examples/out) (JSON calculated envelopes) subdirectories. +Find example IT GOBL files in the [`examples`](../../examples/it) (uncalculated documents) and [`examples/out`](../../examples/it/out) (calculated envelopes) subdirectories. ## Public Documentation @@ -12,11 +12,14 @@ Example IT GOBL files can be found in the [`examples`](./examples) (YAML uncalcu - [FatturaPA documentation: FatturPA's website](https://www.fatturapa.gov.it/it/norme-e-regole/documentazione-fattura-elettronica/formato-fatturapa/) #### Ordinary invoices (Fattura Ordinaria) + - [Schema V1.2.3 PDF (IT)](https://www.fatturapa.gov.it/export/documenti/fatturapa/v1.2.2/RappresentazioneTabellareFattOrdinariav123.pdf) - most up-to-date but in Italian. - [Schema V1.2.1 Spec Table View (EN)](https://www.fatturapa.gov.it/export/documenti/fatturapa/v1.2.1/Table-view-B2B-Ordinary-invoice.pdf) - last version of the table translated to English. Since the difference between 1.2.3 and 1.2.1 is minimal, this is perfectly usable. - [XSD V1.2.2](https://www.fatturapa.gov.it/export/documenti/fatturapa/v1.2.2/Schema_del_file_xml_FatturaPA_v1.2.2.xsd) - [FatturaPA filling guide](https://www.agenziaentrate.gov.it/portale/documents/20143/451259/Guida_compilazione-FE-Esterometro-V_1.9_2024-03-05.pdf/67fe4c2d-1174-e8de-f1ee-cea77b7f5203) - useful to understand what values to choose within the extensions (e.g. Natura) + ##### Changes from 1.2.1 to 1.2.3 + - Documentation changes: TD25, N1, N6.2, N7 - Addition of TD28: Acquisti da San Marino con IVA (fattura cartacea) - New codes have been introduced for the AltriDatiGestionali block for agricultural producers under the special regime. @@ -24,8 +27,8 @@ Example IT GOBL files can be found in the [`examples`](./examples) (YAML uncalcu -The guidelines for the use of TD28 for transactions to and from entities not established in Italy have been updated. #### Simplified invoices (Fattura Semplificata) -- [Simplified invoice schema – table view (IT)](https://www.agenziaentrate.gov.it/portale/documents/20143/4631413/RappresentazioneTabellareFattSemplificata.xlsx/a7ec4a67-f4cf-b558-1bda-0aaab4f0e552) +- [Simplified invoice schema – table view (IT)](https://www.agenziaentrate.gov.it/portale/documents/20143/4631413/RappresentazioneTabellareFattSemplificata.xlsx/a7ec4a67-f4cf-b558-1bda-0aaab4f0e552) ### Tax Rates @@ -38,7 +41,7 @@ Example IT GOBL files can be found in the [`examples`](./examples) (YAML uncalcu - [VAT Number (Partita IVA)](https://en.wikipedia.org/wiki/VAT_identification_number) - [Agenzia Entrate (Tax Office) IVA Doc](https://www.agenziaentrate.gov.it/portale/web/english/nse/business/vat-in-italy) -## Italy specifics +## Italy-specific Requirements Italy requires all invoices to comply with the [FatturaPA](https://www.fatturapa.gov.it/it/index.html) format which includes support for a specific set of fields unique to Italy. GOBL tries to guess what the best options are so that the conversion process is simple, but some data needs to be added manually. @@ -96,7 +99,7 @@ These can be added to GOBL Invoices as "charges" (`bill.Charge`) defined with th } ``` -See also [examples/stamp-duty.json](./examples/stamp-duty.json). +See also [examples/stamp-duty.json](../../examples/it/stamp-duty.json). ### Numero REA diff --git a/regimes/mx/README.md b/regimes/mx/README.md index 290c4e19..67e38eb4 100644 --- a/regimes/mx/README.md +++ b/regimes/mx/README.md @@ -2,7 +2,7 @@ Mexico uses the CFDI (Comprobante Fiscal Digital por Internet) format for e-invoicing. -Find example MX GOBL files in the [`examples`](./examples) (YAML uncalculated documents) and [`examples/out`](./examples/out) (JSON calculated envelopes) subdirectories. +Find example MX GOBL files in the [`examples`](../../examples/mx) (uncalculated documents) and [`examples/out`](../../examples/mx/out) (calculated envelopes) subdirectories. ## Public Documentation @@ -35,7 +35,7 @@ Specify the postal code where the invoice was issued using the `mx-cfdi-issue-pl } ``` -### `RegimenFiscal` - Fiscal Regime +### Fiscal Regime (`RegimenFiscal`) Every Supplier and Customer in a Mexican invoice must be associated with a fiscal regime code. You'll need to ensure this field's value is requested from customers when they require an invoice. @@ -63,7 +63,7 @@ The following example will associate the supplier with the `601` fiscal regime c } ``` -### `DomicilioFiscalReceptor` - Receipt's Tax Address +### Receipt's Tax Address (`DomicilioFiscalReceptor`) In CFDI, `DomicilioFiscalReceptor` is a mandatory field that specifies the postal code of the recepient's tax address. In a GOBL Invoice, you can provide this value setting the customer's address post code. @@ -92,7 +92,7 @@ In CFDI, `DomicilioFiscalReceptor` is a mandatory field that specifies the posta } ``` -### `UsoCFDI` - CFDI Use +### CFDI Use (`UsoCFDI`) The CFDI’s `UsoCFDI` field specifies how the invoice's recipient will use the invoice to deduce taxes for the expenditure made. In a GOBL Invoice, include the `mx-cfdi-use` extension in the customer. @@ -123,7 +123,7 @@ The following GOBL maps to the `G03` (Gastos en general) value of the `UsoCFDI` } ``` -### `MetodoPago` – Payment Method +### Payment Method (`MetodoPago`) The CFDI’s `MetodoPago` field specifies whether the invoice has been fully paid at the moment of issuing the invoice (`PUE` - Pago en una sola exhibición) or whether it will be paid in one or several instalments after that (`PPD` – Pago en parcialidades o diferido). @@ -202,7 +202,7 @@ The following GOBL will map to the `PPD` (Pago en parcialidades o diferido) valu } ``` -### `FormaPago` - Payment Means +### Payment Means (`FormaPago`) The CFDI’s `FormaPago` field specifies an invoice's means of payment. @@ -210,30 +210,30 @@ If the invoice hasn't been fully paid at the time of issuing the invoice (`Metod Otherwise (`MetodoPago = PUE`), the `FormaPago` value will be mapped from the key of the largest payment advance in the GOBL invoice. The following table lists all the supported values and how GOBL will map them: -| Code | Name | GOBL Payment Advance Key | -| ---- | ----------------------------------- | ----------------------------- | -| 01 | Efectivo | `cash` | -| 02 | Cheque nominativo | `cheque` | -| 03 | Transferencia electrónica de fondos | `credit-transfer` | -| 04 | Tarjeta de crédito | `card` | -| 05 | Monedero electrónico | `online+wallet` | -| 06 | Dinero electrónico | `online` | -| 08 | Vales de despensa | `other+grocery-vouchers` | -| 12 | Dación en pago | `other+in-kind` | -| 13 | Pago por subrogación | `other+subrogation` | -| 14 | Pago por consignación | `other+consignment` | -| 15 | Condonación | `other+debt-relief` | -| 17 | Compensación | `netting` | -| 23 | Novación | `other+novation` | -| 24 | Confusión | `other+merger` | -| 25 | Remisión de deuda | `other+remission` | -| 26 | Prescripción o caducidad | `other+expiration` | -| 27 | A satisfacción del acreedor | `other+satisfy-creditor` | -| 28 | Tarjeta de débito | `card+debit` | -| 29 | Tarjeta de servicios | `card+services` | -| 30 | Aplicación de anticipos | `other+advance` | -| 31 | Intermediario pagos | `other+intermediary` | -| 99 | Por definir | `other` | +| Code | Name | GOBL Payment Advance Key | +| ---- | ----------------------------------- | ------------------------ | +| 01 | Efectivo | `cash` | +| 02 | Cheque nominativo | `cheque` | +| 03 | Transferencia electrónica de fondos | `credit-transfer` | +| 04 | Tarjeta de crédito | `card` | +| 05 | Monedero electrónico | `online+wallet` | +| 06 | Dinero electrónico | `online` | +| 08 | Vales de despensa | `other+grocery-vouchers` | +| 12 | Dación en pago | `other+in-kind` | +| 13 | Pago por subrogación | `other+subrogation` | +| 14 | Pago por consignación | `other+consignment` | +| 15 | Condonación | `other+debt-relief` | +| 17 | Compensación | `netting` | +| 23 | Novación | `other+novation` | +| 24 | Confusión | `other+merger` | +| 25 | Remisión de deuda | `other+remission` | +| 26 | Prescripción o caducidad | `other+expiration` | +| 27 | A satisfacción del acreedor | `other+satisfy-creditor` | +| 28 | Tarjeta de débito | `card+debit` | +| 29 | Tarjeta de servicios | `card+services` | +| 30 | Aplicación de anticipos | `other+advance` | +| 31 | Intermediario pagos | `other+intermediary` | +| 99 | Por definir | `other` | #### Example @@ -257,7 +257,7 @@ The following GOBL maps to the `05` (Monedero electrónico) value of the `FormaP } ``` -### `ClaveUnidad` - Unit Code +### Unit Code (`ClaveUnidad`) The CFDI’s `ClaveUnidad` field specifies the unit in which the quantity of an invoice's line is given. These are UNECE codes that GOBL will map directly from the invoice's line item unit. See the [source code](../../org/unit.go) for the full list of supported units with their associated UNECE codes. @@ -285,7 +285,7 @@ The following GOBL maps to the `KGM` (Kilogram) value of the `ClaveUnidad` field } ``` -### `ClaveProdServ` - Product or Service Code +### Product/Service Code (`ClaveProdServ`) The CFDI’s `ClaveProdServ` field specifies the type of an invoice's line item. GOBL uses the line item extension key `mx-cfdi-prod-serv` to map the code directly to the `ClaveProdServ` field. @@ -370,7 +370,7 @@ In Mexico, e-wallet suppliers use this complement to report this information in Learn more about this complement here: * [Schema Documentation](https://docs.gobl.org/draft-0/regimes/mx/fuel_account_balance) -* [Example GOBL document](./examples/out/fuel-account-balance.json) +* [Example GOBL document](../../examples/mx/out/fuel-account-balance.json) #### Food Vouchers @@ -380,4 +380,4 @@ In Mexico, e-wallet suppliers use this complement to report this information in Learn more about this complement here: * [Schema Documentation](https://docs.gobl.org/draft-0/regimes/mx/food_vouchers) -* [Example GOBL document](./examples/out/food-vouchers.json) +* [Example GOBL document](../../examples/mx/out/food-vouchers.json) diff --git a/regimes/nl/README.md b/regimes/nl/README.md index e5a98090..fdb5df7b 100644 --- a/regimes/nl/README.md +++ b/regimes/nl/README.md @@ -1,2 +1,3 @@ # 🇳🇱 GOBL Netherlands Tax Regime +Find example NL GOBL files in the [`examples`](../../examples/nl) (uncalculated documents) and [`examples/out`](../../examples/nl/out) (calculated envelopes) subdirectories. diff --git a/regimes/pl/README.md b/regimes/pl/README.md index bb554f03..6607ab34 100644 --- a/regimes/pl/README.md +++ b/regimes/pl/README.md @@ -2,7 +2,7 @@ Poland uses the FA_VAT format for their e-invoicing system. -Example PL GOBL files can be found in the [`examples`](./examples) (YAML uncalculated documents) and [`examples/out`](./examples/out) (JSON calculated envelopes) subdirectories. +Find example PL GOBL files in the [`examples`](../../examples/pl) (uncalculated documents) and [`examples/out`](../../examples/pl/out) (calculated envelopes) subdirectories. ## Public Documentation @@ -10,7 +10,7 @@ Example PL GOBL files can be found in the [`examples`](./examples) (YAML uncalcu - [Invoice Templates (Wzór faktury) FA(1)](http://crd.gov.pl/wzor/2021/11/29/11089/) - [Invoice Templates (Wzór faktury) FA(2)](http://crd.gov.pl/wzor/2023/06/29/12648/) -## Poland specifics +## Poland-specific Requirements ### `TFormaPlatnosci` - Payment Means diff --git a/regimes/pt/README.md b/regimes/pt/README.md index 758bab43..d1e74a35 100644 --- a/regimes/pt/README.md +++ b/regimes/pt/README.md @@ -2,7 +2,7 @@ Portugal doesn't have an e-invoicing format per se. Tax information is reported electronically to the AT (Autoridade Tributária e Aduaneira) either periodically in batches via a SAF-T (PT) report or individually in real time via a web service. -Example PT GOBL files can be found in the [`examples`](./examples) (YAML uncalculated documents) and [`examples/out`](./examples/out) (JSON calculated envelopes) subdirectories. +Find example PT GOBL files in the [`examples`](../../examples/pt) (uncalculated documents) and [`examples/out`](../../examples/pt/out) (calculated envelopes) subdirectories. ## Public Documentation @@ -11,17 +11,17 @@ Example PT GOBL files can be found in the [`examples`](./examples) (YAML uncalcu - [Portaria n.o 195/2020 – Especificações Técnicas Código QR](https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/Novas_regras_faturacao/Documents/Especificacoes_Tecnicas_Codigo_QR.pdf) - [Comunicação dos elementos dos documentos de faturação à AT, por webservice](https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/Faturacao/Fatcorews/Documents/Comunicacao_dos_elementos_dos_documentos_de_faturacao.pdf) -## Portugal specifics +## Portugal-specific Requirements ### `InvoiceType` (Tipo de documento) AT's `InvoiceType` (Tipo de documento) specifies the type of a Portuguese tax document. The following table lists all the supported invoice types and how GOBL will map them with a combination of invoice type and tax tags: -| Code | Name | GOBL Type | GOBL Tax Tag | -| ---- | ----------------------------------------------------------------------- | ------------- | ----------------- | +| Code | Name | GOBL Type | GOBL Tax Tag | +| ---- | ------------------------------------------------------------------------ | ------------- | ----------------- | | FT | Fatura, emitida nos termos do artigo 36.o do Código do IVA | `standard` | | | FS | Fatura simplificada, emitida nos termos do artigo 40.o do Código do IVA | `standard` | `simplified` | -| FR | Fatura-recibo | `standard` | `invoice-receipt` | +| FR | Fatura-recibo | `standard` | `invoice-receipt` | | ND | Nota de débito | `credit-note` | | | NC | Nota de crédito | `debit-note` | | @@ -31,17 +31,17 @@ AT's `TaxCountryRegion` (País ou região do imposto) specifies the region of To set the specific a region different to Portugal mainland, the `pt-region` extension of each line's VAT tax should be set to one of the following values: -| Code | Description | -| --- | --- | -| PT | Mainland Portugal (default, no need to be explicit) | -| PT-AC | Açores | -| PT-MA | Madeira | +| Code | Description | +| ----- | --------------------------------------------------- | +| PT | Mainland Portugal (default, no need to be explicit) | +| PT-AC | Açores | +| PT-MA | Madeira | ### VAT Tax Rates The AT `TaxCode` (Código do imposto) is required for invoice items that apply VAT. GOBL helps determine this code using the `rate` field, which in Portuguese invoices is required. The following table lists the supported tax codes and how GOBL will map them: -| Code |  Name | GOBL Tax Rate | +| Code | Name | GOBL Tax Rate | | ---- | --------------- | ------------------------------------- | | NOR | Tipo Geral | `standard` | | INT | Taxa Intermédia | `intermediate` | diff --git a/regimes/us/README.md b/regimes/us/README.md index 71fbb783..7209b00e 100644 --- a/regimes/us/README.md +++ b/regimes/us/README.md @@ -1,3 +1,3 @@ # 🇺🇸 GOBL United States of America Tax Regime -Example US GOBL files can be found in the [`examples`](./examples) (YAML uncalculated documents) and [`examples/out`](./examples/out) (JSON calculated envelopes) subdirectories. +Find example US GOBL files in the [`examples`](../../examples/us) (uncalculated documents) and [`examples/out`](../../examples/us/out) (calculated envelopes) subdirectories.