Subscriptions (Abonelik)

Aylık tekrarlayan ödemeler oluştur. Müşteri bir kez kartını girer; her dönem otomatik tahsil edilir ve her başarılı tahsilatta webhook'un tetiklenir.

Abonelik linki oluştur

POST/api/v1/payment-links

type: "subscription" gönder. amount dönemsel (aylık) tutardır, interval ilemonth veya year seçilir (varsayılan month).

curl -X POST http://localhost:3000/api/v1/payment-links \
  -H "Authorization: Bearer mm_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Pro Plan (aylık)",
    "amount": 4900,
    "type": "subscription",
    "interval": "month"
  }'
{
  "id": "clx...",
  "url": "http://localhost:3000/pay/a1b2c3...",
  "amount": 4900,
  "currency": "usd",
  "type": "subscription",
  "interval": "month",
  "status": "active"
}

Müşteri deneyimi

Müşteri url'e gider, kart bilgilerini bizim kendi formumuza girer. İlk ödeme alınınca abonelik aktifleşir. Gerekirse 3D Secure doğrulaması otomatik yapılır. Sonraki dönemler arka planda otomatik tahsil edilir.

Her tahsilatta webhook

İlk ödeme ve her tekrarlayan tahsilat için payment.succeededolayı gönderilir. Abonelik tahsilatlarında payload'da subscription alanı dolu gelir:

{
  "type": "payment.succeeded",
  "data": {
    "id": "clx...",
    "amount": 4900,
    "currency": "usd",
    "net": 4655,
    "customer_email": "ornek@email.com",
    "payment_link": "clx...",
    "subscription": "sub_1Q..."
  }
}
Local geliştirmede tekrarlayan tahsilatları görmek için Stripe webhook'larını yönlendir: stripe listen --forward-to localhost:3000/api/webhooks/stripe. Test saatini ilerletmek için Stripe test clock'larını kullanabilirsin.