Ir al contenido
Log in

Gestionar la facturación electrónica DGFiP en B2Brouter

La reforma francesa de facturación electrónica obliga a las empresas francesas sujetas al IVA a transmitir las facturas B2B y los datos de IVA a través de una Plateforme Agréée (PA) certificada por la DGFiP. B2Brouter es una PA certificada: os conectáis con nosotros y nos encargamos del registro en el PPF, la transmisión de los documentos, los informes de IVA y todo el ciclo de vida de los estados.

Piloto gratuito hasta septiembre de 2026 — Antes de la fecha de obligatoriedad, cualquier empresa que entre en el piloto dispone de la plataforma gratuitamente para hacer pruebas reales. Las facturas e informes enviados durante el piloto no cuentan para los resets contables posteriores. Además, tendréis acceso completo a B2Brouter durante el piloto: podréis gestionar integraciones y automatizaciones a través de nuestros conectores y de nuestra API.

B2B ≠ B2G — DGFiP gestiona el B2B a través de la red Peppol con el esquema 0225 (FRCTC). Chorus Pro es el circuito B2G para facturar a las administraciones francesas. Son dos circuitos independientes: una empresa puede facturar B2B vía DGFiP y B2G vía Chorus Pro en paralelo.

PA y PDP son lo mismo — En documentos oficiales de la DGFiP, en el Portail Public de Facturation y en otros programas del sector, veréis que se utilizan indistintamente los términos PA (Plateforme Agréée) y PDP (Plateforme de Dématérialisation Partenaire). Se refieren al mismo rol. El término oficial y vigente es PA.


Cuando activáis DGFiP, elegís uno de los dos modos. Podéis cambiar de uno a otro en cualquier momento.

Solo recepción (Annuaire only) — modo por defecto al activar. Queréis recibir facturas de vuestros proveedores pero aún no emitís vía DGFiP. B2Brouter registra vuestro SIREN en el Annuaire del PPF con transporte Peppol 0225. No genera informes de IVA ni mensajes CDAR. No os obliga a emitir vía Peppol.

e-Reporting completo — piloto (voluntario) hasta el 2026-09-01; obligatorio a partir de esa fecha. Queréis emitir facturas B2B vía DGFiP y generar automáticamente los informes de IVA. Todo lo anterior + generación y envío al PPF de los informes Flux 1 (B2B doméstico) y Flux 10 (B2C, transfronterizo).


  • Una cuenta B2Brouter.
  • El SIREN (9 cifras) o SIRET (14 cifras) de la empresa. Si tenéis varios establecimientos (SIRETs bajo el mismo SIREN), se modelan como unidades organizativas dentro de la misma cuenta — no como cuentas separadas. Un SIREN = una cuenta.
  1. Configuración de la cuentaImpuestose-Reporting France.
  2. AñadirDGFiP.
  3. Rellenad el formulario:
    • Fecha de inicio — cuándo comienza la declaración de IVA. Hoy o posterior.
    • ModoSolo recepción (por defecto) o e-Reporting completo. Podéis cambiarlo más adelante.
    • Si elegís e-Reporting completo, también:
      • Tipo de operaciónServicios, Mercancías o Mixto (en caso de duda: Mixto).
      • Código NAF — código de actividad INSEE (p. ej. 62 para servicios TIC). Aparece en vuestro extracto Kbis.
      • Tamaño de la empresaMicro, PME, ETI o Grande Entreprise según empleados y cifra de negocio.
    • E-mail del declarante — recibirá las notificaciones fiscales.
  4. Guardar.

Registro en el Annuaire — La publicación del SIREN en el Annuaire del PPF puede tardar hasta 24 horas, tanto en producción como en pruebas. Es un ritmo de infraestructura de la DGFiP, no de B2Brouter. Hasta que no se haya propagado, no podréis emitir ni recibir facturas DGFiP.

Transporte Peppol previo — Si la cuenta ya tenía un transporte Peppol (p. ej. de otra PA o de otro uso), queda reemplazado por el transporte 0225. Si el SIREN estaba registrado en otra PA, B2Brouter cierra aquella entrada en el Annuaire y abre la nueva automáticamente.

Si el registro falla — Un SIREN inválido (Luhn) o una incidencia temporal de la DGFiP revierte la configuración y muestra un error. Corregid los datos y volved a guardar.

Una vez guardada la configuración, id a Configuración de la cuentaTransportesPeppol. Veréis tres estados de publicación, cada uno con valores not_published, processing o published:

  • SML — el registro global en el SML de Peppol.
  • SMP — el servicio de metadatos (en B2Brouter sigue al SML).
  • Peppol Directory — la publicación en el directorio público de Peppol.

Cuando los tres están en published, cualquier otra plataforma puede localizaros y enviaros facturas.


Antes de emitir una factura, el cliente debe existir en los contactos. B2Brouter autocompleta los identificadores a partir de lo que introduzcáis.

  1. ContactosNuevo contacto.
  2. Seleccionad France como país.
  3. Elegid el tipo de identificador e introducid el valor:
    • SIREN — 9 cifras (ej. 123456789).
    • SIRET — 14 cifras (ej. 12345678900012).
    • Número de IVAFR{kk}{siren} con kk dos dígitos de control (ej. FR32123456789).
  4. Validar identificador y continuar.
  5. Rellenad razón social, dirección, código postal y ciudad.
  6. En Método de entrega, B2Brouter selecciona automáticamente Peppol Network y el formato France UBL Invoice CIUS. Confirmad que el identificador Peppol es correcto.
  7. ContinuarGuardar.

Tres identificadores diferentes — En la ficha del contacto conviven tres códigos distintos, cada uno con un papel propio:

  • Identificador de empresa (cin_scheme): 0002 para SIREN (9 cifras) o 0009 para SIRET (14 cifras).
  • Identificador fiscal / IVA (tin_scheme): 9957; valor FR{kk}{siren}.
  • Identificador Peppol (pin_scheme): 0225; valor SIREN o SIREN_SIRET.

Si veis 0002 en la UI, es el identificador empresarial (no el Peppol). El Peppol para DGFiP es siempre 0225.

Autocompletado — Para cuentas DGFiP activadas a partir del 31/03/2026, B2Brouter deriva automáticamente los tres identificadores entre sí: si introducís el SIREN, os genera el número de IVA y el Peppol; si introducís el número de IVA, os genera el SIREN y el Peppol.

Contactos antiguos — Los contactos creados antes de activar DGFiP pueden no tener el número de IVA. Si emitís factura sobre uno de estos contactos, aparecerá el error “El número de TVA del cliente es obligatorio para la declaración DGFiP”. Editad el contacto, añadid el número de IVA y volved a emitir.

Cuando creáis un contacto francés, B2Brouter verifica automáticamente su presencia en el Annuaire:

  • Registrado en el Annuaire → las facturas se transmiten vía Peppol UBL y generan informe Flux 1.
  • No registrado → las facturas se crean, pero no generan informe Flux 1 (la submisión sería inválida). El cliente deberá registrarse con una PA.
  • Verificación pendiente — la creación no se bloquea: la factura procede y se genera informe. La verificación llega en un momento posterior.

Contactos no franceses — Cualquier factura con un contacto de otro país genera automáticamente un informe Flux 10 (e-Reporting transfronterizo). Usad el esquema Peppol correspondiente al país del contacto en el campo de identificador.


  1. FacturasCrear factura.
  2. Elegid el contacto y Continuar.

Verificad que Transporte muestra Peppol Network y Formato muestra France UBL Invoice CIUS. Si es así, la factura se transmitirá por la red DGFiP.

  • Número de factura — secuencial único. Máximo 20 caracteres. Permitidos: A-Z 0-9 -+_/. No se aceptan espacios al principio, al final ni consecutivos.
  • Fecha de factura y Fecha de vencimiento — obligatorias.
  • DivisaEUR para facturas domésticas. Para divisas extranjeras, rellenad el tipo de cambio a EUR en la fecha de factura.

Para cada línea: descripción, cantidad, precio unitario sin IVA y tipo de IVA.

Tipos de IVA franceses:

  • 20 % — tipo normal.
  • 10 % — restauración, obras, transportes.
  • 5,5 % — alimentación, libros, energía.
  • 2,1 % — prensa, medicamentos reembolsables.
  • 0 % — Exento — exenciones del CGI (requiere código VATEX-FR-CGI…).
  • 0 % — Zero-rate — franchise en base de TVA (VATEX-FR-FRANCHISE).
  • 0 % — Autoliquidación — reverse charge (VATEX-FR-AE).

Exención de IVA — código obligatorio — Si aplicáis 0 % con exención, debéis indicar el código VATEX-FR-… correspondiente en el comentario de la línea. Sin el código, la factura se crea pero no se transmite al PPF: queda encallada y hay que eliminarla y recrearla con el código correcto.

Códigos VATEX más usados:

  • VATEX-FR-FRANCHISE — franchise en base de TVA (micro-empresas). B2Brouter lo mapea a categoría Z (zero-rate) en el XML.
  • VATEX-FR-AE — autoliquidación (reverse charge).
  • VATEX-FR-CGI261-1 — servicios médicos.
  • VATEX-FR-CGI261-3 — enseñanza y formación profesional.
  • VATEX-FR-CGI261-5 — organismos sin ánimo de lucro.
  • VATEX-FR-CGI261C-1 — operaciones bancarias y financieras.
  • VATEX-FR-CGI261C-2 — seguros y reaseguros.
  • VATEX-FR-CNWVAT — no establecido en Francia.

Para la lista completa (más de 20 códigos), consultad la guía técnica de desarrolladores: https://developer.b2brouter.net/docs/dgfip.

Información de pago — campos obligatorios (B2B)

Sección titulada «Información de pago — campos obligatorios (B2B)»

Tres campos son obligatorios para facturas B2B francesas. Si falta alguno, la factura no se crea: aparece un error explícito en cada campo.

  • Información de pago (código DGFiP PMD) — referencia y menciones legales (forma social, capital, RCS).
  • Método de pago (texto) (código DGFiP PMT) — método + IBAN/BIC.
  • Condiciones de pago (código DGFiP AAB) — plazo, penalizaciones de retraso, descuento por pago anticipado.

Ejemplos (se mantienen en francés — son menciones legales que aparecen impresas en la factura final):

Información de pago (PMD):
FA-2026-0048 — Exemplar SAS, SAS au capital de 50 000 EUR, RCS Paris 123 456 789
Método de pago (PMT):
Virement bancaire, IBAN FR00 0000 0000 0000 0000 0000 000, BIC XXXXFRPP
Condiciones de pago (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é.

Estos campos no son obligatorios para facturas B2C (tickets a particulares).

Método de pago (códigos habituales): 4 transferencia bancaria, 58 transferencia SEPA, 2 domiciliación, 59 domiciliación SEPA, 19 tarjeta bancaria, 11 cheque, 13 otros (usad el campo texto para describirlo).

  1. Guardar y previsualizar — revisad la factura.
  2. Emitir y enviar — B2Brouter genera el documento (UBL, CII o Factur-X según el contacto), lo deposita en el PPF vía Peppol y crea automáticamente el informe de IVA.

En la ficha de una factura emitida veréis el estado actual y, en caso de error o rechazo, el motivo exacto.

Envío en curso → Enviada → Registrada → Aceptada → Pagada
↘ Rechazada
↘ Error
  • Envío en curso — la factura se ha creado y está en cola para enviar al PPF.
  • Enviada — B2Brouter ha depositado el documento en el PPF.
  • Registrada ✅ — la DGFiP ha validado y aceptado la factura. Estado de conformidad.
  • Aceptada — el comprador ha aprobado la factura.
  • Rechazada — el comprador ha rechazado la factura.
  • Pagada — el comprador ha declarado la factura como pagada. Funcionalidad en desarrollo.
  • Error — error de transmisión o rechazo del PPF. El motivo aparece en la ficha.

Dos momentos de respuesta del PPF — Las respuestas del PPF llegan en dos fases:

  1. Recepción técnica (rápida) — El PPF confirma que ha recibido y validado técnicamente el documento. En ese momento la factura queda como Enviada.
  2. Registro definitivo (una vez al día) — La DGFiP procesa los documentos recibidos en lote, una vez al día, y es en este paso cuando decide si la factura queda Registrada o Rechazada. Puede tardar hasta 24 horas desde el envío.

Configurad webhooks en Configuración → Webhooks si queréis notificación inmediata cuando llegue el registro.

«Pagada» — Actualmente este estado no se puede marcar desde la UI ni desde la API. El CDAR 212 (Encaissée) está previsto para una versión futura.

Una factura en estado Error no se puede retransmitir. Hay que eliminarla, corregir los datos y crear una nueva.

  1. Abrid la factura y leed el motivo de error.
  2. Eliminad la factura.
  3. Corregid los datos (contacto, IVA, campos obligatorios…).
  4. Cread y enviad una factura nueva.
  • “Remittance information is required for DGFiP reporting” — campo PMD vacío. Rellenad Información de pago.
  • “Payment information is required for DGFiP reporting” — campo PMT vacío. Rellenad Método de pago (texto).
  • “Payment terms are required for DGFiP reporting” — campo AAB vacío. Rellenad Condiciones de pago.
  • “El número de TVA del cliente es obligatorio para la declaración DGFiP” — contacto sin número de IVA. Editad el contacto y añadid el TIN.
  • “Invoice number too long / invalid chars” — número con >20 caracteres o caracteres no permitidos. Ajustadlo.
  • REJ_COH BT-47 — el SIREN del comprador no existe en el Annuaire del PPF. En producción, el cliente debe registrarse con una PA. En pruebas es esperado (el entorno QAS no contiene todos los SIRENs).
  • Línea exenta sin código VATEX (bloqueo silencioso) — eliminad la factura y recreadla con el código VATEX correcto en el comentario de la línea.
  • parameter_invalid (SIREN) — el SIREN no supera la validación Luhn. Verificadlo.
  • parameter_taken (SIREN) — el SIREN ya está asociado a otra cuenta. Contactad con soporte.

Una nota de crédito anula o rectifica una factura anterior. B2Brouter genera un documento UBL CreditNote con código de tipo 381 y la referencia a la factura original.

  1. Abrid la factura original.
  2. Crear nota de crédito.
  3. Rellenad:
    • El número de la factura original (y la fecha de emisión de aquella factura).
    • Las líneas e importes que queréis rectificar. Podéis introducirlos con signo positivo o negativo — fiscalmente siempre se tratan como importes que restan a lo que se había declarado originalmente, independientemente del signo con el que los rellenéis.
    • Los mismos campos obligatorios de pago (PMD / PMT / AAB).
  4. Guardar y enviar — se transmite al PPF como cualquier factura (Flux 1).

Usad siempre el número y la fecha reales de la factura rectificada, no una referencia interna.


Al tener vuestra cuenta activada (en cualquiera de los dos modos), quedáis registrados en el Annuaire y podéis recibir facturas de los proveedores vía Peppol 0225.

  • Gastos → consultad las facturas entrantes.
  • Abrid una factura para ver el detalle.
  • Aprobar — indicad al proveedor y a la DGFiP que aceptáis la factura (CDAR 205, Approuvée).
  • Rechazar — indicad el rechazo al proveedor y a la DGFiP (CDAR 210, Refusée). Se requiere motivo.
  • Marcar como pagada — CDAR 212, Encaissée. Funcionalidad en desarrollo, todavía no disponible.

Cuando actualizáis el estado, B2Brouter envía el mensaje CDAR correspondiente al PPF y al proveedor automáticamente.

Flux 10 para facturas recibidas — Solo se genera informe si la factura recibida viene de un proveedor no francés. Las facturas de un proveedor francés no requieren declaración por vuestra parte (ya lo hace la PA del proveedor).


7 · Informes de IVA (solo en e-Reporting completo)

Sección titulada «7 · Informes de IVA (solo en e-Reporting completo)»

En modo e-Reporting completo, B2Brouter genera y transmite los informes de IVA automáticamente, sin ninguna acción manual. En modo Solo recepción no se generan.

Se genera un informe por factura. B2Brouter lo deposita en el PPF y, al recibir la respuesta, actualiza el estado.

Todas las facturas B2C y todas las que tienen un destinatario no francés se agrupan en Ledgers diarios. El Ledger se envía al PPF una vez al día (cron a las 02:00 del servidor).

Un mismo día puede producir varios Ledgers según el rol y el tipo:

  • Ledger de transacciones — ventas (rol SE): facturas emitidas transfronterizas y B2C.
  • Ledger de transacciones — compras (rol BY): facturas recibidas de proveedores extranjeros.
  • Ledger de pagos (rol SE): facturas emitidas ya pagadas.

Configuración de la cuentaImpuestose-Reporting France → lista de informes transmitidos.

  • Nuevo — creado y en cola (Flux 1) o acumulándose en el Ledger del día (Flux 10).
  • Enviado — B2Brouter lo ha depositado en el PPF.
  • Recibido — el PPF confirma la recepción (CDV 500, Recevable).
  • Registrado ✅ — la DGFiP lo ha aceptado (CDV 300). Estado final positivo.
  • Rechazado ❌ — la DGFiP lo ha rechazado (CDV 301).
  • Error ❌ — error de transmisión o procesamiento.
  • Anulado — factura anulada después del registro (solo Flux 1).

CDVCompte-Rendu de Validation: es la respuesta asíncrona del PPF. Hay de dos tipos:

  • CDV 500 (Recevable) — llega poco después del envío y confirma que el PPF ha recibido y validado técnicamente el documento. Corresponde al estado Recibido.
  • CDV 300 / 301 (Registrado / Rechazado) — la DGFiP los emite en lote, una vez al día: es el momento en el que decide si acepta o rechaza la declaración. Pueden tardar hasta 24 horas desde el envío.

La mayoría de errores provienen de la factura de origen. Corregid la factura (eliminar + factura nueva) y se genera un informe nuevo automáticamente. Si el mensaje no es claro, contactad con soporte.


B2Brouter elige el formato automáticamente según la configuración del contacto:

  • UBL Peppol France CIUS — por defecto, si el destinatario está registrado en el Annuaire/Peppol.
  • CII France CIUS — variante XML alternativa, si el destinatario la exige.
  • Factur-X — fallback para destinatarios no registrados en el Peppol FR. Es un PDF/A-3 con CII XML embedded; un PDF escaneado o impreso no es Factur-X.

Una vez la factura está en estado Enviada, aparece una opción para descargar el documento transmitido. El formato será UBL o Factur-X según el caso.


9 · Integraciones API (para desarrolladores)

Sección titulada «9 · Integraciones API (para desarrolladores)»

Este manual describe la UI. Si integráis con B2Brouter vía API, la referencia oficial es la Guía DGFiP para desarrolladores — cubre el endpoint Tax Report Settings, la API de Invoices y Contacts, los webhooks de seguimiento de estados y el Directory lookup para verificar si un contacto está registrado en el Annuaire.

Autenticación por API key estática (cabecera X-B2B-API-Key) + versión de API (X-B2B-API-Version). Las funcionalidades específicas de DGFiP requieren versión 2026-04-20 o posterior.

Podéis importar facturas UBL, CII o Factur-X existentes — si el formato no incluye campos nativos de pago (PMD / PMT / AAB), añadidlos al campo extra_info con etiquetas #PMD#, #PMT# y #AAB#.