Abonelik İşlemleri
Abonelik işlemleri içerisinde yer alan servisler aşağıda listelenmiştir.
Abonelik Başlatma
Tüm aşamaları tamamlandıysanız artık abonelik başlatabilirsiniz.
Abonelik 2 farklı şekilde başlatılabilir.
Yukarıdaki her iki metod aynı sonucu verir ancak kullanım şeklinde farklılık vardır.
Abonelik süreci her zaman için ACTIVE veya PENDING durumu ile başlar. Eğer durum PENDING ise veya durum ACTIVE ancak ödeme planında bir deneme süresi belirtilmişse, iyzico abonelik isteğinde sadece kartın validasyonunu gerçekleştirir. Kart validasyonu 1 TL’lik bir çekim ve akabinde iade ile gerçekleşir. Bunun dışında herhangi bir işlem veya ödeme gerçekleşmez.
Eğer abonelik durumu ACTIVE ise ve planlamada herhangi bir deneme süresi belirtilmemişse karttan planda belirtilen ödeme alınır ve aboneliği başlatılmış olur.
Her abonelik bir kart bilgisi gerektirir. Müşterileriniz iyzico ortamında sakladıkları kartlar ile veya yeni bir kart ile abonelik başlatabilir. Kart güncellemesi isteğinde ilgili aboneliğe ait subscriptionReferenceCode
gönderilmelidir. Bu durumda sadece ilgili aboneliğin kart bilgisi güncellenecektir.
Abonelik Durumlarının Tablosu
DURUMU | AÇIKLAMA |
---|---|
ACTIVE | Bir abonelik aktif ise ve ödemeler düzenli olarak alınıyorsa status active olur. |
PENDING | Bir abonelik durdurulmuşsa status pending olur. |
UNPAID | Abonelik sırasında ödeme alınamamış ise status unpaid olur. |
UPGRADED | Abonelik başka bir plan ile güncellenmişse status upgraded olur. |
CANCELED | Abonelik iptal edilmişse status cancelled olur. |
EXPIRED | Abonelik periyodu bitmişse status expired olur. Karttan başka bir ödeme alınmaz. |
Ödeme Formu ile Abonelik Başlatma
Bir checkout form oluşturmak için üye işyerleri aşağıdaki bilgileri göndermelidir.
Ödeme Planı Referans Kodu
Müşteri Bilgisi
Abonelik Durumu
CallBackURL (Checkout Form sonucunun post edileceği adres)
CallBackUrl
üye işyerleri tarafından istek sırasında verilir ve ödeme yapıldıktan sonra son kullanıcının yönlendirileceği sayfayı belirler. Müşteri ödemeyi yaptığı anda yönlendirme gerçekleşir. Bu noktada ödeme isteği bankaya gönderilmiş ve sonuç iyzico tarafında işlenmiştir. Üye işyeri ayrı bir istekle ödemenin alınıp alınmadığını kontrol etmelidir. Eğer kart validasyonu veya ilk ödeme başarılıysa diğer tüm süreç iyzico tarafında ilerletilir.
NOT : Müşterinizin iyzico ortamında sakladığı bir kart varsa checkout formunda saklı kartla ödeme seçeneği görünecektir. Bu durumda üye iş yerlerimizin ek bir istek göndermesi gerekmez.
iyzico Checkout Form oluşturma isteği sonucunda bir htmlContent
parametresi döner. Bu javascript kod parçacığı sayfaya yazdırıldığında, iyzico kütüphanesi aşağıda belirtilen “div” lerin herhangi birine yüklenmeye hazırdır. Sayfa tamamen yüklendiğinde checkout form görünecektir.
Checkout formun yükleneceği div'ler responsive veya popup şeklinde olabilir. Aşağıda örnekleri iletilmiştir.
Ödeme Formu ile Abonelik Başlatma
POST
https://api.iyzipay.com/v2/subscription/checkoutform/initialize
Request Body
Name | Type | Description |
---|---|---|
locale | String | iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri TR. |
conversationId | String | İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir. En yaygın kullanış biçimi üye iş yerinin abonelik numarasıdır. |
callbackUrl* | String | Ödeme sonucunun post edileceği url adresi. |
shippingAddress.contactName* | String | Kargo iletişim ismi. |
shippingAddress.country* | String | Kargo ülkesi. |
shippingAddress.city* | String | Kargo şehri. |
shippingAddress.zipCode | String | Kargo zip kodu. |
shippingAddress.address* | String | Kargo adresi. |
billingAddress.contactName* | String | Fatura iletişim ismi. |
billingAddress.country* | String | Fatura adresi. |
billingAddress.city* | String | Fatura şehri. |
billingAddress.zipCode | String | Fatura zip kodu. |
billingAddress.address* | String | Fatura adresi. |
identityNumber* | String | Müşteri telefon numarası. |
gsmNumber* | String | Müşteri email adresi. |
email* | String | Müşteri kimlik numarası. |
surname* | String | Müşteri soyadı. |
name* | String | Müşteri adı. |
subscriptionInitialStatus | String | Abonelik başlangıç durumu (PENDING veya ACTIVE) |
pricingPlanReferenceCode* | String | Abonelikte uygulanacak plan referans kodu. |
Ödeme Formu ile Abonelik Başlatma Dönen Parametreler
Parametre ismi | Tip | Açıklama |
---|---|---|
status | String | Yapılan isteğin sonucunu belirtir. Aboneliğin başarılı şekilde başlaması durumunda success değeri döner. |
systemTime | Long | Dönen sonucun o anki unix timestamp değeridir. |
checkoutFormContent | String | Checkout formun gösterilmesi için gerekli javascript html kodu. |
token | String | Checkout form için oluşturulan tekil değer. Her istek için özel üretilir ve işyerine dönülür. Abonelik detaylarını öğrenmek için kullanılmalıdır. |
tokenExpireTime | StringInteger | Checkout form için üretilmiş olan token değerinin geçerlilik süresi. |
Ödeme Formu Sonucunu Alma
Son kullanıcı kredi kartı bilgilerini girip veya saklı kartı ile ödemeyi tamamladığında, işlem başarılı ise, sayfa init isteğinde belirtilen callBackUrl
adresine yönlendirilir. Bu adrese aynı zamanda post metodu ile token bilgisi gönderilir. Bu sorguda kullanacağınız token değerini ödeme formunu oluşturduğunuz anda(init) ya da callbackUrl
adresinize gönderilen post datasından alabilirsiniz.
Ödeme Formu Sonucunu Alma
POST
https://api.iyzipay.com/v2/subscription/checkoutform/{{ token }}
Request Body
Name | Type | Description |
---|---|---|
token* | String | Checkout form için oluşturulan tekil değer. Her istek için özel üretilir ve işyerine dönülür. Abonelik sonucunu öğrenmek için zorunlu bir alandır. |
Ödeme Formu Sonucunu Alma Dönen Parametreler
Parametre ismi | Tip | Açıklama |
---|---|---|
status | String | Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner. |
systemTime | Integer | Dönen sonucun o anki unix timestamp değeridir. |
referenceCode | String | Abonelik için üretilen eşsiz referans kodu. |
parentReferenceCode | String | Abonelik güncellemelerinde üye işeyerinin eşleştirme yapılabileceği eşsiz referans kodu. |
pricingPlanReferenceCode | Integer | Aboneliğe ait plan referans kodu. |
customerReferenceCode | String | Müşteri bilgilerine istinaden oluşturulmuş eşsiz müşteri kodu. Bu kod email adresi baz alınarak oluşturulur ve müşteri işlemleri bu kod ile de yapılabilir. |
subscriptionStatus | String | Abonelik durumunu gösterir. İstek esnasında gönderilmişse, sonuçta aynen geri iletilir. Gönderilmemişse ACTIVE değeri döner. |
trialDays | Integer | Ödeme planında belirlenen deneme süresidir. Bu süreç boyunca karttan ödeme alınmaz. |
trialStartDate | Integer | Deneme süresinin başlangıç tarihini gösteren unix timestamp değeridir. |
trialEndDate | Integer | Deneme süresinin bitiş tarihini gösteren unix timestamp değeridir. |
createdDate | Integer | Abonelik oluşturulma tarihinin unix timestamp değeridir. |
startDate | Integer | Abonelik başlangıç tarihinin unix timestamp değeridir. |
NON-3DS ile Abonelik Başlatma
Üye iş yerleri aşağıdaki parametreleri göndererek abonelik başlatabilir.
NON-3DS ile Abonelik Başlatma
POST
https://api.iyzipay.com/v2/subscription/initialize
Request Body
Name | Type | Description |
---|---|---|
locale | String | iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri TR. |
conversationId | String | İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir. En yaygın kullanış biçimi üye iş yerinin abonelik numarasıdır. |
shippingAddress.contactName* | String | Kargo iletişim ismi. |
shippingAddress.country* | String | Kargo ülkesi. |
shippingAddress.city* | String | Kargo şehri. |
shippingAddress.zipCode | String | Kargo zip kodu. |
shippingAddress.address* | String | Kargo adresi. |
billingAddress.contactName* | String | Fatura iletişim ismi. |
billingAddress.country* | String | Fatura adresi. |
billingAddress.city* | String | Fatura şehri. |
billingAddress.zipCode | String | Fatura zip kodu. |
billingAddress.address* | String | Fatura adresi. |
identityNumber* | String | Müşteri telefon numarası. |
gsmNumber* | String | Müşteri email adresi. |
email* | String | Müşteri kimlik numarası. |
surname* | String | Müşteri soyadı. |
name* | String | Müşteri adı. |
subscriptionInitialStatus | String | Abonelik başlangıç durumu (PENDING veya ACTIVE) |
pricingPlanReferenceCode* | String | Abonelikte uygulanacak plan referans kodu. |
paymentCard.consumerToken | String | Saklı kartın kullanılabilmesi için kullanıcı için oluşturulmuş token. Geçerlilik süresi 30 dakikadır. |
paymentCard.cardToken | String | Seçilen karta ait token. |
paymentCard.ucsToken | String | Kartın iyzico ortamında çözümlenmesi için kullanıcı için oluşturulmul değer. Geçerlilik süresi 30 dakikadır. |
paymentCard.registerConsumerCard* | Boolean | Kartın saklanması için gerekli değer. True gönderilmelidir. Kartın iyzico ortamında saklanacağının onayı alınamlı. detaylı bilgi için iyzico korumalı kart saklama dökümanını inceleyeniz. |
paymentCard.cvc | String | Kart CVC kodu |
paymentCard.expireMonth | String | Kart son kullanma ayı |
paymentCard.expireYear | String | Kart son kullanma yılı. |
paymentCard.cardNumber | String | Kredi kartı numarası. |
paymentCard.cardHolderName | String | Kart sahibi adı ve soyadı. |
NOT : Eğer yeni bir kart ile abonelik başlatılacaksa kart bilgileri ile birlikte registerConsumerCard
parametresinin true gönderilmesi gerekir. Ayrıca müşteriden kartının iyzico ortamında saklanacağı ile ilgili onay alınmalıdır.
Eğer saklı kartla abonelik başlatılacaksa ucsToken
, cardToken
, consumerToken
bilgileri gönderilmelidir.
NON-3DS ile Abonelik Başlatma Dönen Parametreler
Parametre ismi | Tip | Açıklama |
---|---|---|
status | String | Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner. |
systemTime | Integer | Dönen sonucun o anki unix timestamp değeridir. |
referenceCode | String | Abonelik için üretilen eşsiz referans kodu. |
parentReferenceCode | String | Abonelik güncellemelerinde üye işeyerinin eşleştirme yapılabileceği eşsiz referans kodu. |
pricingPlanReferenceCode | Integer | Aboneliğe ait plan referans kodu. |
customerReferenceCode | String | Müşteri bilgilerine istinaden oluşturulmuş eşsiz müşteri kodu. Bu kod email adresi baz alınarak oluşturulur ve müşteri işlemleri bu kod ile de yapılabilir. |
subscriptionStatus | String | Abonelik durumunu gösterir. İstek esnasında gönderilmişse, sonuçta aynen geri iletilir. Gönderilmemişse ACTIVE değeri döner. |
trialDays | Integer | Ödeme planında belirlenen deneme süresidir. Bu süreç boyunca karttan ödeme alınmaz. |
trialStartDate | Integer | Deneme süresinin başlangıç tarihini gösteren unix timestamp değeridir. |
trialEndDate | Integer | Deneme süresinin bitiş tarihini gösteren unix timestamp değeridir. |
createdDate | Integer | Abonelik oluşturulma tarihinin unix timestamp değeridir. |
startDate | Integer | Abonelik başlangıç tarihinin unix timestamp değeridir. |
Abonelik Aktifleştirme
Pending durumunda bir abonelik bu istek ile aktifleştirilebilir
Abonelik Aktifleştirme
POST
https://api.iyzipay.com/v2/subscription/subscriptions/{subscriptionReferenceCode}/activate
Request Body
Name | Type | Description |
---|---|---|
subscriptionReferenceCode* | String | Eşsiz abonelik referans numarası |
Abonelik Aktifleştirme Dönen Parametreler
Parametre ismi | Tip | Açıklama |
---|---|---|
status | String | Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner. |
systemTime | Long | Dönen sonucun o anki unix timestamp değeridir. |
Abonelik Ödeme Tekrarlama
Eğer abonelik süresince bir ödeme başarısız olduysa, işlemi yenilemek ve ödemeyi almak için bu istek kullanılabilir.
Abonelik Ödeme Tekrarlama
POST
https://api.iyzipay.com/operation/retry
Request Body
Name | Type | Description |
---|---|---|
referenceCode* | String | Başarısız ödemenin referans kodu |
Abonelik Ödeme Tekrarlama Dönen Parametreler
Parametre ismi | Tip | Açıklama |
---|---|---|
status | String | Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner. |
systemTime | Long | Dönen sonucun o anki unix timestamp değeridir. |
Abonelik Yükseltme
Abonelik planını abonelik süresince değiştirmek veya yükseltmek mümkündür. Bunun için tek gerekli koşul, güncelleme yapılacak yeni plan, aboneliğin bağlı olduğu mevcut ürüne ait olmalıdır.
NOT : Güncelleme yapılacak planların PaymentInterval ve PaymentIntervalCount parametreleri aynı olmalıdır.
Abonelik Yükseltme
POST
https://api.iyzipay.com/v2/subscription/subscriptions/{subscriptionReferenceCode}/upgrade
Request Body
Name | Type | Description |
---|---|---|
subscriptionReferenceCode* | String | Eşsiz abonelik referans numarası |
resetRecurrenceCount | Boolean | Eğer TRUE gönderilirse ve yeni plan recurrence count değerine sahipse abonelik sonlanma süresi yeni değere göre hesaplanır. Eğer FALSE gönderilirse önceki planın sonlanma tarihi yeni plana aktarılır. |
useTrial | Boolean | Eğer TRUE gönderilir ise deneme süreci dahil edilir. |
upgradePeriod | String | Abonelik güncelleme tarihi. |
newPricingPlanReferenceCode | String | Yeni plan referens numarası. |
Abonelik Yükseltme Dönen Parametreler
Parametre ismi | Tip | Açıklama |
---|---|---|
status | String | Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner. |
systemTime | Long | Dönen sonucun o anki unix timestamp değeridir. |
Abonelik İptali
Bu istek aktif bir aboneliği iptal eder.
Abonelik İptali
POST
https://api.iyzipay.com/v2/subscription/subscriptions/{subscriptionReferenceCode}/cancel
Request Body
Name | Type | Description |
---|---|---|
locale | String | Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner. |
subscriptionReferenceCode* | String | Abonelik referans numarası. |
conversationId | String | Dönen sonucun o anki unix timestamp değeridir. |
Abonelik İptali Dönen Parametreler
Parametre ismi | Tip | Açıklama |
---|---|---|
status | String | Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner. |
systemTime | Long | Dönen sonucun o anki unix timestamp değeridir. |
Abonelik Detayı
Bir aboneliğin tüm detayları bu istek ile görülebilir.
Abonelik Detayı
GET
https://api.iyzipay.com/v2/subscription/subscriptions/{subscriptionReferenceCode}
Request Body
Name | Type | Description |
---|---|---|
subscriptionReferenceCode | String | Abonelik refereans numarası |
Abonelik Detayı Dönen Parametreler
Parametre ismi | Tip | Açıklama |
---|---|---|
status | String | Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner. |
systemTime | Integer | Dönen sonucun o anki unix timestamp değeridir. |
referenceCode | String | Abonelik için üretilen eşsiz referans kodu. |
parentReferenceCode | String | Abonelik güncellemelerinde üye işeyerinin eşleştirme yapılabileceği eşsiz referans kodu. |
pricingPlanReferenceCode | Integer | Aboneliğe ait plan referans kodu. |
customerEmail | String | Müşteri email adresi. |
customerReferenceCode | String | Müşteri bilgilerine istinaden oluşturulmuş eşsiz müşteri kodu. Bu kod email adresi baz alınarak oluşturulur ve müşteri işlemleri bu kod ile de yapılabilir. |
subscriptionStatus | String | Abonelik durumunu gösterir. İstek esnasında gönderilmişse, sonuçta aynen geri iletilir. Gönderilmemişse ACTIVE değeri döner. |
trialDays | Integer | Ödeme planında belirlenen deneme süresidir. Bu süreç boyunca karttan ödeme alınmaz. |
trialStartDate | Integer | Deneme süresinin başlangıç tarihini gösteren unix timestamp değeridir. |
trialEndDate | Integer | Deneme süresinin bitiş tarihini gösteren unix timestamp değeridir. |
createdDate | Integer | Abonelik oluşturulma tarihinin unix timestamp değeridir. |
startDate | Integer | Abonelik başlangıç tarihinin unix timestamp değeridir. |
Abonelik Arama
Bu istek farklı arama parametreleri ile abonelik bilgilerine ve ödemelerine ulaşılmasını sağlar.
Abonelik Arama
GET
https://api.iyzipay.com/v2/subscription/subscriptions
Request Body
Name | Type | Description |
---|---|---|
subscriptionReferenceCode | String | Abonelik referans kodu. |
count* | Integer | Sayfa başına kaç abonelik listelenceğini belirtir. |
page * | Integer | Belirtilen sayfa için abonelik detaylarını getirir. |
endDate | Date | Abonelik bitiş tarihi. |
startDate | Date | Abonelik başlangıç tarihi. |
subscriptionStatus | String | Abonelik durumu. |
pricingPlanReferenceCode | Boolean | Abonelikte kullanılan plan refereans numarası. |
customerReferenceCode | String | Müşteri referans kodu. |
parentReferenceCode | String | Abonelik güncellemelerinde üye işeyerinin eşleştirme yapılabileceği eşsiz referans kodu. |
Abonelik Arama Dönen Parametreler
Parametre ismi | Tip | Açıklama |
---|---|---|
status | String | Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner. |
systemTime | Long | Dönen sonucun o anki unix timestamp değeridir. |
totalCount | String | Toplam kaç tane sonuç geldiğini belirtir. |
currentPage | Integer | Hangi sayfa için listeleme yapıldığını belirtir. |
pageCount | Integer | Toplam kaç sayfa sonuç geldiğini belirtir. |
items | Array Object | Abonelik detaylarını içeren dizidir. |
Abonelik Kart Güncelleme
Bu istek ile bir abonelikte kullanılan kredi kartı güncellenebilir. Ödeme hatası, kart son kullanma tarihinin geçmesi gibi durumlarda üye iş yerleri kart bilgisini kolayca güncelleyebilir. Güncellenen kredi kartının validasyonu için 1 TL’lik ödeme alınır ve hemen iadesi gerçekleşir.
Abonelik Kart Güncelleme
POST
https://api.iyzipay.com/v2/subscription/card-update/checkoutform/initialize
Request Body
Name | Type | Description |
---|---|---|
locale | String | Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner. |
callBackUrl* | String | Ödeme sonucunun post edileceği url adresi. |
subscriptionReferenceCode* | String | Abonelik referans numarası. |
conversationId | String | Dönen sonucun o anki unix timestamp değeridir. |
Abonelik Kart Güncelleme Dönen Parametreler
Parametre ismi | Tip | Açıklama |
---|---|---|
status | String | Yapılan isteğin sonucunu belirtir. İşlem başarılı ise ve kart update edilmiş ise success değeri döner. |
systemTime | Long | Dönen sonucun o anki unix timestamp değeridir. |
checkoutFormContent | String | Checkout formun gösterilmesi için gerekli javascript html kodu. |
token | String | Checkout form için oluşturulan tekil değer. Her istek için özel üretilir ve işyerine dönülür. |
tokenExpireTime | Integer | Checkout form için üretilmiş olan token değerinin geçerlilik süresi. |
NOT : Üye işyerleri tüm isteklerde locale ve conversationId parametrelerini gönderebilir ancak bu zorunlu değildir. Locale parametresi cevabın dilini belirler. Eğer “EN” olarak belirtilirse hata mesajları İngilizce alınacaktır. Conversation id ise yazılımcıların istek ve cevapları eşleştirmede kullanabilecekleri bir değerdir. Bu parametre gönderilirse cevapta aynı değer alınacaktır.
Bu istek ile checkout form oluşturulur ve müşteri ödemeyi yaptığında belirtilen callBackUrl
adresine token bilgisi post edililir. Bu durumda kart başarıyla güncellenmiş demektir.
Last updated