Skip to Content
API für EntwicklerÜbersicht & Einstieg

API für Entwickler

Die flstr-REST-API erstellt aus den Daten Ihrer Anwendung eine fertige, festgeschriebene E-Rechnung (ZUGFeRD) und gibt sie zurück – in einem Aufruf. Gedacht für externe Software (z. B. eine Branchen- oder Shop-Anwendung), die Rechnungen automatisch im flstr-Konto ihres Nutzers anlegt.

  • Basis-URL: https://e-rechnung.flstr.de/api/v1
  • Authentifizierung: ein API-Schlüssel als Bearer-Token (siehe API-Schlüssel).
  • Format: JSON rein, JSON raus; die erzeugte Rechnung kommt als Base64 (PDF/A-3 + XML) zurück.

Die API ist ab dem Basic-Tarif nutzbar. Ein Schlüssel eines Free-Kontos wird mit 403 abgelehnt.

Erster Aufruf

Sie brauchen nur einen API-Schlüssel (Konto → API-Schlüssel, ab Basic). Er beginnt mit flstr_live_ und wird genau einmal angezeigt – kopieren Sie ihn sofort.

curl -X POST https://e-rechnung.flstr.de/api/v1/invoices \ -H "Authorization: Bearer flstr_live_DEIN_SCHLUESSEL" \ -H "Content-Type: application/json" \ -d '{ "idempotencyKey": "bestellung-2026-0042", "issueDate": "2026-05-02", "deliveryDate": "2026-04-30", "recipient": { "name": "Beispiel GmbH", "street": "Musterweg 2", "postcode": "80331", "city": "München", "countryCode": "DE" }, "lines": [ { "name": "Beratungsleistung", "quantity": 3, "unitCode": "HUR", "unitPriceCents": 9000, "vatCategory": "S", "vatRatePercent": 19 } ], "paymentDueDate": "2026-05-16", "paymentTerms": "Zahlbar innerhalb von 14 Tagen." }'

Antwort (HTTP 201, gekürzt):

{ "invoiceNumber": "RE-2026-1", "invoiceId": "6f1c…", "status": "finalized", "idempotent": false, "customer": null, "documents": { "xml": { "base64": "PD94bWw…", "filename": "RE-2026-1.xml", "contentType": "application/xml" }, "pdf": { "base64": "JVBERi0…", "filename": "RE-2026-1.pdf", "contentType": "application/pdf" } } }

Das war eine echte, festgeschriebene Rechnung: Sie ist KoSIT-validiert, hat eine lückenlose Nummer und liegt unveränderbar im Archiv. Das documents.pdf.base64 dekodiert zu einer fertigen PDF/A-3-Datei mit eingebettetem XML.

Bevor Sie in Produktion gehen, lesen Sie Idempotenz. Der idempotencyKey ist der wichtigste Teil einer sauberen Anbindung – ohne ihn richtig zu setzen, entstehen bei Wiederholungen (z. B. Webhook-Retries) stille Doppel-Rechnungen.

Der typische Ablauf

  1. Der Endnutzer legt in Ihrer Anwendung einen API-Schlüssel an und hinterlegt ihn bei Ihnen.
  2. Ihre Anwendung sammelt die Rechnungsdaten (Empfänger + Positionen).
  3. POST /api/v1/invoices mit einem stabilen idempotencyKey → Rechnung wird erstellt und festgeschrieben, ZUGFeRD kommt zurück.
  4. Optional später: GET /api/v1/invoices/{id} holt PDF oder XML erneut.

Details: Referenz · Idempotenz · Kunden-Upsert · Fehler.

Was die API nicht tut

Damit keine falschen Erwartungen entstehen:

  • Sie versendet nicht. Die API erstellt die Rechnung, schreibt sie fest und gibt sie zurück – der Versand (E-Mail an den Empfänger) ist Sache Ihrer Anwendung oder erfolgt manuell im flstr-Konto. Ein API-Schlüssel hat bewusst kein Versandrecht.
  • Sie verwaltet keine Artikel. Positionen werden fertig übergeben (Name, Menge, Preis, Steuer); es gibt keinen Artikelstamm-Abgleich über die API.
  • Sie empfängt keine Rechnungen. flstr ist ein Werkzeug für Ausgangsrechnungen – ein Eingangs-Rechnungs-Empfang ist dauerhaft nicht vorgesehen.
  • Sie storniert/korrigiert nicht. Die API erstellt reguläre Rechnungen; Storno und Gutschrift erfolgen im flstr-Konto.