Açık Masa Hesapları — GET /plugin-api/tables/open ✓ Canlı

O an AÇIK olan tüm dine-in (masa) hesaplarının özetini verir. Masa adisyonu açılınca listeye düşer, kapatılınca (ödeme alınıp adisyon kapanınca) düşer — ekstra durum filtresine gerek yoktur. Canlı dashboard / POS-garson ekranı / açık bakiye tespiti için.

← API Uçları · ortak kurallar (base, auth, hata zarfı) orada.

İstek

GET {RESTOMENUM_BASE}/plugin-api/tables/open
Authorization: Bearer {serverId}.{pluginId}.{secret}     // install API key (token exchange)
  • Base: Sandbox https://sandbox.plugins.restomenum.app, Production https://plugins.restomenum.app (API Uçları).
  • Parametre yok. Önbellek yok — her çağrı canlı veri döner.
  • Auth: Authorization: Bearer <apiKey>token exchange'teki install API key (serverId.pluginId.secret).
  • Scope: orders:read.

Liste = özet, detay ayrı

Bu bir liste ucudur ve özet döner: her masanın kimliği + tutar bilgisi + ürün adedi. Adisyon satırları (hangi ürünler), müşteri bilgisi vb. burada DÖNMEZ.

Bir masanın tam detayını (ürün satırları, opsiyonlar, müşteri…) istiyorsan listedeki tableId ile ayrı uca git: tables/get?id={tableId}. Standart REST list → detail deseni: liste hafif kalır, ağır detayı yalnız gerektiğinde çekersin.

Yanıt

Gerçek 200 örneği
{
  "success": true,
  "data": [
    {
      "tableId": "masa-1",
      "tableName": "Masa 1",
      "docNo": 1,
      "desing": "Bahçe",
      "personCount": 0,
      "itemCount": 7,
      "total": 66.51,
      "paid": 50,
      "totalDiscount": 0
    }
  ]
}

Açık masa yoksa: { "success": true, "data": [] }

Alanlar

AlanTipAçıklama
tableIdstringMasa doküman id'si — detay için tables/get?id={tableId}
tableNamestringMasanın görünen adı (ör. "Masa 1")
docNonumberAdisyon/belge numarası
desingstringMasanın bulunduğu bölüm/salon (ör. "Bahçe") — alan adı API'de bu şekildedir
personCountnumberMasadaki kişi sayısı (girilmemişse 0)
itemCountnumberAdisyondaki toplam ürün adedi (satır miktarları toplamı)
totalnumberHesabın güncel toplam tutarı
paidnumberO ana kadar ödenen tutar (kısmi ödeme olabilir)
totalDiscountnumberAdisyona uygulanan toplam indirim
Açık bakiye = total − paid (uçta ayrı alan yok, istemci hesaplar). paid > 0 ise kısmi ödeme alınmıştır.

Sıklık / polling

Açık hesaplar sürekli değişir (sipariş eklenir, ödeme alınır, masa kapanır) ve uç önbeklenmez → her çağrı tazedir. Canlı görünüm için makul aralıkla (ör. 10–30 sn) polle; install başına 120 istek/dk sınırını aşma (429 plugin.rateLimited; bkz. Limitler).

İlişkili uçlar

Ne döner
tables/openAçık masaların özet listesi (bu uç)
tables/get?id=Tek masanın tam detayı (satırlar, opsiyonlar, müşteri — PII consent ile)
tables/layoutMağaza masa yerleşimi (bölümler + tüm masa adları; açık/dolu bilgisi değil)

Hatalar

messageHTTPAnlam
plugin.scope.denied200orders:read onaylı değil ({ success:false })
unauthorized401Geçersiz/eksik install key