Hilfe - Alle Produkte & Anleitungen

Beispiele

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:

Bash
curl -H "Authorization: Token <ihr-api-token>" \
  "https://api.diekasse.app/v1/public/shifts/?sales_point=450e8400-e29b-41d4-a716-446655440001&timestamp__gte=2026-06-01T00:00:00Z&timestamp__lte=2026-06-30T23:59:59Z"
JSON
{
  "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:

Bash
curl -H "Authorization: Token <ihr-api-token>" \
  "https://api.diekasse.app/v1/public/payments/650e8400-e29b-41d4-a716-446655440006/"
JSON
{
  "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:

Bash
curl -H "Authorization: Token <ihr-api-token>" \
  "https://api.diekasse.app/v1/public/orders/?payment=650e8400-e29b-41d4-a716-446655440006"
JSON
{
  "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:

Bash
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"
JSON
{
  "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:

Bash
curl -H "Authorization: Token <ihr-api-token>" \
  "https://api.diekasse.app/v1/public/stock-transactions/latest/?warehouse=150e8400-e29b-41d4-a716-446655440002"
JSON
{
  "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:

Bash
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:

JSON
{
  "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:

Bash
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" }
      ]
    }
  }'
JSON
{
  "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:

JSON
{
  "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.