subscription.canceled✓ CanlıAbonelik

Abonelik iptal edildiğinde gönderilir. Premium yetkiyi kapatırsın (deprovision). Ancak tenant hâlâ bağlı (connected) olabilir — veri silme app.uninstalled işidir, burada değil. data genelde boştur; eklenti ücretsize geçirildiyse data.reason="plugin_now_free" gelir (aboneliği iptal edildi ama erişim ÜCRETSİZ sürüyor → deprovision ETME, yalnız premium kapıları kaldır).

← Lifecycle Webhook'ları

Ne zaman & ne yaparsın

Ne zamanAbonelik iptal edildi
GeliştiriciDeprovision — premium yetkiyi kapat (reason=plugin_now_free ise ücretsiz sürdür)
Abonelik / gatingYok — bağlı (connected) her kuruluma her zaman gelir

Envelope (tüm lifecycle/event'lerde ortak)

AlanTipZorunluAçıklama
idstringIdempotency anahtarı. Aynı id tekrar gelebilir (retry) → dedup et.
typestring"subscription.canceled" — event mi lifecycle mı olduğunu bununla ayırt et.
versionstringEnvelope şema versiyonu ("1").
tenantIdstringHangi tenant (kurulum). İşlemini buna göre yap; cross-tenant doğrula.
occurredAtnumberOluşma zamanı (unix ms).
dataobjectTipe özel gövde (aşağıda).

data alanları

AlanTipZorunluAçıklama
reasonstringYalnız eklenti ücretsize geçirildiğinde: "plugin_now_free". Bu durumda abonelik iptal edildi ama erişim ücretsiz sürüyor — DEPROVISION ETME, premium kapıları kaldır yeter. Alan yoksa normal iptal (deprovision et).

Tam örnek payload

Örnek webhook gövdesi (data alanı teyitli — webhook.site)
{
  "id": "evt_9f2a7c1b",
  "type": "subscription.canceled",
  "version": "1",
  "tenantId": "tnt_123",
  "occurredAt": 1780000000000,
  "data": {}
}

En iyi pratik

  • Premium yetkiyi kapat (deprovision) — ama tenant verisini SİLME; kullanıcı hâlâ kurulu/bağlı olabilir.
  • reason="plugin_now_free" ise DEPROVISION ETME: eklentin ücretsize geçirildi, erişim ücretsiz sürüyor → premium kilitleri kaldır, her şeyi açık tut.
  • Veri silme app.uninstalled'a aittir; canceled yalnız "ödenmiş yetki bitti" demektir.
  • Dönem sonuna kadar erişim politikanı currentPeriodEnd'e göre kur (activated'tan saklamıştın).
  • idempotent: aynı id tekrar gelirse deprovision tekrarı no-op olmalı.