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¶
Antwort:
{
"data": {
"accessToken": "eyJhbGciOiJIUzI1NiIs...",
"refreshToken": "dGhpcyBpcyBhIH...",
"expiresIn": 3600
},
"isSuccess": true
}
Token verwenden¶
Setzen Sie den Token im Authorization-Header:
Token erneuern¶
POST /api/v1/auth/refresh
Content-Type: application/json
{
"accessToken": "eyJhbGciOiJI...",
"refreshToken": "dGhpcyBpcyBh..."
}
API-Format¶
Alle Antworten folgen dem Schema:
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