> For the complete documentation index, see [llms.txt](https://developer.esnekpos.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.esnekpos.com/hoppa-gelistirici-ortami/android-pos-web-api/odeme-servisi.md).

# Ödeme Servisi

{% hint style="danger" %}

* <mark style="color:red;">Ödeme durumundan emin olmak için</mark> [<mark style="color:red;">PROCCESS\_QUERY</mark> ](/hoppa-gelistirici-ortami/islem-sorgulama-servisi.md)<mark style="color:red;">methodu ile sorgulama yapmanız ve</mark> [<mark style="color:red;">PROCCESS\_QUERY</mark> ](/hoppa-gelistirici-ortami/islem-sorgulama-servisi.md)<mark style="color:red;">methodunun cevabını dikkate almanız gerekmektedir.</mark>
* <mark style="color:red;">Bu sorguyu client-side tarafında değil server to server olacak şekilde kurgulamanız gerekmektedir müşteri tarayıcısında yaptığınız bu</mark> [<mark style="color:red;">PROCCESS\_QUERY</mark> ](/hoppa-gelistirici-ortami/islem-sorgulama-servisi.md)<mark style="color:red;">methodunun görünmemesi ve takip edilememesi gerekmektedir.</mark>
* <mark style="color:red;">Response içerisinde yer alan</mark> <mark style="color:red;"></mark><mark style="color:red;">**AUTH\_HASH**</mark> <mark style="color:red;"></mark><mark style="color:red;">parametresi ile işlem doğrulaması yapabilirsiniz. Kullanılan algoritma için yetkili e-posta adresiniz üzerinden <destek@esnekpos.com> adresine başvurmanız yeterlidir.</mark>
  {% endhint %}

**Android Pos Ödeme Servisi İstek Modeli**

<table><thead><tr><th width="108.33333333333331">Metod</th><th width="520">API URL</th><th>Parametreler</th></tr></thead><tbody><tr><td>POST</td><td>https://base-url/api/pay/PhysicalPayment</td><td>JSON File</td></tr></tbody></table>

**Android Pos Ödeme Servisi İşlem Akışı;**

Android Pos ödeme servis modeli ile başarılı bir tahsilat gerçekleştirmek için aşağıda maddeler halinde açıklanan işlemleri takip ederek entegrasyonunuzu tamamlamanız gerekmektedir.

Servise gönderilmesi gereken parametreler şu şekildedir;

Android Pos Ödeme Servisi İstek Mesajı Parametreleri<br>

**Config**

<table><thead><tr><th width="234">Parametre</th><th width="102">Tip</th><th width="80">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>MERCHANT</td><td>string</td><td>Evet</td><td>Üye iş yerine özel oluşturulan eşsiz kimlik bilgisidir.</td></tr><tr><td>MERCHANT_KEY</td><td>string</td><td>Evet</td><td>Üye iş yerine özel oluşturulan anahtar bilgisidir.</td></tr><tr><td>BACK_URL</td><td>string</td><td>Evet</td><td>İşlem sonuç cevabının sistem tarafından döndürüleceği adres bilgisidir. İşlem cevabı üye iş yeri tarafından bu adresten okunacaktır.İşlem sonucu json post olarak gönderilir.</td></tr><tr><td>PRICES_CURRENCY</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği para birimi bilgisidir. Şu an için sadece “TRY, USD, EUR, GBP” gönderilebilir.</td></tr><tr><td>ORDER_REF_NUMBER</td><td>string</td><td>Evet</td><td>Üye iş yeri tarafından verilecek referans numarası bilgisidir. Ödeme işlemleri bu referans numarası ile takip edilebilir. Maksimum 24 karakter kullanılabilir.</td></tr><tr><td>ORDER_AMOUNT</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait işlem tutarı bilgisidir.</td></tr><tr><td>POS_ID</td><td>int</td><td>Evet</td><td>Android posa ait id bilgisi.</td></tr></tbody></table>

<br>

**Customer**

<table><thead><tr><th width="185">Parametre</th><th width="100">Tip</th><th width="99">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>FIRST_NAME</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) adı bilgisidir.</td></tr><tr><td>LAST_NAME</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) soyadı bilgisidir.</td></tr><tr><td>MAIL</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) mail bilgisidir.</td></tr><tr><td>PHONE</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) telefon bilgisidir.</td></tr><tr><td>CITY</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) şehir bilgisidir.</td></tr><tr><td>STATE</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) ilçe bilgisidir.</td></tr><tr><td>ADDRESS</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) adres bilgisidir.</td></tr></tbody></table>

<br>

**Product**

<table><thead><tr><th width="246">Parametre</th><th width="92">Tip</th><th width="84">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>PRODUCT_ID</td><td>string</td><td>Evet</td><td>Ürüne üye işyeri tarafından verilen ID bilgisidir.</td></tr><tr><td>PRODUCT_NAME</td><td>string</td><td>Evet</td><td>Ürünün ad bilgisidir.</td></tr><tr><td>PRODUCT_CATEGORY</td><td>string</td><td>Evet</td><td>Ürünün kategori bilgisidir.</td></tr><tr><td>PRODUCT_DESCRIPTION</td><td>string</td><td>Evet</td><td>Ürünün açıklama bilgisidir.</td></tr><tr><td>PRODUCT_AMOUNT</td><td>string</td><td>Evet</td><td>Ürünün tutar bilgisidir.</td></tr></tbody></table>

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

```json
                                            
                                        
    {
        "Config":{
            "MERCHANT": " TEST1234",
            "MERCHANT_KEY": " 4oK26hK8MOXrIV1bzTRVPA==",
            "BACK_URL": "İşlem sonucunun üye işyerine döndürüleceği url adresi",
            "PRICES_CURRENCY": "TRY",
            "ORDER_REF_NUMBER": "RFN0001",
            "ORDER_AMOUNT": "150.00",
            "POS_ID": 3
            },
       "Customer":{
           "FIRST_NAME": "firstname",
           "LAST_NAME": "lastname",
           "MAIL": "test@esnekpos.com",
           "PHONE": "1122356600",
           "CITY": "İstanbul",
           "STATE": "Kağıthane",
           "ADDRESS": "Müşteri Adres"
           },
        "Product" : [
            {
               "PRODUCT_ID": "1",
               "PRODUCT_NAME": "Ürün Adı 1",
               "PRODUCT_CATEGORY": "Elektronik",
               "PRODUCT_DESCRIPTION": "Ürün Açıklaması",
               "PRODUCT_AMOUNT": 80
               },
            {
               "PRODUCT_ID": "2",
               "PRODUCT_NAME": "Ürün Adı 2",
               "PRODUCT_CATEGORY": "Ev Tekstili",
               "PRODUCT_DESCRIPTION": "Ürün Açıklaması",
               "PRODUCT_AMOUNT": 70
               }
        ]
    }

                                            
                                        
```

hoppa bilgileri değerlendirerek üye iş yerine cevap mesajını gönderir.

Servisten işlem sonrasında gönderilen cevap mesajına ait parametreler şu şekildedir;

Android Pos Ödeme Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th width="239">Parametre</th><th width="93">Tip</th><th width="74">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>STATUS</td><td>string</td><td>Evet</td><td>Ödeme işlemi sonucu durum bilgisidir.</td></tr><tr><td>RETURN_CODE</td><td>string</td><td>Evet</td><td>Ödeme işlemi sonucu durumu kod bilgisidir.</td></tr><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>Ödeme işlemi sonucu durum mesaj bilgisidir.</td></tr><tr><td>ORDER_REF_NUMBER</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait Android Pos sistemi tarafından verilen referans numarası bilgisi.</td></tr></tbody></table>

```json
                                            
                                        
    {
        "STATUS": "SUCCESS",
        "RETURN_CODE": "0",
        "RETURN_MESSAGE": null,
        "ORDER_REF_NUMBER": "ORDER_REF_NUMBER"
    }

                                            
                                        
```

Android Pos Ödeme Servisi işlem cevap mesajında `STATUS` parametresinin değeri SUCCESS ve `RETURN_CODE` parametresinin değeri 0 olarak dönmesi Android Pos Ödeme işleminin kabul edildiğini ifade etmektedir.

**1. Adım:**

Üye işyeri aldığı cevabı değerlendirerek ödeme kabul edildi ise hoppa'nın vermiş olduğu URL\_3DS adresine müşteriyi yönlendirir.

**2. Adım:**

Android Pos ödeme işlemini sonuçlandırır, ödemenin sonucunu üye işyerinin 1. adımda bildirmiş olduğu BACK\_URL adresine JSON POST metodu ile bildirir.

Ödeme işlemi gerçekleştikten sonra ödeme sonuç mesajına ait parametreler şu şekildedir;

Android Pos Ödeme Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th width="251">Parametre</th><th width="101">Tip</th><th width="74">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>STATUS</td><td>string</td><td>Evet</td><td>Ödeme işlemi sonucu durum bilgisidir.</td></tr><tr><td>RETURN_CODE</td><td>string</td><td>Evet</td><td>Ödeme işlemi sonucu durumu kod bilgisidir.</td></tr><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>Ödeme işlemi sonucu durum mesaj bilgisidir.</td></tr><tr><td>ORDER_REF_NUMBER</td><td>string</td><td>Evet</td><td>Üye iş yeri tarafından ödeme işlemi isteği gönderilirken verilmiş olan referans numarası bilgisidir.</td></tr></tbody></table>

```json
                                            
                                        
    {
        "STATUS": "SUCCESS",
        "RETURN_CODE": "0",
        "RETURN_MESSAGE": null,
        "ORDER_REF_NUMBER": "ORDER_REF_NUMBER"
    }

                                            
                                        
```

Üye işyerine gönderilen JSON POST mesajında `STATUS` parametresinin değeri SUCCESS ve `RETURN_CODE` parametresinin değeri 0 olarak dönmesi Android Pos Ödeme işleminin sorunsuz bir şekilde gerçekleştiğini ifade etmektedir.

**Cevap Mesajı Durumları ve Açıklamaları**

Android Pos Cevap mesajı detaylarında dönen `RETURN_CODE` açıklamalarının detayları şu şekildedir;

<table><thead><tr><th width="114">RETURN_CODE</th><th width="249.33333333333331">STATUS</th><th>Açıklama</th></tr></thead><tbody><tr><td>0</td><td>SUCCESS</td><td>Başarılı işlemdir.</td></tr><tr><td>100</td><td>ERROR</td><td>Hatalı işlemdir.</td></tr><tr><td>101</td><td>FIELD_ERROR</td><td>İstek mesajlarında gönderilen alanların hatalı olması durumunda bu mesaj dönmektedir.</td></tr><tr><td>102</td><td>AUTHENTICATION_ERROR</td><td>Kimlik doğrulama hatası.</td></tr><tr><td>103</td><td>LIMIT_ERROR</td><td>Ödeme isteklerinde limit yetersiz olduğunda bu hata mesajı dönmektedir.</td></tr><tr><td>104</td><td>COMMISSION_ERROR</td><td>Komisyon bilgilerinin tanımlanmamış olması veya eksik tanımlanmasından dolayı bu mesaj dönmektedir.</td></tr><tr><td>105</td><td>INSERT_ERROR</td><td>Veritabanı kayıt işlemlerinde karşılaşılan hatalarda bu mesaj dönmektedir.</td></tr><tr><td>999</td><td>UNKNOWN_ERROR</td><td>Beklenmeyen bir hata gerçekleşti.</td></tr></tbody></table>


---

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

```
GET https://developer.esnekpos.com/hoppa-gelistirici-ortami/android-pos-web-api/odeme-servisi.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.
