write_facturx.json

Die JSON-Datei des Beispiels „Factur-X: die elektronische Rechnung“. Die elektronische Rechnung, die das französische Recht seit September 2026 verlangt: eine Datei, eine Seite, die ein Mensch liest, und dieselbe Rechnung darin als XML. Danach ist nichts abzugleichen, denn es gibt immer nur eine Rechnung.

JSON 89 Zeilen

Diese Datei ist eine Anfrage: Eine Anwendung sendet sie über das Netz an den Server, der das PDF erzeugt und zurücksendet. Sie erzeugt dieselbe Seite wie die Rust- und die Python-Fassung dieses Beispiels. Eine Anfrage nennt jede Datei, die sie verwendet, nie ihren Inhalt; der Aufruf trägt die Anfrage und die Dateien zusammen. Eine Schrift, die der Server bereits vorhält, etwa DejaVuSans, wird ohne Anhang genannt. Senden Sie die Anfrage an die Adresse, die die API-Seite angibt.

Diese Anfrage nennt Dateien, die sie nicht trägt: invoice_xml. Jede davon reist neben der Anfrage, im selben Aufruf, als mitgelieferter Teil, genau so benannt, wie die Anfrage sie hier nennt — die Beschreibung sagt, welcher Name welche Rolle spielt, Sie benennen Ihre Dateien also, wie Sie möchten. Eine Anfrage, die eine Datei nennt, von der der Aufruf nichts trägt, wird abgelehnt.

Wofür dieses Beispiel da ist

Seit dem 1. September 2026 muss jedes umsatzsteuerpflichtige Unternehmen in Frankreich eine elektronische Rechnung empfangen können, und die großen und mittleren müssen ihre in dieser Form versenden. Kleinere Unternehmen folgen am 1. September 2027. Eine Rechnung, die nur eine gut gemachte Seite ist, zählt nicht mehr als Rechnung, und das Nichtausstellen in elektronischer Form wird mit 50 € pro Rechnung geahndet, bis zu 15 000 € im Jahr.

Was dieses Beispiel zeigt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
{
  "items": [
    {
      "type": "text",
      "rect": {
        "llx": 72.0,
        "lly": 760.0,
        "urx": 520.0,
        "ury": 779.2
      },
      "content": [
        "Invoice No. 1964413"
      ],
      "font": "DejaVuSans",
      "font_size": 16.0
    },
    {
      "type": "text",
      "rect": {
        "llx": 72.0,
        "lly": 728.0,
        "urx": 520.0,
        "ury": 741.2
      },
      "content": [
        "Issued 14 July 2026 — due within 30 days"
      ],
      "font": "DejaVuSans",
      "font_size": 11.0
    },
    {
      "type": "text",
      "rect": {
        "llx": 72.0,
        "lly": 706.0,
        "urx": 520.0,
        "ury": 719.2
      },
      "content": [
        "Rendering engine development .............. 4 250.00 EUR"
      ],
      "font": "DejaVuSans",
      "font_size": 11.0
    },
    {
      "type": "text",
      "rect": {
        "llx": 72.0,
        "lly": 684.0,
        "urx": 520.0,
        "ury": 697.2
      },
      "content": [
        "VAT at 20 % ................................. 850.00 EUR"
      ],
      "font": "DejaVuSans",
      "font_size": 11.0
    },
    {
      "type": "text",
      "rect": {
        "llx": 72.0,
        "lly": 662.0,
        "urx": 520.0,
        "ury": 676.4
      },
      "content": [
        "Total due ................................. 5 100.00 EUR"
      ],
      "font": "DejaVuSans",
      "font_size": 12.0
    }
  ],
  "metadata": {
    "title": "Invoice No. 1964413",
    "author": "Olivier Pons",
    "subject": "An electronic invoice, in the Factur-X format",
    "producer": "hqf-pdf",
    "created": "2026-07-14T09:30:00+02:00"
  },
  "archive": "pdfa3b",
  "invoice": {
    "xml": "invoice_xml",
    "profile": "MINIMUM",
    "version": "1.0",
    "relationship": "data",
    "issued": "2026-07-14T09:30:00+02:00"
  }
}