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
- Der Endnutzer legt in Ihrer Anwendung einen API-Schlüssel an und hinterlegt ihn bei Ihnen.
- Ihre Anwendung sammelt die Rechnungsdaten (Empfänger + Positionen).
POST /api/v1/invoicesmit einem stabilenidempotencyKey→ Rechnung wird erstellt und festgeschrieben, ZUGFeRD kommt zurück.- 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.