API v1
REST API für Factuur.software. Teil des Pro-Abonnements. JSON ein und aus, Bearer-Authentifizierung.
Authentifizierung
Sende deinen API-Schlüssel in der Authorization-Header mit:
Authorization: Bearer JOUW_SLEUTEL
Generiere deinen Schlüssel über Profil, unter API-Zugang. Der Schlüssel ist einmal sichtbar - danach speichern wir nur einen Hash. Verloren? Ziehe ihn zurück und generiere einen neuen.
Rate limit
1000 Anfragen pro Stunde pro Benutzer. Darüber folgt HTTP 429.
Endpoints
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | /api/v1/me | profil, abonnement, features und verbrauch |
| GET | /api/v1/invoices | rechnungen (nicht archiviert); abfrage: von, bis (YYYY-MM-DD), limit (max 1000), offset |
| GET | /api/v1/invoices/{id} | eine rechnung mit zeilen und kunde |
| POST | /api/v1/invoices | erstelle rechnung; invoice_number leer = automatische nummerierung, zeilen optional |
| PUT | /api/v1/invoices/{id} | ändere status, invoice_number, issue_date, due_date, notes oder customer_id |
| DELETE | /api/v1/invoices/{id} | archiviert die Rechnung (gesetzliche Aufbewahrungspflicht, keine endgültige Löschung) |
| GET | /api/v1/customers | kunden; abfrage: limit, offset |
| GET | /api/v1/customers/{id} | ein kunde |
| POST | /api/v1/customers | kunde erstellen; name ist erforderlich |
| PUT | /api/v1/customers/{id} | kundenfelder ändern |
| DELETE | /api/v1/customers/{id} | kunde löschen; 409 solange noch rechnungen daran hängen |
| GET | /api/v1/expenses | ausgaben; abfrage: von, bis (YYYY-MM-DD), limit, offset |
| GET | /api/v1/expenses/{id} | eine ausgabe |
| POST | /api/v1/expenses | ausgabe erstellen |
| PUT | /api/v1/expenses/{id} | ausgabe ändern; betrag und mwst werden neu berechnet |
| DELETE | /api/v1/expenses/{id} | ausgabe löschen |
Statuscodes
200/201erfolgreich401Bearer-Token fehlt oder ist ungültig403abonnement bietet keinen API-Zugang404nicht gefunden409konflikt, zum beispiel kunde mit rechnungen löschen422ungültige payload429rate limit überschritten
beispiele
curl -H "Authorization: Bearer JOUW_SLEUTEL" https://factuur.software/api/v1/me
curl "https://factuur.software/api/v1/invoices?from=2026-01-01&limit=50" -H "Authorization: Bearer JOUW_SLEUTEL"
curl -X POST -H "Authorization: Bearer JOUW_SLEUTEL" -H "Content-Type: application/json" -d '{"customer_id":1,"lines":[{"description":"Consultancy","quantity":8,"unit_price":95,"tax_rate":21}]}' https://factuur.software/api/v1/invoices
curl -X PUT -H "Authorization: Bearer JOUW_SLEUTEL" -H "Content-Type: application/json" -d '{"status":"betaald"}' https://factuur.software/api/v1/invoices/123