Diese Seite zeigt typische Anfragen an die Public API. Die Beispiele decken nahezu alle verfügbaren Vorgänge ab: lesende Abfragen sowie das asynchrone Einspielen von Bestellungen und Zahlungen.
Die verwendeten IDs und Beträge sind Platzhalter; ersetzen Sie <ihr-api-token> durch Ihren Token. Grundlagen zu Authentifizierung, Paginierung und Zeitzonen finden Sie unter Erste Schritte.
Kassenabschlüsse abfragen
Schichten (Kassenabschlüsse) lassen sich nach Kassa und Zeitraum filtern:
curl -H "Authorization: Token <ihr-api-token>" \
"https://api.diekasse.app/v1/public/shifts/?sales_point=450e8400-e29b-41d4-a716-446655440001×tamp__gte=2026-06-01T00:00:00Z×tamp__lte=2026-06-30T23:59:59Z"
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"sales_point": "450e8400-e29b-41d4-a716-446655440001",
"started": "2026-06-15T09:00:00Z",
"started_by_username": "kassa_001",
"ended": "2026-06-15T17:30:00Z",
"ended_by_username": "kassa_001",
"timestamp": "2026-06-15T17:30:00Z"
}
]
}
Hintergrund zum Vorgang finden Sie unter Kassenabschluss.
Rechnung samt Bestellungen und Positionen abfragen
Eine Zahlung (Rechnung) liefert Eckdaten und die Zahlpositionen:
curl -H "Authorization: Token <ihr-api-token>" \
"https://api.diekasse.app/v1/public/payments/650e8400-e29b-41d4-a716-446655440006/"
{
"id": "650e8400-e29b-41d4-a716-446655440006",
"sales_point": "450e8400-e29b-41d4-a716-446655440001",
"type": "CARD",
"sequential_id": 1234,
"timestamp": "2026-06-15T15:30:00Z",
"items": [
{ "method_name": "VISA", "method_type": "CARD", "gross_price": "19.99", "tip": "1.00", "currency": "EUR" }
],
"metadata": { "gross": "19.99", "net": "16.80", "vat": "3.19" }
}
Die zugehörigen Bestellungen samt Positionen rufen Sie über den payment-Filter ab:
curl -H "Authorization: Token <ihr-api-token>" \
"https://api.diekasse.app/v1/public/orders/?payment=650e8400-e29b-41d4-a716-446655440006"
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": "550e8400-e29b-41d4-a716-446655440010",
"payment": "650e8400-e29b-41d4-a716-446655440006",
"order_group_name": "Tisch 5",
"items": [
{ "article_name": "Espresso", "quantity": 2.0, "gross_price": "5.00", "vat_rate": "20.00" }
],
"metadata": { "gross": "5.00", "net": "4.17", "vat": "0.83" }
}
]
}
Berichte abfragen
Umsatzberichte erwarten einen Zeitraum und eine Kassa:
curl -H "Authorization: Token <ihr-api-token>" \
"https://api.diekasse.app/v1/public/reports/turnover/venue/?sales_point=450e8400-e29b-41d4-a716-446655440001&start=2026-06-01T00:00:00Z&end=2026-06-30T23:59:59Z"
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"name": "Hauptstandort",
"net": "5234.56",
"vat": "1046.91",
"gross": "6281.47",
"methods": [
{ "name": "VISA", "method_type": "CARD", "gross": "3650.00", "count": 45 },
{ "name": "Bar", "method_type": "CASH", "gross": "2631.47", "count": 112 }
]
}
]
}
Eine Übersicht der Auswertungen in der Oberfläche bietet Berichte an der Kassa.
Lagerstand abfragen
Der aktuelle Lagerstand wird je Artikel und Lager geliefert:
curl -H "Authorization: Token <ihr-api-token>" \
"https://api.diekasse.app/v1/public/stock-transactions/latest/?warehouse=150e8400-e29b-41d4-a716-446655440002"
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"article_name": "Espressobohnen 1 kg",
"warehouse_name": "Hauptlager",
"quantity": "45.5",
"quantity_unit": "kg",
"updated": "2026-06-15T10:00:00Z"
}
]
}
Mehr zur Lagerführung finden Sie unter Lagerverwaltung.
Bestellung einspielen (asynchron)
Eine Bestellung wird als Auftrag übergeben:
curl -X POST -H "Authorization: Token <ihr-api-token>" -H "Content-Type: application/json" \
"https://api.diekasse.app/v1/public/requests/orders/" \
-d '{
"sales_point": "450e8400-e29b-41d4-a716-446655440001",
"order_group_type": "TABLE",
"order_group_nr": 5,
"items": [
{ "article": "050e8400-e29b-41d4-a716-446655440005", "quantity": 1.0, "price": "2.50" }
]
}'
Die Antwort enthält die Auftrags-ID; die Verarbeitung erfolgt asynchron:
{
"id": "770e8400-e29b-41d4-a716-446655440020",
"type": "ORDER",
"sales_point": "450e8400-e29b-41d4-a716-446655440001",
"created": "2026-06-15T15:35:00Z",
"received": null,
"processed": null,
"success": null,
"result": null
}
Fragen Sie den Status anschließend über GET /v1/public/requests/orders/<id>/ ab. received und processed werden gesetzt, sobald die Kassa den Auftrag empfangen bzw. verarbeitet hat; success (true/false) und result enthalten das Ergebnis.
Zahlung einspielen (asynchron)
Analog wird eine Zahlung für eine offene Bestellgruppe übergeben:
curl -X POST -H "Authorization: Token <ihr-api-token>" -H "Content-Type: application/json" \
"https://api.diekasse.app/v1/public/requests/payment/" \
-d '{
"sales_point": "450e8400-e29b-41d4-a716-446655440001",
"payment": {
"open_order_group": "250e8400-e29b-41d4-a716-446655440007",
"payments": [
{ "method": "550e8400-e29b-41d4-a716-446655440008", "value": "5.95", "tip": "0.50", "currency": "EUR" }
]
}
}'
{
"id": "880e8400-e29b-41d4-a716-446655440030",
"type": "PAYMENT",
"sales_point": "450e8400-e29b-41d4-a716-446655440001",
"created": "2026-06-15T15:40:00Z",
"received": null,
"processed": null,
"success": null,
"result": null
}
Zum Stornieren einer Zahlung dient POST /v1/public/requests/payment-cancel/ mit der Kassa und der Zahlungs-ID:
{
"sales_point": "450e8400-e29b-41d4-a716-446655440001",
"payment": "650e8400-e29b-41d4-a716-446655440006"
}
Der Status wird – wie beim Einspielen – über den jeweiligen GET .../requests/.../<id>/-Endpunkt abgefragt.