Zum Inhalt
v26.3

REST API

DiKAS bietet eine umfangreiche REST API mit über 340 öffentlichen Endpoints in 34 Bereichen. Damit können Sie DiKAS in Ihre bestehende Infrastruktur integrieren. (Interne und Legacy-/rest/-Endpoints sind in der öffentlichen Referenz bewusst ausgeblendet.)

Authentifizierung

Die API verwendet JWT-Bearer-Token zur Authentifizierung.

Token anfordern

POST /api/v1/auth/login
Content-Type: application/json

{
  "username": "admin",
  "password": "admin"
}

Antwort:

{
  "data": {
    "accessToken": "eyJhbGciOiJIUzI1NiIs...",
    "refreshToken": "dGhpcyBpcyBhIH...",
    "expiresIn": 3600
  },
  "isSuccess": true
}

Token verwenden

Setzen Sie den Token im Authorization-Header:

GET /api/v1/articles
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

Token erneuern

POST /api/v1/auth/refresh
Content-Type: application/json

{
  "accessToken": "eyJhbGciOiJI...",
  "refreshToken": "dGhpcyBpcyBh..."
}

API-Format

Alle Antworten folgen dem Schema:

{
  "data": { ... },
  "isSuccess": true,
  "message": null,
  "errors": null
}

Bei Fehlern:

{
  "data": null,
  "isSuccess": false,
  "message": "Artikel nicht gefunden",
  "errors": ["Artikel mit ID 'art_123' existiert nicht"]
}

Endpoint-Übersicht

Artikel

Methode Endpoint Beschreibung
GET /api/v1/articles Alle Artikel abrufen
GET /api/v1/articles/{id} Einzelnen Artikel abrufen
POST /api/v1/articles Artikel erstellen
PUT /api/v1/articles/{id} Artikel aktualisieren
DELETE /api/v1/articles/{id} Artikel löschen
GET /api/v1/article-groups Alle Gruppen abrufen
POST /api/v1/article-groups Gruppe erstellen

Beispiel: Artikel erstellen

POST /api/v1/articles
Authorization: Bearer eyJ...
Content-Type: application/json

{
  "name": "Cola 0,3l",
  "price": 3.50,
  "taxClass": 0,
  "groupId": "artgrp_abc123"
}

Antwort (201 Created):

{
  "data": {
    "id": "art_def456",
    "name": "Cola 0,3l",
    "price": 3.50,
    "taxClass": 0,
    "groupId": "artgrp_abc123",
    "isActive": true,
    "createdDate": "2026-03-05T18:30:00Z",
    "changedDate": "2026-03-05T18:30:00Z"
  },
  "isSuccess": true
}

Kunden

Methode Endpoint Beschreibung
GET /api/v1/customers Alle Kunden
GET /api/v1/customers/{id} Einzelner Kunde
POST /api/v1/customers Kunde erstellen
PUT /api/v1/customers/{id} Kunde aktualisieren
DELETE /api/v1/customers/{id} Kunde löschen
POST /api/v1/customers/{id}/credit Guthaben aufladen
POST /api/v1/customers/{id}/payout Guthaben auszahlen
GET /api/v1/customers/{id}/transactions Guthaben-Historie

Tische

Methode Endpoint Beschreibung
GET /api/v1/tables Alle Tische
GET /api/v1/tables/{id} Einzelner Tisch
POST /api/v1/tables Tisch erstellen
POST /api/v1/tables/{id}/gang Gang wechseln
POST /api/v1/tables/{id}/cleaned Als gereinigt markieren

Bestellungen & Zahlungen

Methode Endpoint Beschreibung
POST /api/v1/open-bons Bestellung aufgeben
POST /api/v1/open-bons/batch Mehrere Bestellungen
POST /api/v1/payments/direct-sale Direktverkauf
POST /api/v1/payments/table Tischzahlung
GET /api/v1/receipts Bons abrufen
POST /api/v1/receipts/{id}/void Bon stornieren

Personal

Methode Endpoint Beschreibung
GET /api/v1/staff Alle Mitarbeiter
POST /api/v1/staff Mitarbeiter erstellen
POST /api/v1/staff/switch Kellnerwechsel

Tagesabschluss

Methode Endpoint Beschreibung
POST /api/v1/day-close Tagesabschluss durchführen
GET /api/v1/day-close Alle Tagesabschlüsse
GET /api/v1/day-close/{id} Einzelner Tagesabschluss

Berichte

Methode Endpoint Beschreibung
GET /api/v1/reports/revenue Umsatzbericht
GET /api/v1/reports/top-articles Renner & Penner
GET /api/v1/reports/wgr Warengruppen
GET /api/v1/reports/weekly Wochenauswertung

Weitere Endpoints

Bereich Prefix Endpoints
Gutscheine /api/v1/vouchers CRUD, Einlösen
Banking /api/v1/bank-transfers CRUD, Import
FinTS /api/v1/fints Abruf, TAN
DATEV /api/v1/datev Export, Senden
Rechnungen /api/v1/invoices CRUD, PDF
Abonnements /api/v1/subscriptions CRUD, Abrechnen
Mahnungen /api/v1/dunning Erstellen, Senden
Ausgaben /api/v1/spendings CRUD, Anhänge
Zeiterfassung /api/v1/time-tracking Stempeln, Berichte
Werkstatt /api/v1/work-orders CRUD, Status
Backup /api/v1/restore Hochladen
Config /api/v1/config Lesen, Schreiben

Legacy-API

Für Kompatibilität mit bestehenden Integrationen gibt es Legacy-Endpoints unter /rest/:

Endpoint Beschreibung
/rest/cp/add/{key}/{plu} Artikel buchen
/rest/extern/customer/{key}/... Kunden-CRUD
/rest/extern/voucher/{key}/... Gutschein-CRUD
/rest/online/{key}/... Online-Bestellungen

Legacy-Endpoints verwenden API-Keys statt JWT-Token.

SignalR (Echtzeit)

Für Echtzeit-Updates (Küchemonitor, Werkstatt, Tischstatus):

const connection = new signalR.HubConnectionBuilder()
  .withUrl("/hubs/dikas", {
    accessTokenFactory: () => jwtToken
  })
  .build();

connection.on("OrderCreated", (data) => {
  console.log("Neue Bestellung:", data);
});

connection.on("TableStatusChanged", (data) => {
  console.log("Tisch-Status:", data);
});

await connection.start();

Swagger / OpenAPI

Die vollständige API-Referenz mit allen 341 öffentlichen Endpoints (34 Bereiche) und Schemas:

API-Referenz (Swagger) — Interaktive Dokumentation mit Suchfunktion

Auf einer laufenden DiKAS-Instanz ist Swagger auch direkt erreichbar unter https://<server>/swagger.


Nächster Schritt

Backup & Restore — Datensicherung