Ana içeriğe geç
v26.3

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

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

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

Yanıt:

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

Token kullanma

Token'ı Authorization başlığına ekleyin:

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

Token yenileme

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

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

API Formatı

Tüm yanıtlar şu şemaya uyar:

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

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.