# iyzico ile Öde (PWI)

iyzico ile Öde (Pay With Iyzico) yöntemi, son kullanıcıyı iyzico tarafından sunulan iyzico cüzdan hesabına yönlendirerek işlemi tamamlamanızı sağlar.

Bu yöntem, hızlıca entegrasyon yapmak isteyen ve kullanıcı arayüzünü iyzico’ya bırakmak isteyen iş ortakları için idealdir. API-API Pay With iyzico kullanımı için bu servis kullanılmalıdır.

## iyzico ile Öde Başlatma

<mark style="color:green;">`POST`</mark> `https://api.iyzipay.com/v1/pay-with-iyzico/third-party-session/pwi/init`

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Authorization`    |

### **İstek Parametreleri**

<table><thead><tr><th width="219.78515625">Parametre</th><th>Tip</th><th>Zorunluluk</th><th>Açıklama</th></tr></thead><tbody><tr><td><code>paidPrice</code></td><td>Decimal</td><td>Evet</td><td>Tahsil edilecek nihai tutar.</td></tr><tr><td><code>enabledInstallments</code></td><td>Integer</td><td>Hayır</td><td>Taksit bilgisi, tek çekim için 1 gönderilmelidir. Geçerli değerler: 1, 2, 3, 6, 9, 12</td></tr><tr><td><code>locale</code></td><td>String</td><td>Hayır</td><td>iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir.</td></tr><tr><td><code>price</code></td><td>Decimal</td><td>Evet</td><td>Ödeme sepet tutarı. Kırılım tutarlar toplamı, sepet tutarına eşit olmalı.</td></tr><tr><td><code>conversationId</code></td><td>String</td><td>Hayır</td><td>İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir.</td></tr><tr><td><code>paymentGroup</code></td><td>String</td><td>Hayır</td><td>Ödeme grubu, varsayılan PRODUCT. Geçerli değerler enum içinde sunulmaktadır: PRODUCT, LISTING, SUBSCRIPTION</td></tr><tr><td><code>callbackUrl</code></td><td>String</td><td>Evet</td><td>Ödeme akışında üye işyerine başarılı ve hatalı sonucu bildirmek üzere alınan URL adresi. Geçerli bir ssl sertifikasına sahip olmalıdır.</td></tr><tr><td><code>currency</code></td><td>String</td><td>Evet</td><td>Para birimi. Default değeri TRY’dir. Kullanılabilen diğer değerler ise USD, EUR, GBP’dir.</td></tr><tr><td><code>basketId</code></td><td>String</td><td>Hayır</td><td>Üye işyeri sepet id’si.</td></tr><tr><td><code>buyerId</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki alıcıya ait id bilgisi.</td></tr><tr><td><code>buyerName</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki alıcıya ait ad.</td></tr><tr><td><code>buyerSurname</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki alıcıya ait soyadı.</td></tr><tr><td><code>identityNumber</code></td><td>String</td><td>Evet</td><td>Alıcıya ait TCKN bilgisi.</td></tr><tr><td><code>email</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki alıcıya ait e-posta bilgisi. E-posta adresi alıcıya ait geçerli ve erişilebilir bir adres olmalıdır.</td></tr><tr><td><code>gsmNumber</code></td><td>String</td><td>Hayır</td><td>Üye işyeri tarafındaki alıcıya ait GSM numarası.</td></tr><tr><td><code>registrationAddress</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki alıcıya ait kayıt adresi.</td></tr><tr><td><code>city</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki alıcıya ait şehir bilgisi.</td></tr><tr><td><code>country</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki alıcıya ait ülke bilgisi.</td></tr><tr><td><code>IP</code></td><td>String</td><td>Hayır</td><td>Üye işyeri tarafındaki alıcıya ait IP adresi.</td></tr><tr><td><code>zipCode</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki alıcıya ait posta kodu.</td></tr><tr><td><code>address(shippingAddress)</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki teslimat adresi. Sepetteki ürünlerden en az 1 tanesi fiziksel ürün (itemType=PHYSICAL) ise zorunludur.</td></tr><tr><td><code>contactName(shippingAddress)</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki teslimat adresi ad soyad bilgisi. Sepetteki ürünlerden en az 1 tanesi fiziksel ürün (itemType=PHYSICAL) ise zorunludur.</td></tr><tr><td><code>city(shippingAddress)</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki teslimat adresi şehir bilgisi. Sepetteki ürünlerden en az 1 tanesi fiziksel ürün (itemType=PHYSICAL) ise zorunludur.</td></tr><tr><td><code>country(shippingAddress)</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki teslimat adresi ülke bilgisi. Sepetteki ürünlerden en az 1 tanesi fiziksel ürün (itemType=PHYSICAL) ise zorunludur.</td></tr><tr><td><code>zipCode(shippingAddress)</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki teslimat adresi posta kodu.</td></tr><tr><td><code>address(billingAddress)</code></td><td>String</td><td>Evet</td><td>Alıcıya ait fatura adres bilgisi.</td></tr><tr><td><code>contactName(billingAddress)</code></td><td>String</td><td>Evet</td><td>Alıcıya ait fatura ad soyad bilgisi.</td></tr><tr><td><code>city(billingAddress)</code></td><td>String</td><td>Evet</td><td>Alıcıya ait fatura şehir bilgisi.</td></tr><tr><td><code>country(billingAddress)</code></td><td>String</td><td>Evet</td><td>Alıcıya ait fatura ülke bilgisi.</td></tr><tr><td><code>basketItemId</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki sepetteki ürüne ait id. Not: Bir ödeme isteğine maksimum 500 basketItem eklenebilir.</td></tr><tr><td><code>basketItemPrice</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki sepetteki ürüne ait tutar. 0 ve 0’dan küçük olamaz, tutarlar toplamı sepet tutarına (price) eşit olmalıdır.</td></tr><tr><td><code>basketItemName</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki sepetteki ürüne ait ismi.</td></tr><tr><td><code>basketItemCategory1</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki sepetteki ürüne ait 1. kategori.</td></tr><tr><td><code>basketItemCategory2</code></td><td>String</td><td>Hayır</td><td>Üye işyeri tarafındaki sepetteki ürüne ait 2. kategori.</td></tr><tr><td><code>basketItemItemType</code></td><td>String</td><td>Evet</td><td>Üye işyeri tarafındaki sepetteki ürüne ait tip. Geçerli enum değerler: PHYSICAL ve VIRTUAL</td></tr></tbody></table>

### PWI Başlatma Örnek İsteği

```json
{
    "paidPrice": 1.0,
    "locale": "tr",
    "enabledInstallments": [ 
        1,
        2,
        3,
        6,
        9,
        12
    ],
    "price": 1.0,
    "conversationId": "2224",
    "paymentGroup": "PRODUCT",
    "callbackUrl": "https://merchant-callback.com",
    "currency": "TRY",
    "basketId": "B67832",
    "buyer": {
        "id": "BY789",
        "name": "John",
        "surname": "Doe",
        "identityNumber": "74300864711",
        "email": "sandboxtest0@gmail.com",
        "gsmNumber": "+9055555555",
        "registrationAddress": "Adres",
        "city": "Istanbul",
        "country": "Turkey",
        "ip": "buyer Ip",
        "zipCode": "34580"
    },
    "shippingAddress": {
        "address": "Altunizade Mah. İnci Çıkmazı Sokak No: 3 İç Kapı No: 10",
        "contactName": "Jane Doe",
        "city": "Istanbul",
        "country": "Turkey",
        "zipCode": "34580"
    },
    "billingAddress": {
        "address": "Altunizade Mah. İnci Çıkmazı Sokak No: 3 İç Kapı No: 10",
        "contactName": "Jane Doe",
        "city": "Istanbul",
        "country": "Turkey",
        "zipCode": "34580"
    },
    "basketItems": [
        {
            "id": "BI101",
            "price": 1.0,
            "name": "Binocular",
            "category1": "Collectibles",
            "itemType": "PHYSICAL"
        }
    ]
}
```

### **Örnek Yanıt**

{% tabs %}
{% tab title="200" %}

```json
{
    "status": "success",
    "locale": "tr",
    "systemTime": 1749027773192,
    "conversationId": "2224",
    "token": "d9d9fc30-8178-4ca9-8f93-1b150f465da6",
    "signature": "a53e433a982bc9f927aed4e0383d083bd48de9cff343490ba7477f9964cfbfb1",
    "payWithIyzicoPageUrl": "https://sandbox-ode.iyzico.com/sdk?token=d9d9fc30-8178-4ca9-8f93-1b150f465da6&lang=tr",
    "tokenExpireTime": 600,
    "tokenExpireDate": 1749028373178
}
```

{% endtab %}

{% tab title="422" %}

```json
{
    "status": "failure",
    "errorCode": "5062",
    "errorMessage": "Gönderilen tutar tüm kırılımların toplam tutarına eşit olmalıdır",
    "locale": "tr",
    "systemTime": 1749021703678
}
```

{% endtab %}
{% endtabs %}

### Yanıtta Dönebilecek Parametreler

<table><thead><tr><th>Parametre Adı</th><th valign="middle">Tip</th><th>Açıklama</th></tr></thead><tbody><tr><td><code>status</code></td><td valign="middle">String</td><td>İstek sonucunu ifade eder. success yada failure değerleri dönebilmektedir.</td></tr><tr><td><code>locale</code></td><td valign="middle">String</td><td>Dönen yanıtın dilini ifade eder.</td></tr><tr><td><code>systemTime</code></td><td valign="middle">Long</td><td>Dönen sonucun o anki unix timestamp değeridir.</td></tr><tr><td><code>conversationId</code></td><td valign="middle">String</td><td>İstek esnasında gönderilen değer dönmektedir.</td></tr><tr><td><code>token</code></td><td valign="middle">String</td><td>Her ödeme formu isteği için oluşturulan unique değerdir.</td></tr><tr><td><code>payWithIyzicoPageUrl</code></td><td valign="middle">String</td><td>Son kullanıcının yönlendireleceği pay with iyzico sayfa urlidir.</td></tr><tr><td><code>tokenExpireTime</code></td><td valign="middle">Long</td><td>Token'ın sona erme süresidir.</td></tr><tr><td><code>tokenExpireDate</code></td><td valign="middle">Long</td><td>Epoch zaman diliminde token'ın expire olacağı tarih bilgisi.</td></tr><tr><td><code>errorCode</code></td><td valign="middle">String</td><td>İşlem hatalıysa, bu hataya dair belirtilen koddur.</td></tr><tr><td><code>errorMessage</code></td><td valign="middle">String</td><td>İşlem hatalıysa, bu hataya dair detay belirtilen mesajdır, locale parametresine göre dil desteği sunar.</td></tr></tbody></table>
