# İptal ve İade

### Genel Bakış

iyzico üzerinden yapılan bir ödeme 365 gün içerisinde 7/24 iade edilebilmektedir.

Bu işlemleri iki başlık altında toplayarak maddeleyelim.

* [**İade**](#post-payment-refund)
* [**İptal**](#post-payment-cancel)

{% hint style="info" %}
Bir ödemeyi yalnızca ödeme tahsil edildikten sonra İade Edin veya İptal Edin.
{% endhint %}

İade işleminin ekstreye yansıtılacağını unutmamakla birlikte, iadenin karta yansıma süresi ilgili bankaya göre değişebilmekte ve genellikle birkaç gün sürmektedir.

Bankaların çoğu, ödemenin kredi kartı ekstresinde görünmeyeceği durumlarda (bankalar kendi mutabakatlarını gerçekleştirmeden önce) ödemenin alındığı gün içinde herhangi bir ödemeyi iptal edebilmektedir.

{% hint style="info" %}
Bir iade yapmak için;&#x20;

* Ödeme İşlem Kimliği (`paymentTransactionId`)&#x20;
* İade Edilecek Tutar (`price`) belirtilmelidir.&#x20;

İade işlemi başarılı olursa iade edilen tutar (`price`) hizmetten iade edilir. Geri ödeme tutarı (`price`), orijinal işlem tutarından (`itemTransaction.paidPrice`) ve kalan iade edilebilir tutardan az veya bu tutara eşit olmalıdır. Bu kurala uyulduğu sürece art arda birden fazla iade yapılabilir.
{% endhint %}

## İade

> Ödeme işleminin iadesi için kullanılır. İade işlemi \*\*paymentTransactionId\*\* üzerinden, ödeme kırılımı baz alınarak yapılır. Ödeme tutarı için \*\*tamamen\*\* ya da \*\*kısmi\*\* iade yapılabilir.<br>

```json
{"openapi":"3.0.3","info":{"title":"Payment Operations - İptal & İade","version":"1.0.1"},"servers":[{"url":"https://api.iyzipay.com","description":"iyzico API"}],"paths":{"/payment/refund":{"post":{"summary":"İade","description":"Ödeme işleminin iadesi için kullanılır. İade işlemi **paymentTransactionId** üzerinden, ödeme kırılımı baz alınarak yapılır. Ödeme tutarı için **tamamen** ya da **kısmi** iade yapılabilir.\n","tags":["Ödeme"],"parameters":[{"$ref":"#/components/parameters/AuthHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundPaymentRequest"}}}},"responses":{"200":{"description":"Başarılı yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundPaymentResponse"}}}},"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":{"RefundPaymentRequest":{"type":"object","required":["paymentTransactionId","price"],"properties":{"paymentTransactionId":{"type":"string","description":"İade edilecek **ödeme kırılımı** numarası (**paymentTransactionId**)."},"conversationId":{"type":"string","description":"İstek/yanıt eşleştirmesi için uniq ID."},"ip":{"type":"string","description":"İşlemin gönderildiği IP adresi."},"locale":{"type":"string","enum":["tr","en"],"description":"Yanıt dili."},"price":{"type":"decimal","description":"İade edilmek istenen tutar. Kırılım tutarından **yüksek olmamalıdır**."},"currency":{"type":"string","description":"Ödemenin yapıldığı para birimi."},"reason":{"type":"string","description":"İade Nedeni. İade açıklaması gönderilirse, gönderilmesi zorunlu bir bilgidir.","enum":["OTHER","FRAUD","BUYER_REQUEST","DOUBLE_PAYMENT"]},"description":{"type":"string","description":"İade açıklaması."}}},"RefundPaymentResponse":{"type":"object","properties":{"status":{"type":"string","enum":["success","failure"],"description":"Yapılan isteğin sonucunu belirtir."},"locale":{"type":"string","enum":["tr","en"],"description":"Yanıt dili."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki **epoch ms** değeridir."},"conversationId":{"type":"string","description":"İstekte gönderilen conversationId değeri aynen geri döner."},"paymentId":{"type":"string","description":"Ödeme numarası."},"paymentTransactionId":{"type":"string","description":"İadesi yapılan ödeme kırılımı numarası."},"price":{"type":"decimal","description":"İade edilen tutar."},"currency":{"type":"string","description":"Para birimi."},"authCode":{"type":"string","description":"Banka tarafından dönen yetkilendirme (auth) kodu."},"hostReference":{"type":"string","description":"Ödemeye ilişkin banka tarafından verilen referans değeri."},"refundHostReference":{"type":"string","description":null},"retryable":{"type":"boolean","description":"İşlemin tekrar denenebilir olup olmadığını belirtir.","enum":[true,false]},"signature":{"type":"string","description":"İmza doğrulaması yapılabilecek signature değeri."}}},"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ı."},"locale":{"type":"string","enum":["tr","en"],"description":"Yanıt dili."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki **epoch ms** değeridir."},"conversationId":{"type":"string","description":"İstekte gönderilen conversationId."},"paymentId":{"type":"string","description":"İlgili ödeme numarası (varsa)."},"paymentTransactionId":{"type":"string","description":"İlgili ödeme kırılımı numarası (varsa)."},"price":{"type":"decimal","description":"İlgili tutar (varsa)."},"retryable":{"type":"boolean","description":"İşlemin tekrar denenebilir olup olmadığı."}}}}}}
```

#### Ö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/refund.php">PHP</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-java/blob/master/src/test/java/com/iyzipay/sample/RefundSample.java#L22">Java</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-dotnet/blob/master/Iyzipay.Samples/RefundSample.cs#L11">.Net</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-node/blob/master/samples/IyzipaySamples.js#L1127">Node.Js</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-python/blob/master/samples/refund.py">Python</a></td></tr><tr><td><a href="https://www.postman.com/iyzico/iyzico/request/jr1tq4n/1-3-1-refund">Postman</a></td></tr></tbody></table>

{% hint style="info" %}
[İade](#iade) işlemine benzer olarak, `paymentTransactionId` yerine İade V2 servisi ile `paymentId` üzerinden de iade yapmaya olanak tanır.

İade v2 servisini başlatmak için;

* Ödemeye ait Id (`paymentId`)&#x20;
* İade Edilecek Tutar (`price`) belirtilmelidir.&#x20;
  {% endhint %}

## İade V2

> \*\*paymentId\*\* üzerinden iade yapılmasını sağlar. Ödeme kırılımı belirtilmez; iade edilecek kırılım sistem tarafından otomatik belirlenir. Ödeme tutarı için \*\*tamamen\*\* ya da \*\*kısmi\*\* iade yapılabilir.<br>

```json
{"openapi":"3.0.3","info":{"title":"Payment Operations - İptal & İade","version":"1.0.1"},"servers":[{"url":"https://api.iyzipay.com","description":"iyzico API"}],"paths":{"/v2/payment/refund":{"post":{"summary":"İade V2","description":"**paymentId** üzerinden iade yapılmasını sağlar. Ödeme kırılımı belirtilmez; iade edilecek kırılım sistem tarafından otomatik belirlenir. Ödeme tutarı için **tamamen** ya da **kısmi** iade yapılabilir.\n","tags":["Ödeme"],"parameters":[{"$ref":"#/components/parameters/AuthHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundPaymentV2Request"}}}},"responses":{"200":{"description":"Başarılı yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundPaymentV2Response"}}}},"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":{"RefundPaymentV2Request":{"type":"object","required":["paymentId","price"],"properties":{"paymentId":{"type":"string","description":"İade edilecek **ödeme** numarası."},"conversationId":{"type":"string","description":"İstek/yanıt eşleştirmesi için uniq ID."},"ip":{"type":"string","description":"İşlemin gönderildiği IP adresi."},"locale":{"type":"string","enum":["tr","en"],"description":"Yanıt dili."},"price":{"type":"decimal","description":"İade edilmek istenen tutar. Ödeme tutarından **büyük olmamalıdır**."},"currency":{"type":"string","description":"Ödemenin yapıldığı para birimi."}}},"RefundPaymentV2Response":{"type":"object","properties":{"status":{"type":"string","enum":["success","failure"],"description":"Yapılan isteğin sonucunu belirtir."},"locale":{"type":"string","enum":["tr","en"],"description":"Yanıt dili."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki **epoch ms** değeridir."},"conversationId":{"type":"string","description":"İstekte gönderilen conversationId değeri aynen geri döner."},"paymentId":{"type":"string","description":"İadesi yapılan ödeme numarası."},"price":{"type":"decimal","description":"İade edilen tutar."},"currency":{"type":"string","description":"Para birimi."},"authCode":{"type":"string","description":"Banka tarafından dönen yetkilendirme (auth) kodu."},"hostReference":{"type":"string","description":"Ödemeye ilişkin banka tarafından verilen referans değeri."},"refundHostReference":{"type":"string","description":null},"retryable":{"type":"boolean","description":"İşlemin tekrar denenebilir olup olmadığını belirtir.","enum":[true,false]},"signature":{"type":"string","description":"İmza doğrulaması yapılabilecek signature değeri."}}},"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ı."},"locale":{"type":"string","enum":["tr","en"],"description":"Yanıt dili."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki **epoch ms** değeridir."},"conversationId":{"type":"string","description":"İstekte gönderilen conversationId."},"paymentId":{"type":"string","description":"İlgili ödeme numarası (varsa)."},"paymentTransactionId":{"type":"string","description":"İlgili ödeme kırılımı numarası (varsa)."},"price":{"type":"decimal","description":"İlgili tutar (varsa)."},"retryable":{"type":"boolean","description":"İşlemin tekrar denenebilir olup olmadığı."}}}}}}
```

#### Ö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/amount_base_refund.php">PHP</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-java/blob/master/src/test/java/com/iyzipay/sample/RefundSample.java#L98">Java</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-dotnet/blob/master/Iyzipay.Samples/RefundSample.cs#L33">.Net</a></td></tr><tr><td><a href="https://www.postman.com/iyzico/iyzico/request/bylw7k7/1-3-3-amount-based-refund">Postman</a></td></tr></tbody></table>

{% hint style="info" %}
Üye iş yeri, iadelerde olduğu gibi iyzico hizmetleri ile işlemini iptal edebilir.

İptal ve para iadesi arasındaki temel farklar şu şekildedir;&#x20;

* İptal işlemi ödeme ile aynı gün yapılabilir ve kart ekstresinde herhangi bir giriş/çıkış kaydı oluşturmaz.
* İptal işlemlerinde kısmi tutarları desteklememektedir.

Bir iptali başlatmak için işlemle ilişkili ödeme kimliğini (`paymentId`) sağlamak gerekir. İptal işlemi başarılı olursa iptal edilen tutar (`price`) hizmetten iade edilir.
{% endhint %}

## İptal

> Ödeme işlemini iptal etmek için kullanılır.

```json
{"openapi":"3.0.3","info":{"title":"Payment Operations - İptal & İade","version":"1.0.1"},"servers":[{"url":"https://api.iyzipay.com","description":"iyzico API"}],"paths":{"/payment/cancel":{"post":{"summary":"İptal","description":"Ödeme işlemini iptal etmek için kullanılır.","tags":["Ödeme"],"parameters":[{"$ref":"#/components/parameters/AuthHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelPaymentRequest"}}}},"responses":{"200":{"description":"Başarılı yanıt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelPaymentResponse"}}}},"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":{"CancelPaymentRequest":{"type":"object","required":["paymentId"],"properties":{"paymentId":{"type":"string","description":"İptal edilmek istenen ödeme işlemine ait iyzico tarafından verilen **uniq ödeme numarası**."},"conversationId":{"type":"string","description":"İstek/yanıt eşleştirmesi için **uniq ID**. İstekte gönderilen değer yanıtta aynen geri döner."},"ip":{"type":"string","description":"İşlemin gönderildiği IP adresi."},"locale":{"type":"string","enum":["tr","en"],"description":"iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır."},"reason":{"type":"string","description":"İptal Nedeni. İptal açıklaması gönderilirse, gönderilmesi zorunlu bir bilgidir.","enum":["OTHER","FRAUD","BUYER_REQUEST","DOUBLE_PAYMENT"]},"description":{"type":"string","description":"İptal açıklaması."}}},"CancelPaymentResponse":{"type":"object","properties":{"status":{"type":"string","enum":["success","failure"],"description":"Yapılan isteğin sonucunu belirtir."},"locale":{"type":"string","enum":["tr","en"],"description":"Yanıt dili."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki **epoch ms** değeridir."},"conversationId":{"type":"string","description":"İstekte gönderilen conversationId değeri aynen geri döner."},"paymentId":{"type":"string","description":"İptal edilen ödeme numarası."},"price":{"type":"decimal","description":"İptal edilen ödeme tutarı."},"currency":{"type":"string","description":"Para birimi (ödemenin yapıldığı para birimi)."},"authCode":{"type":"string","description":"Banka tarafından dönen yetkilendirme (auth) kodu."},"hostReference":{"type":"string","description":"İşlem referans değeri."},"cancelHostReference":{"type":"string","description":"İptal işlemine ait referans değeri."}}},"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ı."},"locale":{"type":"string","enum":["tr","en"],"description":"Yanıt dili."},"systemTime":{"type":"integer","description":"Dönen sonucun o anki **epoch ms** değeridir."},"conversationId":{"type":"string","description":"İstekte gönderilen conversationId."},"paymentId":{"type":"string","description":"İlgili ödeme numarası (varsa)."},"paymentTransactionId":{"type":"string","description":"İlgili ödeme kırılımı numarası (varsa)."},"price":{"type":"decimal","description":"İlgili tutar (varsa)."},"retryable":{"type":"boolean","description":"İşlemin tekrar denenebilir olup olmadığı."}}}}}}
```

#### Ö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/cancel.php">PHP</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-java/blob/master/src/test/java/com/iyzipay/sample/CancelSample.java#L17">Java</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-dotnet/blob/master/Iyzipay.Samples/CancelSample.cs">.Net</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-node/blob/master/samples/IyzipaySamples.js#L176">Node.Js</a></td></tr><tr><td><a href="https://github.com/iyzico/iyzipay-python/blob/master/samples/cancel.py">Python</a></td></tr><tr><td><a href="https://www.postman.com/iyzico/iyzico/request/dxpuprf/1-3-2-cancel">Postman</a></td></tr></tbody></table>
