Ödeme Planı

Abonelik sistemi varsayılan olarak belirtilen plan doğrultusunda çalışır. Ödeme planı tekrarlı ödeme için gerekli tüm özelliklerin belirtildiği adımdır.

Planlar eşsiz bir isim alır ve bir plan sadece bir ürüne bağlanabilir. Eğer bir plan aktif olarak bir aboneliğe bağlıysa bu plan silinemez.

Planlar üzerinde kullanılabilecek 5 farklı metod vardır.

Ödeme Planı Oluşturma

Bir plan oluşturmak için, ürün referans numarası, isim, fiyat, para birimi, ödeme periyodu gibi aşağıda detayları paylaşılan parametrelerlerin gönderilmesi gerekir.

Bir aboneliğin deneme sürecinin olması istenirse trialPeriodDays parametresi kullanılabilir. Eğer bu parametre gönderilirse, belirtilen değer süresince abonelik başlatılmaz ve karttan hiçbir şekilde ödeme alınmaz.

İstekte belirtilen Payment Interval parametresi ödeme periyodunu belirtir. Bir plan oluştururken “WEEKLY” parametresi gönderilirse, iyzico belirtilen tutarı her hafta karttan çekecektir. Bu periyodun özelleştirilmesi de mümkündür. Örneğin ödemenin 2 haftada bir alınmasını isterseniz, PaymentInterval değerini “WEEKLY” ve paymentIntervalCount değerini 2 olarak göndermeniz gerekmektedir.

NOT : planPaymentType parametresi zorunludur ve şu an için sadece RECURRING değerini alabilir.

Ödeme Planı Oluşturma

POST https://api.iyzipay.com/v2/subscription/products/{product_reference}/pricing-plans

Request Body

NameTypeDescription

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 plan numarasıdır.

locale

String

iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri TR.

name*

String

Plan adı. Ödeme planı ile ilgili kısa bir bilgilendirme olacak şekilde değer girilmelidir.

productReferenceCode*

String

Planın ilişkilendirileceği ürünün referans kodu.

recurrenceCount

Integer

Ödeme periyodunun kaç kez tekrarlanacağını belirler. Örneğin ayda bir ödeme alan planınıza bu değeri 12 olarak girerseniz, 12 ay boyunca ödeme alınacaktır.

planPaymentType*

String

Abonelik tipini belirtir. RECURRING değeri girilmelidir.

trialPeriodDays

Integer

Deneme süresi veya ücretsiz kullanım süresi olarak kullanılır. Bu değer girilirse, ilk ödeme girilen gün sayısı sonunda alınır.

paymentIntervalCount*

Integer

Ödeme periodunun hangi sıklıkta olacağını belirler. Örneğin paymentInterval değeri WEEKLY, paymentIntervalCount değeri 2 olursa, ödemeler 2 hafta bir alınır.

paymentInterval*

String

Tekrarlı ödemenin alınacağı periodu belirler. DAILY, WEEKLY, MONTHLY, YEARLY değerlerini alabilir.

currencyCode*

String

Ödemenin alınacağı para birimi. TL, USD, EUR olabilir. TL dışındaki para birimlerinin hesabınıza tanımlandığından emin olunuz.

price*

Decimal

Ödeme periyotlarında karttan çekilecek tutar. Plan için geçerli abonelik fiyatı.

{
    "status": "success",
    "systemTime": 1686865372192,
    "data": {
        "referenceCode": "fb4f08bb-b95b-44e8-a7f4-4111c0fa99d9",
        "createdDate": 1686865372183,
        "name": "Ödeme Planı",
        "price": 440.40,
        "paymentInterval": "MONTHLY",
        "paymentIntervalCount": 1,
        "trialPeriodDays": 0,
        "currencyCode": "TRY",
        "productReferenceCode": "235dbc68-d281-4626-9c85-98002e558ce7",
        "planPaymentType": "RECURRING",
        "status": "ACTIVE",
        "recurrenceCount": 12
    }
}

Ödeme Planı Oluşturma Dönen Parametreler

Parametre ismiTipAçı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.

referenceCode

String

Oluşturulan plana ait eşsiz referans kodu. Plan güncellemek veya silmek, plan detayını görmek, abonelik başlatmak için kullanılır.

createdDate

Long

Plan oluşturulma tarihi.

name

String

Plan adı. İstek sırasında plana verdiğiniz isimdir.

productReferenceCode

String

Plana bağlı ürünün referans kodu. İstekte gönderdiğiniz ürün bilgisi geri iletilir.

price

Decimal

İstekte gönderdiğiniz değer geri iletilir. Ödeme periyotlarında karttan çekilecek tutardır.

currencyCode

String

İstekte gönderdiğiniz değer geri iletilir. Ödemenin alınacağı para birimi.

paymentInterval

String

İstekte gönderdiğiniz değer geri iletilir. Tekrarlı ödemenin alınacağı periodu belirler.

paymentIntervalCount

Integer

İstekte gönderdiğiniz değer geri iletilir. Ödeme periodunun hangi sıklıkta olacağını belirler.

trialPeriodDays

Integer

İstekte gönderdiğiniz değer geri iletilir. Bu değer gönderilmediyse 0 olarak döner.

planPaymentType

String

RECURRING değerini döner ve ödemenin tekrarlı olduğunu belirtir.

recurrenceCount

Integer

İstekte gönderdiğiniz değer geri iletilir. Ödeme periyodunun kaç kez tekrarlanacağını belirler(opsiyonel)

status

String

Planın durumunu gösterir. ACTIVE değerini alır.

Ödeme Planı Güncelleme

Bu metod sadece name ve trialPeriodDays parametrelerinin güncellenmesine izin verir. Plan güncellemesi yapabilmek için o plana ait eşsiz referans kodu kullanılmalıdır. Güncellemenin hem API hem de iyzico merchant paneli üzerinden yapılması mümkündür.

Ödeme Planı Güncelleme

POST https://api.iyzipay.com/v2/subscription/pricing-plans/{pricingPlanReferenceCode}

Request Body

NameTypeDescription

conversationId

String

İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir.

locale

String

iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri TR.

name*

String

Plan adı. Ödeme planı ile ilgili kısa bir bilgilendirme olacak şekilde değer girilmelidir.

pricingPlanReferenceCode*

String

Plana ait eşsiz referans kodu. Plan güncellemek veya silmek, plan detayını görmek, abonelik başlatmak için kullanılır.

trialPeriodDays

Integer

Deneme süresi veya ücretsiz kullanım süresi olarak kullanılır. Bu değer girilirse, ilk ödeme girilen gün sayısı sonunda alınır.

{
    "status": "success",
    "systemTime": 1686865996746,
    "data": {
        "referenceCode": "fb4f08bb-b95b-44e8-a7f4-4111c0fa99d9",
        "createdDate": 1686865372183,
        "name": "Update Plan",
        "price": 440.40000000,
        "paymentInterval": "MONTHLY",
        "paymentIntervalCount": 1,
        "trialPeriodDays": 10,
        "currencyCode": "TRY",
        "productReferenceCode": "235dbc68-d281-4626-9c85-98002e558ce7",
        "planPaymentType": "RECURRING",
        "status": "ACTIVE",
        "recurrenceCount": 12
    }
}

Ödeme Planı Güncelleme Dönen Parametreler

Parametre ismiTipAçı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.

referenceCode

String

Plana ait eşsiz referans kodu. Plan güncellemek veya silmek, plan detayını görmek, abonelik başlatmak için kullanılır.

createdDate

Long

Plan oluşturulma tarihi.

name

String

Plan adı. İstek sırasında plana verdiğiniz isimdir.

productReferenceCode

String

Plana bağlı ürünün referans kodu.

price

Decimal

Ödeme periyotlarında karttan çekilecek tutardır.

currencyCode

String

Ödemenin alınacağı para birimi.

paymentInterval

String

Tekrarlı ödemenin alınacağı periodu belirler.

paymentIntervalCount

Integer

Ödeme periodunun hangi sıklıkta olacağını belirler.

trialPeriodDays

Integer

İstekte gönderdiğiniz değer geri iletilir. Bu değer gönderilmediyse 0 olarak döner.

planPaymentType

String

RECURRING değerini döner ve ödemenin tekrarlı olduğunu belirtir.

recurrenceCount

Integer

Ödeme periyodunun kaç kez tekrarlanacağını belirler.

status

String

Planın durumunu gösterir. ACTIVE değerini alır.

Ödeme Planı Silme

Bir plan ancak kendisine bağlı herhangi bir abonelik yoksa silinebilir. Silme işlemi için üye işeyeri plan referans kodunu kullanmalıdır. İstek success veya failure olarak cevaplanır. Success ise plan başaırı ile silinmiş demektir.

Ödeme Planı Silme

DELETE https://api.iyzipay.com/v2/subscription/pricing-plans/{pricingPlanReferenceCode}

Request Body

NameTypeDescription

pricingPlanReferenceCodee*

String

Plana ait eşsiz referans kodu

{
    "status": "success",
    "systemTime": 1686866455902
}

Ödeme Planı Silme Dönen Parametreler

Parametre ismiTipAçı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.

Ödeme Planı Detayı

Üye işyerleri bir planın tüm detaylarını hem merchant panelinden hem de API istekleri üzerinden görebilir.

Ödeme Planı Detayı

GET https://api.iyzipay.com/v2/subscription/pricing-plans/{pricingPlanReferenceCode}

Request Body

NameTypeDescription

pricingPlanReferenceCode*

String

Plana ait eşsiz referans kodu

{
    "status": "success",
    "systemTime": 1686866781049,
    "data": {
        "referenceCode": "d507f394-5823-4260-b942-23782045eaac",
        "createdDate": 1686866768055,
        "name": "Ödeme Planı",
        "price": 440.40000000,
        "paymentInterval": "MONTHLY",
        "paymentIntervalCount": 1,
        "trialPeriodDays": 0,
        "currencyCode": "TRY",
        "productReferenceCode": "235dbc68-d281-4626-9c85-98002e558ce7",
        "planPaymentType": "RECURRING",
        "status": "ACTIVE",
        "recurrenceCount": 12
    }
}

Ödeme Planı Detayı Dönen Parametreler

Parametre ismiTipAçı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.

referenceCode

String

Plana ait eşsiz referans kodu. Plan güncellemek veya silmek, plan detayını görmek, abonelik başlatmak için kullanılır.

createdDate

Long

Plan oluşturulma tarihi.

name

String

Plan adı. İstek sırasında plana verdiğiniz isimdir.

productReferenceCode

String

Plana bağlı ürünün referans kodu.

price

Decimal

Ödeme periyotlarında karttan çekilecek tutardır.

currencyCode

String

Ödemenin alınacağı para birimi.

paymentInterval

String

Tekrarlı ödemenin alınacağı periodu belirler.

paymentIntervalCount

Integer

Ödeme periodunun hangi sıklıkta olacağını belirler.

trialPeriodDays

Integer

İstekte gönderdiğiniz değer geri iletilir. Bu değer gönderilmediyse 0 olarak döner.

planPaymentType

String

RECURRING değerini döner ve ödemenin tekrarlı olduğunu belirtir.

recurrenceCount

Integer

Ödeme periyodunun kaç kez tekrarlanacağını belirler(opsiyonel)

status

String

Planın durumunu gösterir. ACTIVE değerini alır.

Ödeme Planı Listeleme

Tüm planlar ve bağlı olduğu ürünler bu istek sonucu görülebilir. Cevap sayfalar halinde iletilir

Ödeme Planı Listeleme

GET https://api.iyzipay.com/v2/subscription/products/{product_reference}/pricing-plans

Request Body

NameTypeDescription

page*

Integer

Belirtilen sayfa için tüm planları getirir.

count*

Integer

Sayfa başına kaç plan listelenceğini belirtir.

{
    "status": "success",
    "systemTime": 1686867184729,
    "data": {
        "totalCount": 2,
        "currentPage": 1,
        "pageCount": 1,
        "items": [
            {
                "referenceCode": "d507f394-5823-4260-b942-23782045eaac",
                "createdDate": 1686866768055,
                "name": "Ödeme Planı",
                "price": 440.40000000,
                "paymentInterval": "MONTHLY",
                "paymentIntervalCount": 1,
                "trialPeriodDays": 0,
                "currencyCode": "TRY",
                "productReferenceCode": "235dbc68-d281-4626-9c85-98002e558ce7",
                "planPaymentType": "RECURRING",
                "status": "ACTIVE",
                "recurrenceCount": 12
            },
            {
                "referenceCode": "a3dde7ac-dff4-4d96-a6da-5780aeee9c9a",
                "createdDate": 1675684471828,
                "name": "testop",
                "price": 100.00000000,
                "paymentInterval": "MONTHLY",
                "paymentIntervalCount": 1,
                "trialPeriodDays": 0,
                "currencyCode": "TRY",
                "productReferenceCode": "235dbc68-d281-4626-9c85-98002e558ce7",
                "planPaymentType": "RECURRING",
                "status": "ACTIVE"
            }
        ]
    }
}

Ödeme Planı Listeleme Dönen Parametreler

Parametre ismiTipAçı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

Plan detaylarını içeren dizidir.

Last updated