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` | - Single legal-scope identity
| `GOBL-EU-EN16931-ORG-PARTY-02`
Only one identity may have the legal scope (BT-30, BT-47) |
+| `identities` | - Single tax-scope identity
| `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 | - Invoice is B2C (no customer)
- Allowed Flow 10 VAT percents
| `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` | - Invoice is B2C (no customer)
- Ext require [fr-ctc-flow10-b2c-category]
| `GOBL-FR-CTC-FLOW10-BILL-INVOICE-04`
Invoice tax ext fr-ctc-flow10-b2c-category is required on B2C invoices (G1.68) |
-| `supplier` | - Invoice is B2C (no customer)
- Present
| `GOBL-FR-CTC-FLOW10-BILL-INVOICE-05`
Invoice supplier is required on B2C invoices |
-| `supplier` | - Invoice is B2C (no customer)
- Party has SIREN
| `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` | - Invoice is B2B (has customer)
- Ext 'untdid-document-type' in [380, 386, 384, 381, 503]
| `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` | - Invoice is B2B (has customer)
- Ext require [fr-ctc-billing-mode]
| `GOBL-FR-CTC-FLOW10-BILL-INVOICE-09`
Invoice tax ext fr-ctc-billing-mode is required (G1.02) |
+| Invoice | - Invoice is B2C (no legal customer)
- Allowed Flow 10 VAT percents
| `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` | - Invoice is B2C (no legal customer)
- Ext require [fr-ctc-flow10-b2c-category]
| `GOBL-FR-CTC-FLOW10-BILL-INVOICE-04`
Invoice tax ext fr-ctc-flow10-b2c-category is required on B2C invoices (G1.68) |
+| `supplier` | - Invoice is B2C (no legal customer)
- Present
| `GOBL-FR-CTC-FLOW10-BILL-INVOICE-05`
Invoice supplier is required on B2C invoices |
+| `supplier` | - Invoice is B2C (no legal customer)
- Party has SIREN
| `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` | - Invoice is B2B (legal customer)
- Ext 'untdid-document-type' in [380, 386, 384, 381, 503]
| `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` | - Invoice is B2B (legal customer)
- Ext require [fr-ctc-billing-mode]
| `GOBL-FR-CTC-FLOW10-BILL-INVOICE-09`
Invoice tax ext fr-ctc-billing-mode is required (G1.02) |
| `tax.ext` | - Invoice tax ext fr-ctc-billing-mode in [B4, S4, M4]
- Ext 'untdid-document-type' not in [386, 500, 503]
| `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` | - Invoice is B2B (has customer)
- Present
| `GOBL-FR-CTC-FLOW10-BILL-INVOICE-11`
Invoice supplier is required for Flow 10 B2B invoices (G2.19) |
-| `supplier` | - Invoice is B2B (has customer)
- Party has allowed legal scheme
| `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` | - Invoice is B2B (has customer)
- Party has TaxID when required
| `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` | - Invoice is B2B (legal customer)
- Present
| `GOBL-FR-CTC-FLOW10-BILL-INVOICE-11`
Invoice supplier is required for Flow 10 B2B invoices (G2.19) |
+| `supplier` | - Invoice is B2B (legal customer)
- Party has allowed legal scheme
| `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` | - Invoice is B2B (legal customer)
- Party has TaxID when required
| `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 | - Invoice has exempt (E) VAT category
- Supplier or tax rep has VAT ID
| `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 | - Invoice has exempt (E) VAT category
- Has exempt tax note
| `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` | - Invoice is B2B (has customer)
- Present
| `GOBL-FR-CTC-FLOW10-BILL-INVOICE-16`
Invoice customer is required for Flow 10 B2B invoices (G2.19) |
-| `customer` | - Invoice is B2B (has customer)
- Party has allowed legal scheme
| `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` | - Invoice is B2B (has customer)
- Party has TaxID when required
| `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` | - Invoice is B2B (legal customer)
- Present
| `GOBL-FR-CTC-FLOW10-BILL-INVOICE-16`
Invoice customer is required for Flow 10 B2B invoices (G2.19) |
+| `customer` | - Invoice is B2B (legal customer)
- Party has allowed legal scheme
| `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` | - Invoice is B2B (legal customer)
- Party has TaxID when required
| `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` | | `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` | - Ext require [fr-ctc-billing-mode]
| `GOBL-FR-CTC-FLOW2-BILL-INVOICE-09`
Invoice tax ext fr-ctc-billing-mode is required |
| `tax.ext` | - Invoice tax ext fr-ctc-billing-mode in [B4, S4, M4]
- Ext 'untdid-document-type' not in [386, 500, 503]
| `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` | - Invoice tax ext untdid-document-type not in [389, 501, 500, 471, 473, 261, 502]
- Has SIREN inbox
| `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` | - Invoice tax ext untdid-document-type in [389, 501, 500, 471, 473, 261, 502]
- Has SIREN inbox
| `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` | - Identities have at most one ext untdid-reference=AFL
| `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` | - Identities have at most one ext untdid-reference=AWW
| `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` | - Has a ext [iso-scheme-id] in [0002, 0009, 0223, 0224, 0226, 0227, 0228, 0229, 0238]
| `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` | - Present
- Length between 1 and 1
| `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` | - Valid untdid-document-type
| `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` | - One of [issued, acknowledged, processing, accepted, querying, rejected, error, other]
| `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` | - Ext 'iso-scheme-id' in [0002, 0009, 0223, 0224, 0226, 0227, 0228, 0229, 0238]
| `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` | - Valid untdid-document-type
| `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` | - Payment type in [receipt]
- Line has VAT tax breakdown
| `GOBL-FR-CTC-FLOW6-BILL-PAYMENT-18`
A payment receipt must show the applicable VAT rate; the rate may be exempt |
| `ext` | - Ext 'fr-ctc-flow6-status' in [211, 212]
| `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` | - Ext 'fr-ctc-flow6-condition' in [MEN, MPA, RAP]
| `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` | - Payment type in [advice]
- Ext 'fr-ctc-flow6-status' in [211]
| `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` | - Italian address
- Matches ^\d{5}$
| `GOBL-IT-SDI-ORG-ADDRESS-08`
Italian address code must be 5 digits |
+
+
+| Field | Test | Validation Code / Message |
+| ----- | ---- | ------------------------- |
+| `type` | | `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` | - Ext require [pt-saft-payment-type]
| `GOBL-PT-SAFT-BILL-PAYMENT-03`
'pt-saft-payment-type' extension is required |
| `ext` | - Ext require [pt-saft-source]
| `GOBL-PT-SAFT-BILL-PAYMENT-04`
'pt-saft-source' extension is required |
| `ext` | - Source not produced
- Ext require [pt-saft-source-ref]
| `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` | - Is VAT
- Ext require [pt-region, pt-saft-tax-rate]
| `GOBL-PT-SAFT-TAX-COMBO-01`
Region and tax rate are required |
| `ext` | - Is VAT
- Exempt requires exemption
| `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 | | `GOBL-SA-ZATCA-BILL-INVOICE-34`
Invoice currency must be SAR or include an exchange rate to convert to SAR |
| `issue_time`
Calculated | | `GOBL-SA-ZATCA-BILL-INVOICE-01`
Invoice issue time must be present (BR-KSA-70) |
| `tax` | | `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` | | `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` | | `GOBL-SA-ZATCA-BILL-INVOICE-25`
Invoice supplier must have a tax id (BR-KSA-39) |
-| `supplier.tax_id.code` | | `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` | | `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` | | `GOBL-SA-ZATCA-BILL-INVOICE-28`
Invoice supplier must have a tax id (BR-KSA-39) |
+| `supplier.tax_id.code` | | `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` | | `GOBL-ORG-ITEM-01`
Item name is required |
| `price` | | `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=