# 1. Satış

<mark style="color:green;">`POST`</mark> `{{Base Address}}/api/payment/sync/sale`

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: **Sync Satış** servisini kullanabilmeniz için 'Header' alanında '**apikeyprivate**' ve '**apiclientprivate**' parametrelerini göndermeniz gerekmektedir.\
\
[<mark style="color:green;">**PhysicalAPI Adresi**</mark>](https://developer.paywall.one/ortam)
{% endhint %}

#### Servise gönderilmesi gereken header bilgileri şu şekildedir:

<table><thead><tr><th width="243">Parametre</th><th width="106.33333333333331">Tip</th><th width="97">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 body bilgileri şu şekildedir:**

{% tabs %}
{% tab title="Json" %}

```json
{
    "TerminalId": "8ff33705-57c7-42dc-8341-a0053e7f3009",
    "SendNotificationDeviceDisconnected": false,
    // "TerminalTagCode": "testpos",
    "MerchantUniqueCode": "{{$guid}}",
    "DisplayCode": "Kişisel Bakım",
    "Amount": 22,
    "CurrencyId": 1,
    "Methods": [
        {
            "PaymentMethodId": 1
        }
    ],
    "CallbackAddress": "https://webhook.site/4768e8e7-12c9-4c3f-949c-c7a616e72acf",
    "SplitPaymentSupport": false,
    "Customer": {
        "Type": 1,
        "FirstName": "eda",
        "MiddleName": "seda",
        "LastName": "meda",
        "CompanyName": "",
        "TaxOfficeCode": "",
        "TaxNumber": "",
        "Phone": "",
        "Email": "",
        "Identity": "11111111110",
        "Country": "Türkiye",
        "City": "İstanbul",
        "District": "Mesela",
        "Neighborhood": "Öyle",
        "Address": "Tam sokağın ortası"
    },
    "Products": [
        {
            "Name": "Saç Tıraşı",
            "TaxGroupId": 10,
            "UnitCodeId": 1,
            "Amount": 22,
            "Quantity": 1,
            "PaymentMethodId": 2
        }
    ],
    "SkipPrintCustomer": false,
    "SkipPrintMerchant": false,
    "SkipPaymentOptionScreen": false,
    "ReceiptOptions": { // Opsiyonal
        "TopSupport": true,
        "Top": {
            "Text": "Üst başlık",
            "FontSize": 10
        },
        "BottomSupport": true,
        "Bottom": {
            "Text": "Alt başlık",
            "FontSize": 50
        }
    }
}

```

{% endtab %}
{% endtabs %}

<table><thead><tr><th width="268">Parametre</th><th width="98.33333333333331">Tip</th><th width="112">Zorunlu</th><th width="116">Uzunluk</th><th>Açıklama</th></tr></thead><tbody><tr><td><pre><code>TerminalId
</code></pre></td><td>string</td><td>Evet/Hayır</td><td>Guid</td><td>Terminalinizin kimlik (Id) bilgisiniz</td></tr><tr><td><pre><code>SendNotificationDeviceDisconnected
</code></pre></td><td>bool</td><td>Hayır</td><td>-</td><td>Cihaz Paywall sunucularına bağlı değilse (kilitli modda) ödemeler push bildirimi olarak iletilsin mi?</td></tr><tr><td><pre><code>TerminalTagCode
</code></pre></td><td>string</td><td>Evet</td><td>25</td><td>Etiket kodu</td></tr><tr><td><pre><code>MerchantUniqueCode
</code></pre></td><td>Guid</td><td>Evet</td><td>-</td><td>Ödemenin sizin tarafınızdan oluşturulan takip numarası</td></tr><tr><td><pre><code>SplitPaymentSupport
</code></pre></td><td>bool</td><td>Hayır</td><td>-</td><td>Her ürün özelinde ödeme almak için kullanılır</td></tr><tr><td><pre><code>Amount
</code></pre></td><td>decimal</td><td>Evet</td><td>-</td><td>Satış tutarı</td></tr><tr><td><pre><code>DisplayCode
</code></pre></td><td>string</td><td>Hayır</td><td>25</td><td>Ödemenin terminalde görüntülenmesi anında görülecek ödeme kodu</td></tr><tr><td><pre><code>CurrencyId
</code></pre></td><td>string</td><td>Evet</td><td>-</td><td>Bkz: <a href="broken-reference">Para Birimi</a></td></tr><tr><td><pre><code>CallbackAddress
</code></pre></td><td>string</td><td>Hayır</td><td>150</td><td>Ödeme durumunu ilettiğimiz geri bildirim adresiniz<br><br>Bkz: <a href="../../../geri-bildirim-ornekleri/tekrarli-odeme">Örnek</a> </td></tr><tr><td><pre><code>Methods
</code></pre></td><td>Array&#x3C;<mark style="color:orange;">Method</mark>></td><td>Hayır</td><td>-</td><td>Ödemenin hangi yöntemleri desteklemesini istediğinizi bu parametrelerle belirleyebilirsiniz</td></tr><tr><td><pre><code>Customer
</code></pre></td><td><mark style="color:orange;">Customer</mark></td><td>Hayır</td><td>-</td><td>Ödemenin gerçekleştirildiği müşterinin bilgileri</td></tr><tr><td><pre><code>Products
</code></pre></td><td>Array&#x3C;<mark style="color:orange;">Product</mark>></td><td>Evet</td><td>-</td><td>Ürün bilgileri</td></tr><tr><td><pre><code>SkipPrintCustomer
</code></pre></td><td>bool</td><td>Hayır</td><td>-</td><td>Müşteri fişinin çıktı alma işlemi yapılmaz</td></tr><tr><td><pre><code>SkipPrintMerchant
</code></pre></td><td>bool</td><td>Hayır</td><td>-</td><td>Kurum fişinin çıktı alma işlemi yapılmaz</td></tr><tr><td><pre><code>SkipPaymentOptionScreen
</code></pre></td><td>bool</td><td>Hayır</td><td>-</td><td>Ödeme anında kartlı işlem detay ekranı ekranda gösterilmez (Taksit vb)</td></tr><tr><td><pre><code>ReceiptOptions
</code></pre></td><td><mark style="color:orange;">ReceiptOptions</mark></td><td>Hayır</td><td>-</td><td>Ödeme sonrasında çıkacak fiş için özel ayarlamalar</td></tr></tbody></table>

<mark style="color:orange;">**Yöntem Nesnesi \<Method>**</mark>

<table><thead><tr><th width="214">Parametre</th><th width="97.33333333333331">Tip</th><th width="112">Zorunlu</th><th width="123">Uzunluk</th><th>Açıklama</th></tr></thead><tbody><tr><td><pre><code>PaymentMethodId
</code></pre></td><td>int</td><td>Evet</td><td>-</td><td><a href="broken-reference">Ödeme Yöntemleri</a></td></tr></tbody></table>

<mark style="color:orange;">**Yöntem Nesnesi \<ReceiptOptions>**</mark>

<table><thead><tr><th width="237">Parametre</th><th width="97.33333333333331">Tip</th><th width="112">Zorunlu</th><th width="123">Uzunluk</th><th>Açıklama</th></tr></thead><tbody><tr><td><pre><code>TopSupport
</code></pre></td><td>bool</td><td>Evet</td><td>-</td><td>Fiş'in üst kısmına yazı konumlandırılacak mı?</td></tr><tr><td><pre><code>Top > Text
</code></pre></td><td>string</td><td>Evet</td><td>150</td><td>Fiş'in üst kısmına yazılacak bilgi</td></tr><tr><td><pre><code>Top > FontSize
</code></pre></td><td>int</td><td>Evet</td><td>2</td><td>Fiş'in üst kısmına yazılacak bilginin boyutu</td></tr><tr><td><pre><code>BottomSupport
</code></pre></td><td>bool</td><td>Evet</td><td>-</td><td>Fiş'in alt kısmına yazı konumlandırılacak mı?</td></tr><tr><td><pre><code>Bottom > Text
</code></pre></td><td>string</td><td>Evet</td><td>150</td><td>Fiş'in alt kısmına yazılacak bilgi</td></tr><tr><td><pre><code>Bottom > FontSize
</code></pre></td><td>int</td><td>Evet</td><td>2</td><td>Fiş'in alt kısmına yazılacak bilginin boyutu</td></tr></tbody></table>

<mark style="color:orange;">**Müşteri Nesnesi \<Customer>**</mark>

<table><thead><tr><th width="188">Parametre</th><th width="135.33333333333331">Tip</th><th width="112">Zorunlu</th><th width="150">Uzunluk</th><th>Açıklama</th></tr></thead><tbody><tr><td><pre><code>Type
</code></pre></td><td>int</td><td>Evet</td><td>-</td><td>Müşteri Tipleri<br><br>Bkz: <a href="../../sistem-verileri/musteri-tipleri">Tipleri</a></td></tr><tr><td><pre><code>FirstName
</code></pre></td><td>string</td><td>Evet/Hayır</td><td>50</td><td>Müşteri adı</td></tr><tr><td><pre><code>MiddleName
</code></pre></td><td>string</td><td>Hayır</td><td>50</td><td>Müşteri 2. adı</td></tr><tr><td><pre><code>LastName
</code></pre></td><td>string</td><td>Evet/Hayır</td><td>50</td><td>Müşteri soyadı</td></tr><tr><td><pre><code>CompanyName
</code></pre></td><td>string</td><td>Evet/Hayır</td><td>175</td><td>Şirket ismi</td></tr><tr><td><pre><code>TaxOfficeCode
</code></pre></td><td>string</td><td>Evet/Hayır</td><td>50</td><td>Şirket vergi daire kodu</td></tr><tr><td><pre><code>TaxNumber
</code></pre></td><td>string</td><td>Evet/Hayır</td><td>25</td><td>Şirket vergi numarası</td></tr><tr><td><pre><code>Phone
</code></pre></td><td>string</td><td>Hayır</td><td>20</td><td>Telefon</td></tr><tr><td><pre><code>Email
</code></pre></td><td>string</td><td>Hayır</td><td>100</td><td>Eposta adresi</td></tr><tr><td><pre><code>Identity
</code></pre></td><td>string</td><td>Evet/Hayır</td><td>20</td><td>Kimlik numarası</td></tr><tr><td><pre><code>Country
</code></pre></td><td>string</td><td>Hayır</td><td>50</td><td>Ülke</td></tr><tr><td><pre><code>City
</code></pre></td><td>string</td><td>Hayır</td><td>100</td><td>Şehir</td></tr><tr><td><pre><code>District
</code></pre></td><td>string</td><td>Hayır</td><td>100</td><td>Semt/Mahalle</td></tr><tr><td><pre><code>Neighborhood
</code></pre></td><td>string</td><td>Hayır</td><td>100</td><td>Sokak</td></tr><tr><td><pre><code>Address
</code></pre></td><td>string</td><td>Hayır</td><td>255</td><td>Açık adres</td></tr></tbody></table>

<mark style="color:orange;">**Ürün Nesnesi \<Product>**</mark>

<table><thead><tr><th width="188">Parametre</th><th width="117.33333333333331">Tip</th><th width="112">Zorunlu</th><th width="145">Uzunluk</th><th>Açıklama</th></tr></thead><tbody><tr><td><pre><code>Name
</code></pre></td><td>string</td><td>Evet</td><td>75</td><td>Ürün adı</td></tr><tr><td><pre><code>TaxGroupId
</code></pre></td><td>int</td><td>Evet</td><td>-</td><td>Ürünün KDV dilimi<br><br>Bkz: <a href="broken-reference">Vergi Grubu</a></td></tr><tr><td><pre><code>UnitCodeId
</code></pre></td><td>int</td><td>Evet</td><td>-</td><td>Ürünün birim bilgisi<br><br>Bkz: <a href="broken-reference">Birim Kodları</a></td></tr><tr><td><pre><code>CurrencyId
</code></pre></td><td>string</td><td>Evet</td><td>-</td><td>Bkz: <a href="broken-reference">Para Birimi</a></td></tr><tr><td><pre><code>Amount
</code></pre></td><td>decimal</td><td>Evet</td><td>150</td><td>Ürün tutarı<br><br><strong>Not:</strong> Ürün tutarlarının toplamı satış tutarına eşit olmalıdır</td></tr><tr><td><pre><code>Quantity
</code></pre></td><td>int</td><td>Evet</td><td>-</td><td>Ürün adedi</td></tr></tbody></table>

**Servisten dönen cevap:**

<table><thead><tr><th width="182">Parametre</th><th width="107.33333333333331">Tip</th><th>Açıklama</th></tr></thead><tbody><tr><td>Result</td><td>object</td><td>Servisin detayındaki bilgileri döner</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>Succeeded</td><td>bool</td><td>True ya da false değeri döner. İşlem <mark style="color:green;">başarılı</mark> iste 'true' değerini döner</td></tr><tr><td>Failed</td><td>bool</td><td>True ya da false değeri döner. İşlem <mark style="color:red;">başarısız</mark> 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>ClientMessage</td><td>string</td><td>Paywall hata kodlarının sabit değerlerini döner. Map'leme yapabilirsiniz</td></tr></tbody></table>

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

```json5
{
    "Result": {
        "PaymentRequestId": "1eb856a8-1d41-49ab-8994-ecee2880d62c",
        "PaymentRequestActivityId": "2015c508-4029-4f6b-b7e2-4bf34a213c41",
        "PaymentRequestActivityTypeId": 1,
        "PaymentStatus": 4
    },
    "Failed": false,
    "Message": null,
    "ClientMessage": null,
    "Succeeded": true
}
```

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

<table><thead><tr><th width="263">Parametre</th><th width="139.33333333333331">Tip</th><th>Açıklama</th></tr></thead><tbody><tr><td><pre><code>PaymentRequestId
</code></pre></td><td>Guid</td><td>Async ödemenin Paywall'daki kimlik bilgisidir. <strong>Saklanmalıdır</strong></td></tr><tr><td><pre><code>PaymentRequestActivityId
</code></pre></td><td>Guid</td><td>Async ödemenin son hareketinin kimlik bilgisidir</td></tr><tr><td><pre><code>PaymentRequestActivityTypeId
</code></pre></td><td>int</td><td>Async ödemenin son işlem tipi<br><br>Bkz: <a href="broken-reference">Ödeme Tipi</a></td></tr><tr><td><pre><code>PaymentStatus
</code></pre></td><td>int</td><td>Async ödemenin son durumu<br><br>Bkz: <a href="broken-reference">Ödeme Durumu</a></td></tr></tbody></table>


---

# 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/fiziksel-pos/6.-odeme/sync/1.-satis.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.
