ReferansPartner Scope'ları

Partner Scope’ları

Bir Partner API anahtarı ve onun ürettiği ekran token’ları (screen session), neyi yapabileceklerini belirleyen scope’lar taşır. Toplam 6 scope vardır. Her /display uç noktası @RequireScope ile tek bir scope ister ve ScreenScopeGuard bunu token’ın taşıdığı scope’lara karşı doğrular.

Bir ekran token’ının efektif scope’ları her zaman üst API anahtarının scope’larının bir alt kümesidir. Anahtarın taşımadığı bir scope token’a verilemez.

Scope listesi

ScopeNe sağlarUç nokta(lar)
menu:readEkranın tenant’ına (ve varsa masasına) ait genel menüyü okuma.GET /api/v1/display/menu
orders:readEkranın sipariş oturumunun verdiği siparişleri okuma.GET /api/v1/display/orders
orders:writeEkrandan sipariş oluşturma.POST /api/v1/display/orders
requests:writeGarson çağırma ve hesap isteme.POST /api/v1/display/waiter-requests, POST /api/v1/display/bill-requests
payments:writeSelf-pay: ödenebilir kalemler, PayTR hosted-iframe ödeme niyeti ve durum sorgulama.GET /api/v1/display/payable-items, POST /api/v1/display/pay-intent, GET /api/v1/display/pay-status
realtime:subscribeGerçek zamanlı WebSocket akışına abone olma (sipariş/durum güncellemeleri).KDS gerçek zamanlı gateway (WebSocket)
⚠️

Bir uç noktayı gerekli scope olmadan çağırırsanız ScreenScopeGuard isteği 403 Forbidden ile reddeder. WebSocket bağlantısı için realtime:subscribe yoksa oturum bağlanma anında reddedilir.

En az ayrıcalık ilkesi

Her ekran/cihaz için yalnızca ihtiyaç duyduğu scope’ları verin:

  • Yalnızca menü gösteren tabletmenu:read
  • Sipariş + garson çağrısımenu:read, orders:write, orders:read, requests:write
  • Masada self-pay → yukarıdakiler + payments:write
  • Canlı durum güncellemeleri → ek olarak realtime:subscribe

payments:write üç uç noktayı birden açar: ödenebilir kalemlerin listelenmesi, ödeme niyeti oluşturma ve niyet durumunu sorgulama. Ödeme niyetinin geri dönüş origin’i istemciden değil, anahtarın allowedReturnOrigins allowlist’inden alınır.