# 1. Ödeme Onayla

## Ödeme Onayla / Otp Tabanlı

<mark style="color:green;">`POST`</mark> `{{Base Adres}}/api/paywall/apm/pay/confirm/otp`

{% hint style="info" %}
Önemli: **APM Ödeme Onayla (Otp Tabanlı)** servisini kullanabilmeniz için 'Header' alanında '**apikeypublic**' ve '**apiclientpublic**' parametrelerini göndermeniz gerekmektedir.\
\
[<mark style="color:green;">**PaymentAPI Adresi**</mark>](https://developer.paywall.one/ortam)
{% endhint %}

#### Servise gönderilmesi gereken (HEADERS) parametreler şu şekildedir :

<table><thead><tr><th width="178">Parametre</th><th width="79">Tip</th><th width="107">Zorunlu</th><th width="403">Açıklama</th></tr></thead><tbody><tr><td>apikeypublic</td><td>string</td><td>Evet</td><td>Üye işyeri panelinden temin etmiş olduğunuz Public Key.</td></tr><tr><td>apiclientpublic</td><td>string</td><td>Evet</td><td>Üye işyeri panelinden temin etmiş olduğunuz Public Client.</td></tr></tbody></table>

#### Servise gönderilmesi gereken (BODY) parametreler şu şekildedir :

<table><thead><tr><th width="221">Parametre</th><th width="152">Tip</th><th width="92">Zorunlu</th><th width="336">Açıklama</th></tr></thead><tbody><tr><td>UniqueCode</td><td>string</td><td>Evet</td><td>APM ödemesine ait UniqueCode parametresidir. Oluşturulma anında API tarafından dönen cevap içerisinde yer almaktadır.</td></tr><tr><td>Otp</td><td>string</td><td>Evet</td><td>APM ödemesi için kullanıcıya sağlayıcı tarafından iletilen Otp kodunu temsil etmektedir. Ekranlarınız aracılığıyla kullanıcıdan alınmalıdır</td></tr></tbody></table>

Servise gönderilecek örnek bir JSON dosyası şu şekildedir :

{% tabs %}
{% tab title="JSON" %}
{% code lineNumbers="true" %}

```json5
{
    "UniqueCode": "cda31a20-5089-40c6-9fb4-7bd89b2a2a04",
    "Otp": "10188"
}
```

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

Servisten dönen parametreler şu şekildedir:

<table><thead><tr><th width="189">Parametre</th><th width="100.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><tr><td>Body</td><td>nesne</td><td>İşlem hatalıysa, bu hataya dair detay nesne</td></tr></tbody></table>

{% tabs %}
{% tab title="JSON" %}
{% code lineNumbers="true" %}

```json
{
    "ErrorCode": 0,
    "Result": true,
    "Message": "",
    "Body": {
        "ApmKey": "FoodCardProvider",
        "ApmConnectionId": 19,
        "ApmTransactionId": 4292,
        "UniqueCode": "cda31a20-5089-40c6-9fb4-7bd89b2a2a04",
        "MerchantUniqueCode": "A1s2d3F774G5H6J7K8L9",
        "Amount": 1.00,
        "ProviderDummyResponse": {
            "ErrorCode": 0,
            "Body": {
                "ResponseCode": 0,
                "ResponseMessage": "Harcama başarılı.",
                "MerchantCode": "*********",
                "TerminalCode": "*********",
                "CardNo": "637******467",
                "SaleRefCode": "cda31a20-5089-40c6-9fb4-7bd89b2a2a04",
                "TransactionId": 111111111,
                "TransactionAmount": 1.0,
                "BatchNo": 1,
                "Balance": "19999.0",
                "CardOwner": "Paywall Payment Orchestration",
                "ProductName": ""
            },
            "HttpCode": 200
        }
    }
}
```

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