REST API¶
DiKAS, 60'tan fazla alanda 500'den fazla genel uç noktaya sahip kapsamlı bir REST API sunar. Bu sayede DiKAS'ı mevcut altyapınıza entegre edebilirsiniz. (Dahili ve eski /rest/ uç noktaları, genel referansta bilinçli olarak gizlenmiştir.)
Kimlik Doğrulama¶
API, kimlik doğrulama için JWT Bearer Token kullanır.
Token isteme¶
Yanıt:
{
"data": {
"accessToken": "eyJhbGciOiJIUzI1NiIs...",
"refreshToken": "dGhpcyBpcyBhIH...",
"expiresIn": 3600
},
"isSuccess": true
}
Token kullanma¶
Token'ı Authorization başlığına ekleyin:
Token yenileme¶
POST /api/v1/auth/refresh
Content-Type: application/json
{
"accessToken": "eyJhbGciOiJI...",
"refreshToken": "dGhpcyBpcyBh..."
}
API Formatı¶
Tüm yanıtlar şu şemaya uyar:
Hatalarda:
{
"data": null,
"isSuccess": false,
"message": "Artikel nicht gefunden",
"errors": ["Artikel mit ID 'art_123' existiert nicht"]
}
Uç Nokta Genel Bakışı¶
Ürünler¶
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
GET |
/api/v1/articles |
Tüm ürünleri getir |
GET |
/api/v1/articles/{id} |
Tek bir ürünü getir |
POST |
/api/v1/articles |
Ürün oluştur |
PUT |
/api/v1/articles/{id} |
Ürünü güncelle |
DELETE |
/api/v1/articles/{id} |
Ürünü sil |
GET |
/api/v1/article-groups |
Tüm grupları getir |
POST |
/api/v1/article-groups |
Grup oluştur |
Örnek: Ürün oluşturma
POST /api/v1/articles
Authorization: Bearer eyJ...
Content-Type: application/json
{
"name": "Cola 0,3l",
"price": 3.50,
"taxClass": 0,
"groupId": "artgrp_abc123"
}
Yanıt (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
}
Müşteriler¶
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
GET |
/api/v1/customers |
Tüm müşteriler |
GET |
/api/v1/customers/{id} |
Tek bir müşteri |
POST |
/api/v1/customers |
Müşteri oluştur |
PUT |
/api/v1/customers/{id} |
Müşteriyi güncelle |
DELETE |
/api/v1/customers/{id} |
Müşteriyi sil |
POST |
/api/v1/customers/{id}/credit |
Bakiye yükle |
POST |
/api/v1/customers/{id}/payout |
Bakiye öde |
GET |
/api/v1/customers/{id}/transactions |
Bakiye geçmişi |
Masalar¶
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
GET |
/api/v1/tables |
Tüm masalar |
GET |
/api/v1/tables/{id} |
Tek bir masa |
POST |
/api/v1/tables |
Masa oluştur |
POST |
/api/v1/tables/{id}/gang |
Gang değiştir |
POST |
/api/v1/tables/{id}/cleaned |
Temizlenmiş olarak işaretle |
Siparişler ve Ödemeler¶
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
POST |
/api/v1/open-bons |
Sipariş ver |
POST |
/api/v1/open-bons/batch |
Birden fazla sipariş |
POST |
/api/v1/payments/direct-sale |
Doğrudan satış |
POST |
/api/v1/payments/table |
Masa ödemesi |
GET |
/api/v1/receipts |
Fişleri getir |
POST |
/api/v1/receipts/{id}/void |
Fişi iptal et |
Personel¶
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
GET |
/api/v1/staff |
Tüm çalışanlar |
POST |
/api/v1/staff |
Çalışan oluştur |
POST |
/api/v1/staff/switch |
Garson değişimi |
Gün Sonu Raporu¶
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
POST |
/api/v1/day-close |
Gün sonu raporu oluştur |
GET |
/api/v1/day-close |
Tüm gün sonu raporları |
GET |
/api/v1/day-close/{id} |
Tek bir gün sonu raporu |
Raporlar¶
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
GET |
/api/v1/reports/revenue |
Ciro raporu |
GET |
/api/v1/reports/top-articles |
Çok satanlar ve az satanlar |
GET |
/api/v1/reports/wgr |
Ürün grupları |
GET |
/api/v1/reports/weekly |
Haftalık değerlendirme |
Diğer Uç Noktalar¶
| Alan | Önek | Uç Noktalar |
|---|---|---|
| Hediye çekleri | /api/v1/vouchers |
CRUD, Kullanım |
| Banka işlemleri | /api/v1/bank-transfers |
CRUD, İçe aktarma |
| FinTS | /api/v1/fints |
Çağrı, TAN |
| DATEV | /api/v1/datev |
Dışa aktarma, Gönderme |
| Faturalar | /api/v1/invoices |
CRUD, PDF |
| Abonelikler | /api/v1/subscriptions |
CRUD, Faturalandırma |
| İhtarlar | /api/v1/dunning |
Oluşturma, Gönderme |
| Giderler | /api/v1/spendings |
CRUD, Ekler |
| Zaman takibi | /api/v1/time-tracking |
Damga, Raporlar |
| Atölye | /api/v1/work-orders |
CRUD, Durum |
| Yedekleme | /api/v1/restore |
Yükleme |
| Yapılandırma | /api/v1/config |
Okuma, Yazma |
Eski API¶
Mevcut entegrasyonlarla uyumluluk için /rest/ altında eski uç noktalar bulunur:
| Uç Nokta | Açıklama |
|---|---|
/rest/cp/add/{key}/{plu} |
Ürün kaydet |
/rest/extern/customer/{key}/... |
Müşteri CRUD |
/rest/extern/voucher/{key}/... |
Hediye çeki CRUD |
/rest/online/{key}/... |
Online siparişler |
/rest/disco/guest/pay/{key}[/{kart}] |
Disko kartını ödeme ve check-out (ör. ödeme otomatı) |
Ödeme otomatları: çalışma istasyonu ve yazıcı
/rest/disco/guest/pay için birden çok ödeme otomatına tek API anahtarı yeter. Çalışma istasyonu anahtardan gelir (Yönetim → Ayarlar → API anahtarları); çağrıda gerekmez (WorkplaceId null olabilir). Her otomat fiş yazıcısını ödeme emrinin Printer alanında yazıcı kimliği veya IP olarak, portla birlikte de (192.168.1.52:9100), büyük/küçük harf fark etmeksizin bildirir. Bilinmiyor veya boşsa fiş, çalışma istasyonunun hedef yazıcısında veya varsayılan yazıcıda basılır; ödeme bu yüzden başarısız olmaz.
Bilinmeyen ürünler
Kasa, bir online siparişteki ürünü tanımıyorsa (ne id, ne ürün numarası, ne de ad), DiKAS order, open ve pay için ürünü kendisi oluşturur; mağazanın adı ve fiyatıyla, işletmenin normal vergi oranıyla ve ürün grubu olmadan. Ad yoksa hiçbir şey oluşturulmaz, devre dışı bir ürün ret olarak kalır (Article not found) ve sipariş başına en fazla 20 yeni ürün oluşturulur.
Eski uç noktalar, JWT Token yerine API anahtarları kullanır.
SignalR (Gerçek Zamanlı)¶
Gerçek zamanlı güncellemeler için (Mutfak ekranı, Atölye, masa durumu):
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¶
565 genel uç noktayı (60 alan) ve şemaları içeren güncel API referansı İngilizce olarak sunulmaktadır:
→ Güncel API referansı (Swagger, İngilizce) — Arama işlevli etkileşimli dokümantasyon
→ Önceki çevrilmiş referans — 341 uç noktayı içerir; bir sonraki çeviri üretimine kadar yardımcı kaynak olarak korunur
Çalışan bir DiKAS örneğinde Swagger doğrudan https://<server>/swagger adresinden de erişilebilir.
Sonraki Adım¶
→ Yedekleme ve Geri Yükleme — Veri yedekleme
Modül uç noktaları¶
HACCP, teslimat ve diğer modüller kendi yollarını kullanır. Sunucunun Swagger/OpenAPI belgesine ve Almanca tam tablolara bakın.