Skip to content
Log in

Gérer la facturation électronique DGFiP dans B2Brouter

La réforme française de la facturation électronique oblige les entreprises françaises assujetties à la TVA à transmettre les factures B2B et les données de TVA via une Plateforme Agréée (PA) certifiée par la DGFiP. B2Brouter est une PA certifiée : vous vous y connectez et nous nous chargeons de l’enregistrement au PPF, de la transmission des documents, des rapports de TVA et de l’ensemble du cycle de vie des états.

Pilote gratuit jusqu’en septembre 2026 — Avant la date d’obligation, toute entreprise entrant dans le pilote dispose de la plateforme gratuitement pour effectuer de vrais tests. Les factures et rapports envoyés pendant le pilote ne comptent pas pour les réinitialisations comptables ultérieures. De plus, vous aurez un accès complet à B2Brouter pendant le pilote : vous pourrez gérer les intégrations et les automatisations via nos connecteurs et notre API.

B2B ≠ B2G — La DGFiP gère le B2B via le réseau Peppol avec le schéma 0225 (FRCTC). Chorus Pro est le circuit B2G pour facturer les administrations françaises. Ce sont deux circuits indépendants : une entreprise peut facturer en B2B via DGFiP et en B2G via Chorus Pro en parallèle.

PA et PDP, c’est la même chose — Dans les documents officiels de la DGFiP, sur le Portail Public de Facturation et dans d’autres programmes du secteur, les termes PA (Plateforme Agréée) et PDP (Plateforme de Dématérialisation Partenaire) sont utilisés indifféremment. Ils désignent le même rôle. Le terme officiel et en vigueur est PA.


Lors de l’activation de DGFiP, vous choisissez l’un des deux modes. Vous pouvez passer de l’un à l’autre à tout moment.

Réception uniquement (Annuaire only) — mode par défaut à l’activation. Vous souhaitez recevoir des factures de vos fournisseurs mais n’émettez pas encore via DGFiP. B2Brouter enregistre votre SIREN à l’Annuaire du PPF avec transport Peppol 0225. Ne génère pas de rapports de TVA ni de messages CDAR. Ne vous oblige pas à émettre via Peppol.

e-Reporting complet — Pilote (volontaire) jusqu’au 01/09/2026 ; obligatoire à partir de cette date. Vous souhaitez émettre des factures B2B via DGFiP et générer automatiquement les rapports de TVA. Tout ce qui précède + génération et envoi au PPF des rapports Flux 1 (B2B domestique) et Flux 10 (B2C, transfrontalier).


  • Un compte B2Brouter.
  • Le SIREN (9 chiffres) ou SIRET (14 chiffres) de l’entreprise. Si vous avez plusieurs établissements (SIRETs sous le même SIREN), ils sont modélisés comme des unités organisationnelles au sein du même compte — pas comme des comptes séparés. Un SIREN = un compte.
  1. Configuration du compteImpôtse-Reporting France.
  2. AjouterDGFiP.
  3. Remplissez le formulaire :
    • Date de début — quand commence la déclaration de TVA. Aujourd’hui ou ultérieurement.
    • ModeRéception uniquement (par défaut) ou e-Reporting complet. Vous pouvez le modifier ultérieurement.
    • Si vous choisissez e-Reporting complet, également :
      • Type d’opérationServices, Marchandises ou Mixte (en cas de doute : Mixte).
      • Code NAF — code d’activité INSEE (ex. 62 pour les services TIC). Il figure sur votre extrait Kbis.
      • Taille de l’entrepriseMicro, PME, ETI ou Grande Entreprise selon l’effectif et le chiffre d’affaires.
    • E-mail du déclarant — recevra les notifications fiscales.
  4. Enregistrer.

Enregistrement à l’Annuaire — La publication du SIREN à l’Annuaire du PPF peut prendre jusqu’à 24 heures, aussi bien en production qu’en tests. C’est un rythme d’infrastructure de la DGFiP, non de B2Brouter. Jusqu’à la propagation, vous ne pouvez pas émettre ni recevoir de factures DGFiP.

Transport Peppol existant — Si le compte avait déjà un transport Peppol (ex. d’une autre PA ou d’un autre usage), il est remplacé par le transport 0225. Si le SIREN était enregistré dans une autre PA, B2Brouter ferme cette entrée à l’Annuaire et en ouvre une nouvelle automatiquement.

Si l’enregistrement échoue — Un SIREN invalide (Luhn) ou une interruption temporaire de la DGFiP annule la configuration et affiche une erreur. Corrigez les données et enregistrez à nouveau.

Vérifier que l’enregistrement est publié

Section titled “Vérifier que l’enregistrement est publié”

Une fois la configuration enregistrée, accédez à Configuration du compteTransportsPeppol. Vous y verrez trois états de publication, avec les valeurs not_published, processing ou published :

  • SML — l’enregistrement global au SML de Peppol.
  • SMP — le service de métadonnées (chez B2Brouter, suit le SML).
  • Peppol Directory — la publication dans le répertoire public de Peppol.

Lorsque les trois sont en published, toute autre plateforme peut vous localiser et vous envoyer des factures.


Avant d’émettre une facture, le client doit exister dans les contacts. B2Brouter complète automatiquement les identifiants à partir de ce que vous saisissez.

  1. ContactsNouveau contact.
  2. Sélectionnez France comme pays.
  3. Choisissez le type d’identifiant et saisissez la valeur :
    • SIREN — 9 chiffres (ex. 123456789).
    • SIRET — 14 chiffres (ex. 12345678900012).
    • Numéro de TVAFR{kk}{siren} avec kk deux chiffres de contrôle (ex. FR32123456789).
  4. Valider l’identifiant et continuer.
  5. Renseignez la raison sociale, l’adresse, le code postal et la ville.
  6. Dans Méthode de livraison, B2Brouter sélectionne automatiquement Réseau Peppol et le format France UBL Invoice CIUS. Confirmez que l’identifiant Peppol est correct.
  7. ContinuerEnregistrer.

Trois identifiants distincts — La fiche du contact comporte trois codes distincts, chacun ayant un rôle propre :

  • Identifiant entreprise (cin_scheme) : 0002 pour SIREN (9 chiffres) ou 0009 pour SIRET (14 chiffres).
  • Identifiant fiscal / TVA (tin_scheme) : 9957 ; valeur FR{kk}{siren}.
  • Identifiant Peppol (pin_scheme) : 0225 ; valeur SIREN ou SIREN_SIRET.

Si vous voyez 0002 dans l’interface, c’est l’identifiant entreprise (pas le Peppol). Le Peppol pour DGFiP est toujours 0225.

Autocomplétion — Pour les comptes DGFiP activés à partir du 31/03/2026, B2Brouter dérive automatiquement les trois identifiants entre eux : si vous saisissez le SIREN, il génère le numéro de TVA et le Peppol ; si vous saisissez le numéro de TVA, il génère le SIREN et le Peppol.

Contacts anciens — Les contacts créés avant l’activation de DGFiP peuvent ne pas avoir le numéro de TVA. Si vous émettez une facture sur l’un de ces contacts, l’erreur “Le numéro de TVA du client est obligatoire pour la déclaration DGFiP” apparaîtra. Modifiez le contact, ajoutez le numéro de TVA et rééemettez.

Lorsque vous créez un contact français, B2Brouter vérifie automatiquement sa présence dans l’Annuaire :

  • Enregistré dans l’Annuaire → les factures sont transmises via Peppol UBL et génèrent un rapport Flux 1.
  • Non enregistré → les factures sont créées, mais ne génèrent pas de rapport Flux 1 (la soumission serait invalide). Le client devra s’enregistrer auprès d’une PA.
  • Vérification en attente — la création n’est pas bloquée : la facture est traitée et un rapport est généré. La vérification arrive ultérieurement.

Contacts non français — Toute facture avec un contact d’un autre pays génère automatiquement un rapport Flux 10 (e-Reporting transfrontalier). Utilisez le schéma Peppol correspondant au pays du contact dans le champ identifiant.


  1. FacturesCréer une facture.
  2. Choisissez le contact et Continuer.

Vérifiez que le Transport est Réseau Peppol et le Format est France UBL Invoice CIUS. Si c’est le cas, la facture sera transmise via le réseau DGFiP.

  • Numéro de facture — séquentiel unique. Maximum 20 caractères. Autorisés : A-Z 0-9 -+_/. Les espaces en début, fin ou consécutifs ne sont pas acceptés.
  • Date de facture et Date d’échéance — obligatoires.
  • DeviseEUR pour les factures domestiques. Pour les devises étrangères, renseignez le taux de change en EUR à la date de facture.

Pour chaque ligne : description, quantité, prix unitaire hors TVA et taux de TVA.

Taux de TVA français :

  • 20 % — taux normal.
  • 10 % — restauration, travaux, transports.
  • 5,5 % — alimentation, livres, énergie.
  • 2,1 % — presse, médicaments remboursables.
  • 0 % — Exonéré — exonérations du CGI (requiert le code VATEX-FR-CGI…).
  • 0 % — Taux zéro — franchise en base de TVA (VATEX-FR-FRANCHISE).
  • 0 % — Autoliquidation — reverse charge (VATEX-FR-AE).

Exonération de TVA — code obligatoire — Si vous appliquez 0 % d’exonération, vous devez indiquer le code VATEX-FR-… correspondant dans le commentaire de la ligne. Sans le code, la facture est créée mais n’est pas transmise au PPF : elle reste bloquée et doit être supprimée et recréée avec le code correct.

Codes VATEX les plus utilisés :

  • VATEX-FR-FRANCHISE — franchise en base de TVA (micro-entreprises). B2Brouter le mappe à la catégorie Z (zero-rate) dans le XML.
  • VATEX-FR-AE — autoliquidation (reverse charge).
  • VATEX-FR-CGI261-1 — services médicaux.
  • VATEX-FR-CGI261-3 — enseignement et formation professionnelle.
  • VATEX-FR-CGI261-5 — organismes sans but lucratif.
  • VATEX-FR-CGI261C-1 — opérations bancaires et financières.
  • VATEX-FR-CGI261C-2 — assurances et réassurances.
  • VATEX-FR-CNWVAT — non établi en France.

Pour la liste complète (plus de 20 codes), consultez le guide technique des développeurs : https://developer.b2brouter.net/docs/dgfip.

Informations de paiement — champs obligatoires (B2B)

Section titled “Informations de paiement — champs obligatoires (B2B)”

Trois champs sont obligatoires pour les factures B2B françaises. Si l’un d’eux manque, la facture n’est pas créée : une erreur explicite apparaît pour chaque champ.

  • Informations de paiement (code DGFiP PMD) — référence et mentions légales (forme sociale, capital, RCS).
  • Mode de paiement (texte) (code DGFiP PMT) — mode + IBAN/BIC.
  • Conditions de paiement (code DGFiP AAB) — délai, pénalités de retard, escompte pour paiement anticipé.

Exemples :

Informations de paiement (PMD) :
FA-2026-0048 — Exemplar SAS, SAS au capital de 50 000 EUR, RCS Paris 123 456 789
Mode de paiement (PMT) :
Virement bancaire, IBAN FR00 0000 0000 0000 0000 0000 000, BIC XXXXFRPP
Conditions de paiement (AAB) :
Net 30 jours à compter de la date de facture.
Pénalité de retard : 12% annuel (Art. L441-10 C. com.).
Indemnité forfaitaire de recouvrement : 40,00 EUR (Art. D441-5 C. com.).
Pas d'escompte pour paiement anticipé.

Les champs ci-dessus ne sont pas obligatoires pour les factures B2C (tickets aux particuliers).

Mode de paiement (codes usuels) : 4 virement bancaire, 58 virement SEPA, 2 prélèvement, 59 prélèvement SEPA, 19 carte bancaire, 11 chèque, 13 autre (utilisez le champ texte pour le décrire).

  1. Enregistrer et prévisualiser — vérifiez.
  2. Émettre et envoyer — B2Brouter génère le document (UBL, CII ou Factur-X selon le contact), le dépose au PPF via Peppol et crée automatiquement le rapport de TVA.

Dans la fiche d’une facture émise, vous verrez l’état actuel et, en cas d’erreur ou de rejet, le motif exact.

Envoi en cours → Envoyée → Enregistrée → Acceptée → Payée
↘ Rejetée
↘ Erreur
  • Envoi en cours — la facture a été créée et est en file d’attente pour envoi au PPF.
  • Envoyée — B2Brouter a déposé le document au PPF.
  • Enregistrée ✅ — la DGFiP a validé et accepté la facture. État de conformité.
  • Acceptée — l’acheteur a approuvé la facture.
  • Rejetée — l’acheteur a rejeté la facture.
  • Payée — l’acheteur a déclaré la facture comme payée. Fonctionnalité en développement.
  • Erreur — erreur de transmission ou rejet du PPF. Le motif apparaît dans la fiche.

Deux moments de réponse du PPF — Les réponses du PPF arrivent en deux phases :

  1. Réception technique (rapide) — Le PPF confirme qu’il a reçu et validé techniquement le document. À ce moment, la facture passe à l’état Envoyée.
  2. Enregistrement définitif (une fois par jour) — La DGFiP traite les documents reçus en lot, une fois par jour, et c’est à cette étape qu’elle décide si la facture est Enregistrée ou Rejetée. Cela peut prendre jusqu’à 24 heures à partir de l’envoi.

Configurez des webhooks dans Configuration → Webhooks si vous souhaitez recevoir une notification immédiate lorsque l’enregistrement arrive.

«Payée» — Actuellement, cet état ne peut pas être marqué depuis l’interface ni depuis l’API. Le CDAR 212 (Encaissée) est prévu pour une version future.

Une facture en état Erreur ne peut pas être retransmise. Il faut la supprimer, corriger les données et en créer une nouvelle.

  1. Ouvrez la facture et lisez le motif d’erreur.
  2. Supprimez la facture.
  3. Corrigez les données (contact, TVA, champs obligatoires…).
  4. Créez et envoyez une nouvelle facture.
  • “Remittance information is required for DGFiP reporting” — champ PMD vide. Renseignez Informations de paiement.
  • “Payment information is required for DGFiP reporting” — champ PMT vide. Renseignez Mode de paiement (texte).
  • “Payment terms are required for DGFiP reporting” — champ AAB vide. Renseignez Conditions de paiement.
  • “Le numéro de TVA du client est obligatoire pour la déclaration DGFiP” — contact sans numéro de TVA. Modifiez le contact et ajoutez le TIN.
  • “Invoice number too long / invalid chars” — numéro avec plus de 20 caractères ou caractères non autorisés. Ajustez-le.
  • REJ_COH BT-47 — le SIREN de l’acheteur n’existe pas dans l’Annuaire du PPF. En production, le client doit s’enregistrer auprès d’une PA. En tests, c’est attendu (l’environnement QAS ne contient pas tous les SIRENs).
  • Ligne exonérée sans code VATEX (blocage silencieux) — supprimez la facture et recréez-la avec le code VATEX correct dans le commentaire de la ligne.
  • parameter_invalid (SIREN) — le SIREN ne passe pas la validation Luhn. Vérifiez-le.
  • parameter_taken (SIREN) — le SIREN est déjà associé à un autre compte. Contactez le support.

Une note de crédit annule ou rectifie une facture antérieure. B2Brouter génère un document UBL CreditNote avec le code type 381 et la référence à la facture originale.

  1. Ouvrez la facture originale.
  2. Créer une note de crédit.
  3. Complétez :
    • Numéro de la facture originale (et date d’émission de cette facture).
    • Les lignes et montants que vous souhaitez rectifier. Vous pouvez les saisir avec un signe positif ou négatif — fiscalement, ils sont toujours traités comme des montants qui soustraient à ce qui avait été déclaré initialement, quel que soit le signe saisi.
    • Mêmes champs obligatoires de paiement (PMD / PMT / AAB).
  4. Enregistrer et envoyer — transmis au PPF comme toute facture (Flux 1).

Utilisez toujours le numéro et la date réels de la facture rectifiée, pas une référence interne.


En ayant votre compte activé (dans l’un ou l’autre mode), vous êtes enregistré dans l’Annuaire et pouvez recevoir des factures de fournisseurs via Peppol 0225.

  • Dépenses → consultez les factures entrantes.
  • Ouvrez une facture pour en voir le détail.
  • Approuver — indiquez au fournisseur et à la DGFiP que vous acceptez la facture (CDAR 205, Approuvée).
  • Rejeter — indiquez le rejet au fournisseur et à la DGFiP (CDAR 210, Refusée). Un motif est requis.
  • Marquer comme payée — CDAR 212, Encaissée. Fonctionnalité en développement, pas encore disponible.

Lorsque vous mettez à jour l’état, B2Brouter envoie automatiquement le message CDAR correspondant au PPF et au fournisseur.

Flux 10 pour les factures reçues — Un rapport n’est généré que si la facture reçue provient d’un fournisseur non français. Les factures d’un fournisseur français ne nécessitent pas de déclaration de votre part (c’est la PA du fournisseur qui s’en charge).


7 · Rapports de TVA (uniquement en e-Reporting complet)

Section titled “7 · Rapports de TVA (uniquement en e-Reporting complet)”

En mode e-Reporting complet, B2Brouter génère et transmet les rapports de TVA automatiquement, sans aucune action manuelle. En mode Réception uniquement, aucun rapport n’est généré.

Un rapport est généré par facture. B2Brouter le dépose au PPF et, à réception de la réponse, met à jour l’état.

Toutes les factures B2C et celles ayant un destinataire non français sont regroupées dans des Ledgers journaliers. Le Ledger est envoyé au PPF une fois par jour (cron à 02:00 du serveur).

Un même jour peut produire plusieurs Ledgers selon le rôle et le type :

  • Ledger de transactions — ventes (rôle SE) : factures émises transfrontalières et B2C.
  • Ledger de transactions — achats (rôle BY) : factures reçues de fournisseurs étrangers.
  • Ledger de paiements (rôle SE) : factures émises déjà payées.

Configuration du compteImpôtse-Reporting France → liste des rapports transmis.

  • Nouveau — créé et en file d’attente (Flux 1) ou en cours d’accumulation dans le Ledger du jour (Flux 10).
  • Envoyé — B2Brouter l’a déposé au PPF.
  • Reçu — le PPF confirme la réception (CDV 500, Recevable).
  • Enregistré ✅ — la DGFiP l’a accepté (CDV 300). État final positif.
  • Rejeté ❌ — la DGFiP l’a rejeté (CDV 301).
  • Erreur ❌ — erreur de transmission ou de traitement.
  • Annulé — facture annulée après l’enregistrement (Flux 1 uniquement).

CDVCompte-Rendu de Validation : c’est la réponse asynchrone du PPF. Il en existe deux types :

  • CDV 500 (Recevable) — arrive peu après l’envoi et confirme que le PPF a reçu et validé techniquement le document. Correspond à l’état Reçu.
  • CDV 300 / 301 (Enregistré / Rejeté) — la DGFiP les émet en lot, une fois par jour : c’est le moment où elle décide si elle accepte ou rejette la déclaration. Peuvent prendre jusqu’à 24 heures à partir de l’envoi.

La majorité des erreurs proviennent de la facture d’origine. Corrigez la facture (supprimer + nouvelle facture) et un nouveau rapport est généré automatiquement. Si le message n’est pas clair, contactez le support.


B2Brouter choisit le format automatiquement selon la configuration du contact :

  • UBL Peppol France CIUS — par défaut, si le destinataire est enregistré dans l’Annuaire/Peppol.
  • CII France CIUS — variante XML alternative, si le destinataire l’exige.
  • Factur-X — solution de repli pour les destinataires non enregistrés sur le Peppol FR. C’est un PDF/A-3 avec CII XML intégré ; un PDF scanné ou imprimé n’est pas du Factur-X.

Une fois la facture en état Envoyée, une option apparaît pour télécharger le document transmis. Le format sera UBL ou Factur-X selon le cas.


9 · Intégrations API (pour les développeurs)

Section titled “9 · Intégrations API (pour les développeurs)”

Ce manuel décrit l’interface utilisateur. Si vous intégrez B2Brouter via API, la référence officielle est le Guide DGFiP pour les développeurs — il couvre l’endpoint Tax Report Settings, l’API Invoices et Contacts, les webhooks de suivi d’états et le Directory lookup pour vérifier si un contact est enregistré dans l’Annuaire.

Authentification par clé API statique (en-tête X-B2B-API-Key) + version d’API (X-B2B-API-Version). Les fonctionnalités spécifiques à DGFiP nécessitent la version 2026-04-20 ou ultérieure.

Vous pouvez importer des factures UBL, CII ou Factur-X existantes — si le format n’inclut pas les champs natifs de paiement (PMD / PMT / AAB), ajoutez-les au champ extra_info avec les balises #PMD#, #PMT# et #AAB#.