# İşlem Sorgulama Servisi

**İşlem Durum Sorgulama Servisi İstek Modeli;**

<table><thead><tr><th>Metod</th><th width="515.3333333333333">API URL</th><th>Parametreler</th></tr></thead><tbody><tr><td>POST</td><td>https://base-url/api/services/ProcessQuery</td><td>JSON File</td></tr></tbody></table>

Servise gönderilmesi gereken parametreler şu şekildedir;

<table><thead><tr><th width="214">Parametre</th><th width="94">Tip</th><th width="76">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>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. Sorgulama yapılacak ödeme işlemi, ilgili üye iş yerine ait belirtilen referans numarası ile eşleştirilerek işlem gerçekleştirilir.</td></tr></tbody></table>

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

```json
                                            
{
      "MERCHANT": "TEST1234" , 
      "MERCHANT_KEY": "4oK26hK8MOXrIV1bzTRVPA==" ,
      "ORDER_REF_NUMBER" : "0.54251300 1595848596|93" ,
}
                                        
```

**İşlem Durum Sorgulama Servisi Cevap Mesajı;**

Servisten işlem sonrasında gönderilen cevap mesajına ait parametrelerin bazıları tüm üye iş yerleri için kullanılırken, bazı parametreler sadece pazaryeri olarak sisteme tanımlı üye iş yerleri için dolu gelmektedir. Bu parametreler ve açıklamaları şu şekildedir;

İşlem Durum Sorgulama Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th width="270">Parametre</th><th width="78">Tip</th><th width="86">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>DATE</td><td>string</td><td>Evet</td><td>Sorgu işlemi için işlem tarihi bilgisidir.</td></tr><tr><td>PAYMENT_DATE</td><td>string</td><td>Evet</td><td>Ödeme işlemi için işlem tarihi bilgisidir.</td></tr><tr><td>REFNO</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait hoppa sistemi tarafından verilen referans numarası bilgisidir.</td></tr><tr><td>AMOUNT</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait işlem tutarı bilgisidir.</td></tr><tr><td>ORDER_REF_NUMBER</td><td>string</td><td>Evet</td><td>Üye iş yeri tarafından ödeme isteğinde, isteğe ait verilen referans numarası bilgisidir.</td></tr><tr><td>INSTALLMENT</td><td>string</td><td>Evet</td><td>Ödeme işlemi için istenen taksit sayısı bilgisidir. Tek çekim işlemler için “1” bilgisi dönmektedir.</td></tr><tr><td>SUCCESS_TRANSACTION_ID</td><td>int</td><td>Evet</td><td>Ödeme işlemi başarılı olduğunda bu ödeme işlemine ait TRANSACTION ID bilgisini dönmektedir.</td></tr><tr><td>TRANSACTIONS</td><td>array</td><td>Evet</td><td>Ödeme işlemine ait gerçekleşen tüm işlem hareketlerine ait hareket detaylarını içeren Json nesne dizisidir.</td></tr><tr><td>PHYSICAL_POS_ID</td><td>int</td><td>Evet</td><td>Ödeme işleminin gerçekleştiği posun benzersiz numarası..</td></tr><tr><td>PHYSICAL_POS_TITLE</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştiği posun adı.</td></tr><tr><td>PAYMENT_WAY</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleşme yöntemi.</td></tr></tbody></table>

<br>

**TRANSACTION**

<table><thead><tr><th>Parametre</th><th width="78">Tip</th><th width="82">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>TRANSACTION_ID</td><td>string</td><td>Evet</td><td>Alt işlem hareketine ait benzersiz id bilgisidir.</td></tr><tr><td>STATUS_NAME</td><td>string</td><td>Evet</td><td>Alt işlem hareketine ait durum bilgisidir.</td></tr><tr><td>AMOUNT</td><td>string</td><td>Evet</td><td>Alt işlem hareketine ait tutar bilgisidir.</td></tr><tr><td>DATE</td><td>string</td><td>Evet</td><td>Alt işlem hareketine ait tarih bilgisidir.</td></tr><tr><td>MERCHANT_AMOUNT_TRANSFER_DETAIL</td><td>string</td><td>Evet</td><td>Bu kısımda ödeme işlemine bağlı gerçekleşen alt işlem hareketindeki tutarın transfer detay bilgileri verilir.</td></tr><tr><td>SUB_MERCHANT_DETAILS</td><td>array</td><td>Evet</td><td>Bu kısım sadece pazaryeri üye iş yerleri için dolu gelecektir. Diğer üye iş yerleri için bu alandaki bilgiler "<strong>null</strong>" olarak döner. Ödeme işleminde gerçekleşen tutarın ne kadarının pazaryerine ait hangi mağazalara gönderildiği veya gönderileceği bilgisidir.</td></tr></tbody></table>

<br>

**SUB\_MERCHANT\_DETAILS**

<table><thead><tr><th>Parametre</th><th width="78">Tip</th><th width="73">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>EXTERNAL_ID</td><td>string</td><td>Evet</td><td>Mağaza(submerchant)'nın pazaryerin(merchant) sistemindeki ID bilgisidir. Bu bilgi pazaryeri tarafından atanmaktadır.</td></tr><tr><td>AMOUNT</td><td>string</td><td>Evet</td><td>Ödeme işlemindeki tutarın mağazaya gönderilecek veye gönderilen kısımıdır.</td></tr><tr><td>DATE</td><td>string</td><td>Evet</td><td>İşlemin gerçekleştirildiği tarih bilgisidir.</td></tr><tr><td>SUB_MERCHANT_AMOUNT_TRANSFER_DETAIL</td><td>string</td><td>Evet</td><td>Bu kısımda magazaya ait işlem hareketindeki tutarın transfer detay bilgileri verilir.</td></tr></tbody></table>

<br>

**MERCHANT\_AMOUNT\_TRANSFER\_DETAIL, SUB\_MERCHANT\_AMOUNT\_TRANSFER\_DETAIL**

<table><thead><tr><th>Parametre</th><th>Tip</th><th width="98">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>EXTRACT_ID</td><td>string</td><td>Evet</td><td>Alt işlem transfer numarasıdır.</td></tr><tr><td>SENDED_AMOUNT</td><td>string</td><td>Evet</td><td>Transfer edilen tutar bilgisidir.</td></tr><tr><td>SENDED_DATE</td><td>string</td><td>Evet</td><td>Transfer edilen tarih bilgisidir.</td></tr></tbody></table>

```json
                                            
{
    "STATUS": "SUCCESS",
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
    "DATE": "24.09.2020 17:08:10",
    "PAYMENT_DATE": "19.04.2020 18:34:35",
    "REFNO": null,
    "AMOUNT": "1250,00",
    "ORDER_REF_NO": "9.54251311 1595848596|999",
    "INSTALLMENT": "1",
    "COMMISSION": "1,490",
    "TRANSACTIONS": [
        {
            "TRANSACTION_ID": 343666,
            "STATUS_NAME": "Ödeme - Başarılı",
            "STATUS_ID": 3,
            "AMOUNT": "1250,00",
            "DATE": "19.04.2020 18:35:09",
            "MERCHANT_AMOUNT_TRANSFER_DETAIL": {
                "EXTRACT_ID": 5715,
                "SENDED_AMOUNT": "148,88",
                "SENDED_DATE": "4.05.2020 11:58:11"
            },
            "SUB_MERCHANT_DETAILS": [
                {
                    "EXTERNAL_ID": "999999",
                    "AMOUNT": "1073,00",
                    "DATE": "19.04.2020 18:35:09",
                    "SUB_MERCHANT_AMOUNT_TRANSFER_DETAIL": {
                        "EXTRACT_ID": 5779,
                        "SENDED_AMOUNT": "1073,00",
                        "SENDED_DATE": "4.05.2020 11:57:28"
                    }
                }
            ]
        }
    ]
}
                                        
```

İşlem durum sorgulama cevap mesajında işlem türü "**Ödeme - Başarılı"** ya da "**İade - Başarılı"** durumunda ise `STATUS` parametresinin değeri **SUCCESS** ve `RETURN_CODE` parametresinin değeri **0** olarak dönmesi işlem durum sorgulamasının başarılı olarak gerçekleştiğini ifade etmektedir.

İşlem türü **"İptal - Başarılı"** ise `STATUS` parametresinin değeri **ORDER\_CANCEL** ve `RETURN_CODE` parametresinin değeri **300** olarak dönmesi işlem durum sorgulamasının başarılı olarak gerçekleştiğini ifade etmektedir.

**Ödeme ile Ödeme Alt İşlem(Transaction) Durum Kodları ve Açıklamaları;**

Ödeme ve Ödeme Alt İşlem(Transaction)leri detaylarında dönen `STATUS_NAME` ve `STATUS_ID` açıklamalarının detayları şu şekildedir;

<table><thead><tr><th width="137">STATUS_ID</th><th width="172.33333333333331">STATUS_NAME</th><th>Açıklama</th></tr></thead><tbody><tr><td>3</td><td>Ödeme - Başarılı</td><td>Başarılı olarak gerçekleşmiş ödemelerin ve alt işlemlerin sonucuda dönen durum bilgisidir.</td></tr><tr><td>4</td><td>Ödeme - Başarısız</td><td>Başarısız olarak gerçekleşmiş ödemelerin ve alt işlemlerin sonucuda dönen durum bilgisidir.</td></tr><tr><td>5</td><td>İptal - Başarılı</td><td>Başarılı olarak gerçekleşmiş iptal ödemelerin ve alt işlemlerin sonucuda dönen durum bilgisidir.</td></tr><tr><td>6</td><td>İptal - Başarısız</td><td>Başarısız olarak gerçekleşmiş iptal ödemelerin ve alt işlemlerin sonucuda dönen durum bilgisidir.</td></tr><tr><td>7</td><td>İade - Başarılı</td><td>Başarılı olarak gerçekleşmiş iade ödemelerin ve alt işlemlerin sonucuda dönen durum bilgisidir.</td></tr><tr><td>8</td><td>İade - Başarısız</td><td>Başarısız olarak gerçekleşmiş iade ödemelerin ve alt işlemlerin sonucuda dönen durum bilgisidir.</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.esnekpos.com/hoppa-gelistirici-ortami/islem-sorgulama-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.
