# 12. İptal & İade

## İptal & İade

<mark style="color:green;">`POST`</mark> `{{Private Base Address}}/api/paywall/private/revert`

Yukarıda verilmiş olan adrese istek atmanız yeterli olacaktır. Test ortamı ve Gerçek ortam için 'Base Address' istediğiniz gibi kullanabilirsiniz.

{% hint style="info" %}
Önemli: **İptal & İade** servisini kullanabilmeniz için 'Header' alanında '**apikeyprivate**' ve '**apiclientprivate**' parametrelerini göndermeniz gerekmektedir.\
\
[<mark style="color:green;">**PaymentPrivateAPI Adresi**</mark>](/ortam.md)
{% endhint %}

{% hint style="warning" %}
**İptal & İade servisi**, gelen talebi aldıktan sonra ödemenin yapıldığı günü kontrol eder ve aşağıdaki akışlardan uygun olanını uygular:

1. Eğer talep, ödemenin yapıldığı gün gönderilmişse **iptal işlemi** gerçekleştirilir
2. Eğer talep, ödemenin yapıldığı günden sonra gönderilmişse **iade işlemi** gerçekleştirilir.
   1. Eğer talepte belirtilen **Amount** değeri sıfır değilse ve işlem tutarından farklı ise, **kısmi iade işlemi** gerçekleştirilir.
      {% endhint %}

<table><thead><tr><th width="232">Parametre</th><th width="83">Tip</th><th width="108">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>apikeyprivate</td><td>string</td><td>Evet</td><td>Üye işyeri panelinden temin etmiş olduğunuz Private Key.</td></tr><tr><td>apiclientprivate</td><td>string</td><td>Evet</td><td>Üye işyeri panelinden temin etmiş olduğunuz Private Client.</td></tr></tbody></table>

#### Servise gönderilmesi gereken parametreler şu şekildedir :

<table><thead><tr><th width="227">Parametre</th><th width="105.33333333333331">Tip</th><th width="98">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>UniqueCode</td><td>Guid</td><td>Evet</td><td>Ödeme başlatma sonrasında Paywall tarafından dönen API cevabında, ilgili işlemin Paywall'daki UniqueCode karşılığı bulunmaktadır. Bu bilgi tarafınızda saklanmalıdır</td></tr><tr><td>MerchantUniqueCode</td><td>string</td><td>Evet</td><td>Ödeme başlatma için gönderilen istek içerisindeki MerchantUniqueCode ile aynı değer olmalıdır. Bu kod sizin tarafınızdan işleme ait verilen tekil değerdir. İptal/İade/Ödeme Sorgulama işlemlerinin hepsinde bir ödemeyi tekilleştirmeniz ve takip etmeniz için kullanılmaktadır.</td></tr><tr><td>Amount</td><td>decimal</td><td>Hayır</td><td>Amount parametresi 0 gönderilirse, işlem ana tutar üzerinden gerçekleştirilir. Eğer Amount değer, var olan işlem tutarından farklı gönderilirse <code>Kısmi İade</code> olarak işlenir</td></tr><tr><td>MarketPlace:DeleteExistingRecords</td><td>bool</td><td>Hayır</td><td>Pazaryeri kapsamında ilgili ödemenin hakediş onayının verilmesi durumunda, bu parametre true gönderilmelidir. True gönderilmesi durumunda var olan hakedişler, iptal emrinin başarılı olması sonrasında silinir</td></tr></tbody></table>

{% tabs %}
{% tab title="Json" %}
{% code overflow="wrap" lineNumbers="true" %}

```json5
{
    "UniqueCode": "1111-1111-1111-1111", // Ödeme sonucunda Paywall'dan dönmektedir
    "MerchantUniqueCode": "ABCD-EFGH-JKLP-MNBV",
    "Amount": 0,
    "MarketPlace": { // nullable
        "DeleteExistingRecords": false
    }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

**Servisten dönen cevap:**

<table><thead><tr><th width="156">Parametre</th><th width="83.33333333333331">Tip</th><th>Açıklama</th></tr></thead><tbody><tr><td>ErrorCode</td><td>int</td><td>Hata kodu. İşlem başarılı ise '0' değerini döner.</td></tr><tr><td>Result</td><td>bool</td><td>True ya da false değeri döner. İşlem başarılı iste 'true' değerini döner</td></tr><tr><td>Message</td><td>string</td><td>İşlem hatalıysa, bu hataya dair belirtilen mesajdır, locale parametresine göre dil desteği sunar.</td></tr></tbody></table>

{% tabs %}
{% tab title="Json" %}
{% code overflow="wrap" lineNumbers="true" %}

```json5
{
    "ErrorCode": 0,
    "Result": true,
    "Message": "Success",
    "Body": null
}
```

{% endcode %}
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.paywall.one/odeme-servisi/12.-iptal-and-iade.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
