# Abonelik İşlemleri

Abonelik işlemleri içerisinde yer alan servisler aşağıda listelenmiştir.

1. [Abonelik Başlatma](#abonelik-baslatma)
2. [Abonelik Aktifleştirme](#post-v2-subscription-subscriptions-subscriptionreferencecode-activate)
3. [Abonelik Ödeme Tekrarlama](#post-v2-subscription-operation-retry)
4. [Abonelik Yükseltme/Fiyat Güncelleme](#post-v2-subscription-subscriptions-subscriptionreferencecode-upgrade)
5. [Abonelik İptali](#post-v2-subscription-subscriptions-subscriptionreferencecode-cancel)
6. [Abonelik Detayı](#get-v2-subscription-subscriptions-subscriptionreferencecode)
7. [Abonelik Arama](#get-v2-subscription-subscriptions)
8. [Abonelik Kart Güncelleme](#post-v2-subscription-card-update-checkoutform-initialize)

{% hint style="info" %}
Abonelik işlemlerinde ilk işlem dahil, tüm işlemler NON3D olarak gerçekleştirilmektedir.
{% endhint %}

### Abonelik Başlatma

Tüm aşamaları tamamlandıysanız artık abonelik başlatabilirsiniz.

Abonelik 2 farklı şekilde başlatılabilir.

1. [Ödeme Formu](#post-v2-subscription-checkoutform-initialize)
2. [NON-3DS](#post-v2-subscription-initialize)

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.

{% hint style="info" %}
Abonelik başlatıldıktan sonra her tekrarlayan ödeme için [webhook](https://docs.iyzico.com/ek-servisler/webhook#abonelik-bildirimleri) bildirimi gönderilir. Bu bildirimi aldıktan sonra, ilgili aboneliğin güncel durumunun kontrol edilmesi gerekir.\
\
Başarısız ödeme işlemleri için, retry servisi ile veya iyzico kontrol paneli üzerinden tekrar ödeme işlemi denenebilir.
{% endhint %}

#### Abonelik Durumlarının Tablosu

<table><thead><tr><th width="140">DURUMU</th><th>AÇIKLAMA</th></tr></thead><tbody><tr><td><strong>ACTIVE</strong></td><td>Bir abonelik aktif ise ve ödemeler düzenli olarak alınıyorsa status active olur.</td></tr><tr><td><strong>PENDING</strong></td><td>Bir abonelik durdurulmuşsa status pending olur.</td></tr><tr><td><strong>UNPAID</strong></td><td>Abonelik sırasında ödeme alınamamış ise status unpaid olur.</td></tr><tr><td><strong>UPGRADED</strong></td><td>Abonelik başka bir plan ile güncellenmişse status upgraded olur.</td></tr><tr><td><strong>CANCELED</strong> </td><td>Abonelik iptal edilmişse status cancelled olur.</td></tr><tr><td><strong>EXPIRED</strong></td><td>Abonelik periyodu bitmişse status expired olur. Karttan başka bir ödeme alınmaz.</td></tr></tbody></table>

#### Ö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.

{% hint style="info" %}
**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.&#x20;
{% endhint %}

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.

```html
<div id="iyzipay-checkout-form" class="responsive"></div>
```

```html
<div id="iyzipay-checkout-form" class="popup"></div>
```

## Abonelik Başlatma (iyzico Ödeme Formu)

> iyzico Ödeme formu (Checkout Form) ile abonelik başlatmak için kullanılır. Ödeme formuna ait content ve token değeri döner.

```json
{"openapi":"3.0.3","info":{"title":"Subscription - Abonelik Başlatma","version":"1.0.0"},"servers":[{"url":"https://api.iyzipay.com","description":"iyzico API"}],"paths":{"/v2/subscription/checkoutform/initialize":{"post":{"summary":"Abonelik Başlatma (iyzico Ödeme Formu)","description":"iyzico Ödeme formu (Checkout Form) ile abonelik başlatmak için kullanılır. Ödeme formuna ait content ve token değeri döner.","tags":["Abonelik"],"parameters":[{"$ref":"#/components/parameters/AuthHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartSubscriptionCheckoutFormInitializeRequest"}}}},"responses":{"200":{"description":"Başarılı yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartSubscriptionCheckoutFormInitializeResponse"}}}},"400":{"description":"Başarısız yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"parameters":{"AuthHeader":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"},"description":"Authorization header, IYZWSv2 ile başlayan ve base64 formatında üretilmiş imzalı hash değeridir."},"ContentTypeHeader":{"name":"Content-Type","in":"header","required":true,"schema":{"type":"string"},"description":"İstek içeriğinin formatı."}},"schemas":{"StartSubscriptionCheckoutFormInitializeRequest":{"type":"object","required":["callbackUrl","pricingPlanReferenceCode","subscriptionInitialStatus","customer"],"properties":{"locale":{"type":"string","description":"Dil kodu. Varsayılan; tr. Ödeme formunun İngilizce oluşturulması için \"en\" gönderilmelidir.","enum":["tr","en"]},"callbackUrl":{"type":"string","description":"Ödeme sonucunun gönderileceği callback adresi."},"pricingPlanReferenceCode":{"type":"string","description":"Aboneliğin başlatılacağı planın referans kodu."},"subscriptionInitialStatus":{"type":"string","enum":["ACTIVE","PENDING"],"description":"Abonelik başlangıç durumu. PENDING gönderilirse abonelik başlamaz ve tekrar aktif edilmesi gerekir."},"conversationId":{"type":"string","description":"İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir."},"customer":{"$ref":"#/components/schemas/SubscriptionCustomer"}}},"SubscriptionCustomer":{"description":"Alıcı Bilgileri","type":"object","required":["name","surname","email","gsmNumber","identityNumber","billingAddress"],"properties":{"name":{"type":"string","description":"Kullanıcı Adı."},"surname":{"type":"string","description":"Kullanıcı Soyadı."},"email":{"type":"string","description":"Kullanıcı Email Bilgisi."},"gsmNumber":{"type":"string","description":"GSM Numarası. +90'lı bir numara kullanılmalıdır."},"identityNumber":{"type":"string","description":"TCKN Bilgisi"},"billingAddress":{"$ref":"#/components/schemas/SubscriptionBillingAddress"},"shippingAddress":{"$ref":"#/components/schemas/SubscriptionShippingAddress"}}},"SubscriptionBillingAddress":{"type":"object","description":"Fatura Bilgileri","required":["address","contactName","city","country"],"properties":{"address":{"description":"Fatura Adresi","type":"string"},"zipCode":{"type":"string","description":"Zip Kodu."},"contactName":{"description":"İletişim kuralacak isim.","type":"string"},"city":{"description":"Şehir","type":"string"},"country":{"description":"Ülke","type":"string"}}},"SubscriptionShippingAddress":{"type":"object","description":"Kargo Adres Bilgileri","required":false,"properties":{"address":{"description":"Fatura Adresi","type":"string"},"zipCode":{"type":"string","description":"Zip Kodu."},"contactName":{"description":"İletişim kuralacak isim.","type":"string"},"city":{"description":"Şehir","type":"string"},"country":{"description":"Ülke","type":"string"}}},"StartSubscriptionCheckoutFormInitializeResponse":{"type":"object","properties":{"status":{"type":"string","enum":["success","failure"],"description":"İşlem sonucu."},"locale":{"type":"string","enum":["tr","en"],"description":"Yanıt dili."},"systemTime":{"type":"integer","description":"İşlem zamanı (epoch ms)."},"conversationId":{"description":"İstek sırasında gönderilen değer aynen geri döner.","type":"string"},"token":{"type":"string","description":"Ödeme formuna ait token değeri."},"checkoutFormContent":{"type":"string","description":"Ödeme formuna ait htmlContent değeri."},"tokenExpireTime":{"type":"integer","description":"Token geçerlilik süresi (saniye)."}}},"ErrorResponse":{"type":"object","properties":{"status":{"description":"İstek sonucunu ifade eder.","type":"string","enum":["failure"]},"errorCode":{"description":"Error Kod","type":"string"},"errorMessage":{"description":"Error Mesajı","type":"string"},"systemTime":{"description":"Dönen sonucun o anki unix timestamp değeridir.","type":"integer"}}}}}}
```

{% hint style="info" %}
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.
{% endhint %}

#### Örnek Kodlar

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><a href="https://github.com/iyzico/iyzipay-php/blob/master/samples/subscription-samples/create_subscription_with_checkout_form.php">PHP</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-java/blob/master/src/test/java/com/iyzipay/sample/subscription/SubscriptionCheckoutFormInitializeSample.java">Java</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-dotnet/blob/master/Iyzipay.Samples/SubscriptionSample.cs#L14">.Net</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-node/blob/master/samples/IyzipaySubscriptionSamples.js#L377">Node.Js</a></td></tr><tr><td><a href="https://www.postman.com/iyzico/iyzico/request/luswnz6/3-1-1-1-initialize-checkoutform?sideView=agentMode">Postman</a></td></tr></tbody></table>

## Ödeme Formu Sonucunu Alma

> Checkout form akışı tamamlandıktan sonra ödeme formuna token ile abonelik başlatma sonucunu sorgulanır.

```json
{"openapi":"3.0.3","info":{"title":"Subscription - Abonelik Başlatma","version":"1.0.0"},"servers":[{"url":"https://api.iyzipay.com","description":"iyzico API"}],"paths":{"/v2/subscription/checkoutform/{token}":{"get":{"summary":"Ödeme Formu Sonucunu Alma","description":"Checkout form akışı tamamlandıktan sonra ödeme formuna token ile abonelik başlatma sonucunu sorgulanır.","tags":["Abonelik"],"parameters":[{"$ref":"#/components/parameters/AuthHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"name":"token","in":"path","required":true,"schema":{"type":"string"},"description":"Checkout form initialize ile dönen, ilgili işleme ait token."},{"name":"conversationId","in":"query","required":false,"schema":{"type":"string"},"description":"İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir."}],"responses":{"200":{"description":"Başarılı yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartSubscriptionCheckoutFormResultResponse"}}}},"400":{"description":"Başarısız yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"parameters":{"AuthHeader":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"},"description":"Authorization header, IYZWSv2 ile başlayan ve base64 formatında üretilmiş imzalı hash değeridir."},"ContentTypeHeader":{"name":"Content-Type","in":"header","required":true,"schema":{"type":"string"},"description":"İstek içeriğinin formatı."}},"schemas":{"StartSubscriptionCheckoutFormResultResponse":{"type":"object","properties":{"status":{"type":"string","enum":["success","failure"]},"locale":{"type":"string","enum":["tr","en"]},"systemTime":{"description":"Dönen sonucun o anki unix timestamp değeridir.","type":"integer"},"conversationId":{"type":"string","description":"İstek esnasında gönderilen veri aynen geri döner."},"token":{"type":"string","description":"Ödeme formuna ait token değeri."},"data":{"type":"object","properties":{"referenceCode":{"type":"string","description":"Oluşturulan aboneliğin referans kodu."},"parentReferenceCode":{"type":"string","description":"Abonelik güncellemelerinde üye işeyerinin eşleştirme yapılabileceği eşsiz referans kodu."},"customerReferenceCode":{"type":"string","description":"Müşteri bilgilerine istinaden oluşturulmuş eşsiz müşteri kodu. Bu kod email ve gsmNumber adresi baz alınarak oluşturulur ve müşteri işlemleri bu kod ile de yapılabilir."},"subscriptionStatus":{"type":"string","description":"Abonelik durumu","enum":["ACTIVE","PENDING"]},"pricingPlanReferenceCode":{"type":"string"},"trialDays":{"type":"integer","description":"Ödeme planında belirlenen deneme süresidir. Bu süreç boyunca karttan ödeme alınmaz."},"trialStartDate":{"type":"integer","description":"Deneme süresinin başlangıç tarihini gösteren unix timestamp değeridir."},"trialEndDate":{"type":"integer","description":"Deneme süresinin bitiş tarihini gösteren unix timestamp değeridir."},"createdDate":{"type":"integer","description":"Abonelik oluşturulma tarihinin unix timestamp değeridir."},"startDate":{"type":"integer","description":"Abonelik başlangıç tarihinin unix timestamp değeridir."},"endDate":{"type":"integer","description":"Abonelik bitiş tarihinin unix timestamp değeridir."}}}}},"ErrorResponse":{"type":"object","properties":{"status":{"description":"İstek sonucunu ifade eder.","type":"string","enum":["failure"]},"errorCode":{"description":"Error Kod","type":"string"},"errorMessage":{"description":"Error Mesajı","type":"string"},"systemTime":{"description":"Dönen sonucun o anki unix timestamp değeridir.","type":"integer"}}}}}}
```

#### Örnek Kodlar

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><a href="https://github.com/iyzico/iyzipay-php/blob/master/samples/subscription-samples/retrieve_subscription_checkout_form_result.php">PHP</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-java/blob/master/src/test/java/com/iyzipay/sample/subscription/SubscriptionCheckoutFormSample.java">Java</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-node/blob/master/samples/IyzipaySubscriptionSamples.js#L415">Node.Js</a></td></tr><tr><td><a href="https://www.postman.com/iyzico/iyzico/request/fdkvoby/3-1-1-2-retrieve-subscription-after-completed-checkoutform">Postman</a></td></tr><tr><td></td></tr></tbody></table>

## Abonelik Başlatma (NON3D)

> Hazır ödeme formu olmadan, Tarafınıza ait ödeme formu ile NON3D servisi üzerinden abonelik başlatabilirsiniz.

```json
{"openapi":"3.0.3","info":{"title":"Subscription - Abonelik Başlatma","version":"1.0.0"},"servers":[{"url":"https://api.iyzipay.com","description":"iyzico API"}],"paths":{"/v2/subscription/initialize":{"post":{"summary":"Abonelik Başlatma (NON3D)","description":"Hazır ödeme formu olmadan, Tarafınıza ait ödeme formu ile NON3D servisi üzerinden abonelik başlatabilirsiniz.","tags":["Abonelik"],"parameters":[{"$ref":"#/components/parameters/AuthHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartSubscriptionNon3DRequest"}}}},"responses":{"200":{"description":"Başarılı yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartSubscriptionNon3DResponse"}}}},"400":{"description":"Başarısız yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"parameters":{"AuthHeader":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"},"description":"Authorization header, IYZWSv2 ile başlayan ve base64 formatında üretilmiş imzalı hash değeridir."},"ContentTypeHeader":{"name":"Content-Type","in":"header","required":true,"schema":{"type":"string"},"description":"İstek içeriğinin formatı."}},"schemas":{"StartSubscriptionNon3DRequest":{"type":"object","required":["pricingPlanReferenceCode","customer","paymentCard","subscriptionInitialStatus"],"properties":{"pricingPlanReferenceCode":{"type":"string","description":"Aboneliğin başlatılacağı planın referans kodu."},"conversationId":{"type":"string","description":"İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir."},"subscriptionInitialStatus":{"type":"string","enum":["ACTIVE","PENDING"],"description":"Abonelik başlangıç durumu. PENDING gönderilirse abonelik başlamaz ve tekrar aktif edilmesi gerekir."},"customer":{"$ref":"#/components/schemas/SubscriptionCustomer"},"paymentCard":{"description":"Kart bilgileri.","$ref":"#/components/schemas/PaymentCard"}}},"SubscriptionCustomer":{"description":"Alıcı Bilgileri","type":"object","required":["name","surname","email","gsmNumber","identityNumber","billingAddress"],"properties":{"name":{"type":"string","description":"Kullanıcı Adı."},"surname":{"type":"string","description":"Kullanıcı Soyadı."},"email":{"type":"string","description":"Kullanıcı Email Bilgisi."},"gsmNumber":{"type":"string","description":"GSM Numarası. +90'lı bir numara kullanılmalıdır."},"identityNumber":{"type":"string","description":"TCKN Bilgisi"},"billingAddress":{"$ref":"#/components/schemas/SubscriptionBillingAddress"},"shippingAddress":{"$ref":"#/components/schemas/SubscriptionShippingAddress"}}},"SubscriptionBillingAddress":{"type":"object","description":"Fatura Bilgileri","required":["address","contactName","city","country"],"properties":{"address":{"description":"Fatura Adresi","type":"string"},"zipCode":{"type":"string","description":"Zip Kodu."},"contactName":{"description":"İletişim kuralacak isim.","type":"string"},"city":{"description":"Şehir","type":"string"},"country":{"description":"Ülke","type":"string"}}},"SubscriptionShippingAddress":{"type":"object","description":"Kargo Adres Bilgileri","required":false,"properties":{"address":{"description":"Fatura Adresi","type":"string"},"zipCode":{"type":"string","description":"Zip Kodu."},"contactName":{"description":"İletişim kuralacak isim.","type":"string"},"city":{"description":"Şehir","type":"string"},"country":{"description":"Ülke","type":"string"}}},"PaymentCard":{"type":"object","required":["cardHolderName","cardNumber","expireMonth","expireYear","cvc"],"properties":{"cardHolderName":{"description":"Kart Sahibi Adı.","type":"string"},"cardNumber":{"description":"Kart Numarası","type":"string"},"expireMonth":{"description":"Geçerlilik Tarihi (AY)","type":"string"},"expireYear":{"description":"Geçerlilik Tarihi (YIL)","type":"string"},"cvc":{"description":"CVC/CVV Bilgisi","type":"string"}}},"StartSubscriptionNon3DResponse":{"type":"object","properties":{"status":{"description":"Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner.","type":"string","enum":["success","failure"]},"systemTime":{"description":"Dönen sonucun o anki unix timestamp değeridir.","type":"integer"},"data":{"type":"object","properties":{"referenceCode":{"type":"string","description":"Oluşturulan aboneliğin referans kodu."},"parentReferenceCode":{"type":"string","description":"Abonelik güncellemelerinde üye işeyerinin eşleştirme yapılabileceği eşsiz referans kodu."},"customerReferenceCode":{"type":"string","description":"Müşteri bilgilerine istinaden oluşturulmuş eşsiz müşteri kodu. Bu kod email ve gsmNumber adresi baz alınarak oluşturulur ve müşteri işlemleri bu kod ile de yapılabilir."},"subscriptionStatus":{"type":"string","description":"Abonelik durumu","enum":["ACTIVE","PENDING"]},"pricingPlanReferenceCode":{"type":"string"},"trialDays":{"type":"integer","description":"Ödeme planında belirlenen deneme süresidir. Bu süreç boyunca karttan ödeme alınmaz."},"trialStartDate":{"type":"integer","description":"Deneme süresinin başlangıç tarihini gösteren unix timestamp değeridir."},"trialEndDate":{"type":"integer","description":"Deneme süresinin bitiş tarihini gösteren unix timestamp değeridir."},"createdDate":{"type":"integer","description":"Abonelik oluşturulma tarihinin unix timestamp değeridir."},"startDate":{"type":"integer","description":"Abonelik başlangıç tarihinin unix timestamp değeridir."},"endDate":{"type":"integer","description":"Abonelik bitiş tarihinin unix timestamp değeridir."}}}}},"ErrorResponse":{"type":"object","properties":{"status":{"description":"İstek sonucunu ifade eder.","type":"string","enum":["failure"]},"errorCode":{"description":"Error Kod","type":"string"},"errorMessage":{"description":"Error Mesajı","type":"string"},"systemTime":{"description":"Dönen sonucun o anki unix timestamp değeridir.","type":"integer"}}}}}}
```

#### Örnek Kodlar

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><a href="https://github.com/iyzico/iyzipay-php/blob/master/samples/subscription-samples/create_subscription_api.php">PHP</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-java/blob/master/src/test/java/com/iyzipay/sample/subscription/SubscriptionInitializeSample.java#L22">Java</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-dotnet/blob/master/Iyzipay.Samples/SubscriptionSample.cs#L62">.NET</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-node/blob/master/samples/IyzipaySubscriptionSamples.js#L426">Node.Js</a></td></tr><tr><td><a href="https://www.postman.com/iyzico/iyzico/request/iag178u/3-1-2-1-initialize-subscription-payment?sideView=agentMode">Postman</a></td></tr></tbody></table>

## Abonelik Başlatma (Existing Customer)

> Abonelik başlatılmak istenen kullanıcının hali hazırda aktif bir aboneliği bulunuyorsa, customerReferenceCode ile yeni bir abonelik başlatılabilir. Eğer kullanıcının aktif bir aboneliği bulunmuyorsa custormerReferenceCode ile yeni bir abonelik başlatılmamaktadır.<br>

```json
{"openapi":"3.0.3","info":{"title":"Subscription - Abonelik Başlatma","version":"1.0.0"},"servers":[{"url":"https://api.iyzipay.com","description":"iyzico API"}],"paths":{"/v2/subscription/initialize/with-customer":{"post":{"summary":"Abonelik Başlatma (Existing Customer)","description":"Abonelik başlatılmak istenen kullanıcının hali hazırda aktif bir aboneliği bulunuyorsa, customerReferenceCode ile yeni bir abonelik başlatılabilir. Eğer kullanıcının aktif bir aboneliği bulunmuyorsa custormerReferenceCode ile yeni bir abonelik başlatılmamaktadır.\n","tags":["Abonelik"],"parameters":[{"$ref":"#/components/parameters/AuthHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartSubscriptionWithCustomerRequest"}}}},"responses":{"200":{"description":"Başarılı yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartSubscriptionWithCustomerResponse"}}}},"400":{"description":"Başarısız yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"parameters":{"AuthHeader":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"},"description":"Authorization header, IYZWSv2 ile başlayan ve base64 formatında üretilmiş imzalı hash değeridir."},"ContentTypeHeader":{"name":"Content-Type","in":"header","required":true,"schema":{"type":"string"},"description":"İstek içeriğinin formatı."}},"schemas":{"StartSubscriptionWithCustomerRequest":{"type":"object","required":["subscriptionInitialStatus","pricingPlanReferenceCode","customerReferenceCode"],"properties":{"subscriptionInitialStatus":{"type":"string","enum":["ACTIVE","PENDING"],"description":"Abonelik başlangıç durumu. PENDING gönderilirse abonelik başlamaz ve tekrar aktif edilmesi gerekir."},"pricingPlanReferenceCode":{"type":"string","description":"Aboneliğin başlatılacağı planın referans kodu."},"customerReferenceCode":{"type":"string","description":"Mevcut müşterinin referans kodu. Aktif bir aboneliği olmalıdır."}}},"StartSubscriptionWithCustomerResponse":{"type":"object","properties":{"status":{"type":"string","enum":["success","failure"],"description":"İşlem sonucu."},"systemTime":{"type":"integer","description":"İşlem zamanı (epoch ms)."},"data":{"type":"object","properties":{"referenceCode":{"type":"string","description":"Oluşturulan aboneliğin referans kodu."},"parentReferenceCode":{"type":"string","description":"Abonelik güncellemelerinde üye işyerinin eşleştirme yapabileceği referans kodu."},"pricingPlanReferenceCode":{"type":"string","description":"Oluşturulan aboneliğe bağlı ödeme planının referans kodu."},"customerReferenceCode":{"type":"string","description":"İlgili kullanıcıya ait referans kodu."},"subscriptionStatus":{"type":"string","enum":["ACTIVE","PENDING"],"description":"Abonelik durumu."},"trialDays":{"type":"integer","description":"Planın deneme süresi (gün)."},"trialStartDate":{"type":"integer","description":"Deneme başlangıç zamanı (epoch ms)."},"trialEndDate":{"type":"integer","description":"Deneme bitiş zamanı (epoch ms)."},"createdDate":{"type":"integer","description":"Abonelik oluşturulma zamanı (epoch ms)."},"startDate":{"type":"integer","description":"Abonelik başlangıç zamanı (epoch ms)."},"endDate":{"type":"integer","description":"Abonelik bitiş zamanı (epoch ms)."}}}}},"ErrorResponse":{"type":"object","properties":{"status":{"description":"İstek sonucunu ifade eder.","type":"string","enum":["failure"]},"errorCode":{"description":"Error Kod","type":"string"},"errorMessage":{"description":"Error Mesajı","type":"string"},"systemTime":{"description":"Dönen sonucun o anki unix timestamp değeridir.","type":"integer"}}}}}}
```

#### Örnek Kodlar

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><a href="https://github.com/iyzico/iyzipay-php/blob/master/samples/subscription-samples/create_subscription_with_customer_reference_code.php">PHP</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-java/blob/master/src/test/java/com/iyzipay/sample/subscription/SubscriptionInitializeSample.java#L75">Java</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-node/blob/master/samples/IyzipaySubscriptionSamples.js#L516">Node.Js</a></td></tr><tr><td><a href="https://www.postman.com/iyzico/iyzico/request/224cvf3/3-1-2-2-initialize-subscription-payment-for-existing-customer?sideView=agentMode">Postman</a></td></tr></tbody></table>

## Abonelik Aktifleştirme

> Pending durumunda başlatılan bir abonelik, bu servis üzerinden aktif hale getirilir.

```json
{"openapi":"3.0.3","info":{"title":"Subscription - Abonelik Aktifleştirme","version":"1.0.1"},"servers":[{"url":"https://api.iyzipay.com","description":"iyzico API"}],"paths":{"/v2/subscription/subscriptions/{subscriptionReferenceCode}/activate":{"post":{"summary":"Abonelik Aktifleştirme","description":"Pending durumunda başlatılan bir abonelik, bu servis üzerinden aktif hale getirilir.","tags":["Abonelik"],"parameters":[{"$ref":"#/components/parameters/AuthHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"name":"subscriptionReferenceCode","in":"path","required":true,"schema":{"type":"string"},"description":"Pending olarak başlatılan aboneliğe ait referans kodu."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateSubscriptionRequest"}}}},"responses":{"200":{"description":"Başarılı yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateSubscriptionResponse"}}}},"400":{"description":"Başarısız yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"parameters":{"AuthHeader":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"},"description":"Authorization header, IYZWSv2 ile başlayan ve base64 formatında üretilmiş imzalı hash değeridir."},"ContentTypeHeader":{"name":"Content-Type","in":"header","required":true,"schema":{"type":"string"},"description":"İstek içeriğinin formatı."}},"schemas":{"ActivateSubscriptionRequest":{"type":"object","properties":{"subscriptionReferenceCode":{"type":"string","description":"Pending oalrak başlatılan aboneliğe ait referans kodu."}}},"ActivateSubscriptionResponse":{"type":"object","properties":{"status":{"type":"string","enum":["success","failure"],"description":"Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki unix timestamp değeridir."}}},"ErrorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["failure"],"description":"İstek sonucunu ifade eder (başarısız)."},"errorCode":{"type":"string","description":"Hata kodu."},"errorMessage":{"type":"string","description":"Hata mesajı."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki unix timestamp değeridir."}}}}}}
```

#### Örnek Kodlar

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><a href="https://github.com/iyzico/iyzipay-php/blob/master/samples/subscription-samples/activate_subscription.php">PHP</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-java/blob/master/src/test/java/com/iyzipay/sample/subscription/SubscriptionOperationSample.java#L38">Java</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-dotnet/blob/master/Iyzipay.Samples/SubscriptionSample.cs#L123">.NET</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-node/blob/master/samples/IyzipaySubscriptionSamples.js#L315">Node.Js</a></td></tr><tr><td><a href="https://www.postman.com/iyzico/iyzico/request/xswkakr/7-1-activate-subscription?sideView=agentMode">Postman</a></td></tr></tbody></table>

## Abonelik Ödeme Tekrarlama

> Eğer bir abonelikte, tekrarlayan ödemeler sırasında bir ödeme başarısız olduysa, işlemi tekrar denemek ve ödemeyi almak için retry servisi kullanılır.<br>

```json
{"openapi":"3.0.3","info":{"title":"Subscription - Abonelik Ödeme Tekrarlama","version":"1.0.0"},"servers":[{"url":"https://api.iyzipay.com","description":"iyzico API"}],"paths":{"/v2/subscription/operation/retry":{"post":{"summary":"Abonelik Ödeme Tekrarlama","description":"Eğer bir abonelikte, tekrarlayan ödemeler sırasında bir ödeme başarısız olduysa, işlemi tekrar denemek ve ödemeyi almak için retry servisi kullanılır.\n","tags":["Abonelik"],"parameters":[{"$ref":"#/components/parameters/AuthHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrySubscriptionPaymentRequest"}}}},"responses":{"200":{"description":"Başarılı yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrySubscriptionPaymentResponse"}}}},"400":{"description":"Başarısız yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"parameters":{"AuthHeader":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"},"description":"Authorization header, IYZWSv2 ile başlayan ve base64 formatında üretilmiş imzalı hash değeridir."},"ContentTypeHeader":{"name":"Content-Type","in":"header","required":true,"schema":{"type":"string"},"description":"İstek içeriğinin formatı."}},"schemas":{"RetrySubscriptionPaymentRequest":{"type":"object","required":["referenceCode"],"properties":{"referenceCode":{"type":"string","description":"Başarısız ödemenin referans kodu. Başarısız abonelik ödemesi için gönderilen webhook bildiriminde yer alan **orderReferenceCode** değeridir.\n"}}},"RetrySubscriptionPaymentResponse":{"type":"object","properties":{"status":{"type":"string","enum":["success","failure"],"description":"Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki unix timestamp değeridir."}}},"ErrorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["failure"],"description":"İstek sonucunu ifade eder (başarısız)."},"errorCode":{"type":"string","description":"Hata kodu."},"errorMessage":{"type":"string","description":"Hata mesajı."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki unix timestamp değeridir."}}}}}}
```

{% hint style="warning" %}
Bir ödeme işlemi başarısız olduktan sonra en fazla 160 gün içinde yeniden denenebilir. Bu sürenin aşılması durumunda, abonelik için tekrar ödeme denemesi yapılamaz.
{% endhint %}

{% hint style="info" %}
Retry işlemi başarıyla tamamlandıktan sonra, yeni ödeme için oluşturulan işlemle ilgili webhook bildirimi ayrıca gönderilir.
{% endhint %}

#### Örnek Kodlar

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><a href="https://github.com/iyzico/iyzipay-php/blob/master/samples/subscription-samples/retry_subscription.php">PHP</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-java/blob/master/src/test/java/com/iyzipay/sample/subscription/SubscriptionOperationSample.java#L84">Java</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-dotnet/blob/master/Iyzipay.Samples/SubscriptionSample.cs#L141">.NET</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-node/blob/master/samples/IyzipaySubscriptionSamples.js#L291">Node.Js</a></td></tr><tr><td><a href="https://www.postman.com/iyzico/iyzico/request/krob5w3/7-2-retry-subscription?sideView=agentMode">Postman</a></td></tr></tbody></table>

## Abonelik Yükseltme

> Abonelik süresince plan değiştirmek veya yükseltmek mümkündür. Bunun için \*\*yeni planın aynı ürüne ait olması\*\* ve ödeme aralığının (\*\*paymentInterval\*\* ve \*\*paymentIntervalCount\*\*) aynı olması gerekir. Fiyat güncellemeleri için abonelik yükseltme servisi kullanılır.<br>

```json
{"openapi":"3.0.3","info":{"title":"Subscription - Abonelik Ödeme Tekrarlama","version":"1.0.0"},"servers":[{"url":"https://api.iyzipay.com","description":"iyzico API"}],"paths":{"/v2/subscription/subscriptions/{subscriptionReferenceCode}/upgrade":{"post":{"summary":"Abonelik Yükseltme","description":"Abonelik süresince plan değiştirmek veya yükseltmek mümkündür. Bunun için **yeni planın aynı ürüne ait olması** ve ödeme aralığının (**paymentInterval** ve **paymentIntervalCount**) aynı olması gerekir. Fiyat güncellemeleri için abonelik yükseltme servisi kullanılır.\n","tags":["Abonelik"],"parameters":[{"$ref":"#/components/parameters/AuthHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"name":"subscriptionReferenceCode","in":"path","required":true,"schema":{"type":"string"},"description":"Yükseltilmek istenen aboneliğe ait referans kodu."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpgradeSubscriptionRequest"}}}},"responses":{"200":{"description":"Başarılı yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpgradeSubscriptionResponse"}}}},"400":{"description":"Başarısız yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"parameters":{"AuthHeader":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"},"description":"Authorization header, IYZWSv2 ile başlayan ve base64 formatında üretilmiş imzalı hash değeridir."},"ContentTypeHeader":{"name":"Content-Type","in":"header","required":true,"schema":{"type":"string"},"description":"İstek içeriğinin formatı."}},"schemas":{"UpgradeSubscriptionRequest":{"type":"object","required":["upgradePeriod","newPricingPlanReferenceCode"],"properties":{"upgradePeriod":{"type":"string","enum":["NOW","NEXT_PERIOD"],"description":"Aboneliğin upgrade edileceği tarih.\nDeğerler:\n- **NOW**: Değişiklik/işlem hemen uygulanır.\n- **NEXT_PERIOD**: Değişiklik bir sonraki faturalama döneminde uygulanır.\n"},"newPricingPlanReferenceCode":{"type":"string","description":"Yükseltilmek istenen ödeme planına ait referans kodu."},"useTrial":{"type":"boolean","description":"Eğer **true** gönderilirse upgrade edilen ödeme planının deneme süreci dahil edilir."},"resetRecurrenceCount":{"type":"boolean","description":"- **true**: Yeni planın tekrar sayısına (**recurrenceCount**) göre abonelik bitiş tarihi yeniden hesaplanır.  \n- **false**: Mevcut planın bitiş tarihi korunur ve yeni plana aktarılır.\n"}}},"UpgradeSubscriptionResponse":{"type":"object","properties":{"status":{"type":"string","enum":["success","failure"],"description":"Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki unix timestamp değeridir."},"data":{"type":"object","properties":{"referenceCode":{"type":"string","description":"Oluşturulan (yeni) aboneliğin referans kodu."},"parentReferenceCode":{"type":"string","description":"Abonelik güncellemelerinde üye işyerinin eşleştirme yapabileceği referans kodu."},"pricingPlanReferenceCode":{"type":"string"},"customerReferenceCode":{"type":"string"},"subscriptionStatus":{"type":"string","enum":["ACTIVE","PENDING"],"description":"Abonelik durumu."},"trialDays":{"type":"integer","description":"Planın deneme süresi (gün)."},"createdDate":{"type":"integer","description":"Oluşturulma zamanı (epoch ms)."},"startDate":{"type":"date","description":"Başlangıç zamanı (epoch ms)."},"endDate":{"type":"date","description":"Bitiş zamanı (epoch ms)."}}}}},"ErrorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["failure"],"description":"İstek sonucunu ifade eder (başarısız)."},"errorCode":{"type":"string","description":"Hata kodu."},"errorMessage":{"type":"string","description":"Hata mesajı."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki unix timestamp değeridir."}}}}}}
```

#### Örnek Kodlar

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><a href="https://github.com/iyzico/iyzipay-php/blob/master/samples/subscription-samples/upgrade_subscription.php">PHP</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-java/blob/master/src/test/java/com/iyzipay/sample/subscription/SubscriptionOperationSample.java#L57">Java</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-dotnet/blob/master/Iyzipay.Samples/SubscriptionSample.cs#L159">.NET</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-node/blob/master/samples/IyzipaySubscriptionSamples.js#L326">Node.Js</a></td></tr><tr><td><a href="https://www.postman.com/iyzico/iyzico/request/o6rygn3/7-4-upgrade-subscription?sideView=agentMode">Postman</a></td></tr></tbody></table>

## Abonelik İptali

> Aktif bir aboneliği iptal etmek için kullanılır.

```json
{"openapi":"3.0.3","info":{"title":"Subscription - Abonelik Ödeme Tekrarlama","version":"1.0.0"},"servers":[{"url":"https://api.iyzipay.com","description":"iyzico API"}],"paths":{"/v2/subscription/subscriptions/{subscriptionReferenceCode}/cancel":{"post":{"summary":"Abonelik İptali","description":"Aktif bir aboneliği iptal etmek için kullanılır.","tags":["Abonelik"],"parameters":[{"$ref":"#/components/parameters/AuthHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"name":"subscriptionReferenceCode","in":"path","required":true,"schema":{"type":"string"},"description":"İptal edilmek istenen aboneliğe ait referans kodu."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelSubscriptionRequest"}}}},"responses":{"200":{"description":"Başarılı yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelSubscriptionResponse"}}}},"400":{"description":"Başarısız yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"parameters":{"AuthHeader":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"},"description":"Authorization header, IYZWSv2 ile başlayan ve base64 formatında üretilmiş imzalı hash değeridir."},"ContentTypeHeader":{"name":"Content-Type","in":"header","required":true,"schema":{"type":"string"},"description":"İstek içeriğinin formatı."}},"schemas":{"CancelSubscriptionRequest":{"type":"object","properties":{"subscriptionReferenceCode":{"type":"string","description":"Abonelik referans kodu. Opsiyonel olarak body de gönderilebilir."}}},"CancelSubscriptionResponse":{"type":"object","properties":{"status":{"type":"string","enum":["success","failure"],"description":"Yapılan isteğin sonucunu belirtir. İşlem başarılı ise success değeri döner."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki unix timestamp değeridir."}}},"ErrorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["failure"],"description":"İstek sonucunu ifade eder (başarısız)."},"errorCode":{"type":"string","description":"Hata kodu."},"errorMessage":{"type":"string","description":"Hata mesajı."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki unix timestamp değeridir."}}}}}}
```

#### Örnek Kodlar

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><a href="https://github.com/iyzico/iyzipay-php/blob/master/samples/subscription-samples/cancel_subscription.php">PHP</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-java/blob/master/src/test/java/com/iyzipay/sample/subscription/SubscriptionOperationSample.java#L19">Java</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-dotnet/blob/master/Iyzipay.Samples/SubscriptionSample.cs#L181">.NET</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-node/blob/master/samples/IyzipaySubscriptionSamples.js#L304">Node.Js</a></td></tr><tr><td><a href="https://www.postman.com/iyzico/iyzico/request/0xuvqlz/7-3-cancel-subscription?sideView=agentMode">Postman</a></td></tr></tbody></table>

## Abonelik Detayı

> Aboneliğe ait referans kod ile sorgulama yapılarak bir aboneliğin tüm detayları bu istek ile görülebilir.

```json
{"openapi":"3.0.3","info":{"title":"Subscription - Abonelik Ödeme Tekrarlama","version":"1.0.0"},"servers":[{"url":"https://api.iyzipay.com","description":"iyzico API"}],"paths":{"/v2/subscription/subscriptions/{subscriptionReferenceCode}":{"get":{"summary":"Abonelik Detayı","description":"Aboneliğe ait referans kod ile sorgulama yapılarak bir aboneliğin tüm detayları bu istek ile görülebilir.","tags":["Abonelik"],"parameters":[{"$ref":"#/components/parameters/AuthHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"name":"subscriptionReferenceCode","in":"path","required":true,"schema":{"type":"string"},"description":"İlgili aboneliğe ait referans kodu."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSubscriptionDetailOptionalRequest"}}}},"responses":{"200":{"description":"Başarılı yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSubscriptionDetailResponse"}}}}}}}},"components":{"parameters":{"AuthHeader":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"},"description":"Authorization header, IYZWSv2 ile başlayan ve base64 formatında üretilmiş imzalı hash değeridir."},"ContentTypeHeader":{"name":"Content-Type","in":"header","required":true,"schema":{"type":"string"},"description":"İstek içeriğinin formatı."}},"schemas":{"GetSubscriptionDetailOptionalRequest":{"type":"object","properties":{"subscriptionReferenceCode":{"type":"string","description":"Abonelik referans kodu. Opsiyonel olarak body de gönderilebilir."}}},"GetSubscriptionDetailResponse":{"type":"object","properties":{"status":{"type":"string","enum":["success","failure"],"description":"Yapılan isteğin sonucunu belirtir."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki unix timestamp değeridir."},"data":{"type":"object","description":"Sayfalama bilgileri ve abonelik kayıtları.","properties":{"totalCount":{"type":"integer","description":"Toplam kayıt sayısı."},"currentPage":{"type":"integer","description":"Mevcut sayfa numarası."},"pageCount":{"type":"integer","description":"Toplam sayfa sayısı."},"items":{"type":"array","description":"Aboneliğe dair detay kayıtları.","items":{"$ref":"#/components/schemas/SubscriptionDetailItem"}}}}}},"SubscriptionDetailItem":{"type":"object","properties":{"referenceCode":{"type":"string","description":"Aboneliğin referans kodu."},"parentReferenceCode":{"type":"string","description":"Abonelik güncellemelerinde üye işyerinin eşleştirme yapabileceği referans kodu."},"pricingPlanName":{"type":"string","description":"Aboneliğin bağlı olduğu ödeme planının adı."},"pricingPlanReferenceCode":{"type":"string","description":"Aboneliğin bağlı olduğu ödeme planının referans kodu."},"productName":{"type":"string","description":"Ürünün adı."},"productReferenceCode":{"type":"string","description":"Ürünün referans kodu."},"customerEmail":{"type":"string","description":"Müşterinin e-posta adresi."},"customerGsmNumber":{"type":"string","description":"Müşterinin GSM numarası."},"customerReferenceCode":{"type":"string","description":"Müşteriye ait referans kodu."},"subscriptionStatus":{"type":"string","description":"Abonelik durumu.\n\nDeğerler:\n- **ACTIVE**: Abonelik aktiftir ve ödemeler düzenli olarak alınıyorsa.\n- **PENDING**: Abonelik durdurulmuşsa.\n- **UNPAID**: Abonelik sırasında ödeme alınamamışsa.\n- **UPGRADED**: Abonelik başka bir plan ile güncellenmişse.\n- **CANCELED**: Abonelik iptal edilmişse.\n- **EXPIRED**: Abonelik periyodu bitmişse; karttan başka bir ödeme alınmaz.\n","enum":["ACTIVE","PENDING","UNPAID","UPGRADED","CANCELED","EXPIRED"]},"trialDays":{"type":"integer","description":"Ödeme planının deneme süresi (gün)."},"trialStartDate":{"type":"integer","description":"Deneme süresinin başlangıç zamanı (epoch ms)."},"trialEndDate":{"type":"integer","description":"Deneme süresinin bitiş zamanı (epoch ms)."},"createdDate":{"type":"integer","description":"Aboneliğin oluşturulma zamanı (epoch ms)."},"startDate":{"type":"integer","description":"Aboneliğin başlangıç zamanı (epoch ms)."},"endDate":{"type":"integer","description":"Aboneliğin bitiş zamanı (epoch ms)."},"orders":{"type":"array","description":"Abonelik kapsamındaki periyot (order) listesi.","items":{"$ref":"#/components/schemas/SubscriptionOrder"}}}},"SubscriptionOrder":{"type":"object","properties":{"referenceCode":{"type":"string","description":"Abonelik periyodu (order) referans kodu."},"price":{"type":"decimal","description":"Periyot ücreti."},"currencyCode":{"type":"string","enum":["TRY","USD","EUR"],"description":"Para birimi."},"startPeriod":{"type":"integer","description":"Periyodun başlangıç zamanı (epoch ms)."},"endPeriod":{"type":"integer","description":"Periyodun bitiş zamanı (epoch ms)."},"orderStatus":{"type":"string","description":"Periyot durum bilgisi.","enum":["WAITING","SUCCESS","FAILED"]},"paymentAttempts":{"type":"array","description":"Bu periyot için yapılan ödeme denemeleri listesi.","items":{"$ref":"#/components/schemas/SubscriptionPaymentAttempt"}}}},"SubscriptionPaymentAttempt":{"type":"object","description":"Abonelik periyodu için yapılan tekil ödeme denemesi.","properties":{"conversationId":{"type":"string","description":"İstek/yanıt eşleştirmesi için gönderilen ID değeri. Gönderilen bilgi yanıtta aynen geri döner."},"createdDate":{"type":"integer","description":"Denemenin oluşturulma zamanı (epoch ms)."},"paymentStatus":{"type":"string","description":"Ödeme denemesi sonucu.","enum":["SUCCESS","FAILED"]},"paymentId":{"type":"integer","description":"Başarılı ödemede oluşan ödeme kimliği. Yalnızca **SUCCESS** durumunda bulunur."},"errorCode":{"type":"string","description":"Başarısız ödemede hata kodu. Yalnızca **FAILED** durumunda bulunur."},"errorMessage":{"type":"string","description":"Başarısız ödemede hata mesajı. Yalnızca **FAILED** durumunda bulunur."}}}}}}
```

#### Örnek Kodlar

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><a href="https://github.com/iyzico/iyzipay-php/blob/master/samples/subscription-samples/retrieve_subscription.php">PHP</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-java/blob/master/src/test/java/com/iyzipay/sample/subscription/SubscriptionSample.java">Java</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-dotnet/blob/master/Iyzipay.Samples/SubscriptionSample.cs#L199">.NET</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-node/blob/master/samples/IyzipaySubscriptionSamples.js#L342">Node.Js</a></td></tr><tr><td><a href="https://www.postman.com/iyzico/iyzico/request/7go66rr/3-2-3-retrieve-subscription?sideView=agentMode">Postman</a></td></tr></tbody></table>

## Abonelik Arama

> Farklı parametrelerle filtreleme yaparak veya herhangi bir parametre kullanmadan sorgulama yaparak abonelik ve ödeme bilgilerinin detaylarına ulaşmayı sağlar. Örneğin sadece \*\*subscriptionStatus\*\* göndererek, belirtilen statüdeki abonelikleri listeleyebilirsiniz.<br>

```json
{"openapi":"3.0.3","info":{"title":"Subscription - Abonelik Ödeme Tekrarlama","version":"1.0.0"},"servers":[{"url":"https://api.iyzipay.com","description":"iyzico API"}],"paths":{"/v2/subscription/subscriptions":{"get":{"summary":"Abonelik Arama","description":"Farklı parametrelerle filtreleme yaparak veya herhangi bir parametre kullanmadan sorgulama yaparak abonelik ve ödeme bilgilerinin detaylarına ulaşmayı sağlar. Örneğin sadece **subscriptionStatus** göndererek, belirtilen statüdeki abonelikleri listeleyebilirsiniz.\n","tags":["Abonelik"],"parameters":[{"$ref":"#/components/parameters/AuthHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"name":"subscriptionReferenceCode","in":"path","required":false,"schema":{"type":"string"},"description":"Sorgulanacak aboneliğe ait referans kodu."},{"name":"customerReferenceCode","in":"path","required":false,"schema":{"type":"string"},"description":"Müşteri referans kodu."},{"name":"pricingPlanReferenceCode","in":"path","required":false,"schema":{"type":"string"},"description":"Abonelikte kullanılan ödeme planına ait referans kodu."},{"name":"parent","in":"path","required":false,"schema":{"type":"string"},"description":"Abonelik güncellemelerinde eşleştirme için kullanılan üst (parent) referans kodu."},{"name":"subscriptionStatus","in":"path","required":false,"schema":{"type":"string","enum":["ACTIVE","PENDING","UNPAID","UPGRADED","CANCELED","EXPIRED"]},"description":"Abonelik durumu filtresi.\n"},{"name":"startDate","in":"path","required":false,"schema":{"type":"integer"},"description":"Abonelik başlangıç tarihi."},{"name":"endDate","in":"path","required":false,"schema":{"type":"integer"},"description":"Abonelik bitiş tarihi (epoch ms)."},{"name":"page","in":"path","required":false,"schema":{"type":"integer"},"description":"Sayfa numarası."},{"name":"count","in":"path","required":false,"schema":{"type":"integer"},"description":"Sayfa başına kayıt adedi."}],"responses":{"200":{"description":"Başarılı yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchSubscriptionsResponse"}}}},"404":{"description":"Yanlış endpoint (ör. yazım hatası) durumda dönebilecek örnek.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundErrorResponse"}}}}}}}},"components":{"parameters":{"AuthHeader":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"},"description":"Authorization header, IYZWSv2 ile başlayan ve base64 formatında üretilmiş imzalı hash değeridir."},"ContentTypeHeader":{"name":"Content-Type","in":"header","required":true,"schema":{"type":"string"},"description":"İstek içeriğinin formatı."}},"schemas":{"SearchSubscriptionsResponse":{"type":"object","properties":{"status":{"type":"string","enum":["success","failure"],"description":"Yapılan isteğin sonucunu belirtir."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki unix timestamp değeridir."},"data":{"type":"object","description":"Sayfalama bilgileri ve abonelik kayıtları.","properties":{"totalCount":{"type":"integer","description":"Toplam kayıt sayısı."},"currentPage":{"type":"integer","description":"Mevcut sayfa numarası."},"pageCount":{"type":"integer","description":"Toplam sayfa sayısı."},"items":{"type":"array","description":"Aboneliğe dair detay kayıtları.","items":{"$ref":"#/components/schemas/SubscriptionDetailItem"}}}}}},"SubscriptionDetailItem":{"type":"object","properties":{"referenceCode":{"type":"string","description":"Aboneliğin referans kodu."},"parentReferenceCode":{"type":"string","description":"Abonelik güncellemelerinde üye işyerinin eşleştirme yapabileceği referans kodu."},"pricingPlanName":{"type":"string","description":"Aboneliğin bağlı olduğu ödeme planının adı."},"pricingPlanReferenceCode":{"type":"string","description":"Aboneliğin bağlı olduğu ödeme planının referans kodu."},"productName":{"type":"string","description":"Ürünün adı."},"productReferenceCode":{"type":"string","description":"Ürünün referans kodu."},"customerEmail":{"type":"string","description":"Müşterinin e-posta adresi."},"customerGsmNumber":{"type":"string","description":"Müşterinin GSM numarası."},"customerReferenceCode":{"type":"string","description":"Müşteriye ait referans kodu."},"subscriptionStatus":{"type":"string","description":"Abonelik durumu.\n\nDeğerler:\n- **ACTIVE**: Abonelik aktiftir ve ödemeler düzenli olarak alınıyorsa.\n- **PENDING**: Abonelik durdurulmuşsa.\n- **UNPAID**: Abonelik sırasında ödeme alınamamışsa.\n- **UPGRADED**: Abonelik başka bir plan ile güncellenmişse.\n- **CANCELED**: Abonelik iptal edilmişse.\n- **EXPIRED**: Abonelik periyodu bitmişse; karttan başka bir ödeme alınmaz.\n","enum":["ACTIVE","PENDING","UNPAID","UPGRADED","CANCELED","EXPIRED"]},"trialDays":{"type":"integer","description":"Ödeme planının deneme süresi (gün)."},"trialStartDate":{"type":"integer","description":"Deneme süresinin başlangıç zamanı (epoch ms)."},"trialEndDate":{"type":"integer","description":"Deneme süresinin bitiş zamanı (epoch ms)."},"createdDate":{"type":"integer","description":"Aboneliğin oluşturulma zamanı (epoch ms)."},"startDate":{"type":"integer","description":"Aboneliğin başlangıç zamanı (epoch ms)."},"endDate":{"type":"integer","description":"Aboneliğin bitiş zamanı (epoch ms)."},"orders":{"type":"array","description":"Abonelik kapsamındaki periyot (order) listesi.","items":{"$ref":"#/components/schemas/SubscriptionOrder"}}}},"SubscriptionOrder":{"type":"object","properties":{"referenceCode":{"type":"string","description":"Abonelik periyodu (order) referans kodu."},"price":{"type":"decimal","description":"Periyot ücreti."},"currencyCode":{"type":"string","enum":["TRY","USD","EUR"],"description":"Para birimi."},"startPeriod":{"type":"integer","description":"Periyodun başlangıç zamanı (epoch ms)."},"endPeriod":{"type":"integer","description":"Periyodun bitiş zamanı (epoch ms)."},"orderStatus":{"type":"string","description":"Periyot durum bilgisi.","enum":["WAITING","SUCCESS","FAILED"]},"paymentAttempts":{"type":"array","description":"Bu periyot için yapılan ödeme denemeleri listesi.","items":{"$ref":"#/components/schemas/SubscriptionPaymentAttempt"}}}},"SubscriptionPaymentAttempt":{"type":"object","description":"Abonelik periyodu için yapılan tekil ödeme denemesi.","properties":{"conversationId":{"type":"string","description":"İstek/yanıt eşleştirmesi için gönderilen ID değeri. Gönderilen bilgi yanıtta aynen geri döner."},"createdDate":{"type":"integer","description":"Denemenin oluşturulma zamanı (epoch ms)."},"paymentStatus":{"type":"string","description":"Ödeme denemesi sonucu.","enum":["SUCCESS","FAILED"]},"paymentId":{"type":"integer","description":"Başarılı ödemede oluşan ödeme kimliği. Yalnızca **SUCCESS** durumunda bulunur."},"errorCode":{"type":"string","description":"Başarısız ödemede hata kodu. Yalnızca **FAILED** durumunda bulunur."},"errorMessage":{"type":"string","description":"Başarısız ödemede hata mesajı. Yalnızca **FAILED** durumunda bulunur."}}},"NotFoundErrorResponse":{"type":"object","properties":{"timestamp":{"type":"integer","description":"Sunucu zamanı (epoch ms)."},"status":{"type":"integer","description":"HTTP durum kodu."},"error":{"type":"string","description":"Hata kısa açıklaması."},"path":{"type":"string","description":"İstenen path."}}}}}}
```

#### Örnek Kodlar

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><a href="https://github.com/iyzico/iyzipay-php/blob/master/samples/subscription-samples/search_subscription.php">PHP</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-java/blob/master/src/test/java/com/iyzipay/sample/subscription/SubscriptionSearchSample.java">Java</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-dotnet/blob/master/Iyzipay.Samples/SubscriptionSample.cs#L218">.NET</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-node/blob/master/samples/IyzipaySubscriptionSamples.js#L353">Node.Js</a></td></tr><tr><td><a href="https://www.postman.com/iyzico/iyzico/request/5onz787/3-2-4-search-subscriptions?sideView=agentMode">Postman</a></td></tr></tbody></table>

## Abonelik Kart Güncelleme (Checkout Form)

> 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üncelleme işlemi yalnızca iyzico ödeme formu üzerinden gerçekleştirilir.\*\*\
> Güncellenen kredi kartının validasyonu için \*\*1 TL\*\*’lik ödeme alınır ve hemen iadesi gerçekleşir.<br>

```json
{"openapi":"3.0.3","info":{"title":"Subscription - Abonelik Ödeme Tekrarlama","version":"1.0.0"},"servers":[{"url":"https://api.iyzipay.com","description":"iyzico API"}],"paths":{"/v2/subscription/card-update/checkoutform/initialize":{"post":{"summary":"Abonelik Kart Güncelleme (Checkout Form)","description":"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üncelleme işlemi yalnızca iyzico ödeme formu üzerinden gerçekleştirilir.**\nGüncellenen kredi kartının validasyonu için **1 TL**’lik ödeme alınır ve hemen iadesi gerçekleşir.\n","tags":["Abonelik"],"parameters":[{"$ref":"#/components/parameters/AuthHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitializeCardUpdateCheckoutFormRequest"}}}},"responses":{"200":{"description":"Başarılı yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitializeCardUpdateCheckoutFormResponse"}}}},"400":{"description":"Başarısız yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"parameters":{"AuthHeader":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"},"description":"Authorization header, IYZWSv2 ile başlayan ve base64 formatında üretilmiş imzalı hash değeridir."},"ContentTypeHeader":{"name":"Content-Type","in":"header","required":true,"schema":{"type":"string"},"description":"İstek içeriğinin formatı."}},"schemas":{"InitializeCardUpdateCheckoutFormRequest":{"type":"object","required":["callbackUrl","customerReferenceCode"],"properties":{"callbackUrl":{"type":"string","description":"Güncelleme sonucunun gönderileceği callback adresi."},"customerReferenceCode":{"type":"string","description":"Kartı güncellenecek müşteriye ait referans kodu."},"subscriptionReferenceCode":{"type":"string","description":"Bir abonelik üzerinde güncelleme sağlanacaksa, işlem yapılacak aboneliğe ait referans kodu (opsiyonel).\n"},"locale":{"type":"string","enum":["tr","en"],"description":"İstek sonrası dönüş yapılacak yanıt dili."}}},"InitializeCardUpdateCheckoutFormResponse":{"type":"object","properties":{"status":{"type":"string","enum":["success","failure"],"description":"İşlem sonucu."},"locale":{"type":"string","enum":["tr","en"],"description":"Yanıt dili."},"systemTime":{"type":"integer","description":"İşlem zamanı (epoch ms)."},"conversationId":{"type":"string","description":"İstek/yanıt eşleştirmesi için gönderilen ID değeri. Gönderilen bilgi yanıtta aynen geri döner."},"token":{"type":"string","description":"Kart güncelleme ödeme formuna ait token."},"checkoutFormContent":{"type":"string","description":"Kart bilgilerinin güncelleneceği ödeme formuna ait content değeri."},"tokenExpireTime":{"type":"integer","description":"Token geçerlilik süresi (saniye)."}}},"ErrorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["failure"],"description":"İstek sonucunu ifade eder (başarısız)."},"errorCode":{"type":"string","description":"Hata kodu."},"errorMessage":{"type":"string","description":"Hata mesajı."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki unix timestamp değeridir."}}}}}}
```

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.

#### Örnek Kodlar

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><a href="https://github.com/iyzico/iyzipay-php/blob/master/samples/subscription-samples/card_update_customer.php">PHP</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-java/blob/master/src/test/java/com/iyzipay/sample/subscription/SubscriptionCardUpdateCheckoutFormInitializeSample.java">Java</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-dotnet/blob/master/Iyzipay.Samples/SubscriptionSample.cs#L246">.NET</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-node/blob/master/samples/IyzipaySubscriptionSamples.js#L259">Node.Js</a></td></tr><tr><td><a href="https://www.postman.com/iyzico/iyzico/request/aoe23xd/4-1-1-initialize-checkoutform?sideView=agentMode">Postman</a></td></tr></tbody></table>

{% hint style="info" %}
**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.
{% endhint %}
