DGFiP e-Invoicing and e-Reporting
Everything you need to do in the app to comply with the RFE (Réforme de la Facturation Électronique), with B2Brouter as your Plateforme Agréée.
This guide covers everything you need to operate with the French e-invoicing reform (RFE) in B2Brouter, from first activation to the day-to-day management of your invoices and tax reports.
The RFE and the Plateforme Agréée (PA)
Section titled “The RFE and the Plateforme Agréée (PA)”The Réforme de la Facturation Électronique (RFE) is the French regulation that progressively requires all companies to issue, send and receive their invoices in electronic format, instead of paper or plain PDF. It also includes e-reporting: sending tax reports to the DGFiP (Direction Générale des Finances Publiques).
To comply with this obligation, companies must use a Plateforme Agréée (PA), an operator registered and authorised by the DGFiP. The PA acts as a trusted intermediary between the company and the tax authority: it receives and transmits invoices in structured format, and sends e-reporting data to the DGFiP.
B2Brouter is a certified Plateforme Agréée (PA). When you assign us as your PA, we take care of your registration in the Annuaire (the central directory of the PPF — Portail Public de Facturation), the transmission of your documents, your tax reports, and the management of your invoice status lifecycle.
How to comply with the RFE
Section titled “How to comply with the RFE”The RFE is being rolled out progressively according to company size. From 1 September 2026, all companies are required to be able to receive electronic invoices. The obligation to issue electronic invoices and report to the DGFiP with tax reports applies later depending on company type (large companies and ETIs from 1 September 2026; SMEs and micro-enterprises from 1 September 2027).
With B2Brouter you can comply with both obligations right away: simply assign us as your PA to start receiving, and activate the tax report when you need to issue.
In B2Brouter this translates into two modes, which we will use throughout this guide:
- Receive only — the account has B2Brouter assigned as PA, but the tax report is not activated. Covers the obligation to receive.
- Full e-Reporting — in addition to the PA, the tax report is activated. Covers both receiving and issuing, with automatic generation of tax reports.
You can go back from Full e-Reporting to Receive only at any time: switch off "Activate e-Reporting France" in ⚙ Account settings → e-Reporting France. You stay assigned as PA and keep receiving invoices.
Differences between the RFE and Chorus Pro (B2B ≠ B2G)
Section titled “Differences between the RFE and Chorus Pro (B2B ≠ B2G)”Chorus Pro is the circuit used to invoice French public administrations (B2G). The RFE, on the other hand, governs B2B invoicing between companies, through your Plateforme Agréée (PA). They are two independent circuits: if your company invoices both other businesses and public administrations, you can use both circuits in parallel without overlap.
Your company structure in B2Brouter: main account and organisational units
Section titled “Your company structure in B2Brouter: main account and organisational units”In France, every company has a SIREN number that uniquely identifies it, and every establishment or service has its own SIRET code, derived from that SIREN. In B2Brouter we follow the same logic: the main account is created with the company's SIREN, and each establishment is represented as an organisational unit (OU) identified by its SIRET code.
If your company has several establishments or services under the same SIREN, each one is represented as an independent organisational unit (OU) within the same account. To create an organisational unit with the corresponding SIRET or suffix code, access the account created with the SIREN and follow the steps in the organisational units setup guide.
Which address to give your suppliers
Section titled “Which address to give your suppliers”Give your suppliers the company's SIREN, with scheme 0225. It is the address that B2Brouter publishes in the Annuaire for the main account.
You only receive invoices at the identifiers that a PA has published in the Annuaire. If a supplier enters only the SIRET, the invoice does not reach you: there is no redirection from the SIRET to the SIREN.
- An organisational unit with the SIRET, once you assign B2Brouter as its PA, publishes a new address in the form
SIREN_SIRET. It lets the establishment receive invoices at its own address. It does not collect the invoices addressed to the SIRET alone. Organisational units are available from the Business plan. - You can add the SIRET of an establishment in Additional identifiers, in the fiscal data of the main account. The SIRET identifies the establishment on the invoices you issue, but it does not publish any address.
1. PA assignment and tax report activation
Section titled “1. PA assignment and tax report activation”When you assign B2Brouter as your PA, you are registered in the PPF Annuaire with a Peppol transport (the international electronic document exchange network). This allows you to receive invoices from your suppliers immediately (Receive only mode).
If you also need to issue invoices via DGFiP, after assigning B2Brouter as your PA you must activate the tax report (Full e-Reporting mode). Once activated, B2Brouter takes care of generating and sending the corresponding tax reports to the DGFiP and of sending your invoices via Peppol.
1.1 Assign B2Brouter as your PA
Section titled “1.1 Assign B2Brouter as your PA”Steps to assign B2Brouter as your PA:
- ⚙ Account settings → in the side menu, go to the e-Reporting France section.
- Review the identifier and click Continue.
- Attach the document proving the company's identity (for example, the Kbis). If your identifier with scheme 0225 is already published, this step does not appear.
- Tick the box I have read and accept the Peppol Service Agreement. Until the box is ticked, the save button stays disabled, even if you have attached the document.
- Click Save and end process.
If the service agreement box is disabled, the PPF is in a maintenance window. Try again when it ends.
B2Brouter is now your PA and automatically initiates two processes:
Section titled “B2Brouter is now your PA and automatically initiates two processes:”1. Registers your company in the PPF Annuaire:
Your identifier becomes discoverable by any platform in the French e-invoicing ecosystem.
Publication of the identifier in the PPF Annuaire is not immediate: on first activation it goes out with the DGFiP's nightly batch and is live the next morning. This is their infrastructure's rhythm, not a B2Brouter delay. Until then you will not be able to issue or receive DGFiP invoices.
2. Creates your Peppol identifier with scheme 0225:
Your company is enabled to receive electronic invoices from any platform connected to Peppol in France. If the account already had a Peppol identifier, it is replaced by the identifier with scheme 0225.
What is scheme 0225? In Peppol, each identifier carries a scheme code indicating what type it is. Scheme
0225is the one that identifies French companies on the Peppol network, based on their SIREN or SIRET. Other schemes identify other types of identifier: for example,0002for SIREN or0009for SIRET.
Common activation errors
Section titled “Common activation errors”| Error | What to do |
|---|---|
| PPF error 422 (e.g. "Le SIREN en entrée n'existe pas ou la date de début d'effet de ligne annuaire est antérieure à la date de début d'effet de ce SIREN") | The SIREN is not yet in the PPF Annuaire, or the start date entered is earlier than the SIREN's effective date. Check your SIREN at facturation.chorus-pro.gouv.fr/annuaire, adjust the date if needed, and try again. |
| SIREN already in use | Another active account already has this SIREN. If you think the duplicate account is yours, contact support indicating both accounts. |
| TVA number already in use | Same case, with the TVA number we automatically derive from your SIREN: it must be unique across the entire system. Retrying will not resolve it — contact support to decide which account retains the tax identity. |
| "Adresse de facturation non active" / "Plateforme agréée rattachée: Non" | The message describes a line of the Annuaire, not your account, and it has three causes. Read them below the table before you repeat the assignment. |
Verify that the registration is published on the Peppol network
Section titled “Verify that the registration is published on the Peppol network”Once B2Brouter is assigned as PA, you can check how the Peppol network registration is progressing in ⚙ Account settings → Peppol. Each indicator can show one of these states: Not published, In progress or Published.
| Indicator | What it means |
|---|---|
| SML | The global registration on Peppol. Your company is making itself known on the Peppol network. |
| SMP | The metadata service (in B2Brouter this follows the SML). The link needed for invoices to reach you correctly is being set up. |
| Peppol Directory | Public listing of companies discoverable on Peppol. |
When SML and SMP are Published, you can already receive invoices via Peppol. The Peppol Directory status does not affect this — it only determines whether you appear in the public search listing.
1.2 Activate the tax report
Section titled “1.2 Activate the tax report”If your mode is Full e-Reporting, after assigning B2Brouter as your PA you need to activate the tax report.
- Click the "Activate e-Reporting France" switch.
- Review the form data.
- Operation type — Services, Goods or Mixed: indicates the type of company activity for tax reporting purposes.
- TVA exemption reason.
- TVA Regime — The TVA Regime determines how often tax reports are sent to the DGFiP. Make sure you select the one that applies to you.
- Declarant email address — This email is needed to generate tax reports for cross-border and simplified invoices.
- Send by email when the recipient cannot be found on the Peppol network: off by default, see What happens when the invoice is sent.
- Click Save and activate.
From this moment on, B2Brouter generates and transmits tax reports automatically, with no manual action on your part:
- Every domestic B2B invoice you issue is deposited in the PPF as a tax report.
- B2C invoices and those with a non-French recipient are accumulated and sent to the DGFiP at the frequency you selected in TVA Regime.
You can view the transmitted tax reports in the Tax section of the application's main menu.
For more information, see the Tax reports section of this guide.
1.3 Change PA
Section titled “1.3 Change PA”Whether you are coming from another Plateforme Agréée or want to leave B2Brouter for another one, the change involves two separate registrations that behave differently:
- The Annuaire is always updated by the new PA, not the one you are leaving, and it happens the moment you activate the service.
- The Peppol registration is what can block you: an identifier can only be active with one Peppol provider at a time. If it is already active with another PA, assigning B2Brouter is not enough: you need a migration code from that PA, or for it to unpublish the identifier.
Coming to B2Brouter from another PA
Section titled “Coming to B2Brouter from another PA”Follow the normal steps to assign B2Brouter as your PA. If your identifier is already registered with another Peppol provider, you will see a notice that says so and names the provider that currently publishes it: that provider is the one you ask for the code or for the unpublication. The notice offers two options:
- Enter the migration code your previous PA gave you. This is the recommended option: you keep receiving invoices throughout the change.
- Continue without code, once your previous PA has unpublished the identifier from Peppol. Make sure they unpublish from Peppol and not just from the Peppol Directory: unpublishing the directory only removes you from searches, it does not free the identifier, and activation will stay blocked.
If your previous PA neither provides a code nor unpublishes you from Peppol, open a support ticket and we will start the procedure to contact them and claim your portability manually.
Leaving B2Brouter for another PA
Section titled “Leaving B2Brouter for another PA”Go to ⚙ Account settings → Peppol section in the side menu. In your company's Peppol summary card, click the 3 dots on the line showing the status. You will see two options:
| Option | What it does |
|---|---|
| Request migration code Recommended | Generates a code you give to your new PA to complete the migration without interrupting the service. |
| Unpublish | Removes your identifier from the Peppol registry. You will have no service until a platform publishes it again. |
Always use the migration code whenever possible.
The Peppol Directory row of the same card has its own Unpublish action. It only removes your company from the public catalogue where others can search for you: you stay connected, you can send and receive, and it is of no use for changing PA.
Deleting the account does not close your Annuaire line
Section titled “Deleting the account does not close your Annuaire line”Deleting the account unpublishes your identifier from Peppol, but it does not touch the PPF Annuaire: you stay listed there with B2Brouter as your reception PA until your new PA activates the service on your identifier. In the meantime your address is in the Annuaire but nobody receives behind it: invoices your suppliers send you through Peppol fail on their side, and they are not held anywhere for later delivery.
So change PA with the migration code, and do not delete the account until your new PA is active. If there has to be a period with no active PA anyway, warn your suppliers and agree with them how they will get their invoices to you in the meantime.
2. Create a French contact
Section titled “2. Create a French contact”This section covers only the DGFiP-specific points; for the general contact creation process, see the general contact creation guide.
Invoice delivery method
Section titled “Invoice delivery method”When creating the contact, pay attention to the invoice delivery method: in Receive only mode you can select any option, but in Full e-Reporting mode the recommended option is Peppol Network.
Automatic generation of contact identifiers
Section titled “Automatic generation of contact identifiers”B2Brouter auto-completes related identifiers from the one you enter: if you provide the SIREN or SIRET, it automatically generates the TVA number and the Peppol identifier; if you provide the TVA number, it generates the SIREN and the Peppol identifier.
The contact record holds three different codes, each with its own role:
| Identifier | Field | Scheme | Value |
|---|---|---|---|
| Company identifier | cin_scheme | 0002 (SIREN) or 0009 (SIRET) | 9 digits (SIREN) or 14 digits (SIRET) |
| Tax identifier / TVA number | tin_scheme | 9957 | FR{kk}{siren} |
| Peppol identifier | pin_scheme | 0225 | SIREN or SIREN_SIRET |
Annuaire verification
Section titled “Annuaire verification”When you create a French contact, B2Brouter automatically queries their presence in the PPF Annuaire (Flux 11). You can check this status in the contact record, in the Summary section:
| Status | What it means |
|---|---|
| Registered | Invoices are transmitted via the Peppol network and generate their corresponding tax report. |
| Not registered | Invoices are created, but no tax report is generated (Flux 1), as the declaration would not be valid. The client must register with a PA. |
| Verification pending | Creation is not blocked: the invoice is issued normally and its tax report is generated. Annuaire verification completes later. |
A contact Registered in the Annuaire but not reachable on the Peppol network blocks the invoice at send time by default, unless you enable the email fallback for your account (see What happens when the invoice is sent).
Non-French contacts
Section titled “Non-French contacts”Any invoice with a contact from another country automatically generates a cross-border tax report (Flux 10). In the invoice delivery method, select Peppol Network and enter the client's Peppol identifier: in this case it will not be scheme 0225, but whichever one corresponds to their country.
DROM (Guadeloupe, Martinique, Réunion)
Section titled “DROM (Guadeloupe, Martinique, Réunion)”Contacts with country Guadeloupe, Martinique or Réunion are considered French territory for tax purposes: their invoices generate the domestic tax report (Flux 1), not the cross-border one, and are transmitted with country code FR. Other overseas territories (New Caledonia, French Polynesia, Saint Pierre and Miquelon, Wallis and Futuna, TAAF...) are considered exports and generate the cross-border tax report (Flux 10).
3. Issue an invoice
Section titled “3. Issue an invoice”This section covers invoice issuance in Full e-Reporting mode. If your account is in Receive only mode, you can issue invoices in the usual way in the application, but without the DGFiP-specific features; for more information on creating an invoice, see the general invoice creation guide.
Invoice form
Section titled “Invoice form”General data
Section titled “General data”Verify that Transport shows Peppol Network and Format shows France UBL Invoice CIUS. If so, the invoice will be transmitted via the Peppol network as required by DGFiP; if you have any doubts about these values, see the Create a French contact section.
Document formats
Section titled “Document formats”| Format | When it is used |
|---|---|
| UBL Peppol France CIUS | Default, if the recipient is registered in the Annuaire/Peppol. |
| Factur-X | For recipients not registered with identifier 0225. It is a PDF/A-3 with embedded CII XML; a scanned or printed PDF is not Factur-X. |
| CII France CIUS | Alternative XML variant, if the recipient requires it. |
Further down the form you will find the Operation type selector, pre-selected by default with the value you configured when activating the tax report. You can change it if this particular invoice requires it, or change the default value in ⚙ Account settings → e-Reporting France.
Invoice lines
Section titled “Invoice lines”Each invoice line includes description, quantity, unit price without TVA and TVA type.
French TVA types:
| TVA | Use |
|---|---|
| 20 % | Standard rate. |
| 10 % | Catering, construction, transport. |
| 5.5 % | Food, books, energy. |
| 2.1 % | Press, reimbursable medicines. |
| 0 % Exempt | CGI exemptions — code required VATEX-FR-CGI… |
| 0 % Zero-rate | Franchise en base de TVA (VATEX-FR-FRANCHISE). |
| 0 % Reverse charge | Reverse charge (VATEX-FR-AE). |
| 0 % Détaxe | Transaction outside the scope of TVA (e.g. sales under the détaxe scheme to travellers). No VATEX code needed: the line is declared with category O and 0 percentage. |
TVA exemption — mandatory code Important
Section titled “TVA exemption — mandatory code ”If you apply 0 % with exemption, you must indicate the corresponding VATEX-FR-… code in the line comment. Without the code, the invoice is created but is not transmitted to the PPF: it gets stuck, and you correct it as described in Invoice with error.
If you have already added a VATEX code and the invoice is still not transmitting, check that the code is written exactly as it appears in the list, with no added text — for example VATEX-EU-IC, not VATEX-EU-IC Intra-community exemption. The field is truncated to 50 characters, so any extra text can cause a mismatch and validation will fail silently, just as if you had not entered any code. If you import the invoice in XML, the code must also be in the exemption reason tag — not in the code tag, which we do not read.
Most commonly used VATEX codes:
| Code | Use |
|---|---|
VATEX-FR-FRANCHISE | Franchise en base de TVA (micro-enterprises). B2Brouter maps it to category Z (zero-rate) in the XML. |
VATEX-FR-AE | Reverse charge. |
VATEX-EU-IC | Intra-community sale. |
VATEX-FR-CGI261-1 | Medical services. |
VATEX-FR-CGI261-3 | Teaching and vocational training. |
VATEX-FR-CGI261-5 | Non-profit organisations. |
VATEX-FR-CGI261C-1 | Banking and financial transactions. |
VATEX-FR-CGI261C-2 | Insurance and reinsurance. |
VATEX-FR-CNWVAT | Credit note without TVA ("avoir net de taxe", e.g. an early-payment discount taken). Only valid on credit notes (types 261, 381 or 396); rejected on invoices (rule G6.21). |
VATEX-EU-F / VATEX-EU-I / VATEX-EU-J | Margin scheme (second-hand goods, works of art and collectables, travel agencies). The line is declared with category E, base = amount including TVA. |
For the full list (more than 20 codes), see the DGFiP developer guide.
Payment information — mandatory fields (B2B)
Section titled “Payment information — mandatory fields (B2B)”Three fields are mandatory for French B2B invoices. If any is missing, an explicit error appears on each field.
- Penalties for delay — the penalty that applies if the payment is late.
- Fixed compensation for collection expenses — the fixed amount for collection costs in case of late payment.
- Early payment discount conditions — the discount for early payment, or that there is none.
These fields are not mandatory for B2C invoices (invoices to individuals).
Examples:
Penalties for delay:Pénalité de retard : 12% annuel (Art. L441-10 C. com.).Fixed compensation for collection expenses:Indemnité forfaitaire de recouvrement : 40,00 EUR (Art. D441-5 C. com.).Early payment discount conditions:Pas d'escompte pour paiement anticipé.The text of these three fields is printed on the invoice PDF, in the header, with the payment details.
Legal notices of the company (legal form, share capital, RCS)
Section titled “Legal notices of the company (legal form, share capital, RCS)”There are no dedicated fields for the legal form, the RCS or the NAF code. Write them in Legal text and data protection, in the company settings: the text is added to each new invoice in the Legal note field and is printed on the PDF, in the notes below the lines. See Legal text and data protection.
Put each notice in one place only. If you write the same notice in one of the three payment fields and also in the Legal note, it is printed twice on the PDF.
What happens when the invoice is sent
Section titled “What happens when the invoice is sent”When you issue the invoice, B2Brouter transmits it to the recipient via the Peppol network and, in parallel, generates the corresponding tax report and deposits it in the PPF.
Issue invoice - B2Brouter → Invoice → Recipient ↘ Tax report → DGFiP (PPF)To learn more about how and when B2Brouter reports to the DGFiP, see section 7. Tax reports.
If the invoice ends up in error status, you will find information on how to proceed in the Invoice with error section.
4. Invoice lifecycle
Section titled “4. Invoice lifecycle”In the invoice view you will see a main status and, right next to it, the validation status. The other phases of the lifecycle — sending, tax report, reception and response — can also be consulted by hovering over them. These status changes are communicated via CDAR messages (Flux 6).
| Lifecycle phase | What it indicates |
|---|---|
| Validation status | Whether the structured document and mandatory fields are correct, before attempting to send anything. |
| Sending status | Whether B2Brouter has successfully transmitted the documents: the invoice to the recipient and the tax report to the DGFiP. Values: Sent or Error. |
| Tax report status | Whether the DGFiP has accepted the tax report. Value: Registered. See details in the When and how the PPF confirms your tax report (CDV) section. |
| Reception status | Whether the recipient has received the invoice. Value: Registered or Error. |
| Response status | The recipient's action on the invoice: Accepted, Rejected or Paid (CDAR 212, Encaissée). Depends solely on the recipient. |
If there is a sending, reception or tax report error, the invoice shows main status Error — the cause may be in any of the three.
Invoice with error
Section titled “Invoice with error”Before being registered, an invoice in Error status can be corrected and sent again. Once it has a tax report, even one in error, it can no longer be deleted. Once registered, correction is done via a credit note.
- Open the invoice to read the error reason. If the error is in the tax report, it will not appear here — you must check it in its own view:
- Access the tax report for this invoice directly from the Invoice view → More options → View declaration.
- Or see the full list of tax reports in the Tax section.
- Click Edit and correct the error.
- Send the invoice again.
If Edit does not appear, the invoice can no longer be modified: correct it with a credit note.
Common errors
Section titled “Common errors”| Error | What to do |
|---|---|
| "Remittance information is required for DGFiP reporting" | The Penalties for delay field is missing. |
| "Payment information is required for DGFiP reporting" | The Fixed compensation for collection expenses field is missing. |
| "Payment terms are required for DGFiP reporting" | The Early payment discount conditions field is missing. |
| "El número de TVA del cliente es obligatorio para la declaración DGFiP" | Contact has no TVA number. Edit the contact and add the TVA number. |
| "The receiver is not registered in the Peppol network to receive invoices." | The French recipient is in the Annuaire but not published on Peppol. Deliver the invoice yourself, or enable the email fallback in ⚙ Account settings → e-Reporting France. |
| "Invoice number too long / invalid chars" | Number with >20 characters or invalid characters. Adjust it. |
REJ_COH BT-47 | The buyer's SIREN does not exist in the PPF Annuaire. The recipient must register with a PA. |
| Exempt line without VATEX code | Correct the invoice as described in Invoice with error and add the correct VATEX code. |
parameter_invalid (SIREN) | The SIREN has a digit incorrectly entered and does not pass format validation. |
parameter_taken (SIREN) | The SIREN is already associated with another account. Contact support. |
5. Credit notes
Section titled “5. Credit notes”This section covers only the DGFiP-specific points; for the general credit note creation process, see the general credit note guide.
- B2Brouter generates a UBL CreditNote document with type code 381.
- The amounts you rectify — whether you enter them as positive or negative — are always treated fiscally as amounts that reduce what was originally declared.
- The same three mandatory payment fields (Penalties for delay, Fixed compensation for collection expenses, Early payment discount conditions) are also mandatory.
- When you save and send, the credit note is transmitted to the PPF like any invoice and generates its domestic tax report (Flux 1).
6. Receive invoices
Section titled “6. Receive invoices”This section covers only the DGFiP-specific points; for more information on receiving invoices, see the general invoice reception guide.
With your account activated (in either of the two modes), you are registered in the Annuaire and receive your suppliers' invoices automatically through the Peppol network, with your scheme 0225 identifier, fulfilling the reception obligation.
Tax report on received invoices
Section titled “Tax report on received invoices”If the supplier is French, you do not need to declare anything: the issuer already does it through their PA (Flux 1). If the supplier is from another country, the invoice is automatically included in your purchases Ledger (Flux 10).
What you can do with a received invoice
Section titled “What you can do with a received invoice”You will find invoices received from your suppliers in the Expenses section, where you can open any of them to perform the following actions.
You can approve, reject or mark as paid an invoice; B2Brouter automatically notifies both the supplier and the DGFiP — you do not need to do anything else.
| Action | What it means |
|---|---|
Approve Approuvée | Notifies the supplier and the DGFiP that you accept the invoice. (CDAR 205) |
Reject Refusée | Notifies the supplier and the DGFiP of the rejection. A reason is required. (CDAR 210) |
| Mark as paid | Notifies the supplier and the DGFiP that you have paid the invoice. (CDAR 211) |
Error in invoice amounts
Section titled “Error in invoice amounts”If you detect an error in the amounts of a received invoice, you cannot correct it: the amounts are those declared by the issuer and are copied literally — we do not recalculate them. Reject it stating the reason so the issuer can reissue it corrected — but first check that it is a real error: a one-cent rounding difference is not.
7. Tax reports
Section titled “7. Tax reports”In Full e-Reporting mode, B2Brouter generates and transmits tax reports automatically, with no manual action. In Receive only mode, they are not generated.
Confidentiality (secret professionnel) — The tax report never includes the detail of invoice lines (item description, service provided, etc.), only the totals and the TVA breakdown. This preserves professional secrecy in sectors such as healthcare, law and other regulated activities: the DGFiP receives enough information to validate the TVA without knowing the content of the service.
Domestic B2B invoices (Flux 1)
Section titled “Domestic B2B invoices (Flux 1)”A domestic tax report is generated for each invoice. B2Brouter deposits it in the PPF and, upon receiving the response, updates the status.
Mixed invoices (goods + services) — If an invoice combines goods and services lines, the domestic tax report also reflects it as a mixed transaction.
B2C and cross-border (Flux 10)
Section titled “B2C and cross-border (Flux 10)”Unlike Flux 1, which is transmitted invoice by invoice, Flux 10 groups the tax reports of invoices to individuals (B2C) and with non-French recipients into a single submission (Ledger). The frequency at which these Ledgers are sent to the PPF depends on the TVA Regime configured when activating the tax report, in the e-Reporting France section within Account settings.
Likewise, depending on the type of invoices, several Ledgers can be generated:
| Ledger | What it groups |
|---|---|
| Sales Ledger | Tax reports for invoices you issue to clients outside France or to individuals (B2C). |
| Purchases Ledger | Tax reports for invoices you receive from suppliers outside France. |
| Payments Ledger | Tax reports for payments you receive for the invoices you have issued. |
Where to view tax reports
Section titled “Where to view tax reports”You can view the transmitted tax reports in the Tax section of the application's main menu, or access the tax report for a specific invoice directly from its Invoice view → More options → View declaration.
Download the tax reports of a period
Section titled “Download the tax reports of a period”In the list you can filter by dates, by customer and by state. There is no export and no bulk download from the list: you download each report from its own page.
- Flux 1: open the report and click Download to get its XML.
- Flux 10: the page of each report shows its data. The file sent to the DGFiP is the one of the Ledger that groups it. Click Download Ledger XML on the report to get that Ledger's XML as the DGFiP holds it, with the other reports of the same period. The file is available once the Ledger has been sent. You cannot download it from an organisational unit: the Ledger belongs to the main account.
If your account has API access, you can get the reports of a period with the list of tax reports. Each report gives its Ledger, and you download the Ledger file with GET /ledgers/{id}/download once it is sent.
If the total amount when you review that section does not match what you expected, it does not necessarily mean something is missing from the declaration. There are three reasons that add up and almost always explain the difference:
- Domestic B2B invoices are not part of any Ledger — they generate their own individual tax report (Flux 1) per invoice, independent of the e-reporting Ledgers (Flux 10). If you look for their amount inside a Ledger, you will not find it: check their individual Flux 1 report.
- Reports are separated by movement type — sales and purchases are declared in separate Ledgers, and payments in a separate Ledger.
- Reports are also separated by period — according to the frequency of your TVA Regime.
The amount you would add up manually is spread across several different reports, and part of your invoicing — the domestic part — should not even appear here.
Tax report lifecycle
Section titled “Tax report lifecycle”Each tax report goes through a series of statuses until the DGFiP accepts or rejects it. You can check its status both in the invoice view and in the Tax section of the main menu. If there is an error, the exact reason can only be found in the Tax section, within the corresponding tax report.
| Status | What it means |
|---|---|
New | Created and queued (domestic tax report, Flux 1) or accumulating in the Ledger (cross-border tax report, Flux 10). |
Sent | B2Brouter has deposited it in the PPF. |
Received | The PPF confirms receipt (CDV 500). |
Registered | The DGFiP has accepted it. Final positive status. (CDV 300). |
Rejected | The DGFiP has rejected it (CDV 301). |
Error | Transmission or processing error. |
Cancelled | Invoice cancelled after registration (domestic tax report, Flux 1 only). |
When and how the PPF confirms your tax report (CDV)
Section titled “When and how the PPF confirms your tax report (CDV)”The PPF does not confirm your tax report in one go, but in two separate moments:
- CDV 500 (Recevable) — arrives shortly after submission and confirms that the PPF has technically received and validated the document. Corresponds to status
Received. - CDV 300 / 301 (Registered / Rejected) — the DGFiP issues these in batch, once a day: this is the moment when it decides whether to accept or reject the declaration. They can take up to 24 hours from submission.
Tax report with error
Section titled “Tax report with error”To read the exact error reason, check the report in the Tax section of the main menu, or access it directly from the Invoice view → More options → View declaration.
Most errors originate from the source invoice. Correct the invoice and a new tax report is generated automatically. If the message is not clear, contact support.
8. Glossary
Section titled “8. Glossary”| Term | What it is |
|---|---|
| B2B (Business to Business) | Invoicing between companies. In France, this is the circuit governed by the RFE. |
| B2Bi / Bi2B (Business to Business international) | B2B invoicing with a client or supplier outside France. Declared as a cross-border tax report (Flux 10), not Flux 1. |
| B2C (Business to Consumer) | Invoicing from a company to an individual. Not covered by the RFE, but included in e-reporting (Flux 10). |
| B2G (Business to Government) | Invoicing from a company to a public administration. In France managed through Chorus Pro, not the RFE. |
| RFE | Réforme de la Facturation Électronique — the French e-invoicing reform. |
| DGFiP | Direction Générale des Finances Publiques — the French tax authority. |
| PA (Plateforme Agréée) | The operator certified by the DGFiP that manages your e-invoicing and declarations. B2Brouter is a PA. A PA is also known by its former name, PDP. |
| PDP (Plateforme de Dématérialisation Partenaire) | The former name of the PA. Since 2025 the official term is Plateforme Agréée (PA); PDP and PA are used interchangeably in the sector. |
| PPF (Portail Public de Facturation) | The French State's public portal. It receives tax declarations and maintains the Annuaire, but does not route invoices between companies. |
| Annuaire | The PPF's central directory: indicates, for each French company, which PA delivers invoices to it and at which address. |
| AIFE | The French State agency that operates Chorus Pro and the PPF. |
| Chorus Pro | The circuit for invoicing French public administrations (B2G), independent of the RFE (B2B). |
| Peppol | The international network through which electronic invoices travel from one platform to another. |
| Scheme | The code that indicates what type of identifier is being used in Peppol (for example, 0225 for the French Peppol identifier, or 0002/0009 for SIREN/SIRET). Each country or identifier type has its own scheme. |
| Routing address | What providers call the Peppol identifier when they ask "what electronic address should I send the invoice to?". |
| SML / SMP | The central Peppol registries that record which platform has each identifier registered. |
| SIREN | 9-digit number that uniquely identifies a French company. |
| TVA number | The French tax identifier (TVA intracommunautaire): FR + 2 check digits + the SIREN. |
| SIRET | 14-digit number (the SIREN plus 5) that identifies a specific establishment of the company. |
| Code Routage | Code (scheme 0224) that routes the invoice to a specific department within a SIRET. |
| Suffixe | Code (scheme 8040) for a unit without its own establishment; attached directly to the SIREN. |
| Kbis | The French commercial register extract, used by companies as proof of existence. |
| Organisational unit (OU) | How B2Brouter models each establishment (SIRET) within the main account (SIREN). |
| CIUS-FR / France UBL Invoice CIUS | The standard French e-invoice format. |
| UBL / CII | The two XML formats in which an electronic invoice can be structured. |
| Factur-X | A PDF with the invoice XML embedded inside; a scanned or printed PDF is not a Factur-X. |
| Ledger | A batch of tax reports grouped within Flux 10. |
| VATEX | The standardised codes that indicate the reason why an invoice does not carry TVA. |
| CDAR | The message that communicates a change in invoice status (deposited, received, approved, rejected, paid). |
| CDV (Compte-Rendu de Validation) | The PPF's asynchronous response on a tax report. |
| Flux 1 | The flow of an individual tax report for each domestic B2B invoice (between French companies). |
| Flux 6 | The flow of invoice status changes. |
| Flux 10 | The flow of an aggregated tax report (in Ledgers) for B2C and cross-border invoices. |
| Flux 11 | The flow that queries the Annuaire to verify whether a contact is registered. |