From a12445aee5401d3e1f30b221edc4e3a4ecb2b925 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Olivi=C3=A9?= Date: Wed, 22 Jul 2026 09:50:44 +0000 Subject: [PATCH] Bump gobl and gobl.dev, regenerate docs Updates gobl to v0.503.0 and gobl.dev to v0.500.11, pulling in newer gobl.fr.ctc, gobl.mx.cfdi, gobl.pt.saft, and gobl.sa.zatca addon modules, then regenerates schema, addon, regime, and catalogue pages. Co-Authored-By: Claude Sonnet 5 --- addons/eu-en16931-v2017.mdx | 2 ++ addons/fr-ctc-flow10-v1.mdx | 40 +++++++++++++--------- addons/fr-ctc-flow2-v1.mdx | 10 +++--- addons/fr-ctc-flow6-v1.mdx | 3 ++ addons/it-sdi-v1.mdx | 6 ++++ addons/pt-saft-v1.mdx | 66 ++++++++++++++++++++++++++++++++++--- addons/sa-zatca-v1.mdx | 46 ++++++++++++++------------ docs.json | 1 + draft-0/bill/tax.mdx | 2 +- draft-0/org/attribute.mdx | 57 ++++++++++++++++++++++++++++++++ draft-0/org/item.mdx | 2 ++ draft-0/org/unit.mdx | 4 ++- go.mod | 12 +++---- go.sum | 24 +++++++------- 14 files changed, 210 insertions(+), 65 deletions(-) create mode 100644 draft-0/org/attribute.mdx diff --git a/addons/eu-en16931-v2017.mdx b/addons/eu-en16931-v2017.mdx index e700ae8..a0334d8 100644 --- a/addons/eu-en16931-v2017.mdx +++ b/addons/eu-en16931-v2017.mdx @@ -227,6 +227,8 @@ exemption note covering it. | Field | Test | Validation Code / Message | | ----- | ---- | ------------------------- | | `inboxes` | | `GOBL-EU-EN16931-ORG-PARTY-01`
Cannot have more than one inbox (BT-34, BT-49) | +| `identities` | | `GOBL-EU-EN16931-ORG-PARTY-02`
Only one identity may have the legal scope (BT-30, BT-47) | +| `identities` | | `GOBL-EU-EN16931-ORG-PARTY-03`
Only one identity may have the tax scope (BT-31, BT-48) | diff --git a/addons/fr-ctc-flow10-v1.mdx b/addons/fr-ctc-flow10-v1.mdx index f4bdd2b..d87af75 100644 --- a/addons/fr-ctc-flow10-v1.mdx +++ b/addons/fr-ctc-flow10-v1.mdx @@ -108,17 +108,17 @@ The numeric suffix indicates the payment type (1=deposit, | Code | Name | | ---- | ---- | -| `B1` | Goods - Deposit invoice | +| `B1` | Goods - Standard invoice | | `B2` | Goods - Already paid invoice | | `B4` | Goods - Final invoice (after down payment) | | `B7` | Goods - E-reporting (VAT already collected) | -| `S1` | Services - Deposit invoice | +| `S1` | Services - Standard invoice | | `S2` | Services - Already paid invoice | | `S4` | Services - Final invoice (after down payment) | | `S5` | Services - Subcontractor invoice | | `S6` | Services - Co-contractor invoice | | `S7` | Services - E-reporting (VAT already collected) | -| `M1` | Mixed - Deposit invoice | +| `M1` | Mixed - Standard invoice | | `M2` | Mixed - Already paid invoice | | `M4` | Mixed - Final invoice (after down payment) | @@ -133,21 +133,21 @@ The numeric suffix indicates the payment type (1=deposit, | Invoice | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-01`
Invoice must be in EUR or provide an exchange rate to EUR | | `supplier.addresses[*].country` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-02`
Invoice supplier address country is required | | `customer.addresses[*].country` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-03`
Invoice customer address country is required | -| Invoice | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-07`
Invoice VAT line percent must be one of the Flow 10 permitted values 0%, 0.9%, 1.05%, 1.75%, 2.1%, 5.5%, 7%, 8.5%, 9.2%, 9.6%, 10%, 13%, 19.6%, 20%, 20.6% (G1.24) | -| `tax.ext` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-04`
Invoice tax ext fr-ctc-flow10-b2c-category is required on B2C invoices (G1.68) | -| `supplier` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-05`
Invoice supplier is required on B2C invoices | -| `supplier` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-06`
Invoice supplier must have a SIREN identity (ISO/IEC 6523 scheme 0002) on a B2C invoice | -| `tax.ext` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-08`
Invoice tax ext untdid-document-type must be one of the Flow 10 permitted UNTDID 1001 codes | -| `tax.ext` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-09`
Invoice tax ext fr-ctc-billing-mode is required (G1.02) | +| Invoice | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-07`
Invoice VAT line percent must be one of the Flow 10 permitted values 0%, 0.9%, 1.05%, 1.75%, 2.1%, 5.5%, 7%, 8.5%, 9.2%, 9.6%, 10%, 13%, 19.6%, 20%, 20.6% (G1.24) | +| `tax.ext` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-04`
Invoice tax ext fr-ctc-flow10-b2c-category is required on B2C invoices (G1.68) | +| `supplier` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-05`
Invoice supplier is required on B2C invoices | +| `supplier` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-06`
Invoice supplier must have a SIREN identity (ISO/IEC 6523 scheme 0002) on a B2C invoice | +| `tax.ext` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-08`
Invoice tax ext untdid-document-type must be one of the Flow 10 permitted UNTDID 1001 codes | +| `tax.ext` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-09`
Invoice tax ext fr-ctc-billing-mode is required (G1.02) | | `tax.ext` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-10`
Invoice tax ext untdid-document-type must not be an advance-payment code (386, 500, 503) when billing mode is final-after-advance (B4, S4, M4) (G1.60) | -| `supplier` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-11`
Invoice supplier is required for Flow 10 B2B invoices (G2.19) | -| `supplier` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-12`
Invoice supplier must declare a legal identity with an allowed ICD 6523 scheme (0002, 0223, 0227, 0228 or 0229) (G2.19) | -| `supplier` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-13`
Invoice supplier tax_id is required when legal identity scheme is SIREN (0002) or EU VAT (0223) (G2.33) | +| `supplier` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-11`
Invoice supplier is required for Flow 10 B2B invoices (G2.19) | +| `supplier` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-12`
Invoice supplier must declare a legal identity with an allowed ICD 6523 scheme (0002, 0223, 0227, 0228 or 0229) (G2.19) | +| `supplier` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-13`
Invoice supplier tax_id is required when legal identity scheme is SIREN (0002) or EU VAT (0223) (G2.33) | | Invoice | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-14`
Invoice supplier tax_id or ordering.seller tax_id is required when the VAT breakdown contains an exempt (E) category | | Invoice | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-15`
Invoice tax.notes must include an exempt-reason entry (key=exempt with non-empty text) when the VAT breakdown contains an exempt (E) category | -| `customer` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-16`
Invoice customer is required for Flow 10 B2B invoices (G2.19) | -| `customer` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-17`
Invoice customer must declare a legal identity with an allowed ICD 6523 scheme (0002, 0223, 0227, 0228 or 0229) (G2.19) | -| `customer` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-18`
Invoice customer tax_id is required when legal identity scheme is SIREN (0002) or EU VAT (0223) (G2.33) | +| `customer` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-16`
Invoice customer is required for Flow 10 B2B invoices (G2.19) | +| `customer` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-17`
Invoice customer must declare a legal identity with an allowed ICD 6523 scheme (0002, 0223, 0227, 0228 or 0229) (G2.19) | +| `customer` | | `GOBL-FR-CTC-FLOW10-BILL-INVOICE-18`
Invoice customer tax_id is required when legal identity scheme is SIREN (0002) or EU VAT (0223) (G2.33) | @@ -167,6 +167,16 @@ The numeric suffix indicates the payment type (1=deposit, | Field | Test | Validation Code / Message | | ----- | ---- | ------------------------- | | `identities` |
  • Unique iso-scheme-id
| `GOBL-FR-CTC-FLOW10-ORG-PARTY-01`
Party identities must not duplicate iso-scheme-id values (BR-FR-CO-10) | +| `identities` |
  • Single legal-scope identity
| `GOBL-FR-CTC-FLOW10-ORG-PARTY-03`
Only one identity may have the legal scope | | `identities[*].ext` |
  • Ext require [iso-scheme-id]
| `GOBL-FR-CTC-FLOW10-ORG-PARTY-02`
Party identity ext iso-scheme-id is required (BR-FR-CO-10) |
+ + +| Field | Test | Validation Code / Message | +| ----- | ---- | ------------------------- | +| `code` |
  • Scheme 0227
  • Length between 0 and 18
| `GOBL-FR-CTC-FLOW10-ORG-IDENTITY-01`
HORS_UE (0227) identity must be no more than 18 characters (G1.73) | +| `code` |
  • Scheme 0227
  • Matches ^[A-Z0-9]+$
| `GOBL-FR-CTC-FLOW10-ORG-IDENTITY-02`
HORS_UE (0227) identity must be uppercase alphanumeric (G1.73) | +| `code` |
  • Scheme 0228
  • Length between 9 and 10
| `GOBL-FR-CTC-FLOW10-ORG-IDENTITY-03`
RIDET (0228) identity must be 9 or 10 characters (G1.73) | +| `code` |
  • Scheme 0229
  • Length between 9 and 9
| `GOBL-FR-CTC-FLOW10-ORG-IDENTITY-04`
TAHITI (0229) identity must be 9 characters (G1.73) | +
\ No newline at end of file diff --git a/addons/fr-ctc-flow2-v1.mdx b/addons/fr-ctc-flow2-v1.mdx index 6799ec1..c6bf7be 100644 --- a/addons/fr-ctc-flow2-v1.mdx +++ b/addons/fr-ctc-flow2-v1.mdx @@ -187,17 +187,17 @@ The numeric suffix indicates the payment type (1=deposit, | Code | Name | | ---- | ---- | -| `B1` | Goods - Deposit invoice | +| `B1` | Goods - Standard invoice | | `B2` | Goods - Already paid invoice | | `B4` | Goods - Final invoice (after down payment) | | `B7` | Goods - E-reporting (VAT already collected) | -| `S1` | Services - Deposit invoice | +| `S1` | Services - Standard invoice | | `S2` | Services - Already paid invoice | | `S4` | Services - Final invoice (after down payment) | | `S5` | Services - Subcontractor invoice | | `S6` | Services - Co-contractor invoice | | `S7` | Services - E-reporting (VAT already collected) | -| `M1` | Mixed - Deposit invoice | +| `M1` | Mixed - Standard invoice | | `M2` | Mixed - Already paid invoice | | `M4` | Mixed - Final invoice (after down payment) | @@ -220,10 +220,10 @@ The numeric suffix indicates the payment type (1=deposit, | `tax.ext` | | `GOBL-FR-CTC-FLOW2-BILL-INVOICE-09`
Invoice tax ext fr-ctc-billing-mode is required | | `tax.ext` | | `GOBL-FR-CTC-FLOW2-BILL-INVOICE-10`
Invoice tax ext untdid-document-type must not be an advance-payment code (386, 500, 503) when billing mode is factoring (B4, S4, M4) (BR-FR-CO-08) | | `supplier.inboxes` | | `GOBL-FR-CTC-FLOW2-BILL-INVOICE-11`
Invoice supplier inboxes are required for French B2B invoices (BR-FR-13) | -| `supplier.identities` | | `GOBL-FR-CTC-FLOW2-BILL-INVOICE-12`
Invoice supplier identities must include a SIREN identity with iso-scheme-id 0002 and scope legal (BR-FR-10/11) | +| `supplier.identities` | | `GOBL-FR-CTC-FLOW2-BILL-INVOICE-12`
Invoice supplier legal identity must be a SIREN with iso-scheme-id 0002 (BR-FR-10/11) | | `supplier` | | `GOBL-FR-CTC-FLOW2-BILL-INVOICE-13`
Invoice supplier must have an inbox with scheme 0225 matching the SIREN code (BR-FR-21/22) | | `customer.inboxes` | | `GOBL-FR-CTC-FLOW2-BILL-INVOICE-14`
Invoice customer inboxes are required for French B2B invoices (BR-FR-13) | -| `customer.identities` | | `GOBL-FR-CTC-FLOW2-BILL-INVOICE-15`
Invoice customer identities must include a SIREN identity with iso-scheme-id 0002 and scope legal (BR-FR-10/11) | +| `customer.identities` | | `GOBL-FR-CTC-FLOW2-BILL-INVOICE-15`
Invoice customer legal identity must be a SIREN with iso-scheme-id 0002 (BR-FR-10/11) | | `customer` | | `GOBL-FR-CTC-FLOW2-BILL-INVOICE-16`
Invoice customer must have an inbox with scheme 0225 matching the SIREN code (BR-FR-21/22) | | `ordering.identities` | | `GOBL-FR-CTC-FLOW2-BILL-INVOICE-17`
Invoice ordering identities must not contain more than one entry with UNTDID reference 'AFL' (BR-FR-30) | | `ordering.identities` | | `GOBL-FR-CTC-FLOW2-BILL-INVOICE-18`
Invoice ordering identities must not contain more than one entry with UNTDID reference 'AWW' (BR-FR-30) | diff --git a/addons/fr-ctc-flow6-v1.mdx b/addons/fr-ctc-flow6-v1.mdx index e410bf5..3ff7f34 100644 --- a/addons/fr-ctc-flow6-v1.mdx +++ b/addons/fr-ctc-flow6-v1.mdx @@ -226,6 +226,7 @@ round-tripping a parsed CDV. | `customer.identities` | | `GOBL-FR-CTC-FLOW6-BILL-STATUS-10`
Status customer must have at least one identity with an iso-scheme-id in the Flow 6 allow-list; STC 0231 is a Flow 2 invoice concept | | `lines` | | `GOBL-FR-CTC-FLOW6-BILL-STATUS-11`
Status lines must contain exactly one entry | | `lines[*].doc` | | `GOBL-FR-CTC-FLOW6-BILL-STATUS-12`
Status line doc is required (BR-FR-CDV-10) | +| `lines[*].doc` | | `GOBL-FR-CTC-FLOW6-BILL-STATUS-25`
Status line doc must carry the untdid-document-type extension (MDT-91) with a valid invoice type code | | `lines[*].doc.code` | | `GOBL-FR-CTC-FLOW6-BILL-STATUS-13`
Status line doc code is required (BR-FR-CDV-10) | | `lines[*].doc.issue_date` | | `GOBL-FR-CTC-FLOW6-BILL-STATUS-14`
Status line doc issue_date is required (BR-FR-CDV-11) | | `lines[*].key` | | `GOBL-FR-CTC-FLOW6-BILL-STATUS-15`
Status line key must be a recognised Flow 6 event | @@ -253,8 +254,10 @@ round-tripping a parsed CDV. | `payee.identities[*].ext` | | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-08`
Payment payee identity ext iso-scheme-id must be in the Flow 6 allow-list; STC 0231 is a Flow 2 invoice concept | | `lines` | | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-09`
Payment lines must contain exactly one entry (a CDV references a single invoice) | | `lines[*].document` | | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-10`
Payment line document is required (BR-FR-CDV-10) | +| `lines[*].document` | | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-17`
Payment line document must carry the untdid-document-type extension (MDT-91) with a valid invoice type code | | `lines[*].document.code` | | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-11`
Payment line document code is required (BR-FR-CDV-10) | | `lines[*].document.issue_date` | | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-12`
Payment line document issue_date is required (BR-FR-CDV-11) | +| `lines` | | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-18`
A payment receipt must show the applicable VAT rate; the rate may be exempt | | `ext` | | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-13`
Payment ext fr-ctc-flow6-status must be a Payment-applicable ProcessConditionCode (211 advice or 212 receipt); codes 200-210, 213 belong on bill.Status | | `ext` | | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-14`
Payment ext fr-ctc-flow6-condition must be a Payment-applicable CharacteristicTypeCode (MEN, MPA, RAP); status-only codes (CBB, DIV, DVA, MAJ, MAP, MAPTTC, MNA, MNATTC, ESC, RAB, REM) belong on a bill.Reason under bill.Status | | `ext` | | `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-15`
Payment ext fr-ctc-flow6-status for an advice payment must be ProcessConditionCode 211 (Paiement transmis) | diff --git a/addons/it-sdi-v1.mdx b/addons/it-sdi-v1.mdx index faf45a8..dc8d33d 100644 --- a/addons/it-sdi-v1.mdx +++ b/addons/it-sdi-v1.mdx @@ -533,6 +533,12 @@ field. | `code` | | `GOBL-IT-SDI-ORG-ADDRESS-07`
Italian address code is required | | `code` | | `GOBL-IT-SDI-ORG-ADDRESS-08`
Italian address code must be 5 digits | + + +| Field | Test | Validation Code / Message | +| ----- | ---- | ------------------------- | +| `type` |
  • Length between 0 and 10
| `GOBL-IT-SDI-ORG-ATTRIBUTE-01`
Attribute type cannot be longer than 10 characters (TipoDato) | +
| Field | Test | Validation Code / Message | diff --git a/addons/pt-saft-v1.mdx b/addons/pt-saft-v1.mdx index e7f5479..7631837 100644 --- a/addons/pt-saft-v1.mdx +++ b/addons/pt-saft-v1.mdx @@ -49,6 +49,16 @@ when submitting the correction options. - **Extensions:** `pt-saft-invoice-type:FS` + + +**Filters:** +- **Types:** `standard` +- **Tags:** `cash-vat` + +**Output:** +- **Extensions:** `pt-saft-cash-vat:1` + + **Filters:** @@ -143,7 +153,7 @@ below shows how this mapping is done: | Code | Name | GOBL Type | GOBL Tax Tag | | ---- | ------------------------------------------ | --------- | ------------ | | RG | Outro Recibo | `receipt` | | -| RC | Recibo no âmbito do regime de IVA de Caixa | `receipt` | `vat-cash` | +| RC | Recibo no âmbito do regime de IVA de Caixa | `receipt` | `cash-vat` | For example: @@ -611,6 +621,47 @@ For example, to set a movement type with no GOBL equivalent (e.g. GA): | `GC` | Consignment note | | `GD` | Returns slip or note | +### Cash VAT Scheme Indicator + +SAF-T's `CashVATSchemeIndicator` (Indicador da adesão ao regime de IVA de Caixa) indicates +whether the document was issued by a taxpayer that has adhered to the Cash VAT scheme (regime +de IVA de Caixa). + +In GOBL, this is set with the `pt-saft-cash-vat` extension in the invoice tax section. GOBL +sets it automatically to "1" when the invoice carries the `cash-vat` tag. + +| Code | Description | +| ---- | -------------------------------------------- | +| `0` | Not adhered to the Cash VAT scheme (default) | +| `1` | Adhered to the Cash VAT scheme | + +Example: + +```js +{ + "$schema": "https://gobl.org/draft-0/bill/invoice", + "$tags": [ + "cash-vat" + ], + // ... + "type": "standard", + // ... + "tax": { + "ext": { + "pt-saft-cash-vat": "1" + } + }, + // ... +} +``` + + + +| Code | Name | +| ---- | ---- | +| `0` | No | +| `1` | Yes | + ## Validation Rules @@ -644,6 +695,7 @@ For example, to set a movement type with no GOBL equivalent (e.g. GA): | Payment | | `GOBL-PT-SAFT-BILL-PAYMENT-02`
Code format must be valid | | Payment | | `GOBL-PT-SAFT-BILL-PAYMENT-06`
Source ref format is invalid | | Payment | | `GOBL-PT-SAFT-BILL-PAYMENT-09`
Customer name is required when customer has tax ID code | +| Payment | | `GOBL-PT-SAFT-BILL-PAYMENT-11`
Payment method dates must match the issue date | | `ext` | | `GOBL-PT-SAFT-BILL-PAYMENT-03`
'pt-saft-payment-type' extension is required | | `ext` | | `GOBL-PT-SAFT-BILL-PAYMENT-04`
'pt-saft-source' extension is required | | `ext` | | `GOBL-PT-SAFT-BILL-PAYMENT-05`
'pt-saft-source-ref' extension is required when source is not produced | @@ -683,12 +735,12 @@ For example, to set a movement type with no GOBL equivalent (e.g. GA): | `ext` | | `GOBL-PT-SAFT-TAX-COMBO-01`
Region and tax rate are required | | `ext` | | `GOBL-PT-SAFT-TAX-COMBO-02`
Exemption is required when tax rate is exempt | - + | Field | Test | Validation Code / Message | | ----- | ---- | ------------------------- | -| `ext` |
  • Ext require [pt-region, pt-saft-tax-rate]
| `GOBL-PT-SAFT-TAX-RATETOTAL-01`
Region and tax rate are required | -| `ext` |
  • Exempt requires exemption
| `GOBL-PT-SAFT-TAX-RATETOTAL-02`
Exemption is required when tax rate is exempt | +| `rates[*].ext` |
  • Is VAT
  • Ext require [pt-region, pt-saft-tax-rate]
| `GOBL-PT-SAFT-TAX-CATEGORYTOTAL-01`
Region and tax rate are required | +| `rates[*].ext` |
  • Is VAT
  • Exempt requires exemption
| `GOBL-PT-SAFT-TAX-CATEGORYTOTAL-02`
Exemption is required when tax rate is exempt |
@@ -703,6 +755,12 @@ For example, to set a movement type with no GOBL equivalent (e.g. GA): | ----- | ---- | ------------------------- | | `text` |
  • Legal exemption note
  • Length between 6 and 60
| `GOBL-PT-SAFT-ORG-NOTE-01`
The length must be between 6 and 60 |
+ + +| Field | Test | Validation Code / Message | +| ----- | ---- | ------------------------- | +| `text` |
  • Withholding note
  • Length between 0 and 60
| `GOBL-PT-SAFT-TAX-NOTE-02`
The length must be at most 60 | +
| Field | Test | Validation Code / Message | diff --git a/addons/sa-zatca-v1.mdx b/addons/sa-zatca-v1.mdx index 7cde4ab..6eb8231 100644 --- a/addons/sa-zatca-v1.mdx +++ b/addons/sa-zatca-v1.mdx @@ -88,6 +88,7 @@ Pattern: `^0[12][01]{5}$` | Field | Test | Validation Code / Message | | ----- | ---- | ------------------------- | +| Invoice |
  • Can convert to [SAR]
| `GOBL-SA-ZATCA-BILL-INVOICE-34`
Invoice currency must be SAR or include an exchange rate to convert to SAR | | `issue_time`
Calculated |
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-01`
Invoice issue time must be present (BR-KSA-70) | | `tax` |
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-02`
Invoice tax must be present | | `tax.ext` |
  • Ext require [untdid-document-type]
| `GOBL-SA-ZATCA-BILL-INVOICE-03`
Invoice tax untdid-document-type extension is required | @@ -97,27 +98,30 @@ Pattern: `^0[12][01]{5}$` | `preceding` |
  • Invoice type in [credit-note, debit-note]
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-07`
Credit and debit notes must have a billing reference | | `preceding[*].code` |
  • Invoice type in [credit-note, debit-note]
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-08`
Credit or debit note billing reference must have an identifier (BR-KSA-56) | | `preceding[*].reason` |
  • Invoice type in [credit-note, debit-note]
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-09`
Credit and debit notes must contain the reason for issuance (BR-KSA-17) | -| `customer` |
  • Standard tax invoice
  • Invoice customer must have a tax id code or a valid identification (TIN/CRN/MOM/MLS/700/SAG/NAT/GCC/IQA/PAS/OTH) for standard invoices (BR-KSA-14), (BR-KSA-81)
| `GOBL-SA-ZATCA-BILL-INVOICE-13`
Invoice customer must have a valid identification scheme for standard invoices | -| `customer.addresses[*].street` |
  • Standard tax invoice
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-10`
Invoice customer address must have a street name for standard tax invoices (BR-KSA-10) | -| `customer.addresses[*].locality` |
  • Standard tax invoice
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-11`
Invoice customer address must have a city name for standard tax invoices (BR-KSA-10) | -| `customer.addresses[*].country` |
  • Standard tax invoice
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-12`
Invoice customer address must have a country code for standard tax invoices (BR-KSA-10) | -| `lines[*].taxes` |
  • Standard tax invoice
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-14`
Invoice line taxes are required for standard tax invoices (BR-KSA-52) | -| `delivery` |
  • Standard tax invoice
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-15`
Invoice delivery must be present for standard tax invoices | -| `delivery.date` |
  • Standard tax invoice
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-16`
Invoice delivery must have a supply date for standard tax invoices (BR-KSA-15) | -| `customer.tax_id` |
  • Export invoice
  • Empty
| `GOBL-SA-ZATCA-BILL-INVOICE-17`
Invoice customer must not have a tax id for export invoices (BR-KSA-46) | -| `delivery` |
  • Invoice is simplified and summary
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-18`
Invoice delivery must be present for simplified and summary invoices | -| `delivery.period` |
  • Invoice is simplified and summary
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-19`
Invoice supply must have a delivery period for simplified and summary invoices | -| `delivery.period.start` |
  • Invoice is simplified and summary
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-20`
Invoice delivery start date must be present for simplified and summary invoices (BR-KSA-72) | -| `delivery.period.end` |
  • Invoice is simplified and summary
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-21`
Invoice delivery end date must be present for simplified and summary invoices (BR-KSA-72) | -| `customer.identities` |
  • Has EDU or HEA tax exemption
  • Has a type in [NAT]
| `GOBL-SA-ZATCA-BILL-INVOICE-22`
Invoice customer must have a national ID (NAT) when tax exemption is VATEX-SA-EDU or VATEX-SA-HEA (BR-KSA-49) | -| `customer` |
  • Simplified and (EDU or HEA exemptions), or invoice is simplified and summary, or standard tax invoice
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-23`
Invoice customer must be present for standard tax invoices, simplified summary invoices, and simplified invoices with EDU or HEA exemptions | -| `customer.name` |
  • Simplified and (EDU or HEA exemptions), or invoice is simplified and summary, or standard tax invoice
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-24`
Invoice customer must be present for standard tax invoices, simplified summary invoices, and simplified invoices with EDU or HEA exemptions (BR-KSA-71), (BR-KSA-25), (BR-KSA-42) | -| `supplier.tax_id` |
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-25`
Invoice supplier must have a tax id (BR-KSA-39) | -| `supplier.tax_id.code` |
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-26`
Invoice supplier must have a tax id code (BR-KSA-39) | -| `supplier.identities` |
  • Identity must be one of: CRN/MOM/MLS/700/SAG/OTH
| `GOBL-SA-ZATCA-BILL-INVOICE-27`
Invoice supplier must have a valid identity (CRN/MOM/MLS/700/SAG/OTH) (BR-KSA-08) | -| `customer.tax_id` |
  • Invoice is self-billed
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-28`
Invoice customer must have a tax id when self-billed (BR-KSA-39) | -| `customer.tax_id.code` |
  • Invoice is self-billed
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-29`
Invoice customer must have a tax id code when self-billed (BR-KSA-39) | -| `customer.identities` |
  • Invoice is self-billed
  • Identity must be one of: CRN/MOM/MLS/700/SAG/OTH
| `GOBL-SA-ZATCA-BILL-INVOICE-30`
Invoice customer must have a valid identity for self-billed invoices (CRN/MOM/MLS/700/SAG/OTH) (BR-KSA-08) | +| `payment` |
  • Invoice type in [credit-note, debit-note]
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-10`
Credit or debit notes must have payment details | +| `payment.instructions` |
  • Invoice type in [credit-note, debit-note]
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-11`
Credit or debit notes must have payment instructions | +| `payment.instructions.key` |
  • Invoice type in [credit-note, debit-note]
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-12`
Credit or debit note payment instructions must have a key (BR-KSA-17) | +| `customer` |
  • Standard tax invoice
  • Invoice customer must have a tax id code or a valid identification (TIN/CRN/MOM/MLS/700/SAG/NAT/GCC/IQA/PAS/OTH) for standard invoices (BR-KSA-14), (BR-KSA-81)
| `GOBL-SA-ZATCA-BILL-INVOICE-16`
Invoice customer must have a valid identification scheme for standard invoices | +| `customer.addresses[*].street` |
  • Standard tax invoice
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-13`
Invoice customer address must have a street name for standard tax invoices (BR-KSA-10) | +| `customer.addresses[*].locality` |
  • Standard tax invoice
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-14`
Invoice customer address must have a city name for standard tax invoices (BR-KSA-10) | +| `customer.addresses[*].country` |
  • Standard tax invoice
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-15`
Invoice customer address must have a country code for standard tax invoices (BR-KSA-10) | +| `lines[*].taxes` |
  • Standard tax invoice
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-17`
Invoice line taxes are required for standard tax invoices (BR-KSA-52) | +| `delivery` |
  • Standard tax invoice
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-18`
Invoice delivery must be present for standard tax invoices | +| `delivery.date` |
  • Standard tax invoice
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-19`
Invoice delivery must have a supply date for standard tax invoices (BR-KSA-15) | +| `customer.tax_id` |
  • Export invoice
  • Empty
| `GOBL-SA-ZATCA-BILL-INVOICE-20`
Invoice customer must not have a tax id for export invoices (BR-KSA-46) | +| `delivery` |
  • Invoice is simplified and summary
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-21`
Invoice delivery must be present for simplified and summary invoices | +| `delivery.period` |
  • Invoice is simplified and summary
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-22`
Invoice supply must have a delivery period for simplified and summary invoices | +| `delivery.period.start` |
  • Invoice is simplified and summary
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-23`
Invoice delivery start date must be present for simplified and summary invoices (BR-KSA-72) | +| `delivery.period.end` |
  • Invoice is simplified and summary
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-24`
Invoice delivery end date must be present for simplified and summary invoices (BR-KSA-72) | +| `customer.identities` |
  • Has EDU or HEA tax exemption
  • Has a type in [NAT]
| `GOBL-SA-ZATCA-BILL-INVOICE-25`
Invoice customer must have a national ID (NAT) when tax exemption is VATEX-SA-EDU or VATEX-SA-HEA (BR-KSA-49) | +| `customer` |
  • Simplified and (EDU or HEA exemptions), or invoice is simplified and summary, or standard tax invoice
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-26`
Invoice customer must be present for standard tax invoices, simplified summary invoices, and simplified invoices with EDU or HEA exemptions | +| `customer.name` |
  • Simplified and (EDU or HEA exemptions), or invoice is simplified and summary, or standard tax invoice
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-27`
Invoice customer must be present for standard tax invoices, simplified summary invoices, and simplified invoices with EDU or HEA exemptions (BR-KSA-71), (BR-KSA-25), (BR-KSA-42) | +| `supplier.tax_id` |
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-28`
Invoice supplier must have a tax id (BR-KSA-39) | +| `supplier.tax_id.code` |
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-29`
Invoice supplier must have a tax id code (BR-KSA-39) | +| `supplier.identities` |
  • Identity must be one of: CRN/MOM/MLS/700/SAG/OTH
| `GOBL-SA-ZATCA-BILL-INVOICE-30`
Invoice supplier must have a valid identity (CRN/MOM/MLS/700/SAG/OTH) (BR-KSA-08) | +| `customer.tax_id` |
  • Invoice is self-billed
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-31`
Invoice customer must have a tax id when self-billed (BR-KSA-39) | +| `customer.tax_id.code` |
  • Invoice is self-billed
  • Present
| `GOBL-SA-ZATCA-BILL-INVOICE-32`
Invoice customer must have a tax id code when self-billed (BR-KSA-39) | +| `customer.identities` |
  • Invoice is self-billed
  • Identity must be one of: CRN/MOM/MLS/700/SAG/OTH
| `GOBL-SA-ZATCA-BILL-INVOICE-33`
Invoice customer must have a valid identity for self-billed invoices (CRN/MOM/MLS/700/SAG/OTH) (BR-KSA-08) |
diff --git a/docs.json b/docs.json index 6136098..db2f94d 100644 --- a/docs.json +++ b/docs.json @@ -260,6 +260,7 @@ "pages": [ "draft-0/org/address", "draft-0/org/attachment", + "draft-0/org/attribute", "draft-0/org/coordinates", "draft-0/org/document_ref", "draft-0/org/email", diff --git a/draft-0/bill/tax.mdx b/draft-0/bill/tax.mdx index a4ccb36..e1ce33b 100644 --- a/draft-0/bill/tax.mdx +++ b/draft-0/bill/tax.mdx @@ -25,7 +25,7 @@ Tax defines a summary of the taxes which may be applied to an invoice. | Value | Description | |-------|-------------| | `precise` | The default method of calculating the totals in GOBL, and provides the best results for most cases as the precision is maintained to the maximum amount possible. The tradeoff however is that sometimes the totals may not sum exactly based on what is visible. | -| `currency` | The alternative method of calculating the totals that will first round all the amounts to the currency's precision before making the sums. Totals using this approach can always be recalculated using the amounts presented, but can lead to rounding errors in the case of pre-payments and when line item prices include tax. | +| `currency` | The alternative method of calculating the totals that will first round all the amounts to the currency's precision before making the sums. Totals using this approach can always be recalculated using the amounts presented, but can lead to rounding errors in the case of pre-payments. When prices include tax, the tax amounts are calculated from each rate's sum of tax-inclusive line totals so that the bases and amounts always add up, though recalculating a tax amount from its base alone may occasionally differ by a single subunit of the currency. | ## Point Values diff --git a/draft-0/org/attribute.mdx b/draft-0/org/attribute.mdx new file mode 100644 index 0000000..413095e --- /dev/null +++ b/draft-0/org/attribute.mdx @@ -0,0 +1,57 @@ +--- +title: Attribute +comment: +--- + +Attribute describes a named feature or property of the parent object, such as the color or size of an item. + +## Schema ID + +`https://gobl.org/draft-0/org/attribute` + +## Properties + +| Title | Property | Type | Description | +|-------|----------|------|-------------| +| Label | `label` | string | Label for the attribute, used for presentation in converted outputs such as PDFs. | +| Key | `key` | [cbc.Key](/draft-0/cbc/key) | Key that identifies the attribute, either from the list pre-defined by GOBL or an alternative agreed upon between the supplier and customer. | +| Type | `type` | [cbc.Code](/draft-0/cbc/code) | Type defines a code used to identify the attribute when the "key" field is empty, from a code list agreed upon between the supplier and customer. | +| Text | `text` | string | Text value of the attribute. | +| Code | `code` | [cbc.Code](/draft-0/cbc/code) | Code value of the attribute, used as an alternative to text when the value comes from a code list agreed upon between the supplier and customer. | +| Amount | `amount` | [num.Amount](/draft-0/num/amount) | Amount used when the attribute represents a numeric or measurable value. | +| Unit | `unit` | [org.Unit](/draft-0/org/unit) | Unit of measure that accompanies the amount. | +| Date | `date` | [cal.Date](/draft-0/cal/date) | Date value of the attribute. | + +## Key Values + +| Value | Description | +|-------|-------------| +| `color` | Color of the item, either as a name or a code such as RAL or Pantone. | +| `size` | Size of the item, such as a clothing size. | +| `material` | Main material the item is made of, such as cotton or steel. | +| `length` | Length of the item itself, excluding packaging, usually as an amount with a unit of measure. | +| `width` | Width of the item itself, excluding packaging, usually as an amount with a unit of measure. | +| `height` | Height of the item itself, excluding packaging, usually as an amount with a unit of measure. | +| `diameter` | Diameter of the item itself, excluding packaging, usually as an amount with a unit of measure. | +| `weight` | Weight of a single unit of the item itself, excluding packaging, usually as an amount with a unit of measure. | +| `volume` | Volume of a single unit of the item itself, excluding packaging, usually as an amount with a unit of measure. | +| `production` | Date the item was produced or manufactured. | +| `expiry` | Date the item expires or is best consumed before. | +| `nutrition+energy` | Energy content per 100g or 100ml, usually in kilojoules (kj) or kilocalories (kcal). | +| `nutrition+fat` | Total fat content per 100g or 100ml, usually in grams. | +| `nutrition+saturated-fat` | Saturated fat content per 100g or 100ml, usually in grams. | +| `nutrition+carbohydrates` | Carbohydrate content per 100g or 100ml, usually in grams. | +| `nutrition+sugars` | Sugar content per 100g or 100ml, usually in grams. | +| `nutrition+protein` | Protein content per 100g or 100ml, usually in grams. | +| `nutrition+salt` | Salt content per 100g or 100ml, usually in grams. | +| `nutrition+fibre` | Fibre content per 100g or 100ml, usually in grams. | +| `emissions+co2e` | Greenhouse gas emissions of a single unit of the item expressed as a carbon dioxide equivalent, usually in kilograms. | + + +## Validation Rules + +| Field | Test | Validation Code / Message | +| ----- | ---- | ------------------------- | +| Attribute |
  • (string(Key) == "") != (string(Type) == "")
| `GOBL-ORG-ATTRIBUTE-01`
Attribute must have either a key or a type, but not both | +| Attribute |
  • (Text == "" ? 0 : 1) + (string(Code) == "" ? 0 : 1) + (Amount == nil ? 0 : 1) + (Date == nil ? 0 : 1) == 1
| `GOBL-ORG-ATTRIBUTE-02`
Attribute must have exactly one of the text, code, amount, or date values | +| Attribute |
  • String(Unit) != ""
  • Amount != nil
| `GOBL-ORG-ATTRIBUTE-03`
Attribute unit may only be used alongside an amount | diff --git a/draft-0/org/item.mdx b/draft-0/org/item.mdx index 315ae3f..e848ae7 100644 --- a/draft-0/org/item.mdx +++ b/draft-0/org/item.mdx @@ -18,6 +18,7 @@ Item is used to describe a single product or service. | Key | `key` | [cbc.Key](/draft-0/cbc/key) | Special key used to classify the item sometimes required by some regimes. | | Name | `name` | string | Brief name of the item | | Identities | `identities` | array of [org.Identity](/draft-0/org/identity) | List of additional codes, IDs, or SKUs which can be used to identify the item. They should be agreed upon between supplier and customer. | +| Attributes | `attributes` | array of [org.Attribute](/draft-0/org/attribute) | Attributes describe named features or properties of the item, such as color or size. | | Description | `description` | string | Detailed description of the item. | | Images | `images` | array of [org.Image](/draft-0/org/image) | Images associated with the item. | | Currency | `currency` | [currency.Code](/draft-0/currency/code) | Currency used for the item's price. | @@ -42,3 +43,4 @@ Item is used to describe a single product or service. | ----- | ---- | ------------------------- | | `name` |
  • Present
| `GOBL-ORG-ITEM-01`
Item name is required | | `price` |
  • Min 0
| `GOBL-ORG-ITEM-02`
Item price must be zero or positive | +| `attributes` |
  • Attribute keys must be unique
| `GOBL-ORG-ITEM-03`
Item attributes must not contain duplicate keys | diff --git a/draft-0/org/unit.mdx b/draft-0/org/unit.mdx index 8bf07d3..11de199 100644 --- a/draft-0/org/unit.mdx +++ b/draft-0/org/unit.mdx @@ -45,6 +45,8 @@ Unit defines how the quantity of the product should be interpreted either using | `w` | Watts | | | `kw` | Kilowatts | | | `kwh` | Kilowatt Hours | | +| `kj` | Kilojoules | | +| `kcal` | Kilocalories | | | `rate` | Rate | A unit of quantity expressed as a rate for usage of a facility or service. | | `yr` | Years | A unit of time equal to twelve months. | | `mon` | Months | Unit of time equal to 1/12 of a year of 365,25 days. | @@ -106,4 +108,4 @@ Unit defines how the quantity of the product should be interpreted either using | Field | Test | Validation Code / Message | | ----- | ---- | ------------------------- | -| Unit |
  • Matches ^[A-Z0-9]{2,3}$, or one of [mg, cg, g, kg, t, mm, cm, dm, m, lm, km, in, ft, lft, mm2, cm2, dm2, m2, ac, ha, mm3, cm3, dm3, m3, ml, cl, dl, l, kl, w, kw, kwh, rate, yr, mon, wk, day, s, h, min, piece, item, pair, dozen, assortment, service, job, activity, trip, group, outfit, kit, basebox, pk, one, bag, box, bin, can, tub, case, tray, portion, set, roll, carton, cylinder, barrel, jerrican, carboy, demijohn, bottle, 6pack, canister, pkg, pkt, bunch, bdl, blk, tetrabrik, pallet, reel, sack, sheet, envelope, lot, unit]
| `GOBL-ORG-UNIT-01`
Unit must be a valid value or UN/ECE code | +| Unit |
  • Matches ^[A-Z0-9]{2,3}$, or one of [mg, cg, g, kg, t, mm, cm, dm, m, lm, km, in, ft, lft, mm2, cm2, dm2, m2, ac, ha, mm3, cm3, dm3, m3, ml, cl, dl, l, kl, w, kw, kwh, kj, kcal, rate, yr, mon, wk, day, s, h, min, piece, item, pair, dozen, assortment, service, job, activity, trip, group, outfit, kit, basebox, pk, one, bag, box, bin, can, tub, case, tray, portion, set, roll, carton, cylinder, barrel, jerrican, carboy, demijohn, bottle, 6pack, canister, pkg, pkt, bunch, bdl, blk, tetrabrik, pallet, reel, sack, sheet, envelope, lot, unit]
| `GOBL-ORG-UNIT-01`
Unit must be a valid value or UN/ECE code | diff --git a/go.mod b/go.mod index f04a0ec..fcf94e8 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,8 @@ module github.com/invopop/gobl.docs go 1.25.0 require ( - github.com/invopop/gobl v0.502.2 - github.com/invopop/gobl.dev v0.500.7 + github.com/invopop/gobl v0.503.0 + github.com/invopop/gobl.dev v0.500.11 github.com/wk8/go-ordered-map/v2 v2.1.8 ) @@ -19,10 +19,10 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/invopop/gobl.br.nfe v0.0.1 // indirect github.com/invopop/gobl.br.nfse v0.0.1 // indirect - github.com/invopop/gobl.fr.ctc v0.0.4 // indirect - github.com/invopop/gobl.mx.cfdi v0.61.0 // indirect - github.com/invopop/gobl.pt.saft v0.0.1 // indirect - github.com/invopop/gobl.sa.zatca v0.0.2 // indirect + github.com/invopop/gobl.fr.ctc v0.0.7 // indirect + github.com/invopop/gobl.mx.cfdi v0.62.0 // indirect + github.com/invopop/gobl.pt.saft v0.0.5 // indirect + github.com/invopop/gobl.sa.zatca v0.0.3 // indirect github.com/invopop/jsonschema v0.14.0 // indirect github.com/invopop/yaml v0.3.1 // indirect github.com/magefile/mage v1.17.2 // indirect diff --git a/go.sum b/go.sum index 36651da..8f43077 100644 --- a/go.sum +++ b/go.sum @@ -20,22 +20,22 @@ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/invopop/gobl v0.502.2 h1:guH++uYsy5RjCjn7qGNwFq1xWLceNx0Pmjz/Fm2KCRw= -github.com/invopop/gobl v0.502.2/go.mod h1:HmiEdQreTSQYyNbhs81VKTmI7BAJKYC/6enh9RDwnE0= +github.com/invopop/gobl v0.503.0 h1:i15dqw6OlHdEWZzCgvM7MquMKKzBq7K8VMF8MQUJhGo= +github.com/invopop/gobl v0.503.0/go.mod h1:HmiEdQreTSQYyNbhs81VKTmI7BAJKYC/6enh9RDwnE0= github.com/invopop/gobl.br.nfe v0.0.1 h1:ywJycz2wiyeNygbRhuRJg52gTnIECsbZ5+pGFqh3eyE= github.com/invopop/gobl.br.nfe v0.0.1/go.mod h1:ZIJSVz5257xciD+RkBhyvqjtS46Pgw23idTca6A8ZIk= github.com/invopop/gobl.br.nfse v0.0.1 h1:BdwNiG7vk7bPMgE4m102P+UysOxmYWhOKIDfFI6RKEA= github.com/invopop/gobl.br.nfse v0.0.1/go.mod h1:m22voo72ZScRiwIS49wXhzGRahzBO+IEAN0M0Kij3QI= -github.com/invopop/gobl.dev v0.500.7 h1:aE9E80dPsGgLCP5JegylWw/gm6+eMnaiwMgc0yBNYIU= -github.com/invopop/gobl.dev v0.500.7/go.mod h1:W1iHdbocYNPoOK0qFGduzBZbWCaeJdxqgnWva5LZL5k= -github.com/invopop/gobl.fr.ctc v0.0.4 h1:x4eJ3hp9Y9lTCzWFhNqZYm9kCXyuC34EytOuaU03faE= -github.com/invopop/gobl.fr.ctc v0.0.4/go.mod h1:YXJ0G7lCWxUehI4C2xBPL1y6rTNC29t/kOul7wY+3Xs= -github.com/invopop/gobl.mx.cfdi v0.61.0 h1:f/rtRl5mIgePWQxjLB1UfsU45dQp/4/ZxJjsHGGtjiA= -github.com/invopop/gobl.mx.cfdi v0.61.0/go.mod h1:2ag6z2QhCMltl5YcxL9yL8IzY+mXuOJe39yhk9YWTsM= -github.com/invopop/gobl.pt.saft v0.0.1 h1:sXG+HsiN8rZVAxSvv33i/5+8QM8UJbadklmZZUkA5dM= -github.com/invopop/gobl.pt.saft v0.0.1/go.mod h1:0itJS6OpV+2BcaD4xRwEf4gEOcVeGdrfoghwxB+UWrg= -github.com/invopop/gobl.sa.zatca v0.0.2 h1:qU2Y0LP+4mjvZkuG1TOUp/Zs0XxRAzkzQFHy3WOVFEU= -github.com/invopop/gobl.sa.zatca v0.0.2/go.mod h1:tmLCoaKb4X7sZ2zRU8LalA1sgxM2kQv/uqMzZslhE6A= +github.com/invopop/gobl.dev v0.500.11 h1:GzwovGq67ogaiw7VA3n3soOcDXeUWl4Edfvw3ykGpU8= +github.com/invopop/gobl.dev v0.500.11/go.mod h1:94CWVejVTIrhz8V4z+Rhs1BXF9WFkYSW1gqAwZJw60I= +github.com/invopop/gobl.fr.ctc v0.0.7 h1:O/ihT1EcFA7o8FuYG7EbL6LMVJ/rQrWV/C1nY5ryieo= +github.com/invopop/gobl.fr.ctc v0.0.7/go.mod h1:YXJ0G7lCWxUehI4C2xBPL1y6rTNC29t/kOul7wY+3Xs= +github.com/invopop/gobl.mx.cfdi v0.62.0 h1:Uwh5wbwiTNHJ9fWOK72ma/xVoJMdPvdMf3VI57PjKRw= +github.com/invopop/gobl.mx.cfdi v0.62.0/go.mod h1:sXy7JIXauSKRqT0HgHsFICIV9YXuSHK3Quq9uZWZ9L0= +github.com/invopop/gobl.pt.saft v0.0.5 h1:Hc2Sbd280fDgPi9FznI/Xi95lAMzG8A4YEp6SW4H6uY= +github.com/invopop/gobl.pt.saft v0.0.5/go.mod h1:z5L+dLFBx6PmEdacnFWehYWgiYZSM2HaPzx6ld+DnQs= +github.com/invopop/gobl.sa.zatca v0.0.3 h1:eHG8KBndLF75iBXNKr65q91ANQ7fuqCgYoOccWDvjhw= +github.com/invopop/gobl.sa.zatca v0.0.3/go.mod h1:tmLCoaKb4X7sZ2zRU8LalA1sgxM2kQv/uqMzZslhE6A= github.com/invopop/jsonschema v0.14.0 h1:MHQqLhvpNUZfw+hM3AZDYK7jxO8FZoQeQM77g8iyZjg= github.com/invopop/jsonschema v0.14.0/go.mod h1:ygm6C2EaVNMBDPpaPlnOA2pFAxBnxGjFlMZABxm9n2I= github.com/invopop/yaml v0.3.1 h1:f0+ZpmhfBSS4MhG+4HYseMdJhoeeopbSKbq5Rpeelso=