subscription.past_due✓ CanlıAbonelik

Yenileme ödemesi alınamadığında gönderilir (Stripe subscription.updated→past_due veya invoice.payment_failed). Premium özellikleri kısıtlarsın (degrade) ama tenant verisini SİLMEZSİN — ödeme düzelirse subscription.activated ile geri açılır. data boştur.

← Lifecycle Webhook'ları

Ne zaman & ne yaparsın

Ne zamanÖdeme başarısız (gecikmiş)
GeliştiriciDegrade — premium özellikleri kısıtla
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.past_due" — 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).
dataobjectBu tipte boş ({}).

data alanları

Bu tipte data boştur ({}) — gereken tüm bilgi tenantId + type'tadır.

Tam örnek payload

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

En iyi pratik

  • Degrade et, SİLME: premium özellikleri kıs ama tenant verisini koru — bu durum geri dönüşlüdür.
  • Tersine çevrilebilir kur: ödeme düzelince activated gelir → kısıtladığın her şeyi tam geri aç.
  • Veri silme YASAK — silme yalnız app.uninstalled sinyalindedir.
  • idempotent: aynı id tekrar gelirse degrade durumunu yeniden uygulamak no-op olmalı.