Plan Oluştur

POST/partner/1.0/recurring/create
Gerekli scope: payment:saleIdempotency-Key zorunlu

Abonelik / otomatik ödeme planı kurar; tahsilatlar belirlenen periyotta otomatik denenir. Sonuçları orderNumber ile transaction/search üzerinden izlersiniz — bkz. Tekrarlayan Tahsilat.

Kart bazlı planda sağlayıcı token'ı gönderilmez: card/save ya da card/pay + saveCard: true ile sakladığınız kartın id değerini savedCardId olarak verirsiniz, token'ı sunucu kayıttan okur.

Kart token’ı dışarı çıkmaz

Plan yanıtı sağlayıcı kart token'ını ve iç cüzdan kimliklerini taşımaz. İhtiyacınız olan tek kart değeri, Kayıtlı Kart uçlarından dönen id'dir.

Örnek

curl -X POST https://<host>/partner/1.0/recurring/create \
  -H "X-Api-Key: ..." \
  -H "X-Timestamp: ..." \
  -H "X-Signature: ..." \
  -H "Idempotency-Key: create-SUB-1042" \
  -H "Content-Type: application/json" \
  -d '{
  "orderNumber": "SUB-1042",
  "amount": 149.9,
  "currency": "TRY",
  "description": "Aylık üyelik",
  "paymentMethod": "POS",
  "savedCardId": "8f2c1d5e-9a41-4c7b-b6a2-3f0e8d9c1a2b",
  "interval": "MONTH",
  "intervalValue": 1,
  "totalInstallmentCount": 12,
  "maxFailedRetries": 3,
  "startDate": "2026-09-01T00:00:00Z"
}'

İstek Body

AlanTipAçıklama
amountzorunludecimalDönem başına tahsil edilecek tutar.
startDatezorunludateİlk tahsilat tarihi.
currencyenumPara birimi.
Varsayılan: TRY
paymentMethodenumÖdeme yöntemi. Boş bırakılırsa POS (kart).
Varsayılan: POS
POSWALLETLOYALTYCASHFREE
savedCardIdstringKayıtlı kart kimliği — card/save yanıtındaki id. Kart bazlı planlarda verilir.
intervalenumPeriyot birimi.
Varsayılan: MONTH
DAYWEEKMONTHYEAR
intervalValueintegerKaç periyotta bir. 1 = her ay.
Varsayılan: 1
totalInstallmentCountintegerToplam tahsilat adedi. 0 = süresiz.
Varsayılan: 0
maxFailedRetriesintegerBaşarısız denemede kaç kez tekrar denenecek.
Varsayılan: 3
expiryDatedatePlanın biteceği tarih.
descriptionstringAbonenin ekstresinde görünecek açıklama.
orderNumberstringSizin kendi sipariş/sözleşme numaranız. Plandan doğan TÜM taksit tahsilatlarına taşınır; transaction/search ile tek numaradan hepsini listeleyebilirsiniz.
reminderDaysBeforeintegerTahsilattan kaç gün önce hatırlatma gönderilir.
Varsayılan: 3
enableEmailReminderbooleanE-posta hatırlatması.
Varsayılan: true
enableSmsReminderbooleanSMS hatırlatması.
Varsayılan: false
enablePushReminderbooleanPush hatırlatması.
Varsayılan: true
emailstringAbone e-posta adresi.
phoneCountryCodestringAbone telefon ülke kodu.
phoneNumberstringAbone telefon numarası.

Yanıt

AlanAnlamı
idPlan kimliği. detail / update / pause / resume / cancel bu değeri alır.
referenceNumberSistem üretimli referans numarası.
orderNumberSizin gönderdiğiniz sipariş/sözleşme numaranız; plandan doğan tüm tahsilatlara taşınır.
amount / currencyDönem başına tahsil edilecek tutar ve para birimi.
descriptionAbonenin ekstresinde görünecek açıklama.
statusPlan durumu (ACTIVE, PAUSED, CANCELLED, COMPLETED).
interval / intervalValuePeriyot birimi ve kaç periyotta bir çekileceği.
totalInstallmentCount / paidInstallmentCountToplam ve tahsil edilmiş dönem adedi.
failedRetryCountBaşarısız denemelerin sayacı.
email / phoneCountryCode / phoneNumberAbone iletişim bilgileri.
startDate / expiryDateİlk tahsilat ve plan bitiş tarihi.
nextPaymentDate / lastPaymentDateSıradaki ve son tahsilat tarihi.
createdDatePlanın kurulma tarihi.
Örnek yanıt (content)
{
  "id": "REC-3301",
  "referenceNumber": "CREC-3301",
  "orderNumber": "SUB-1042",
  "amount": 149.9,
  "currency": "TRY",
  "description": "Aylık üyelik",
  "status": "ACTIVE",
  "interval": "MONTH",
  "intervalValue": 1,
  "totalInstallmentCount": 12,
  "paidInstallmentCount": 0,
  "failedRetryCount": 0,
  "startDate": "2026-09-01T00:00:00Z",
  "nextPaymentDate": "2026-09-01T00:00:00Z",
  "lastPaymentDate": null,
  "createdDate": "2026-08-17T10:15:30.000Z"
}

İsteği Dene

İsteği Dene
Önizleme modu — değerler kod örneklerini günceller, gerçek istek atılmaz.
Mock