Abonelik aktif (veya trial) olduğunda gönderilir — aktivasyonda ve her yenilemede. Premium yetkiyi bununla açarsın. ⚠️ Aynı abonelik için birden çok kez (farklı id'lerle) gelebilir; bu yüzden tenantId durumuna göre idempotent provision et, event sayısına güvenme. data, fatura periyodunu ve mevcut dönemin bitiş zamanını taşır.
⚠️ Dikkat: subscription.activated AYNI abonelik için BİRDEN ÇOK kez gelir — checkout + subscription.created + subscription.updated + her yenileme; her biri FARKLI id ile (retry değil). Bu yüzden id ile dedup bunları birleştirmez. Provision'ı event SAYISINA göre değil, tenantId DURUMUNA göre idempotent yap ("aktif et" — kaç kez gelirse gelsin sonuç aynı). currentPeriodEnd her seferinde günceldir (erişim bitiş zamanı).
Ne zaman & ne yaparsın
Ne zaman
Abonelik aktif/trial oldu (aktivasyon + her yenileme)
Geliştirici
Premium provision — idempotent (tenantId durumuna göre)
Abonelik / gating
Yok — bağlı (connected) her kuruluma her zaman gelir
Envelope (tüm lifecycle/event'lerde ortak)
Alan
Tip
Zorunlu
Açıklama
id
string
✓
Idempotency anahtarı. Aynı id tekrar gelebilir (retry) → dedup et.
type
string
✓
"subscription.activated" — event mi lifecycle mı olduğunu bununla ayırt et.
version
string
✓
Envelope şema versiyonu ("1").
tenantId
string
✓
Hangi tenant (kurulum). İşlemini buna göre yap; cross-tenant doğrula.
occurredAt
number
✓
Oluşma zamanı (unix ms).
data
object
✓
Tipe özel gövde (aşağıda).
data alanları
Alan
Tip
Zorunlu
Açıklama
interval
string
✓
Fatura periyodu (örn. "monthly"). Erişim süresini tek başına buradan değil currentPeriodEnd'den yönet.
currentPeriodEnd
number
✓
Mevcut dönemin bitişi (unix ms — örn. 1783374777006). Premium erişimi bu zamana kadar geçerli say; her activated'te günceldir.
Tam örnek payload
Örnek webhook gövdesi (data alanı teyitli — webhook.site)
tenantId durumuna göre idempotent "aktif" set et — toggle'lama. Aynı abonelik için birden çok kez (farklı id) gelir; event sayısına/id'sine değil, sonuç durumuna güven.
currentPeriodEnd'i sakla ve erişimi buna kadar ver; yeni activated gelmezse dönem sonunda kıs.
Yan etkileri (hoşgeldin maili, kota sıfırlama) tekrarlama — "daha önce aktif miydi?" durumuna bakarak yalnız ilk aktivasyonda çalıştır (id ile değil, tenantId durumu ile koru — id her seferinde farklı).
past_due → activated geri dönüşü olabilir: degrade ettiğin yetkiyi burada tam geri aç.