Skip to main content
Abonelik (tekrarlayan ödeme) özelliği şu an sınırlı erişimdedir. Hesabınızda etkin değilse istekler 4002 ya da 4007 hata koduyla reddedilir. Özelliği açtırmak için destek ekibimizle iletişime geçin.
Abonelik, müşterinizin kartından belirlediğiniz aralıkla (günlük, haftalık, aylık, yıllık) otomatik tahsilat yapılmasıdır. Müşteri ilk ödemeyi 3D Secure ile yapar ve otomatik tahsilata onay verir; sonraki dönemlerde tahsilat, kart müşteriye tekrar sorulmadan otomatik yapılır. Abonelik üç adımda başlar:
  1. Abonelik ürünü tanımlayın (is_recurring + faturalama aralığı).
  2. Bu ürünle bir ödeme başlatın (API, Tahsilat JS ya da panel üzerinden ödeme linki).
  3. Müşteri ilk ödemeyi tamamladığında abonelik otomatik olarak oluşur ve aktif hale gelir.

1. Abonelik ürünü tanımlama

Abonelik, ürün üzerinde tanımlanır. Mevcut ürün oluşturma isteğine üç alan eklenir:
boolean
Ürünün abonelik ürünü olduğunu belirtir. true gönderildiğinde billing_interval ve interval_count zorunludur.
integer
Faturalama aralığı birimi: 1 gün, 2 hafta, 3 ay, 4 yıl.
integer
Aralık çarpanı (1-366). Örneğin billing_interval=3 ve interval_count=2 iki ayda bir tahsilat anlamına gelir.
Yanıtta ürün, okunabilir aralık metniyle birlikte döner:
Yanıt (özet)
recurring_text değeri aralığa göre üretilir: “Günlük”, “Haftalık”, “Aylık”, “Yıllık” ya da “2 ayda bir”, “3 haftada bir” gibi. Aynı metin ödeme sayfasında ve müşteriye giden e-postalarda da kullanılır.
Aktif ya da Ödeme Bekliyor durumundaki bir aboneliğe bağlı ürünün adı, fiyatı, para birimi ve faturalama alanları değiştirilemez; ürün silinemez (409). Önce ilgili abonelikler iptal edilmelidir.

2. Ödeme başlatma

Abonelik ürünü, product_ids ile normal bir 3DS ödeme isteğine eklenir. Abonelik için ayrı bir endpoint yoktur.
integer
İsteğe bağlı. Tahsilatın yapılacağı POS tanımının kimliği. Birden fazla abonelik destekli POS’unuz varsa hangisinin kullanılacağını belirtir. Abonelik destekli tek POS’unuz varsa gönderilmesine gerek yoktur; birden fazla varsa belirtilmesi zorunludur. JS elementleri bu alanı göndermez; birden fazla abonelik destekli POS’unuz varsa ödemeyi sunucunuzdan başlatın. Eksik ya da abonelik desteklemeyen bir POS seçildiğinde istek 422 doğrulama hatasıyla (subscription_credential_id alanı) reddedilir.
Ödeme isteğinde geçerli kurallar:
Müşteri bilgisi (customer_id) istekte zorunlu değildir (white label ödemelerde zorunludur), ancak abonelik her zaman bir müşteriye bağlıdır: sonraki tahsilatlar ve bildirimler bu kayıt üzerinden yapılır. Müşteri belirtilmezse ödeme sayfasında girilen bilgilerle müşteri kaydı oluşturulur.

Panel üzerinden abonelik

Kod yazmadan abonelik başlatmanın iki yolu vardır:
  • Abonelikler → Abonelik Oluştur: müşteri ve abonelik ürünlerini seçip tek kullanımlık bir ödeme linki oluşturursunuz. Link e-posta ile, canlı ortamda SMS ile de müşteriye gönderilir. Abonelik, ilk ödeme yapılana kadar “İlk Ödeme Bekleniyor” durumunda görünür; ilk ödemede aktifleşir ve link kapanır. Seçilen müşteri yalnız linkin gönderilmesi için kullanılır; nihai müşteri ödeme ekranında girilen bilgilerle oluşur ve abonelik ona bağlanır.
  • Tahsilat Link: abonelik ürünü içeren bir ödeme linki çok kullanımlıdır; linkten ödeme yapan her müşteri için ayrı bir abonelik oluşur.

3. Ödeme sayfası ve müşteri onayı

Ödeme sayfasında abonelik ürünü olduğunda “Öde” butonu “Abone Ol” olarak görünür ve butonun altında onay metni yer alır:
Abone olduğunuzda, kartınızın Aylık olarak otomatik tahsil edilmesine izin vermiş olursunuz. Dilediğiniz zaman iptal edebilirsiniz.
İlk ödeme her zaman 3D Secure ile alınır. Ödeme başarılı olduğunda:
  • Abonelik kaydı oluşur ve Aktif duruma geçer; bu ödeme aboneliğin ilk dönemi sayılır.
  • Müşterinin onayı (metin, tarih, IP adresi) aboneliğe bağlı olarak saklanır ve panelde “Onay (Mandate)” alanında görüntülenir.
  • Kart bilgisi şifreli olarak saklanır; sonraki tahsilatlar bu kartla yapılır.
  • Müşteriye hoş geldin e-postası gönderilir; iptal ve kart güncelleme bağlantıları bu e-postadadır. Canlı ortamda, telefonu kayıtlıysa müşteriye ayrıca kısa bir SMS gider (bağlantı içermez, e-postaya yönlendirir).
  • Sonraki tahsilat tarihi faturalama aralığına göre hesaplanır.
  • Webhook bildirimi ve işlem sonucu sorgusu, subscription bloğunda abonelik kimliğini döner (bkz. Yaşam Döngüsü).
Başarısız ya da yarım kalan ilk ödemede abonelik oluşmaz. Ödeme alınıp sağlayıcı tarafında tekrarlayan plan kurulamazsa abonelik İptal Edildi olarak kaydedilir, hoş geldin e-postası gönderilmez; bu durum panelde abonelik kaydında görünür.
Ödeme tutarı ürün toplamıyla eşleşmelidir. Ödemede abonelik olmayan ürünler de varsa yalnızca abonelik ürünlerinin toplamı tekrarlayan tutar olur; diğer ürünler sadece ilk ödemede tahsil edilir.

Test ortamı

Test anahtarlarıyla (sk_test_) abonelik akışı uçtan uca denenebilir: abonelik ürünü, ödeme sayfası, onay metni, ilk ödeme ve hoş geldin e-postası canlıyla aynıdır. Test ortamında otomatik tahsilat çalıştırılmaz; aboneliğin sonraki dönemleri tahsil edilmez ve kart güncelleme bağlantısı sunulmaz.

Yaşam Döngüsü ve Bildirimler

Abonelik durumları, otomatik tahsilat, yeniden denemeler, iptal ve webhook davranışı.

Webhook Yönetimi

Her abonelik tahsilatı için gönderilen bildirimleri karşılayın.