> For the complete documentation index, see [llms.txt](https://restdocs.haso.com.tr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://restdocs.haso.com.tr/5.-servis-metodlari/5.7-islemin-iadesi.md).

# 5.7 İşlemin İadesi

Başarılı bir işlemin tamamın veya bir kısmının iadesi gerçekteştirilir. Daha önce iade isteği başarılı olan refundId gönderilmiş ise H307 kodu ile iadenin daha önce yapıldığı bilgisi döner. Bu durumda CheckRefund servisi ile iade sonucu alınabilir.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/RequestV2/RefundTransaction</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="174">Parametre adı </th><th width="147">Parametre  Tipi</th><th width="64">Z/O </th><th>Açıklama</th></tr></thead><tbody><tr><td>merchantId</td><td>String</td><td>Z</td><td>Haso tarafından size verilen sabit parametredir.</td></tr><tr><td>ipAddress</td><td>String</td><td>O</td><td>İstek yapan istemcinin ip adresi. (Önemli: Lokal makinenizde yapacağınız denemelerde mutlaka dış IP adresini gönderdiğinizden emin olun)</td></tr><tr><td>transactionCode</td><td>String</td><td>Z</td><td>Her işlemin sahip olduğu unique bir değerdir. Başvuru sonucunda ödeme planında size bu bilgi gönderilir.</td></tr><tr><td>merchantOid</td><td>String(20)</td><td>Z</td><td>Kendi sisteminizde oluşturduğunuz sipariş için unique verdiğiniz sipariş numaranızdır.</td></tr><tr><td>refundAmount</td><td>String</td><td>Z</td><td>İade edilecek tutar. 100 ile çarparak gönderiniz. Ondalık basamak olmamalıdır. <mark style="color:red;">refundAmount</mark> siparişteki toplam ürün tutarı veya fazla gönderilir ise bütün ödeme kayıtlarını ve işlemi iptal eder. Az gönderilirse Kısmi İade olur.</td></tr><tr><td>refundId</td><td>String(36)</td><td>Z</td><td>Sizin tarafınızda oluşturulan İade işlemi için unique olacak maximum 36 karakter içerebilen parametredir. CheckRefund endpointinde bu parametre ile iadeyi kontrol edebilirsiniz.</td></tr><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + merchantOid + transactionCode + refundAmount + refundId + ipAddress + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="301">Parametre adı </th><th width="225">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List&#x3C;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>Data[“Message”]</td><td>String</td><td>RS100 kodu ile işlemin başarılı olduğunu belirtir.</td></tr><tr><td>Data[“hasoRefundAmount”]</td><td>Decimal</td><td>İade edilen tutarın içinde bulunan, Müşterinin daha önceden ödeme yaptığı değerdir. Bu tutar kadar kredi kartı iadesi yapılabilir.</td></tr><tr><td>Data[“hasoRefundFeeAmount”]</td><td>Decimal</td><td>İşlemin tamamı iade edilmişse ekstra tutar değeri bu parametre ile gönderilir.</td></tr><tr><td>Data[“PaymentPlan”]</td><td>List</td><td>Her taksit değeri için ödeme planını list olarak gösterir. Bu modele ait alt parametreler ise şöyledir.</td></tr><tr><td>PaymentPlan.InstallmentNo</td><td>İnt</td><td>Ödeme planındaki taksit numarasıdır.</td></tr><tr><td>PaymentPlan.installmentPayment</td><td>Decimal</td><td>Ödeme planındaki taksitin tutarıdır.</td></tr><tr><td>PaymentPlan.termDate</td><td>Date</td><td>Ödeme planındaki taksidin vade tarihidir.</td></tr></tbody></table>
