Supported Use Cases
The RFE use cases (XP Z12-014) and their support status in B2Brouter.
The French e-invoicing reform defines a set of specific business use cases that Accredited Platforms (Plateformes Agréées) may be required — or may choose — to support. These cases cover a wide range of invoicing scenarios: invoices with additional data, invoices involving third parties, and invoices with specific lifecycle requirements.
According to the XP Z12-014 standard, the use cases described in Chapter 3 are subject to each platform’s commercial policy — platforms are under no obligation to support all of them. Only the nominal invoice exchange case and lifecycle management via Credit Notes and Corrected Invoices are mandatory for all Accredited Platforms.
Legend
Section titled “Legend”| Status | Description |
|---|---|
Covered | This use case is fully supported. |
Covered * | Supported by B2Brouter, but not yet fully activated by the receiving institution (DGFiP or Peppol). |
Partially covered | Part of the use case is supported today; the rest is still in progress. |
In Progress | In the roadmap and available in the next API version. |
Evaluation | Not yet in the roadmap. We are assessing whether we will support it. |
On Demand | Not currently planned. Contact us if you need it and we will evaluate it. |
Use Cases
Section titled “Use Cases”This table reflects the current status of use case coverage and will be updated as development progresses.
Last updated: 13.10.2026
| Case | Category | Description | Status |
|---|---|---|---|
| 1 | Multi-order/Multi-delivery | Multi-order (per line, via cac:OrderLineReference / cac:DocumentReference) — Multi-commande (par ligne) · Multi-delivery (header-level, multiple delivery notes) — Multi-livraison (en-tête) | Partially covered |
| 2 | Invoice already paid by a third party or the buyer | Invoice already paid by the buyer or a third party — Facture déjà payée par l’acheteur ou un tiers payeur | Covered * |
| 3 | Invoice to be paid by a third party | Invoice to be paid by a third party designated at invoicing — Facture à régler par un tiers payeur connu à la facturation | Covered * |
| 4 | Invoice to be paid by a third party | Invoice to be paid by the buyer and partially covered by a known third party (subsidy, insurance…) — Facture partiellement couverte par un tiers connu (subvention, assurance…) | Evaluation |
| 5 | Expenses paid by third parties with invoice | Employee expense invoices in the company’s name (e-invoicing) — Frais payés par des salariés avec facture au nom de l’entreprise | Covered * |
| 6 | Expenses paid by third parties without invoice | Employee expenses without an invoice (e-reporting of off-invoice transaction data) — Frais payés par des salariés sans facture adressée à l’entreprise | Covered |
| 7 | Invoice paid by a third party | Invoice following a purchase paid with a corporate card — Facture suite à un achat payé par carte d’achat | Covered * |
| 8 | Invoice payable to a third party | Invoices payable to a third party determined at the time of invoicing (factoring, cash pooling) — Factures payables à un tiers connu à la facturation (affacturage, cash pooling) | Covered * |
| 9 | Invoice payable to a third party | Invoice payable to a known third party who also manages ordering/receipt or invoicing (Distributor/Depositary) — Facture payable à un tiers gérant aussi la commande/réception ou la facturation | Covered * |
| 10 | Invoice payable to a third party | Invoice payable to a factor unknown when the invoice is created (subrogation) — Facture cédée à un factor inconnu à l’émission (cas de subrogation) | Covered * |
| 11 | Invoice with “addressed to” different from the buyer | Invoice with “Invoicee” other than buyer — Facture avec destinataire différent de l’acheteur | In Progress |
| 12 | Transparent intermediary | Transparent intermediary as invoice manager for the buyer principal — Intermédiaire transparent gérant les factures pour le compte de l’acheteur | In Progress |
| 13 | Subcontracting invoice for direct payment | Invoice to be paid by a third party: subcontracting with direct payment or payment delegation — Facture payable par un tiers : sous-traitance avec paiement direct ou délégation | Evaluation |
| 14 | Co-contracting invoice | Invoice to be paid by a third party: co-contracting — Facture payable par un tiers : co-traitance | Evaluation |
| 15 | Invoice following an order/payment by a third party on behalf of the buyer | Sales invoice following an order (and possible payment) by a third party on behalf of the buyer — Facture de vente suite à une commande (et paiement) d’un tiers pour le compte de l’acheteur | In Progress |
| 16 | Invoice following an order/payment by a third party on behalf of the buyer | Disbursement invoice for reimbursement of the sales invoice paid by the third party — Facture de débours pour remboursement de la facture de vente payée par le tiers | Covered |
| 17a | Invoice issued by a third party, payment intermediary | Invoice payable to a third party, payment intermediary (e.g. Marketplace) — Facture payable à un tiers intermédiaire de paiement (ex. Marketplace) | Covered * |
| 17b | Invoice issued by a third party, payment intermediary and invoicing mandate | Invoice payable to a third party, payment intermediary with billing mandate — Facture payable à un tiers intermédiaire de paiement et mandat de facturation | In Progress |
| 18 | Debit notes | Debit note management — Gestion des notes de débit | Covered |
| 19a | Invoices issued under third-party mandate | Invoice issued under billing mandate — Facture émise sous mandat de facturation | Evaluation |
| 19b | Self-billing | Self-billing — Autofacturation | Covered * |
| 20 | Pre-payment invoice | Prepayment invoice and final invoice after prepayment (advance already paid) — Facture d’acompte et facture finale après acompte déjà payé | In Progress |
| 21 | Pre-payment invoice | Prepayment invoice and final invoice after prepayment (advance to pay) — Facture d’acompte et facture finale après acompte à payer | In Progress |
| 22a | Invoice with allowance | Invoice paid with early payment discount — services with TVA due on receipt of payment — Facture payée avec escompte — services avec TVA sur encaissement | Covered |
| 22b | Invoice with allowance | Invoice paid with early payment discount — deliveries of goods (or services with TVA on debits) — Facture payée avec escompte — livraisons de biens (ou services avec TVA sur débits) | Covered |
| 23 | Self-billing between an individual and a professional | Self-billing between a private individual and a professional — Autofacturation entre un particulier et un professionnel | On Demand |
| 24 | Deposit (“Arrhes”) | Management of deposits (Arrhes) — Gestion des arrhes | Covered |
| 25 | Gift vouchers and cards | Management of gift vouchers and gift cards — Gestion des bons d’achat et cartes cadeaux | Covered |
| 26 | Invoices with contractual reservation clauses | Invoices with contractual reserve clause — Factures avec clause de réserve contractuelle | Covered |
| 27 | Toll tickets | Management of toll receipts — Gestion des tickets de péage | Covered |
| 28 | Restaurant receipts | Management of restaurant bills — Gestion des notes de restaurant | Partially covered |
| 29 | Single Taxable Entity and members of the Single Taxable Entity | Single taxable entity (Article 256 C CGI) — Assujetti unique au sens de l’article 256 C du CGI | Evaluation |
| 30 | E-reporting transaction subject to an invoice or “TVA already collected” | TVA already collected — transactions initially processed under B2C e-reporting, subject to subsequent invoicing — TVA déjà collectée — transactions initialement traitées en e-reporting B2C, soumises à facturation ultérieure | Covered |
| 31 | Mixed invoices | ”Mixed” invoices with a main transaction and an ancillary transaction — Factures “mixtes” mentionnant une transaction principale et une transaction accessoire | Covered |
| 32 | Management of monthly payments | Monthly payments — Paiements mensualisés | Partially covered |
| 33 | TVA regime on the margin | Transactions subject to the TVA margin scheme — Transactions soumises au régime de la marge | Partially covered |
| 34 | Partial payment receipt and cancellation of payment receipt | Partial receipt of payment and cancellation of receipt of payment — Encaissement partiel et annulation d’encaissement | Partially covered |
| 35 | Author’s notes | Author’s notes — Notes d’auteur | On Demand |
| 36 | Professional secrecy | Transactions subject to professional secrecy and exchange of sensitive data — Transactions soumises au secret professionnel et échanges de données sensibles | Covered |
| 37 | Joint ventures | SEP (Sociétés en Participation / Joint Ventures) — SEP (Sociétés en Participation) | Evaluation |
| 38 | Invoice sub-lines | Invoices with sub-lines and line groupings — Factures avec sous-lignes et regroupements de lignes | Evaluation |
| 39 | Multi-Vendors | Transparent intermediary consolidating sales from multiple sellers — Multi-Vendor Invoice — Intermédiaire transparent regroupant les ventes de plusieurs vendeurs — Facture multi-vendeurs | Evaluation |
| 40 | Offsetting between cross-flows | Grouped payments, netting, or compensation in the event of cross-purchases/sales — Paiements groupés, compensation en cas d’achats/ventes croisés | On Demand |
| 41 | Barter practices | Barter companies (inter-company bartering) — Sociétés de troc (troc inter-entreprises) | On Demand |
| 42 | Tax exemption | Tax exemption management — Gestion de la détaxe | Covered |
| 43 | International B2B operations | E-reporting for international B2B — E-reporting pour le B2B international | Partially covered |
| 43a | International B2B operations | Triangular transactions — Transactions triangulaires | In Progress |
| 43b | International B2B operations | Stock transfers treated as intra-Community supply — Transferts de stocks traités comme des livraisons intracommunautaires | In Progress |
| 44 | Operations with French DROM / COM / TAAF | Transactions with entities established in the DROMs/COMs/TAAFs — Transactions avec des entités établies dans les DROM/COM/TAAF. The counterparty of the transaction, not the issuing account | Covered |
Implementation Examples
Section titled “Implementation Examples”Introduction
Section titled “Introduction”In each use case you will find a JSON example with the fields you need to fill in. If you haven’t done so yet, we recommend reading the DGFiP guide first. The examples don’t send the legal payment mentions (PMD, PMT, AAB) unless the case needs its own text, so the invoice carries the default texts. See Legal payment mentions.
Covered
Section titled “Covered”Case 1
Section titled “Case 1”Multi-order / Multi-delivery — Multi-commande / Multi-livraison
Section titled “Multi-order / Multi-delivery — Multi-commande / Multi-livraison”Covered today: multi-order at line level. Each line references its own purchase order via invoice_lines_attributes[].ponumber + [].sequence_number, emitted as cac:OrderLineReference/cbc:LineID + cac:DocumentReference/cbc:ID per line.
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "380", "number": "FAC-2026-000901", "date": "2026-06-15", "due_date": "2026-07-15", "currency": "EUR", "type_operation": "goods", "payment_method": 30, "remittance_information": "FAC-2026-000901", "payment_method_text": "Virement bancaire", "payment_terms": "30 jours net", "extra_info": "Facture consolidant plusieurs commandes", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 2, "price": 150.0, "description": "Article commande A", "ponumber": "PO-2026-1001", "sequence_number": 1, "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] }, { "quantity": 1, "price": 400.0, "description": "Article commande B", "ponumber": "PO-2026-1002", "sequence_number": 2, "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Not yet (In Progress): multi-delivery at header level (several delivery notes / DespatchAdvice references for a single invoice). BT-15 and BT-16 are header-only business terms in EN16931, and invoice.delivery_note_number today only accepts a single reference. Treat it as a current limitation, not an error.
Case 6
Section titled “Case 6”Employee expenses without an invoice (e-reporting of off-invoice transaction data) — Frais payés par des salariés sans facture adressée à l’entreprise
Section titled “Employee expenses without an invoice (e-reporting of off-invoice transaction data) — Frais payés par des salariés sans facture adressée à l’entreprise”The sale takes place between the vendor and the employee as a private individual, so it is not subject to the e-invoicing obligation but to the vendor’s B2C e-reporting. The employee may subsequently request a B2B invoice to recover TVA, which corresponds to use case 30.
{ "send_after_import": true, "invoice": { "type": "IssuedSimplifiedInvoice", "type_code": "380", "number": "TPV-2026-000341", "date": "2026-06-15", "due_date": "2026-06-15", "currency": "EUR", "payment_method": 48, "payment_method_text": "Carte bancaire", "payment_terms": "Comptant", "invoice_lines_attributes": [ { "quantity": 1, "price": 100.0, "description": "Fournitures de bureau", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Case 16
Section titled “Case 16”Disbursement invoice for reimbursement of the sales invoice paid by the third party — Facture de débours pour remboursement de la facture de vente payée par le tiers
Section titled “Disbursement invoice for reimbursement of the sales invoice paid by the third party — Facture de débours pour remboursement de la facture de vente payée par le tiers”Débours invoices fall outside the scope of the reform, but if lines outside the scope of TVA (category: "O") are combined with TVA-liable lines (category: "S"), the mixed invoice falls within the scope of e-invoicing and must be transmitted.
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "380", "date": "2026-06-15", "due_date": "2026-07-15", "currency": "EUR", "type_operation": "services", "payment_method": 30, "remittance_information": "FAC-2026-000516", "payment_method_text": "Virement bancaire", "payment_terms": "30 jours net", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 1, "price": 800.0, "description": "Remboursement facture de vente reglee pour le compte du client (debours)", "taxes_attributes": [{ "name": "TVA", "category": "O", "percent": 0, "comment": "Debours — hors champ TVA art. 267 II CGI" }] }, { "quantity": 1, "price": 50.0, "description": "Commission de gestion du tiers", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Case 18
Section titled “Case 18”Debit note management — Gestion des notes de débit
Section titled “Debit note management — Gestion des notes de débit”Debit notes do not constitute an invoice and fall outside the scope of e-invoicing. In practice, if the buyer issues one under a billing mandate, it is transmitted as a self-billed credit note (type_code: "261") referencing the original invoice. The amount is positive; the credit note nature is already expressed by the type_code and the reference.
{ "send_after_import": true, "invoice": { "type": "IssuedSelfInvoice", "type_code": "261", "number": "ND-2026-000077", "date": "2026-06-15", "due_date": "2026-06-15", "currency": "EUR", "type_operation": "services", "payment_method": 97, "remittance_information": "Compensation ND-2026-000077", "payment_method_text": "Compensation entre parties", "extra_info": "Avoir auto-facture (261), mandat de facturation requis", "contact_id": "<contact_id>", "invoice_references": [ { "reference_type": "amend", "number": "FAC-2026-000201", "series_code": "FAC", "date": "2026-05-20", "correction_method": "02" } ], "invoice_lines_attributes": [ { "quantity": 1, "price": 150.0, "description": "Regularisation en faveur de l'ACHETEUR", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Case 22
Section titled “Case 22”Invoice paid with early payment discount (escompte) — Facture payée avec escompte
Section titled “Invoice paid with early payment discount (escompte) — Facture payée avec escompte”A conditional early-payment discount is not applied to the invoice: at issue time the discount may never be taken, so the invoice carries full totals and the escompte only in the payment terms (payment_terms, BT-20) and in the AAB legal mention, which you send with coded_notes (from API version 2026-06-26; in earlier versions, as an #AAB# tag in extra_info). Without it, the invoice carries the default AAB text, which states that there is no discount. Do not encode the escompte as an exempt (E) allowance with VATEX-FR-CNWVAT on the invoice: DGFiP rule G6.21 reserves that code to credit notes (types 261, 381, 396) and B2Brouter rejects it with a 422 on invoices.
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "380", "number": "FAC-2026-000305", "type_operation": "services", "payment_method": 30, "remittance_information": "FAC-2026-000305", "payment_method_text": "Virement bancaire", "payment_terms": "Paiement à 30 jours. Escompte de 20,00 EUR pour paiement sous 10 jours.", "coded_notes": [{ "subject_code": "AAB", "text": "Escompte de 20,00 EUR pour paiement sous 10 jours, net de taxe (renonciation à la récupération de la TVA)." }], "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 1, "price": 1000.0, "description": "Prestation de conseil", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}If the customer pays within the discount period, issue a credit note for the discount amount referencing the original invoice. For 22b (goods, or services with TVA on debits) the mention “net de taxe” means the TVA is not adjusted: the credit note carries category E with VATEX-FR-CNWVAT — the only document type where that code is legal. For 22a (services with TVA due on receipt of payment) issue a regular credit note with TVA (category S, percent 20) instead.
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "381", "number": "AV-2026-000305", "date": "2026-06-25", "due_date": "2026-06-25", "type_operation": "services", "payment_method": 30, "remittance_information": "AV-2026-000305", "payment_method_text": "Virement bancaire", "extra_info": "Escompte net de taxe", "contact_id": "<contact_id>", "invoice_references": [ { "reference_type": "amend", "number": "FAC-2026-000305", "date": "2026-06-01", "correction_method": "02" } ], "invoice_lines_attributes": [ { "quantity": 1, "price": 20.0, "description": "Escompte pour paiement anticipé, net de taxe", "taxes_attributes": [{ "name": "Escompte", "category": "E", "percent": 0, "comment": "VATEX-FR-CNWVAT" }] } ] }}Case 24
Section titled “Case 24”Management of deposits (Arrhes) — Gestion des arrhes
Section titled “Management of deposits (Arrhes) — Gestion des arrhes”Deposits (arrhes) are an indemnity with no consideration, outside the scope of TVA and not transmitted via e-invoicing or e-reporting. In commercial practice, a price advance (subject to TVA, type_code: "386") is more common; the example illustrates that case.
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "386", "number": "ACOMPTE-2026-0009", "type_operation": "goods", "payment_method": 30, "remittance_information": "ACOMPTE-2026-0009", "payment_method_text": "Virement bancaire", "payment_terms": "Comptant", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 1, "price": 300.0, "description": "Acompte sur commande", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Case 25
Section titled “Case 25”Management of gift vouchers and gift cards — Gestion des bons d’achat et cartes cadeaux
Section titled “Management of gift vouchers and gift cards — Gestion des bons d’achat et cartes cadeaux”Gift vouchers and cards may be single-purpose (place of taxation and TVA rate known at issuance) or multi-purpose (place and TVA undetermined). The sale of the voucher is invoiced separately; this case covers only the management fee, which is a standard B2B service. (This case is pending regulatory definition and may change in future versions.)
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "380", "number": "COM-2026-000128", "type_operation": "services", "payment_method": 30, "remittance_information": "COM-2026-000128", "payment_method_text": "Virement bancaire", "payment_terms": "30 jours net", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 1, "price": 50.0, "description": "Commission / frais de gestion sur bons cadeaux", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Case 26
Section titled “Case 26”Invoices with contractual reserve clause — Factures avec clause de réserve contractuelle
Section titled “Invoices with contractual reserve clause — Factures avec clause de réserve contractuelle”The invoice is issued for the full amount, as a standard B2B invoice. The retained part is handled through payments, without any specific field:
- When you receive the first part (for example, 95%), record it as a partial payment (see Partial payments). B2Brouter sends the Encaissée status (CDV
212) with the amount received. - If the reserve is lifted and the balance is paid, record a second payment for the balance. Once the recorded payments cover the total, the invoice moves to
paid. - If the retention becomes final, issue a credit note for the retained amount. You don’t need to report any further payment for the balance or for the credit note.
First payment for an invoice of 12,000.00 EUR incl. TVA with a 5% reserve (POST /accounts/{ACCOUNT_ID}/payments):
{ "payment": { "invoice_id": "<invoice_id>", "amount": 11400.0 }}Case 27
Section titled “Case 27”Management of toll receipts — Gestion des tickets de péage
Section titled “Management of toll receipts — Gestion des tickets de péage”Toll tickets are treated as B2C transactions and reported via e-reporting, as the vendor does not identify the customer. If the toll is managed via a subscription or card that identifies the buyer, the transaction falls within the scope of e-invoicing and must be invoiced as F1.
{ "send_after_import": true, "invoice": { "type": "IssuedSimplifiedInvoice", "number": "PEAGE-2026-00874", "date": "2026-06-15", "due_date": "2026-06-15", "currency": "EUR", "payment_method": 48, "payment_method_text": "Carte bancaire", "payment_terms": "Comptant", "extra_info": "Ticket de peage : client non identifie (e-reporting B2C)", "invoice_lines_attributes": [ { "quantity": 1, "price": 10.0, "description": "Passage peage autoroute", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Case 28
Section titled “Case 28”Management of restaurant bills — Gestion des notes de restaurant
Section titled “Management of restaurant bills — Gestion des notes de restaurant”Covered today: B2C e-reporting of restaurant bills. Bills under €150 excl. TVA for which the customer doesn’t ask for an invoice are issued as B2C sales ("type": "IssuedSimplifiedInvoice"). B2Brouter reports them automatically in Flux 10 daily sales totals (10.3). Since restaurant bills are services, B2Brouter also reports the payment (10.4) once you mark the ticket as paid. If the customer asks for an invoice at the time of the sale and you exclude the sale from your B2C sales, issue a standard B2B invoice.
{ "send_after_import": true, "invoice": { "type": "IssuedSimplifiedInvoice", "number": "REST-2026-001204", "date": "2026-06-15", "due_date": "2026-06-15", "currency": "EUR", "type_operation": "services", "payment_method": 48, "payment_method_text": "Carte bancaire", "payment_terms": "Comptant", "invoice_lines_attributes": [ { "quantity": 2, "price": 32.0, "description": "Menu du jour", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 10 }] } ] }}Invoice with cadre S7/B7 (TVA already collected). If the sale has already been e-reported as B2C and the customer then asks for an invoice as a business, the B2B invoice must carry BT-23 = S7 (services) or B7 (goods). Set it with transaction_type_code (see case 30).
Case 30
Section titled “Case 30”TVA already collected — TVA déjà collectée
Section titled “TVA already collected — TVA déjà collectée”The B2B invoice issued after the sale was e-reported as B2C must carry BT-23 = S7 (services) or B7 (goods), so that the TVA is not counted twice. The same applies if the TVA on the sale is already included in the TVA return. The B2C e-reporting of the original sale works as in case 28.
From the JSON API, set "transaction_type_code": "S7" (or "B7") on the invoice (API version 2025-10-13 or later):
{ "invoice": { "type": "IssuedInvoice", "number": "F-100", "date": "2026-10-20", "due_date": "2026-11-19", "currency": "EUR", "contact_id": 123, "type_operation": "services", "transaction_type_code": "S7", "extra_info": "Remplace les tickets T-001, T-002", "invoice_lines_attributes": [ { "quantity": 1, "price": 100.0, "description": "Vol PAR-BCN", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] }, { "quantity": 1, "price": 30.0, "description": "Bagage cabine", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}- Only for issuing companies that are French or hold a SIREN/SIRET, and never on received invoices. Otherwise the API returns a 422 error.
- The code must match
type_operation:S7withservices(ormixed),B7withgoods. Iftype_operationis empty, B2Brouter fills it from the code. A mixed invoice goes out withS7, since there is noM7. - The
S7/B7invoice needs no reference to the original tickets. If you want the buyer to see which tickets it covers, list them inextra_info(it goes out as a note, BT-22). - Don’t cite the ticket with
invoice_referencesand"reference_type": "amend": the invoice would go out as a credit note (type 381) and subtract the amount. Aticket_settlementreference returns a 422 error.
From XML import, if you import the invoice as UBL or CII XML with S7 or B7 in BT-23, B2Brouter keeps it in the Flux 1.
Where BT-23 goes in each syntax:
<!-- UBL: BT-23 --><cbc:ProfileID>S7</cbc:ProfileID>
<!-- CII: BT-23 --><rsm:ExchangedDocumentContext> <ram:BusinessProcessSpecifiedDocumentContextParameter> <ram:ID>S7</ram:ID> </ram:BusinessProcessSpecifiedDocumentContextParameter></rsm:ExchangedDocumentContext>Case 31
Section titled “Case 31””Mixed” invoices with a main transaction and an ancillary transaction — Factures « mixtes »
Section titled “”Mixed” invoices with a main transaction and an ancillary transaction — Factures « mixtes »”The category of the main transaction applies to the whole invoice. Set type_operation to the category of the main transaction: in this example, an alteration sold together with a suit is ancillary to the sale of goods, so the invoice is goods. If the alteration were the main transaction, use services. B2Brouter has no “M” cadre in Flux 1: mixed resolves to services (see Process codes).
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "380", "number": "FAC-2026-000731", "date": "2026-06-15", "due_date": "2026-07-15", "currency": "EUR", "type_operation": "goods", "payment_method": 30, "remittance_information": "FAC-2026-000731", "payment_method_text": "Virement bancaire", "payment_terms": "30 jours net", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 1, "price": 450.0, "description": "Costume sur mesure", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] }, { "quantity": 1, "price": 40.0, "description": "Retouche (accessoire à la vente du costume)", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Case 32
Section titled “Case 32”Monthly payments — Paiements mensualisés
Section titled “Monthly payments — Paiements mensualisés”Covered today: B2C monthly payments. Report each monthly payment as a B2C sale ("type": "IssuedSimplifiedInvoice"): B2Brouter includes it in the Flux 10 daily totals (10.3) and, for services, reports the payment (10.4) once you mark the ticket as paid. When you issue the adjustment invoice, report only the balance; B2Brouter doesn’t calculate it for you. If the balance is negative, issue a credit note: B2Brouter deducts it from that day’s total.
{ "send_after_import": true, "invoice": { "type": "IssuedSimplifiedInvoice", "number": "MENS-2026-000412", "date": "2026-06-05", "due_date": "2026-06-05", "currency": "EUR", "type_operation": "services", "payment_method": 49, "payment_method_text": "Prélèvement", "payment_terms": "Mensualité 6/12", "invoice_lines_attributes": [ { "quantity": 1, "price": 85.0, "description": "Mensualité juin 2026 (estimation de consommation)", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Not yet:
- Cancelling monthly payments already reported in Flux 10.4 (negative payment e-reporting). See case 34.
- The TVA on debits option: in that case no payment e-reporting is due, but B2Brouter doesn’t model this option yet and reports the payments for services anyway.
- The B2B side: monthly payments invoiced as advance payments depend on cases 20 and 21 (
In Progress).
Case 33
Section titled “Case 33”Transactions subject to the TVA margin scheme — Transactions soumises au régime de la marge
Section titled “Transactions subject to the TVA margin scheme — Transactions soumises au régime de la marge”Covered today: B2B invoices under the margin scheme. The TVA on the margin doesn’t appear on the invoice. On each line under the scheme, the price includes TVA and the tax has category E, rate 0 and the exemption reason code in comment:
| Code | Use |
|---|---|
VATEX-EU-F | Second-hand goods |
VATEX-EU-I | Works of art |
VATEX-EU-J | Collectors’ items and antiques |
VATEX-EU-D | Travel agencies |
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "380", "number": "FAC-2026-000918", "date": "2026-06-15", "due_date": "2026-07-15", "currency": "EUR", "type_operation": "goods", "payment_method": 30, "remittance_information": "FAC-2026-000918", "payment_method_text": "Virement bancaire", "payment_terms": "30 jours net", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 1, "price": 1200.0, "description": "Montre d'occasion (régime de la marge, art. 297 A CGI)", "taxes_attributes": [{ "name": "TVA", "category": "E", "percent": 0, "comment": "VATEX-EU-F" }] } ] }}Not yet: B2C e-reporting under the margin scheme. B2C sales under the scheme must be e-reported in the margin category (TMA1), with the margin as base. The API has no field for the purchase price, so B2Brouter can’t calculate the margin: it reports these sales without the TMA1 category and with the full sale amount as base.
Case 34
Section titled “Case 34”Partial receipt of payment and cancellation of receipt of payment — Encaissement partiel et annulation d’encaissement
Section titled “Partial receipt of payment and cancellation of receipt of payment — Encaissement partiel et annulation d’encaissement”Covered today: partial receipts. Record each partial payment with POST /accounts/{ACCOUNT_ID}/payments (see Partial payments). B2Brouter reports the amount received: Encaissée status (CDV 212) for domestic invoices, and Flux 10 payments for B2C and cross-border invoices.
{ "payment": { "invoice_id": "<invoice_id>", "amount": 500.0 }}Not yet: cancelling a receipt. The standard allows cancelling a receipt (reconciliation error, fraudulent payment) with a negative amount, in the Encaissée status or in the B2C payment e-reporting. You can’t do this from the API or the web app yet. Payments that already generated a Flux 10 tax report can’t be edited or deleted (HTTP 422).
Case 36
Section titled “Case 36”Transactions subject to professional secrecy — Transactions soumises au secret professionnel
Section titled “Transactions subject to professional secrecy — Transactions soumises au secret professionnel”Use a generic wording in the line description (BT-153, item name) and put the precise detail in notes (BT-154, item description). BT-154 only travels in the invoice exchanged between the parties and is never sent to the tax authority.
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "380", "number": "FAC-2026-000622", "date": "2026-06-15", "due_date": "2026-07-15", "currency": "EUR", "type_operation": "services", "payment_method": 30, "remittance_information": "FAC-2026-000622", "payment_method_text": "Virement bancaire", "payment_terms": "30 jours net", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 1, "price": 2500.0, "description": "Prestation de conseil", "notes": "Assistance juridique, dossier 2026-118 (détail confidentiel réservé aux parties)", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Case 42
Section titled “Case 42”Tax exemption management (détaxe) — Gestion de la détaxe
Section titled “Tax exemption management (détaxe) — Gestion de la détaxe”For a B2C sale to a traveller established outside the EU who gets a BVE (export sales slip), issue the ticket without TVA: category G, rate 0 and VATEX-EU-G. B2Brouter reports it in Flux 10 as a sale not subject to TVA (TNT1).
{ "send_after_import": true, "invoice": { "type": "IssuedSimplifiedInvoice", "number": "TPV-2026-000977", "date": "2026-06-15", "due_date": "2026-06-15", "currency": "EUR", "type_operation": "goods", "payment_method": 48, "payment_method_text": "Carte bancaire", "payment_terms": "Comptant", "extra_info": "Vente en détaxe (BVE)", "invoice_lines_attributes": [ { "quantity": 1, "price": 900.0, "description": "Sac en cuir", "taxes_attributes": [{ "name": "TVA", "category": "G", "percent": 0, "comment": "VATEX-EU-G" }] } ] }}If you first declared the sale with TVA and the BVE is validated later, issue a credit note for the original ticket and a new ticket without TVA, both on the same day: B2Brouter deducts the first one from the goods total (TLB1) and reports the new one as TNT1. B2Brouter doesn’t receive the BVE validation, so you have to issue these two documents yourself.
Case 43
Section titled “Case 43”E-reporting for international B2B — E-reporting pour le B2B international
Section titled “E-reporting for international B2B — E-reporting pour le B2B international”Covered today: international B2B sales. Issue a standard IssuedInvoice to a contact established outside France and B2Brouter reports it in Flux 10.1 (see Cross-border transactions). Intra-EU supplies (category K) and reverse-charge sales (category AE, with VATEX-EU-AE) are supported, with their exemption reason. When the TVA is due by the buyer, B2Brouter doesn’t generate a payment e-reporting (10.2). Category K also requires the delivery date and country (delivery_date and delivery_country, rules BR-IC-11 and BR-IC-12). Intra-EU supply to a contact in another EU country:
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "380", "number": "FAC-2026-000845", "date": "2026-06-15", "due_date": "2026-07-15", "delivery_date": "2026-06-12", "delivery_country": "de", "currency": "EUR", "type_operation": "goods", "payment_method": 30, "remittance_information": "FAC-2026-000845", "payment_method_text": "Virement bancaire", "payment_terms": "30 jours net", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 10, "price": 120.0, "description": "Pièces détachées", "taxes_attributes": [{ "name": "TVA", "category": "K", "percent": 0, "comment": "VATEX-EU-IC" }] } ] }}Not yet: international B2B acquisitions with self-assessed TVA. Purchases from suppliers outside France (ReceivedInvoice) are reported with the TVA breakdown of the received invoice as is (category K or AE, 0% rate). The standard asks for the buyer’s view: category AE, the applicable French rate and the self-assessed TVA amount. Triangular transactions (case 43a) and stock transfers (case 43b) are still In Progress.
Case 44
Section titled “Case 44”Transactions with entities established in the DROMs/COMs/TAAFs — Transactions avec des entités établies dans les DROM/COM/TAAF
Section titled “Transactions with entities established in the DROMs/COMs/TAAFs — Transactions avec des entités établies dans les DROM/COM/TAAF”B2Brouter decides the flow from the country of the contact on the invoice:
- Guadeloupe (
gp), Martinique (mq) and La Réunion (re) belong to the French TVA territory: the invoice follows e-invoicing (Flux 1), like mainland France. Create the contact with the same French identifiers as a mainland contact (see Create a contact). - Guyane (
gf), Mayotte (yt), the COMs and the TAAF are export territories: the invoice is reported in Flux 10, like any cross-border transaction.
Invoice to a contact in Martinique ("country": "mq"), with the 8.5% rate that applies in the DROMs:
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "380", "number": "FAC-2026-000953", "date": "2026-06-15", "due_date": "2026-07-15", "currency": "EUR", "type_operation": "goods", "payment_method": 30, "remittance_information": "FAC-2026-000953", "payment_method_text": "Virement bancaire", "payment_terms": "30 jours net", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 4, "price": 250.0, "description": "Matériel informatique", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 8.5 }] } ] }}Covered *
Section titled “Covered *”Case 2
Section titled “Case 2”Invoice already paid by the buyer or a third party — Facture déjà payée par l’acheteur ou un tiers payeur
Section titled “Invoice already paid by the buyer or a third party — Facture déjà payée par l’acheteur ou un tiers payeur”Invoice already paid (e.g. an order paid in advance): the amount paid is reported in payments_on_account, which matches the TVA-inclusive total and brings the outstanding amount to 0. The payment method is whichever was used (the example shows a bank transfer); only if it is a transfer (payment_method: 4) must you provide bank_account_id .
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "380", "number": "FAC-2026-000777", "date": "2026-06-15", "due_date": "2026-06-15", "currency": "EUR", "type_operation": "goods", "payment_method": 4, "payments_on_account": 1200.0, "bank_account_id": "<your company's bank account id>", "remittance_information": "CMD-2026-000777", "payment_method_text": "Virement bancaire", "payment_terms": "Facture deja payee — Net a payer 0", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 1, "price": 1000.0, "description": "Commande payee a la commande", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Case 3
Section titled “Case 3”Invoice to be paid by a third party designated at invoicing — Facture à régler par un tiers payeur connu à la facturation
Section titled “Invoice to be paid by a third party designated at invoicing — Facture à régler par un tiers payeur connu à la facturation”Standard B2B invoice; the third-party payer is managed by the buyer (transparent to the seller, not reported on the invoice). The payment method is whichever applies (the example uses a bank transfer); only if it is a transfer (payment_method: 4) must you provide bank_account_id.
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "380", "number": "FAC-2026-000312", "date": "2026-06-15", "due_date": "2026-07-15", "currency": "EUR", "type_operation": "services", "payment_method": 4, "bank_account_id": "<your company's bank account id>", "remittance_information": "FAC-2026-000312", "payment_method_text": "Virement bancaire", "payment_terms": "30 jours net — Reglement par un tiers payeur a l'initiative de l'ACHETEUR", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 1, "price": 500.0, "description": "Prestation de services", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Case 5
Section titled “Case 5”Employee expense invoices in the company’s name (e-invoicing) — Frais payés par des salariés avec facture au nom de l’entreprise
Section titled “Employee expense invoices in the company’s name (e-invoicing) — Frais payés par des salariés avec facture au nom de l’entreprise”Invoice in the company’s name advanced by the employee, usually already paid (payments_on_account) by whatever method they used (the example shows a card payment). A registration number or identifier is referenced, not personal data (GDPR).
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "380", "number": "FAC-2026-000455", "date": "2026-06-15", "due_date": "2026-06-15", "currency": "EUR", "type_operation": "goods", "payment_method": 19, "payments_on_account": 60.0, "remittance_information": "FAC-2026-000455", "payment_method_text": "Carte bancaire", "extra_info": "Frais collaborateur — facture au nom de l'entreprise, matricule XXXX (deja payee, avancee par le salarie)", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 1, "price": 50.0, "description": "Fournitures de bureau (note de frais)", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Case 7
Section titled “Case 7”Invoice following a purchase paid with a corporate card — Facture suite à un achat payé par carte d’achat
Section titled “Invoice following a purchase paid with a corporate card — Facture suite à un achat payé par carte d’achat”Invoice already paid with a lodged card (carte logée): the card details go in card_account_attributes (masked card number — last digits only) and the amount paid in payments_on_account.
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "380", "number": "FAC-2026-000628", "date": "2026-06-15", "due_date": "2026-06-15", "currency": "EUR", "type_operation": "services", "payment_method": 19, "payments_on_account": 240.0, "card_account_attributes": { "account_number": "<last 4-6 digits>", "network": "VISA", "holder_name": "<the cardholder>" }, "remittance_information": "CL-2026-33012", "payment_method_text": "Carte d'achat (carte logee)", "payment_terms": "Facture deja payee — Net a payer 0", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 1, "price": 200.0, "description": "Nuitee hotel (deplacement professionnel)", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Case 8
Section titled “Case 8”Invoices payable to a third party determined at the time of invoicing (factoring, cash pooling) — Factures payables à un tiers connu à la facturation (affacturage, cash pooling)
Section titled “Invoices payable to a third party determined at the time of invoicing (factoring, cash pooling) — Factures payables à un tiers connu à la facturation (affacturage, cash pooling)”Payment to a factor (or cash pooling) determined at invoicing: their account is referenced in bank_account. For factoring, type_code: 393 and a subrogation mention as a note with code ACC (rule BR-FR-07). Send it in fa_clauses, or as an #ACC# tag in extra_info.
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "393", "number": "FAC-2026-000801", "date": "2026-06-15", "due_date": "2026-07-15", "currency": "EUR", "type_operation": "services", "payment_method": 4, "bank_account": { "type": "iban", "iban": "FRXX XXXX XXXX XXXX XXXX XXXX XXX", "bic": "XXXXXXXX", "name": "<the factor's legal name>" }, "remittance_information": "FAC-2026-000801", "payment_method_text": "Virement bancaire", "payment_terms": "30 jours net", "fa_clauses": "Facture cedee a l'affactureur, subrogation (art. 1346 Code civil)", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 1, "price": 1000.0, "description": "Prestation de services (facture affacturee)", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Case 9
Section titled “Case 9”Invoice payable to a known third party who also manages ordering/receipt or invoicing (Distributor/Depositary) — Facture payable à un tiers gérant aussi la commande/réception ou la facturation
Section titled “Invoice payable to a known third party who also manages ordering/receipt or invoicing (Distributor/Depositary) — Facture payable à un tiers gérant aussi la commande/réception ou la facturation”Like case 8 but without factoring: type_code: 380 and no subrogation mention; the beneficiary (distributor/depositary) is referenced in bank_account.
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "380", "number": "FAC-2026-000844", "date": "2026-06-15", "due_date": "2026-07-15", "currency": "EUR", "type_operation": "services", "payment_method": 4, "bank_account": { "type": "iban", "iban": "FRXX XXXX XXXX XXXX XXXX XXXX XXX", "bic": "XXXXXXXX", "name": "<the beneficiary's legal name>" }, "remittance_information": "FAC-2026-000844", "payment_method_text": "Virement bancaire", "payment_terms": "30 jours net — Beneficiaire du paiement : tiers (distributeur / depositaire)", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 1, "price": 1000.0, "description": "Prestation de services", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Case 10
Section titled “Case 10”Invoice payable to a factor unknown when the invoice is created (subrogation) — Facture cédée à un factor inconnu à l’émission (cas de subrogation)
Section titled “Invoice payable to a factor unknown when the invoice is created (subrogation) — Facture cédée à un factor inconnu à l’émission (cas de subrogation)”Since the factoring company is still unknown at issuance, an ordinary B2B invoice is sent (type_code: 380, the seller’s account).
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "380", "number": "FAC-2026-000867", "date": "2026-06-15", "due_date": "2026-07-15", "currency": "EUR", "type_operation": "services", "payment_method": 4, "bank_account_id": "<the seller's bank account id>", "remittance_information": "FAC-2026-000867", "payment_method_text": "Virement bancaire", "payment_terms": "30 jours net", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 1, "price": 1000.0, "description": "Prestation de services", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Case 17a
Section titled “Case 17a”Invoice payable to a third party, payment intermediary (e.g. Marketplace) — Facture à payer à un tiers, intermédiaire de paiement (par exemple sur Marketplace)
Section titled “Invoice payable to a third party, payment intermediary (e.g. Marketplace) — Facture à payer à un tiers, intermédiaire de paiement (par exemple sur Marketplace)”Marketplace sale already paid: the intermediary is the beneficiary of the payment (bank_account) and the amount goes in payments_on_account. The intermediary’s commission is a separate invoice.
{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "type_code": "380", "number": "FAC-2026-001017", "date": "2026-06-15", "due_date": "2026-06-15", "currency": "EUR", "type_operation": "goods", "payment_method": 4, "payments_on_account": 1200.0, "bank_account": { "type": "iban", "iban": "FRXX XXXX XXXX XXXX XXXX XXXX XXX", "bic": "XXXXXXXX", "name": "<the intermediary's legal name>" }, "remittance_information": "FAC-2026-001017", "payment_method_text": "Virement bancaire (encaissement via intermediaire de paiement)", "payment_terms": "Facture deja payee — vente via place de marche, Net a payer 0", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 1, "price": 1000.0, "description": "Vente via place de marche", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}Case 19b
Section titled “Case 19b”Self-billing — Autofacturation
Section titled “Self-billing — Autofacturation”Self-billing: the buyer issues on behalf of the seller (type: “IssuedSelfInvoice”, type_code: 389), with dedicated numbering per seller and a mention of the mandate. In the standard it is a note with code DCL. From API version 2026-06-26 you can send it in coded_notes, like the ABU note in case 26; the example puts it in extra_info, as a general note. The payment method is whichever applies (the example uses a bank transfer); only if it is a transfer must you provide bank_account.
{ "send_after_import": true, "invoice": { "type": "IssuedSelfInvoice", "type_code": "389", "number": "AF-2026-000045", "date": "2026-06-15", "due_date": "2026-07-15", "currency": "EUR", "type_operation": "goods", "payment_method": 4, "bank_account": { "type": "iban", "iban": "FRXX XXXX XXXX XXXX XXXX XXXX XXX", "bic": "XXXXXXXX", "name": "<the seller's legal name>" }, "remittance_information": "AF-2026-000045", "payment_method_text": "Virement bancaire", "payment_terms": "30 jours net", "extra_info": "Facture etablie par l'ACHETEUR au nom et pour le compte du VENDEUR (auto-facturation, mandat de facturation)", "contact_id": "<contact_id>", "invoice_lines_attributes": [ { "quantity": 1, "price": 1000.0, "description": "Livraison de biens (auto-facturee)", "taxes_attributes": [{ "name": "TVA", "category": "S", "percent": 20 }] } ] }}