Was ist die Kasseneck API?
Die Kasseneck API setzt die österreichische Registrierkassensicherheitsverordnung (RKSV) um (BAO §131, BMF-DEP). Jeder Beleg wird kryptografisch signiert (ES256) und in eine manipulationssichere Kette (DEP – Datenerfassungsprotokoll) eingehängt. Kasseneck ist ein Produkt der Kreiseck.
Offizielles SDK (Dart / Flutter)
Für Flutter- und Dart-Apps gibt es das offizielle Paket
kasseneck_api
auf pub.dev — der schnellste Weg zur Integration ohne manuelle
HTTP-Aufrufe.
# pubspec.yaml
dependencies:
kasseneck_api: ^1.0.0
Basis-URL
Alle direkten Aufrufe laufen über HTTPS unter der versionierten Basis:
https://api.kasseneck.at/v2/<endpoint>
Authentifizierung
Geräte-Endpunkte verwenden zwei Merkmale im HTTP-Header:
| Header | Beschreibung |
|---|---|
Authorization: Bearer <api_key> | Geräte-/API-Schlüssel (kr_live_… bzw. kr_test_…). |
cashregister-token: <token> | Kassen-Token der Registrierkasse (cb_live_… / cb_test_…). |
Test- und Live-Umgebung
Schlüssel mit dem Präfix kr_test_ arbeiten in einer
Sandbox (production:false) mit Testsignatur —
strukturell valide, aber keine rechtsgültigen RKSV-Belege. Ideal zum
Integrieren. kr_live_ erzeugt echte, rechtsgültige Belege.
Antwortformat
JSON-Endpunkte liefern HTTP 200 mit einem einheitlichen Envelope:
{ "status": "success" | "error", "message": "...", "data": { ... } }
Fachliche Fehler kommen ebenfalls mit HTTP 200 und status: "error".
Endpunkte
POST /v2/createReceipt
Erstellt und signiert einen Beleg. Der erste Beleg einer Kasse muss ein start-Beleg sein, danach folgen standard-Belege. Erfordert das aktive Modul registrierkasse.
receiptType: start, standard, zero, cancellation, training.
POST /v2/getReceipt
Ruft einen zuvor erstellten Beleg anhand seiner receiptId ab.
GET /v2/downloadReceipt?fullReceiptId=…
Liefert das Beleg-PDF direkt. Autorisierung über den verschlüsselten fullReceiptId-Token aus der createReceipt-Antwort (Capability-Link, kein API-Schlüssel nötig).
Schnellstart
1) Startbeleg (einmalig zuerst pro Kasse):
curl -X POST https://api.kasseneck.at/v2/createReceipt \
-H "Authorization: Bearer kr_test_…" \
-H "cashregister-token: cb_test_…" \
-H "Content-Type: application/json" \
-d '{"params":{"receiptType":"start"}}'
2) Umsatzbeleg:
curl -X POST https://api.kasseneck.at/v2/createReceipt \
-H "Authorization: Bearer kr_test_…" \
-H "cashregister-token: cb_test_…" \
-H "Content-Type: application/json" \
-d '{"params":{"receiptType":"standard","paymentMethod":"cash",
"items":[{"name":"Kaffee","quantity":2,"unitPriceCents":350,"vatRate":20}]}}'
Die Antwort enthält den signierten Beleg (data.receipt.sig,
data.receipt.qr) und den fullReceiptId-Token für
das PDF.
Vollständige Schemas, alle Felder und Fehlercodes findest du in der interaktiven Referenz und der maschinenlesbaren OpenAPI-Spezifikation. Zugang und Schlüssel auf Anfrage.