fr-ctc-flow2-v1
Module: github.com/invopop/gobl.fr.ctc
Support for Flow 2 (“facturation”) of the French CTC
reform: domestic B2B clearance, applied to invoices
exchanged between two parties identifiable as French
(SIREN or French VAT ID on both sides). Built on the
EU EN16931 CIUS profile (declared as a dependency).
Sources
Scenarios
bill/invoice
standard
standard
Filters:
- Types:
standard
- Extensions:
untdid-document-type:380
standard, #self-billed
standard, #self-billed
Filters:
- Types:
standard - Tags:
self-billed
- Extensions:
untdid-document-type:389
standard, #factoring
standard, #factoring
Filters:
- Types:
standard - Tags:
factoring
- Extensions:
untdid-document-type:393
standard, #self-billed, #factoring
standard, #self-billed, #factoring
Filters:
- Types:
standard - Tags:
self-billed,factoring
- Extensions:
untdid-document-type:501
standard, #prepayment
standard, #prepayment
Filters:
- Types:
standard - Tags:
prepayment
- Extensions:
untdid-document-type:386
standard, #self-billed, #prepayment
standard, #self-billed, #prepayment
Filters:
- Types:
standard - Tags:
self-billed,prepayment
- Extensions:
untdid-document-type:500
corrective
corrective
Filters:
- Types:
corrective
- Extensions:
untdid-document-type:384
corrective, #self-billed
corrective, #self-billed
Filters:
- Types:
corrective - Tags:
self-billed
- Extensions:
untdid-document-type:471
corrective, #factoring
corrective, #factoring
Filters:
- Types:
corrective - Tags:
factoring
- Extensions:
untdid-document-type:472
corrective, #self-billed, #factoring
corrective, #self-billed, #factoring
Filters:
- Types:
corrective - Tags:
self-billed,factoring
- Extensions:
untdid-document-type:473
credit-note
credit-note
Filters:
- Types:
credit-note
- Extensions:
untdid-document-type:381
credit-note, #self-billed
credit-note, #self-billed
Filters:
- Types:
credit-note - Tags:
self-billed
- Extensions:
untdid-document-type:261
credit-note, #factoring
credit-note, #factoring
Filters:
- Types:
credit-note - Tags:
factoring
- Extensions:
untdid-document-type:396
credit-note, #self-billed, #factoring
credit-note, #self-billed, #factoring
Filters:
- Types:
credit-note - Tags:
self-billed,factoring
- Extensions:
untdid-document-type:502
credit-note, #prepayment
credit-note, #prepayment
Filters:
- Types:
credit-note - Tags:
prepayment
- Extensions:
untdid-document-type:503
Extensions
Billing Mode
Code used to describe the billing framework of the invoice. The billing mode indicates the nature of goods/services and the payment context. Code prefixes indicate the invoice nature:- “B”: Goods invoice (Biens)
- “S”: Services invoice
- “M”: Mixed/dual invoice (goods and services that are not accessory to each other)
fr-ctc-billing-mode
fr-ctc-billing-mode
| Code | Name |
|---|---|
B1 | Goods - Deposit invoice |
B2 | Goods - Already paid invoice |
B4 | Goods - Final invoice (after down payment) |
B7 | Goods - E-reporting (VAT already collected) |
S1 | Services - Deposit 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 |
M2 | Mixed - Already paid invoice |
M4 | Mixed - Final invoice (after down payment) |
Validation Rules
bill.Invoice
bill.Invoice
| Field | Test | Validation Code / Message |
|---|---|---|
| Invoice |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-01Invoice must be in EUR or provide an exchange rate to EUR |
| Invoice |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-02Invoice code (with series, when set) must be 1-35 characters of alphanumerics plus -+_/ (BR-FR-01/02) |
preceding[*] |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-03Invoice preceding code (with series, when set) must be 1-35 characters of alphanumerics plus -+_/ (BR-FR-01/02) |
preceding |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-04Invoice preceding is required for corrective invoices (BR-FR-CO-04) |
preceding |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-05Invoice preceding must contain exactly one reference for corrective invoices (BR-FR-CO-04) |
preceding |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-06Invoice preceding must contain at least one reference for credit notes (BR-FR-CO-05) |
tax |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-07Invoice tax is required |
tax.ext |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-08Invoice tax ext untdid-document-type must be a valid Flow 2 document type (BR-FR-04) |
tax.ext |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-09Invoice tax ext fr-ctc-billing-mode is required |
tax.ext |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-10Invoice 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-11Invoice supplier inboxes are required for French B2B invoices (BR-FR-13) |
supplier.identities |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-12Invoice supplier identities must include a SIREN identity with iso-scheme-id 0002 and scope legal (BR-FR-10/11) |
supplier |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-13Invoice supplier must have an inbox with scheme 0225 matching the SIREN code (BR-FR-21/22) |
customer.inboxes |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-14Invoice customer inboxes are required for French B2B invoices (BR-FR-13) |
customer.identities |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-15Invoice customer identities must include a SIREN identity with iso-scheme-id 0002 and scope legal (BR-FR-10/11) |
customer |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-16Invoice customer must have an inbox with scheme 0225 matching the SIREN code (BR-FR-21/22) |
ordering.identities |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-17Invoice ordering identities must not contain more than one entry with UNTDID reference ‘AFL’ (BR-FR-30) |
ordering.identities |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-18Invoice ordering identities must not contain more than one entry with UNTDID reference ‘AWW’ (BR-FR-30) |
ordering |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-19Invoice ordering is required when supplier is under STC scheme (BR-FR-CO-15) |
ordering.seller |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-20Invoice ordering seller is required when supplier is under STC scheme (BR-FR-CO-15) |
ordering.seller.tax_id |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-21Invoice ordering seller tax_id is required when supplier is under STC scheme (BR-FR-CO-15) |
ordering.seller.tax_id.code |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-22Invoice ordering seller tax_id code is required when supplier is under STC scheme (BR-FR-CO-15) |
notes |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-23Invoice notes must include an entry with subject TXD and text MEMBRE_ASSUJETTI_UNIQUE when supplier is under STC scheme (BR-FR-CO-14) |
ordering |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-24Invoice ordering is required for consolidated credit notes (BR-FR-CO-03) |
ordering.contracts |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-25Invoice ordering contracts is required for consolidated credit notes (BR-FR-CO-03) |
ordering.contracts |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-26Invoice ordering contracts must contain at least one entry for consolidated credit notes (BR-FR-CO-03) |
delivery |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-27Invoice delivery is required for consolidated credit notes (BR-FR-CO-03) |
delivery.period |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-28Invoice delivery period is required for consolidated credit notes (BR-FR-CO-03) |
| Invoice |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-29Invoice payment terms due_dates must not be before the invoice issue date (BR-FR-CO-07) |
payment |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-30Invoice payment is required for final invoices (BR-FR-CO-09) |
payment.terms |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-31Invoice payment terms is required for final invoices (BR-FR-CO-09) |
payment.terms.due_dates |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-32Invoice payment terms due_dates must contain at least one entry for final invoices (BR-FR-CO-09) |
totalsCalculated |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-34Invoice totals advance must equal total_with_tax for final invoices (BR-FR-CO-09) |
totalsCalculated |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-35Invoice totals payable must be zero for final invoices (BR-FR-CO-09) |
totals.advanceCalculated |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-33Invoice totals advance is required for final invoices (BR-FR-CO-09) |
notes |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-36Invoice notes are required for French CTC invoices (BR-FR-05) |
notes |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-37Invoice notes must include entries with subjects PMT, PMD and AAB (BR-FR-05) |
notes |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-38Invoice notes must not contain duplicate subjects PMT, PMD, AAB or TXD (BR-FR-06/BR-FR-30) |
attachments |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-41Invoice attachments must not contain more than one entry with description ‘LISIBLE’ (BR-FR-18) |
attachments[*].description |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-39Invoice attachment description is required (BR-FR-17) |
attachments[*].description |
| GOBL-FR-CTC-FLOW2-BILL-INVOICE-40Invoice attachment description must be one of the allowed values (BR-FR-17) |
org.Party
org.Party
| Field | Test | Validation Code / Message |
|---|---|---|
identities |
| GOBL-FR-CTC-FLOW2-ORG-PARTY-01SIRET and SIREN must be coherent (BR-FR-09/10) |
identities |
| GOBL-FR-CTC-FLOW2-ORG-PARTY-02Identity scheme format invalid (BR-FR-CO-10) |
inboxes[*] |
| GOBL-FR-CTC-FLOW2-ORG-PARTY-03Inbox code format invalid |
org.Identity
org.Identity
| Field | Test | Validation Code / Message |
|---|---|---|
code |
| GOBL-FR-CTC-FLOW2-ORG-IDENTITY-01Must be no more than 100 characters long |
code |
| GOBL-FR-CTC-FLOW2-ORG-IDENTITY-02Must be in a valid format |
org.Inbox
org.Inbox
| Field | Test | Validation Code / Message |
|---|---|---|
code |
| GOBL-FR-CTC-FLOW2-ORG-INBOX-01The length must be between 0 and 125 |
code |
| GOBL-FR-CTC-FLOW2-ORG-INBOX-02Must be in a valid format |
org.Item
org.Item
| Field | Test | Validation Code / Message |
|---|---|---|
meta |
| GOBL-FR-CTC-FLOW2-ORG-ITEM-01Meta values cannot be blank (BR-FR-28) |