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.

Résumé

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. La France l'impose progressivement aux entreprises, et à l'œil le fichier reste une facture parfaitement ordinaire.

Techniquement

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

invoice attache au document le XML de facturation en fichier embarqué, l'associe par /AF, et déclare ce qu'il est : le profil de la norme qu'il suit, sa version, son /AFRelationship 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 dont le nom est 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.

Schéma de la requête

  • invoice — objet, facultatif, absent par défaut.
  • invoice.xml — chaîne, obligatoire. Le nom de la partie fournie qui contient le XML. Un nom qui ne désigne aucune partie 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. Nous écrivons la valeur que vous envoyez, sans la changer : rien ici ne la compare au profil de la facture, si bien que ce que le fichier déclare être, c'est à vous de l'énoncer et à vous d'en répondre.
  • invoice.issued — chaîne, obligatoire, au format ISO 8601. Le moment où les données de la facture ont changé pour la dernière fois, et non celui où le PDF a été créé.
  • 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 crée un PDF

Un nom ci-dessous tient lieu de fichier de police : mettez le fichier encodé à sa place, ou envoyez le fichier lui-même à côté de la description, comme une pièce fournie dans le même appel. Une page contient une vraie police déjà encodée, et sa requête part telle quelle.

{
  "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 montre le logiciel de lecture Cent courriers dans un seul fichier Ce que le document dit de lui-même Ce que le document dit de lui-même, dit une seule fois Les notes qu'un programme laisse pour lui-même Les notes qu'un programme laisse sur une page Les données qu'un programme accroche à un passage d'encre Un fichier encore lisible dans des dizaines d'années La norme d'impression que le document revendique Le mot de passe qui l'ouvre, et ce qu'on peut en faire 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, et comment elle est lue Les pièces jointes du document, à côté de ses pages Les pièces jointes, présentées en portefeuille Les pièces jointes d'une page La fiche d'identité que contient une seule page La norme d'accessibilité que le document déclare Les normes contre lesquelles le document fini est mesuré

Où aller ensuite

Toutes les clés JSON d'une requête, en une page Les quarante et un autres réglages d'une requête

Voir les prix Voir les exemples