Factur-X chez CashFacture

Implementation EN16931 — PDF/A-3B conforme veraPDF, XML CII valide par les schematrons FNFE-MPE et CTC France, transmission via PDP immatriculée.

Profil EN16931PDF/A-3B veraPDF 144/144Schematron FNFE-MPE 1.08CTC FR Flux 2 v1.3.0

1. Qu'est-ce que Factur-X ?

Factur-X est le format hybride franco-allemand de facture électronique conforme à la norme européenne EN16931. C'est le format de référence pour la réforme française de la facturation électronique 2026, maintenu par le FNFE-MPE (Forum National de la Facture Électronique).

Une facture Factur-X est un seul fichier : un PDF/A-3 lisible par un humain, dans lequel est embarque un fichier XML structure (CrossIndustryInvoice, ou CII) lisible par les machines. Le PDF et le XML representent la même facture — c'est l'essence du format hybride.

CashFacture emet exclusivement au profil EN16931, le plus complet et le seul accepte sans restriction par toutes les PDP immatriculées pour les flux B2B français.

PDF/A-3B

Norme ISO 19005-3 d'archivage long terme. Niveau B (Basic).

XML CII

CrossIndustryInvoice 100pD22B (UN/CEFACT), profil EN16931.

factur-x.xml

Nom et emplacement de l'attachement embarque, normalise par le FNFE-MPE.

2. Les Business Terms valides avant émission

Avant chaque finalisation, CashFacture vérifié programmatiquement la présence des Business Terms (BT) bloquants definis par la norme EN16931. Toute facture incomplète est refusée avec la liste exacte des champs manquants — aucune émission non conforme n'est possible.

Document

  • BT-1 Numéro de facture
  • BT-2 Date d'émission
  • BT-9 Date d'échéance
  • BT-10 Référence acheteur

Vendeur

  • BT-27 Nom du vendeur
  • BT-30 SIREN vendeur
  • BT-34 Email vendeur
  • BT-35 Adresse vendeur
  • BT-37 Ville vendeur
  • BT-38 Code postal vendeur
  • BT-40 Pays vendeur

Acheteur

  • BT-44 Nom de l'acheteur
  • BT-50 Adresse acheteur
  • BT-52 Ville acheteur
  • BT-53 Code postal acheteur
  • BT-55 Pays acheteur

Lignes

  • BG-25 Au moins une ligne de facture
  • BT-129 Quantité (par ligne)
  • BT-146 Prix unitaire HT (par ligne)
  • BT-152 Taux TVA (par ligne)
  • BT-153 Désignation (par ligne)

Totaux

  • BT-106 Somme des lignes HT
  • BT-109 Total HT
  • BT-110 Total TVA
  • BT-112 Total TTC

Source : backend/apps/invoicing/validators.py — valide par la suite de tests CI 208/208.

3. Architecture XML CII

Le XML embarque suit le schéma CrossIndustryInvoice 100pD22B de l'UN/CEFACT, avec les namespaces rsm, ram et udt. Le profil est déclare via le GuidelineSpecifiedDocumentContextParameter avec l'identifiant urn:cen.eu:en16931:2017.

Le bloc BusinessProcessSpecifiedDocumentContextParameter précise le processus métier (A1 pour une facture commerciale standard) — il est obligatoire pour les schematrons CTC France.

<?xml version="1.0" encoding="UTF-8"?>
<rsm:CrossIndustryInvoice
  xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
  xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
  xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">

  <rsm:ExchangedDocumentContext>
    <ram:BusinessProcessSpecifiedDocumentContextParameter>
      <ram:ID>A1</ram:ID>
    </ram:BusinessProcessSpecifiedDocumentContextParameter>
    <ram:GuidelineSpecifiedDocumentContextParameter>
      <ram:ID>urn:cen.eu:en16931:2017</ram:ID>
    </ram:GuidelineSpecifiedDocumentContextParameter>
  </rsm:ExchangedDocumentContext>

  <rsm:ExchangedDocument>
    <ram:ID>CF-2026-0001</ram:ID>
    <ram:TypeCode>380</ram:TypeCode>
    <ram:IssueDateTime>
      <udt:DateTimeString format="102">20260411</udt:DateTimeString>
    </ram:IssueDateTime>
  </rsm:ExchangedDocument>

  <!-- ... SellerTradeParty / BuyerTradeParty / IncludedSupplyChainTradeLineItem ... -->

</rsm:CrossIndustryInvoice>

Schematrons valides

  • • CII_D22B_XSD CrossIndustryInvoice_100pD22B.xsd
  • • FACTUR-X_1.08_EN16931.xslt (FNFE-MPE)
  • • BR-FR-Flux2-Schematron-CII_V1.3.0.xsl (CTC FR)

Pipeline de génération

  • • Rendu HTML/CSS templates Django
  • • WeasyPrint 65.1 → PDF/A-3B
  • • facturx 3.3 → embed XML CII
  • • Validation veraPDF 1.24.2 en CI

4. Transmission via PDP immatriculée

CashFacture est un Opérateur de Dématérialisation (OD) : nous generons la facture conforme et la confions à une Plateforme de Dématérialisation Partenaire (PDP) immatriculée auprès de la DGFiP. La PDP est responsable de la transmission vers le PPF ou vers la PDP de l'acheteur.

  1. 1

    Génération interne

    Validation BT EN16931 + rendu PDF/A-3B + embed XML CII conforme schematrons.

  2. 2

    Upload PDP (multipart/form-data)

    Envoi à la PDP avec idempotency_key, signature et métadonnées vendeur/acheteur.

  3. 3

    Validation PDP

    La PDP rejoue les schematrons et vérifie le SIRET acheteur dans le répertoire SIRENE.

  4. 4

    Routage PPF / PDP destinataire

    La PDP transmet au PPF ou directement à la PDP de l'acheteur selon son enregistrement.

  5. 5

    Cycle de statuts fiscaux

    api:uploaded → api:validated → fr:200 (reçue) → fr:201 (acceptée) → fr:202 (encaissée). Aucune régression possible.

5. Calendrier DGFiP de la réforme

1er septembre 2026

Réception obligatoire

Toutes les entreprises françaises, sans exception de taille, doivent être en mesure de recevoir des factures électroniques au format Factur-X via une PDP immatriculée.

1er septembre 2026

Émission GE et ETI

Les Grandes Entreprises et Entreprises de Taille Intermédiaire doivent émettre électroniquement.

1er septembre 2027

Émission TPE et PME

Toutes les entreprises, y compris TPE et PME, doivent émettre leurs factures B2B au format électronique.

E-reporting

Transmission de données

Les opérations B2C et internationales font l'objet d'un e-reporting periodique vers l'administration via la même PDP.

CashFacture est déjà conforme aux deux échéances. Vous pouvez émettre des factures EN16931 valides des aujourd'hui et les transmettre via PDP immatriculée, sans attendre votre date d'obligation.

6. FAQ technique

EN16931 est le profil exige par la réforme française pour la transmission B2B via PDP. Les profils BASIC et MINIMUM sont insuffisants pour passer les schematrons FNFE-MPE et le bloc CTC France (BR-FR-Flux2). CashFacture généré systematiquement au profil EN16931 pour garantir l'acceptation par toutes les PDP.

Oui. Chaque facture est validée programmatiquement par veraPDF 1.24.2 (validateur référence du consortium PDF Association). La validation passe 144/144 règles et 4790/4790 checks PDF/A-3B. Le test test_7_verapdf_pdfa3b_compliance fait partie de la suite CI : aucun PDF non-conforme ne peut être déployé.

CII_D22B_XSD/CrossIndustryInvoice_100pD22B.xsd (XSD UN/CEFACT), FACTUR-X_1.08_EN16931.xslt (schematron FNFE-MPE EN16931), et BR-FR-Flux2-Schematron-CII_V1.3.0.xsl (schematron CTC France). Les trois passent avec 0 failure côté sandbox SuperPDP.

Le rendu HTML/CSS est compile en PDF/A-3B par WeasyPrint 65.1 (option pdf_variant=pdf/a-3b), puis le XML CII généré est embarque comme attachement nomme factur-x.xml via la librairie facturx 3.3 (generate_from_binary). Le fichier XML est extractible par n'importe quel lecteur PDF/A-3 compatible.

Non, jamais directement. CashFacture est un Opérateur de Dématérialisation (OD) qui délégué la transmission à une Plateforme de Dématérialisation Partenaire (PDP) immatriculée auprès de la DGFiP. La PDP route ensuite la facture vers le PPF (Portail Public de Facturation) ou directement vers la PDP de l'acheteur.

Le statut bascule en rejetée_pdp dans votre espace, avec le motif renvoyé par la PDP (champs manquants, SIRET inconnu du répertoire SIRENE, format invalide, etc.). Vous corrigez la donnée source dans CashFacture puis re-émettez. Aucune transmission rejetée n'est considérée comme émise du point de vue fiscal.

Oui pour l'émission. CashFacture génère du Factur-X EN16931 conforme aux schematrons exiges et le transmet via PDP immatriculée. Pour la réception, l'obligation s'applique à toutes les entreprises au 1er septembre 2026 — votre espace CashFacture est déjà capable de recevoir et tracer les factures entrantes via la même PDP.

L'équipe technique CashFacture. Le code est sous tests automatises (8 tests dédiés, dont validation veraPDF programmatique) exécutés à chaque push GitHub Actions. Toute régression de conformité bloque le déploiement.

Émettez votre première facture Factur-X conforme

Essai gratuit 7 jours. Conformité EN16931 garantie dès la première facture.