Une facture qu'un humain et une machine lisent

Produire une facture lisible à l'œil et porteuse, dans le même fichier, des données que la comptabilité lit toute seule.

Écrit au premier niveau d'une requête, sous "invoice"

En mots de tous les jours

Écrit pour tout le monde. Il dit ce que cela pose sur une feuille de papier, et ne vous demande rien de plus.

Une facture doit être lue par deux publics. Un humain la regarde et voit les lignes, les montants, la date. Le logiciel de comptabilité, lui, veut les mêmes chiffres rangés dans des cases, pour les enregistrer sans que personne les retape. On peut faire les deux dans un seul fichier : la belle page à regarder, et les données rangées glissées dedans. La France l'impose progressivement aux entreprises, et le fichier reste une facture parfaitement ordinaire à l'œil.

Pour un développeur

Écrit pour celui qui écrit le programme appelant : le modèle, les unités, et les réglages qui portent le poids.

invoice attache au document le XML de facturation et déclare ce qu'il est : le profil de la norme qu'il suit, sa version, sa relation au document, et la date à laquelle les données ont changé pour la dernière fois. Le XML arrive à côté de la requête, dans une partie du formulaire portant le nom donné ici. Une facture demande la norme d'archivage qui autorise un fichier joint : la requête déclare donc "archive": "pdfa3b". L'équipe a figé le nom du fichier joint à factur-x.xml.

Chaque clé, avec son défaut

La référence : quelles clés sont obligatoires, lesquelles sont facultatives, ce que vaut chacune par défaut et quelles combinaisons le serveur décline.

  • invoice — objet, facultatif, absent par défaut.
  • invoice.xml — chaîne, obligatoire. Le nom de la partie fournie portant le XML. Un nom qu'aucune partie ne porte est refusé.
  • invoice.profile — chaîne, obligatoire, écrite comme la norme l'écrit. Cinq valeurs : "MINIMUM", "BASIC WL", "BASIC", "EN 16931", "EXTENDED".
  • invoice.version — chaîne, facultative, "1.0" par défaut. La version de la spécification que le XML suit.
  • invoice.relationship — chaîne, obligatoire, sans valeur par défaut. Cinq valeurs : source, alternative, data, supplement, unspecified. Les profils qui ne portent qu'une partie de la facture sont data, ceux qui la portent entière sont alternative, et l'expéditeur seul sait lequel a été écrit.
  • invoice.issued — chaîne, obligatoire, en ISO 8601. Le moment où les données de la facture ont changé pour la dernière fois, non le moment où le PDF a été fabriqué.
  • La requête déclare "archive": "pdfa3b" : sans norme d'archivage, la facture est refusée, et sous pdfa4 elle l'est aussi, cette partie n'accueillant un fichier que s'il est lui-même archivable.
  • Le nom du fichier attaché est factur-x.xml.

Une requête entière qui le dessine

Envoyez ceci tel quel et un PDF revient. Rien n'en a été retiré.

Un nom ci-dessous tient lieu d'un fichier de police : mettez le fichier encodé à sa place, ou envoyez le fichier lui-même à côté de la description, comme une partie du même appel.

{
  "archive": "pdfa3b",
  "invoice": {
    "xml": "invoice_xml",
    "profile": "MINIMUM",
    "relationship": "data",
    "issued": "2026-08-08T09:30:00+02:00"
  },
  "output_intent": { "identifier": "sRGB", "info": "sRGB IEC61966-2.1" },
  "metadata": {
    "title": "Invoice 2026-014",
    "created": "2026-08-08T09:30:00+02:00"
  },
  "fonts": [{ "name": "body", "data": "PASTE_THE_FONT_FILE_BASE64_HERE" }],
  "items": [
    {
      "type": "text",
      "rect": { "llx": 60, "lly": 740, "urx": 535, "ury": 768 },
      "content": ["Invoice 2026-014 — total 5 100.00 EUR"],
      "font": "body",
      "font_size": 16
    }
  ]
}

La ligne qui l'envoie, en trois langages

Le document dans son ensemble

Les numéros que le lecteur affiche Cent courriers dans un seul fichier Ce que le document dit de lui-même Un fichier lisible dans trente ans L'adresse contre laquelle les liens se lisent La version de PDF que le fichier déclare Ce qu'une image dit d'elle-même

Où aller ensuite

Chaque clé d'une requête, en une page Les trente-deux autres réglages d'une requête

Voir les prix Voir les exemples

Glossaire

norme
Une règle débattue en commission, publiée sous un numéro que n'importe qui peut acheter et lire, et identique pour toutes les entreprises qui s'en réclament. Dire qu'on la suit peut donc être vérifié face au texte. Une façon de faire qui s'est simplement répandue parce qu'elle marchait est une habitude du métier : utile, très suivie, et qui ne répond devant aucun texte.
Factur-X
Une facture qui sert deux lecteurs à la fois. Pour la personne qui la reçoit, c'est une page ordinaire. Pour son logiciel de comptabilité, ce sont les mêmes montants rangés à l'intérieur du même fichier, sous une forme qu'il lit tout seul : plus rien à retaper. La loi française l'impose entre entreprises.
profil de couleur
Un fichier qui dit à quoi une couleur ressemble pour de vrai. Sans lui, le même rouge ne sort pas pareil sur un écran et sur du papier. Un document destiné à l'imprimerie emporte donc avec lui le profil sur lequel ses couleurs ont été choisies.
requête
Un appel au service : vous envoyez ce que le document doit dire, et vous recevez le document. Votre facture compte ces appels, un par document. Le nombre de pages d'un document n'est jamais compté.

Tous les mots que le site explique