> For the complete documentation index, see [llms.txt](https://developer.paywall.one/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.paywall.one/odeme-servisi/12.-iptal-and-iade/1.-odeme-kimlik.md).

# 1. Ödeme Kimlik

## İptal & İade

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

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: **Ödeme Kimlik ile İ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 %}

**Gerekli header ve istek parametreleri:**

<details>

<summary><strong>Zorunlu header parametreleri</strong></summary>

<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>

</details>

<details>

<summary><strong>İstek gövdesi parametreleri</strong></summary>

<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>PaymentId</td><td>int</td><td>Evet</td><td>Ödeme başlatma sonrasında Paywall tarafından dönen API cevabında, ilgili işlemin Paywall'daki <code>PaymentId</code> karşılığı bulunmaktadır. Bu bilgi tarafınızda saklanmalıdı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>

</details>

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

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

```json5
{
    "PaymentId": 9474444843, // Ödeme sonucunda Paywall'dan dönmektedir
    "Amount": 0,
    "MarketPlace": { // nullable
        "DeleteExistingRecords": false
    }
}
```

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

**Servisten dönen parametreler şu şekildedir:**

<details>

<summary><strong>Parametreler ve açıklamaları</strong></summary>

<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>

</details>

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

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

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

## İptal & İade V2

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

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: **Ödeme Kimlik ile İ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 %}

**Gerekli header ve istek parametreleri:**

<details>

<summary><strong>Zorunlu header parametreleri</strong></summary>

<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>

</details>

<details>

<summary><strong>İstek gövdesi parametreleri</strong></summary>

<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>PaymentId</td><td>int</td><td>Evet</td><td>Ödeme başlatma sonrasında Paywall tarafından dönen API cevabında, ilgili işlemin Paywall'daki <code>PaymentId</code> karşılığı bulunmaktadır. Bu bilgi tarafınızda saklanmalıdı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>

</details>

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

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

```json5
{
    "PaymentId": 123456789, // Ödeme sonucunda Paywall'dan dönmektedir
    "Amount": 0,
    "MarketPlace": { // nullable
        "DeleteExistingRecords": false
    }
}
```

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

**Servisten dönen parametreler şu şekildedir:**

<details>

<summary><strong>Parametreler ve açıklamaları</strong></summary>

<table><thead><tr><th width="247">Parametre</th><th width="119.33333333333331">Tip</th><th>Açılama</th></tr></thead><tbody><tr><td>Body</td><td>object</td><td>Ödemeye ilişkin detay içeren JSON (opsiyonel)</td></tr><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><tr><td><mark style="color:orange;">Payment.</mark>PaymentId</td><td>int</td><td>İade edilen ödemenin sistem tarafından atanan benzersiz kimlik numarası.</td></tr><tr><td><mark style="color:orange;">Payment.</mark>UniqueCode</td><td>string</td><td>Ödemeye ait sistem tarafından üretilen tekil UUID değeri.</td></tr><tr><td><mark style="color:orange;">Payment.</mark>MerchantUniqueKey</td><td>string</td><td>Üye işyerine ait tekil UUID anahtar değeri.</td></tr><tr><td><mark style="color:orange;">Payment.</mark>TrackingCode</td><td>string</td><td>İade işlemine ait takip kodu.</td></tr><tr><td><mark style="color:orange;">Payment.</mark>PaymentActivityType</td><td>int</td><td>İşlem sonucu oluşturulan hareketin tipini gösteren kod </td></tr><tr><td><mark style="color:orange;">Payment.</mark>Installment</td><td>byte</td><td>İşlemde uygulanan taksit sayısı</td></tr><tr><td><mark style="color:orange;">Payment.</mark>PaymentGatewayId</td><td>int</td><td>İşlemin gerçekleştiği sağlayıcının bağlantısının kimlik bilgisi</td></tr><tr><td><mark style="color:orange;">Payment.</mark>PaymentGatewayName</td><td>string</td><td>İşlemin gerçekleştiği sağlayıcının bağlantısına verilen isim</td></tr><tr><td><mark style="color:orange;">Payment.</mark>PaymentGatewayProviderName</td><td>string</td><td>İşlemin gerçekleştiği sağlayıcının sistem ismi</td></tr><tr><td><mark style="color:orange;">Payment.</mark>PaymentGatewayProviderKey</td><td>string</td><td>İşlemin gerçekleştiği sağlayıcının sistemdeki anahtar kodu</td></tr><tr><td><mark style="color:orange;">Payment.</mark>RelationalId1</td><td>string</td><td>Kart ile ilişkilendirilen unique bilgi</td></tr><tr><td><mark style="color:orange;">Payment.</mark>RelationalId2</td><td>string</td><td>Kart ile ilişkilendirilen ikinci unique bilgi</td></tr><tr><td><mark style="color:orange;">Payment.</mark>RelationalId3</td><td>string</td><td>Kart ile ilişkilendirilen üçüncü unique bilgi</td></tr><tr><td><mark style="color:red;">Error.</mark>ProviderErrorCode</td><td>string</td><td>Ödeme sağlayıcısından dönen hata kodu. İşlem başarılı ise boş string döner.</td></tr><tr><td><mark style="color:red;">Error.</mark>ProviderErrorMessage</td><td>string</td><td>Ödeme sağlayıcısından dönen hata mesajı. İşlem başarılı ise boş string döner.</td></tr><tr><td><mark style="color:yellow;">ExternalInfo.</mark>PaymentActivityTypeId</td><td>int</td><td>Ödeme aktivite tipi kimliği. İade işlemleri için <code>2</code> değerini döner.</td></tr><tr><td><mark style="color:yellow;">ExternalInfo.</mark>PaymentExternalAuthCode</td><td>string</td><td>Ödeme sağlayıcısından dönen yetkilendirme kodu.</td></tr><tr><td><mark style="color:yellow;">ExternalInfo.</mark>PaymentExternalOrderId</td><td>string</td><td>Ödeme sağlayıcısındaki harici sipariş kimliği. Sağlayıcı tarafından dönülmüyorsa boş string olabilir.</td></tr><tr><td><mark style="color:yellow;">ExternalInfo.</mark>PaymentExternalTransId</td><td>string</td><td>Ödeme sağlayıcısındaki harici işlem kimliği. Genellikle <code>UniqueCode</code> ile aynı değeri taşır.</td></tr><tr><td><mark style="color:yellow;">ExternalInfo.</mark>PaymentExternalHostReference</td><td>string</td><td>Ödeme sağlayıcısının host sistemi tarafından atanan referans kodu.</td></tr><tr><td><mark style="color:yellow;">ExternalInfo.</mark>PaymentExternalMerchantId</td><td>string</td><td>Ödeme sağlayıcısındaki harici üye işyeri kimliği. Sağlayıcı tarafından dönülmüyorsa boş string olabilir.</td></tr></tbody></table>

</details>

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

```json5
{
    "ErrorCodeType": 1,
    "ErrorMessage": null,
    "ErrorCode": 0,
    "Result": true,
    "Message": "",
    "Body": {
        "Payment": {
            "PaymentId": 22904191,
            "UniqueCode": "12f0f304-ff65-4038-9bfb-b48b94f1e418",
            "MerchantUniqueKey": "b73b0cef-89cf-438e-a743-707d821e2f4b",
            "TrackingCode": "tracking-code-1234567890-for-documentation",
            "PaymentActivityType": 3,
            "Installment": 1,
            "PaymentGatewayId": 1475,
            "PaymentGatewayName": "demoiyziWP",
            "PaymentGatewayProviderName": "Iyzico",
            "PaymentGatewayProviderKey": "Iyzico",
            "RelationalId1": "test24243252599390",
            "RelationalId2": "",
            "RelationalId3": ""
        },
        "Error": {
            "ProviderErrorCode": "",
            "ProviderErrorMessage": ""
        },
        "ExternalInfo": {
            "PaymentActivityTypeId": 3,
            "PaymentExternalAuthCode": "641069",
            "PaymentExternalOrderId": "",
            "PaymentExternalTransId": "12f0f304-ff65-4038-9bfb-b48b94f1e418",
            "PaymentExternalHostReference": "mock00001iyzihostrfn",
            "PaymentExternalMerchantId": ""
        }
    }
}
```

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