---
title: "France · Every EN 16931 business term (BT)"
description: "The complete EN 16931 semantic model for French e-invoicing: all 30 business groups and 164 business terms (BT-1 to BT-165), each with its UBL 2.1 path, whether the French reform makes it mandatory and under which BR-FR rule, and the POST /v1/documents/send field that carries it."
canonical: "https://docs.get-flowie.com/compliance/fr/business-terms"
source: "https://docs.get-flowie.com/compliance/fr/business-terms.html"
---

# France · Every EN 16931 business term (BT)

Compliance · 🇫🇷 France

# Business terms — the whole EN 16931 model, and what France does with each one

An e-invoice is not a picture of an invoice. It is a list of named values the recipient's software reads, and the European standard **EN 16931** gives every one of those values a number: `BT-1` is the invoice number, `BT-9` the due date, `BT-121` the code that says why a line carries no VAT. Your accountant knows them as the _mentions obligatoires_ ; your customer's system knows them as the fields it pays on; a validator quotes them at you when it rejects a document.

Every other page here names them one at a time — [this cas d'usage turns on BT-25](<use-cases.html>), [this API field is BT-9](<../../reference/index.html#send-document>). **This page is the whole list** : all 30 business groups and all 164 business terms, each with the UBL path it lives at, whether France makes it mandatory and under which rule, and the field of `POST /v1/documents/send` that carries it.

**32** business groups

**164** business terms

**37** mandatory in France

**84** with an API field

## How to read a row

Two columns carry the judgement, and both mean something narrower than they look.

### France — what the reform requires

mandatory
    Required on every French e-invoice.
conditional
    Required when the stated condition holds — the row names it.
restricted
    Allowed, but France narrows the values EN 16931 permits.
optional
    EN 16931 optional, and France adds nothing.

### Flowie — how it reaches the wire

sent
    You state it in the JSON body and it is rendered.
derived
    Computed for you — the totals, the line numbering, the type code.
accepted
    The field exists and is stored, but is not rendered yet.
xml-only
    No JSON field — carry it with `format=ubl-xml`.

**Mandatory does not mean you must type it.** Several terms France requires are ones Flowie completes: the document totals, the line numbering, the VAT breakdown. The _Flowie_ column is what tells you which ones you actually have to state — anything marked sent is yours to say, and anything xml-only is a gap you have to fill yourself today.

The cardinality column is **EN 16931's** , not France's. The two disagree on purpose: the standard leaves the seller's street optional, France makes it a mention obligatoire. Read the cardinality for the shape of the syntax and the France column for the obligation.

## Every business term

Grouped the way the standard groups them — the invoice header first, then each `BG`, then the line. Search matches the id, either name, the UBL path, the French note and the API field, so `autoliquidation`, `TaxSubtotal` and `BT-121` all find the same row.

Mandatory in France Conditional Restricted values Document level Line level Has an API field XML only

Loading the referential…

Term | Name & UBL path | Card. | France | Flowie  
---|---|---|---|---  
  
Nothing matches that filter.

## The four mentions the reform added

France already required 24 _mentions obligatoires_ on a paper invoice, and EN 16931 carries all of them. The reform added four more, and they are the four an ERP built for e-invoicing elsewhere is most likely to be missing:

  1. **The seller's SIREN** — `BT-30`, scheme `0002`. `BR-FR-09` then requires the first nine digits of the SIRET in `BT-29` to equal it.
  2. **The buyer's SIREN** — `BT-47`. `BR-FR-11` wants it present and active in the annuaire.
  3. **The delivery address** when it differs from the billing address — `BG-15`, mandatory on a goods invoice under `BR-FR-14`.
  4. **The nature of the operation** — goods, services or both. This is the _cadre de facturation_ in `BT-23` (`BR-FR-08`): `B1` goods, `S1` services, `M1` mixed, and the numbered variants for deposits, already-paid invoices and subcontracting.



Two more get missed almost as often, and neither is new — only newly enforced. `BR-FR-05` makes **three legal mentions** compulsory on every invoice (the €40 recovery indemnity, the late-payment penalties, and the early-settlement discount or a statement that there is none), carried as `BT-21`/`BT-22` notes. And `BR-FR-20` requires a `BAR` note declaring which regime the document belongs to. See [the three legal mentions](<ubl-generator.html#mentions>) for the exact wording.

## What this list is not

  * **It is the invoice, not the flows around it.** The France column is the obligation on _flux 1_ — the invoice a seller files. E-reporting (_flux 10_) and the [lifecycle statuses 200–213](<lifecycle.html>) carry their own data with their own rules.
  * **The French extensions are not BTs.** AFNOR adds fields beyond EN 16931 — the multi-seller line sub-type `EXT-FR-FE-163` and its family — numbered in their own space. They are named in the [cas d'usage](<use-cases.html>) that need them.
  * **A BT only renders if your template declares a slot for it.** The mapping fills the slots your template has; it does not create new ones. If a value you send is not appearing, ask which `BT-*` fields your template declares.
  * **There is no BT-4.** The published model does not assign it. The list is complete without it — you have not lost a row.



## Use it from the API

The same referential, from the same source, with no API key — it is a catalogue, not your data:
[code] 
    # the whole model
    curl https://api.get-flowie.com/v1/tools/fr/ubl/business-terms
    
    # just what France makes mandatory, at line level
    curl "https://api.get-flowie.com/v1/tools/fr/ubl/business-terms?fr=mandatory&scope=line"
    
    # one term
    curl https://api.get-flowie.com/v1/tools/fr/ubl/business-terms/BT-121
[/code]

Each entry carries `id`, `name`, `nameFr`, `group`, `scope`, `cardinality`, `ubl`, `fr` \+ `frNote`, and `api` \+ `apiState`. Filters: `group`, `scope`, `fr`, `mapped`, `q`.

The table above reads the same list as a static asset — [`assets/fr-business-terms.json`](<../../assets/fr-business-terms.json>) — which is the one to fetch if you want the referential without calling anything.

## References

  * **EN 16931-1:2017/A1:2019** — the semantic data model these ids come from.
  * **FNFE schematrons v1.3.0 (XP Z12-012)** — the `BR-FR-*` rules the France column names. The [UBL generator](<ubl-generator.html>) validates every sample against them.
  * **AFNOR XP Z12-014 v1.4** — the 45 [cas d'usage](<use-cases.html>), which decide _which_ of these terms a given invoice needs.
  * **[POST /v1/documents/send](<../../reference/index.html#send-document>)** — the field-by-field mapping, in the other direction.
