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

# 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>](/ortam.md)
{% 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="/pages/QsatIyGIDePwte5dqDwx">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="/pages/hXX3TGYPp3u25HkpxjWN">Ö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="/pages/Fua8gSCQ6ume8MJIuO8u">Ö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="/pages/csxxzrJZKW73CRRvRwH3">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="/pages/DtntSxqoQvScYjhrCO68">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="/pages/x8WeJ6R6UKUmLQfvqvXM">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="/pages/QsatIyGIDePwte5dqDwx">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="/pages/r4byguUuzDCdaFZE5hOM">Ö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="/pages/xRrVHeb3yeYB9gbKcgUS">Ödeme Durumu</a></td></tr></tbody></table>
