Abonelik modülü üç parçadan oluşur: plan (tutar + periyot + deneme süresi), abonelik (müşteri + kayıtlı kart + dönem) ve abonelik faturası (her dönemin tahsilat kaydı).

Kurulum

  1. Kartı Kasa’ya kaydedin — POST /v1/vault/cards size tok_… döner; PAN sizde durmaz.
  2. Tekrarlayan çekim için müşteriden talimat (mandate) alın — POST /v1/customers/{ref}/mandates. İtiraz gelirse ilk savunma belgeniz budur.
  3. Planı tanımlayın — POST /v1/plans (interval: gün / hafta / ay / yıl, trialDays opsiyonel). Ay bazlı dönemler ay taşmasını kırpar: 31 Ocak + 1 ay = 28/29 Şubat.
  4. Aboneliği başlatın — POST /v1/subscriptions (müşteri referansı + kart jetonu + plan). Deneme süresi yoksa ilk dönem hemen tahsil edilir.
Her gece 03:00’te çalışan faturalama işi dönemi dolan abonelikleri faturalar ve kayıtlı kartla tahsil eder.

Durumlar

İptal varsayılan olarak dönem sonunda işler; POST /v1/subscriptions/{id}/cancel ile hemen iptal de mümkündür. Kart değişikliği POST /v1/subscriptions/{id}/card bekleyen tahsilatı hemen kuyruğa alır.

Dunning: hata koduna göre kurtarma

Başarısız yenileme körlemesine yeniden denenmez; strateji bankanın söylediği birleşik hata koduna göre seçilir (en çok 4 deneme): Fatura durumları pending → paid | retrying | abandoned şeklindedir; GET /v1/subscription-invoices deneme sayısını, son hatayı ve sıradaki deneme zamanını döner. Panelin Abonelikler sayfası bu kuyruğu “kurtarma kuyruğu” olarak en üstte gösterir. Webhook olayları süreci dışarı anlatır: subscription.invoice.paid, subscription.invoice.failed, subscription.card_update_required, subscription.unpaid, subscription.cancelled.