Event Kataloğu

Eklentinin webhook ile abone olabileceği tüm event tipleri. Bir event'e abone olmak için manifest'te events[] listesine ekle ve events:subscribe scope'unu iste. Bir event'e tıkla → örnek payload açılır.

Her teslim standart bir envelope ile gelir: { id, type, version, actor?, origin?, environment, tenantId, occurredAt, data }. Aşağıdaki örneklerde yalnız data event'e özeldir. version bir string'dir ("1", sayı değil); environment "sandbox" | "production"'dır (imzalı gövdede; test mağazası = sandbox — header'daki X-Restomenum-Environment imzasız kolaylık kopyasıdır, gövdedekini kullan); occurredAt epoch milisaniyedir (imza t= ise saniye); id idempotency anahtarıdır (retry'da sabit). Teslim biçimi ve imza için /webhook ve imza şeması.
Satış olaylarında (table.* / packet.*) zarf ayrıca sequence + sequenceScope taşır (opsiyonel): teslim sıralı değildir, bayat bir snapshot'ı bunlarla tanırsın → Olay sırası. Gövdedeki tutar alanları (currency, amountExponent, orders[].amounts) için Tutarlar.
actor (kim yaptı) opsiyoneldir ve data'nın dışında durur. ⚠️ actor.userId/role doğrulanmaz (PIN ile seçilir) — yetki kararında kullanma; doğrulanmış tek alan actor.pluginId'dir. origin (deviceId) sözleşmeden çıktı — platform göndermiyor, mali/kasa atfını buna dayandırma. Kendi yazdığın olay sana da gelir → döngü koruması sende: hesap yaşam döngüsü.
✓ Canlı = şu an akan event; ⏳ Yakında = yayında otomatik akmaya başlayacak. PII alanları (ad/telefon/adres) yalnız ilgili customers:read scope'unda gönderilir.
Kurulum/abonelik lifecycle event'leri (app.installed, subscription.*, app.uninstalled) abone olmadan aynı uca düşer → Lifecycle Webhook’ları.
"Event gelmiyor" diyorsan İLK bakacağın yer burası: manifest'inin events[] listesi. Abone olmadığın bir tip sana hiç yayınlanmaz ve bu tamamen sessizdir — ne teslim log'una bir satır düşer, ne bir hata/uyarı alırsın. Teslim edilmeyen bir olay ile hiç abone olmadığın bir olay dışarıdan aynı görünür.

Bu ayrım tip bazındadır: table.closed akmaya devam ederken table.reopened hiç gelmiyor olabilir — "webhook çalışıyor" gözlemi o tipe abone olduğunu kanıtlamaz. Sırayla kontrol et: (1) manifest events[] içinde tip var mı, (2) o sürüm yayınlandı mı (taslak sürümün aboneliği çalışmaz), (3) events:subscribe scope'u onaylı mı, (4) tipin gerektirdiği veri scope'u (orders:read vb.) verildi mi — eksikse olay gelir ama data boşalır.

Eventler

Masa açıldıtable.createdscope: orders:read✓ Canlı
Masa hesabı değişti (kalem / ödeme)table.updatedscope: orders:read✓ Canlı
Masa kapatıldıtable.closedscope: orders:read✓ Canlı
Kapanmış masa geri açıldı (storno)table.reopenedscope: orders:read✓ Canlı
Masa hesabı devredildi (birleştirme / taşıma)table.deletedscope: orders:read✓ Canlı
KAPANMIŞ masa satışı silindi (storno)table.closed_deletedscope: orders:read✓ Canlı
Masa kapanışı DÜŞTÜ (gate onayından sonra)table.close_abortedscope: orders:read✓ Canlı
Paket oluşturuldupacket.createdscope: orders:read✓ Canlı
Paket hesabı değişti (kalem / ödeme)packet.updatedscope: orders:read✓ Canlı
Paket kapatıldıpacket.closedscope: orders:read✓ Canlı
Kapanmış paket geri açıldı (storno)packet.reopenedscope: orders:read✓ Canlı
Paket hesabı devredildi (birleştirme / cari hesap)packet.deletedscope: orders:read✓ Canlı
KAPANMIŞ paket satışı silindi (storno)packet.closed_deletedscope: orders:read✓ Canlı
Paket iptal edildi (tam iptal)packet.cancelledscope: orders:read✓ Canlı
Paket teslimat statüsü değiştipacket.status_changedscope: orders:read⏳ Yakında
Paket kapanışı DÜŞTÜ (gate onayından sonra)packet.close_abortedscope: orders:read✓ Canlı
Ürün oluşturulduproduct.createdscope: products:read✓ Canlı
Ürün güncellendiproduct.updatedscope: products:read✓ Canlı
Ürün silindiproduct.deletedscope: products:read✓ Canlı
Kategori oluşturulducategory.createdscope: products:read✓ Canlı
Kategori güncellendicategory.updatedscope: products:read✓ Canlı
Kategori silindicategory.deletedscope: products:read✓ Canlı
Personel oluşturulduuser.createdscope: users:read✓ Canlı
Personel güncellendiuser.updatedscope: users:read✓ Canlı
Personel silindiuser.deletedscope: users:read✓ Canlı
Müşteri oluşturulducustomer.createdscope: customers:read✓ Canlı
Müşteri güncellendicustomer.updatedscope: customers:read✓ Canlı
Cari hesaba sipariş yazıldıcustomer.order_addedscope: customers:read✓ Canlı
Cari hesaptan tahsilat yapıldıcustomer.payment_addedscope: customers:read✓ Canlı
Ödeme yöntemi oluşturuldupayment_method.createdscope: payment_methods:read✓ Canlı
Ödeme yöntemi güncellendipayment_method.updatedscope: payment_methods:read✓ Canlı
Ödeme yöntemi silindipayment_method.deletedscope: payment_methods:read✓ Canlı
Malzeme oluşturulduingredient.createdscope: ingredients:read✓ Canlı
Malzeme güncellendiingredient.updatedscope: ingredients:read✓ Canlı
Malzeme silindiingredient.deletedscope: ingredients:read✓ Canlı
Satın alma tamamlandı (kilit açıldı)purchase.grantedscope: purchases:read✓ Canlı
Mesaj teslim durumu (yalnız istek sahibine)messaging.message.statusscope: capability:messaging.send:consume✓ Canlı
Fatura durumu (yalnız istek sahibine)invoice.statusscope: capability:invoice.issue:consume✓ Canlı