> 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/alternatif-odeme-apm/checkoutpage-tabanli/1.-odeme-baslat-id.md).

# 1. Ödeme Başlat (Id)

## Ödeme Başlat (Id)

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

{% hint style="info" %}
Önemli: **APM Ödeme Başlatma** servisini kullanabilmeniz için 'Header' alanında '**apikeypublic**' ve '**apiclientpublic**' parametrelerini göndermeniz gerekmektedir.\
\
[<mark style="color:green;">**PaymentAPI Adresi**</mark>](/ortam.md)
{% 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="244">Parametre</th><th width="92">Tip</th><th width="69.6171875">Zorunlu</th><th width="336">Açıklama</th></tr></thead><tbody><tr><td>ApmId</td><td>int</td><td>Evet</td><td>APM sağlayıcısının bağlantı kimlik bilgisi. Listeme esnasında döner.</td></tr><tr><td>CurrencyId</td><td>int</td><td>Evet</td><td>Ödeme'nin bağlatılmak istendiği para birimi<br><br>Bkz: <a href="/pages/bahfUMz1dqpN1ZCnpVtM">Para Birimleri</a></td></tr><tr><td>MerchantUniqueCode</td><td>string</td><td>Evet</td><td>Ödeme için oluşturduğunuz tekil numara</td></tr><tr><td>MerchantSuccessBackUrl</td><td>string</td><td>Evet</td><td>Ödemenizin başarılı sonucunun iletileceği adres. Post Body cevap alacaktır.</td></tr><tr><td>MerchantFailBackUrl</td><td>string</td><td>Evet</td><td>Ödemenizin başarılı sonucunun iletileceği adres. Post Body cevap alacaktır.</td></tr><tr><td>Amount</td><td>decimal</td><td>Evet</td><td>Ödeme tutarı<br><br><mark style="color:yellow;">*</mark> <code>IsRecurring</code> <mark style="color:green;"><code>true</code></mark> olması durumunda bu değer, maksimum çekilecek tutarı ifade eder</td></tr><tr><td>Description</td><td>string</td><td>Evet</td><td>Ödeme'ye ait açıklama. Sağlayıcıya bağlı olarak bu açıklama ödeme ekranında görüntülenebilmektedir.</td></tr><tr><td>IsRecurring</td><td>bool</td><td>Hayır</td><td>APM sağlayıcısı ödeme talimatı almayı destekliyorsa, bu parametre <code>true</code> gönderilmelidir.<br><br>Destekleyen Sağlayıcı: Masterpass</td></tr><tr><td>ExpireDay</td><td>int</td><td>Hayır</td><td>APM sağlayıcısının ilgili sayfasının/ödeme akışının son kullanma tarih desteği olması durumunda kullanılır. Gün sayısı bekler ve aktif günün üstüne o kadar gün ekler. <br><br>Destekleyen Sağlayıcı: Masterpass</td></tr><tr><td>IsAutoCommit</td><td>bool</td><td>Hayır (true)</td><td><p>Default olarak “true” değeri geliyor, değiştirmek isterseniz "false" olarak değiştirilmelidir.</p><p> </p><p>True gönderildiğinde —>  3D işlemi sonrası ekrandaki ödeme işlemi tamamlanınca ödeme anında karttan tutar çekilir.</p><p>False Gönderildiğinde —>  Ödeme sonrası callback atılır sonrasında ayrıca </p><p>commit emri verilmesi gereklidir.</p></td></tr><tr><td>Payer</td><td><mark style="color:orange;">Payer</mark></td><td>Evet</td><td>Ödeme'nin gerçekleştirileceği ödeyici bilgilerinin barındığı nesnedir. Bu nesne altındaki parametrelerin zorunlulukları sağlayıcının beklediği parametreye göre farklılık gösterebilmektedir. <br><br>Önerilen, tüm bilgilerin gönderilmesidir</td></tr></tbody></table>

#### <mark style="color:orange;">Payer</mark> :

<table><thead><tr><th width="221">Parametre</th><th width="160">Tip</th><th width="148">Zorunlu</th><th width="336">Açıklama</th></tr></thead><tbody><tr><td>Fullname</td><td>string</td><td>Evet (Koşullu)</td><td>Ödeyici tam isim</td></tr><tr><td>CardNumber</td><td>string</td><td>Evet (Koşullu)</td><td>Ödeyici kart numarası (yemek kartı vb)</td></tr><tr><td>CardId</td><td>string</td><td>Evet (Koşullu)</td><td>Ödeyici kart kimlik numarası (kartın APM sağlayıcısında saklanması durumunda çalışır)</td></tr><tr><td>Phone</td><td>string</td><td>Evet (Koşullu)</td><td>Ödeyicinin telefon numarası</td></tr><tr><td>Email</td><td>string</td><td>Evet (Koşullu)</td><td>Ödeyicinin e-posta adresi</td></tr><tr><td>UserIdentity</td><td>string</td><td>Evet (Koşullu)</td><td>Ödeyicinin sisteminizdeki kimlik bilgisi (TCKN/VKN)</td></tr><tr><td>ConsumerIdentity</td><td>string</td><td>Evet (Koşullu)</td><td>Ödeyicinin sisteminizdeki kimlik bilgisi (UserId)</td></tr><tr><td>Birthday</td><td>DateTime</td><td>Hayır</td><td>Ödeyicinin doğum günü bilgisi</td></tr><tr><td>CardAlias</td><td>string</td><td>Evet (Koşullu)</td><td>Ödeyiciye ait kart bilgisinin etiketi (Masterpass)</td></tr></tbody></table>

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

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

```json5
{
    "ApmId": 1,
    "CurrencyId": 1,
    "MerchantUniqueCode": "TESTMERCHANTUNIQUECODE",
    "MerchantSuccessBackUrl": "https://webhook.site/38a6fa6f-3414-40db-b2a7-a6c38894b6a3",
    "MerchantFailBackUrl": "https://webhook.site/38a6fa6f-3414-40db-b2a7-a6c38894b6a3",
    "Amount": 1,
    "Description": "test",
    "IsRecurring": true,
    "ExpireDay": 10,
    "IsAutoCommit": true,
    "Payer": {
        "Fullname": "",
        "CardNumber": "",
        "CardId": "",
        "Phone": "",
        "Email": "",
        "UserIdentity": "",
        "ConsumerIdentity": "",
        "Birthday": null
    },
    "Products": [
        {
            "ProductId": "123",
            "ProductName": "Name",
            "ProductCategory": "Food",
            "ProductDescription": "Description of Product",
            "ProductAmount": 1
        }
    ]
}
```

{% 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": {
        "RedirectUrl": "https://dev-payment-agent.itspaywall.com/paywall/callbackapm?UniqueNumber=dd224827-8433-45f7-9454-97025e57fa9e",
        "Transaction": {
            "ApmTransactionId": 29,
            "UniqueCode": "dd224827-8433-45f7-9454-97025e57fa9e",
            "MerchantUniqueCode": "TESTMERCHANTUNIQUECODE",
            "Amount": 1.0
        }
    }
}
```

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://developer.paywall.one/alternatif-odeme-apm/checkoutpage-tabanli/1.-odeme-baslat-id.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
