ERP über die API
Dein ERP oder Rechnungsprogramm holt die Zeiten über die REST-API ab und meldet zurück, welche Einträge abgerechnet sind. Der Delta-Sync liefert nur, was sich seit dem letzten Abruf geändert hat; der Abrechnungslauf markiert Einträge mit deiner Rechnungsnummer und sperrt sie. Beides gehört zu Premium.
- Lege als Inhaber oder Admin unter Einstellungen, API und Geräte einen Token mit den Rechten
readundbillingan. Er erscheint nur einmal. - Hol beim ersten Abruf alle Einträge ohne Cursor und merk dir
meta.next_cursoraus der Antwort. - Frag danach immer mit dem gemerkten Cursor. Du bekommst nur geänderte Einträge, gelöschte mit gesetztem
deleted_at. Antwortet die API mit 410, ist der Cursor älter als 90 Tage: dann ohne Cursor neu beginnen und die Kopie ersetzen. - Nach der Rechnung legst du einen Abrechnungslauf an, zuerst mit
"dry_run": truezur Probe. Die Einträge sind danach abgerechnet und gesperrt.
Zeiten abholen, erst ohne, dann mit Cursor:
curl "https://api.horaka.com/v1/time-entries/changes?cursor=0" -H "Authorization: Bearer DEIN_TOKEN"
curl "https://api.horaka.com/v1/time-entries/changes?cursor=CURSOR" -H "Authorization: Bearer DEIN_TOKEN"
Kunden mit ihren IDs, danach alles Offene eines Kunden bis zum Monatsende abrechnen:
curl https://api.horaka.com/v1/clients -H "Authorization: Bearer DEIN_TOKEN"
curl -X POST https://api.horaka.com/v1/billing-runs \
-H "Authorization: Bearer DEIN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"filter": {"client_id": 4, "until": "2026-10-31"}, "invoice_ref": "RE-2026-0042", "dry_run": true}'
Statt regelmäßig zu fragen, kann Horaka dein ERP auch bei jeder Änderung benachrichtigen: lege dafür unter Einstellungen, Webhooks einen Webhook an. Alle Felder, Filter und Fehlercodes beschreibt die API-Doku.