Skip to main content
Key: fr-ctc-flow2-v1 Support for the French CTC (Continuous Transaction Controls) Flow 2 B2B e-invoicing mandate from the French electronic invoicing reform. This addon extends the EN 16931 European standard with French-specific rules for regulated B2B invoices, that is, invoices exchanged between two parties registered for VAT in France. It should not be used for invoices that are subject only to e-reporting (for example, B2C or cross-border transactions).

Billing Mode

Every invoice must carry a billing mode extension (fr-ctc-billing-mode) that describes the nature of the supply and the payment context. See the extension definition for the full list of accepted values.

Identities

A SIREN identity (9 digits) must be present on both the supplier and the customer for B2B invoices. The SIRET (14 digits) is optional; if provided without a SIREN, the addon will automatically derive the SIREN from the first nine digits of the SIRET. Note that the SIREN is not currently derived from the party’s VAT number; it must be supplied explicitly as a separate identity. This may be added in a future release. The SIREN is automatically assigned the legal scope when no other identity on the party already carries that scope. Private identifiers can be included using the private-id key; the addon will assign ISO scheme ID 0224 to these automatically.

Electronic Addresses (Inboxes)

Both the supplier and customer must have an electronic address for B2B invoices. Addresses using SIREN scheme 0225 must contain only alphanumeric characters and the symbols +, -, _, /. If the party has a SIREN identity and no inbox carries a peppol key, the addon will assign the peppol key to the SIREN inbox automatically.

Required Notes

Every invoice must include at least three notes (BG-1) with the following UNTDID text-subject codes (BT-21). For the full mapping of GOBL note keys to UNTDID 4451 codes, see the EN 16931 addon (eu-en16931-v2017) documentation.
  • PMT: A mandatory mention of the 40 EUR flat-fee penalty for recovery costs that applies to late payments (BT-22).
  • PMD: The late-payment penalty conditions that apply to each individual company’s payment terms (BT-22).
  • AAB: A mention of any early-payment discount offered, or an explicit statement that no discount applies (BT-22).
An optional BAR note can be used to indicate the routing treatment of the invoice. Its text must be one of: B2B, B2BINT, B2C, OUTOFSCOPE, or ARCHIVEONLY.

Invoice Code

The invoice series and code must each be at most 35 characters and may only contain alphanumeric characters and the symbols -, +, _, /.

Currency Conversion

When the invoice is issued in a currency other than EUR, the gobl.ubl conversion library will automatically add EUR equivalents for the tax totals, satisfying the BR-FR-CO-12 requirement without any extra input from the user.

Sources

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)
The numeric suffix indicates the payment type (1=deposit, 2=already paid, 4=final after down payment, 5=subcontractor, 6=co-contractor, 7=e-reporting). The value is currently trusted as provided and is not normalized from other invoice fields. Automatic inference from document type and payment context may be added in a future release.
CodeName
B1Goods - Deposit invoice
B2Goods - Already paid invoice
B4Goods - Final invoice (after down payment)
B7Goods - E-reporting (VAT already collected)
S1Services - Deposit invoice
S2Services - Already paid invoice
S4Services - Final invoice (after down payment)
S5Services - Subcontractor invoice
S6Services - Co-contractor invoice
S7Services - E-reporting (VAT already collected)
M1Mixed - Deposit invoice
M2Mixed - Already paid invoice
M4Mixed - Final invoice (after down payment)