# hoppa Geliştirici Ortamı


# Anasayfa

<figure><img src="/files/ttUwD7mySIlA18lbsHqJ" alt=""><figcaption></figcaption></figure>

**hoppa,** Elekse Ödeme Kuruluşu A.Ş markasıdır. Elekse olarak 2005 yılında ödeme hizmetleri sektöründe faaliyete başladık. Türkiye\`de ödeme sektörünün ciddi bir ivme ile büyümesi neticesinde ödeme faaliyet alanlarımızı geliştirip çeşitlendirdik.

2013 yılında çıkarılan 6493 sayılı kanun kapsamında Ödeme Sektörünün BDDK (Bankacılık Düzenleme ve Denetleme Üst Kurulu ) tarafından denetlenmesi ve lisanslaştırılması sürecinde 14.01.2016 tarihinde, 6662 karar numarası ile Bankacılık Düzenleme ve Denetleme Kurumundan Ödeme Faaliyet lisansımızı aldık.

2018 yılı itibari ile Türkiye de lisans genişlemesi yapan ilk firma olarak sanal pos hizmetini EsnekPos markası ile sağlamaya başladık.

Tamamen yerli yatırımdan oluşan hoppa, geliştirmiş olduğu ödeme metotları ile Türkiye de e ticarete farklı bir bakış açısı ve yeni bir soluk katmıştır.

"Siz sadece işinize bakın" sloganı ile sanal pos hizmeti sunan firmamızda tüm kredi kartlarına ve yabancı kartlara tek çekim ve taksit uygulamamız bulunmaktadır. Oranlar hususunda çok iddialı olan firmamız en iyi oran ve hizmet garantisi vererek çalışmaktadır.


# Başlangıç

#### **Base URL adresimiz : &#x20;**&#x20;[***https://posservice.esnekpos.com***](https://posservice.esnekpos.com)

**Test Base URL adresimiz : &#x20;**&#x20;[***https://posservicetest.esnekpos.com***](https://posservicetest.esnekpos.com)

***

hoppa Sanalpos API servisi, üyelik sistemi ile müşterilerinizin kredi/banka kartlarından sorunsuz ve güvenli ödeme alabilmeniz için geliştirilmiştir.

Ödeme işlemlerini gerçekleştirebilmek için üye iş yerine özel `MERCHANT` ve `MERCHANT_KEY` bilgileri kullanılır. Bu bilgiler hoppa tarafından üye iş yerine üyelik işlemleri tamamlandıktan sonra temin edilmektedir.

Üye iş yerleri kendileri ile ilgili tüm bilgilere [https://pos.esnekpos.com](https://pos.esnekpos.com/) adresinde yer alan hoppa paneli üzerinden ulaşabilir.


# Hazır Modüller

Yaygın kullanım ağına sahip e-ticaret sistemleri için ödeme işlemlerinizi gerçekleştirmeye imkan sağlayan Esnekpos hazır modüllerini indirip kolayca ödeme almaya başlayabilirsiniz.

<figure><img src="/files/BQrmhQjAY0wiRrjqIpk5" alt=""><figcaption></figcaption></figure>

OpenCart, PHP tabanlı MySQL veritabanı ile MVC olarak geliştirilmiş açık kaynaklı bir e-ticaret yönetim sistemidir. Kolay kurulumunun yanı sıra geniş tema ve eklenti desteği sayesinde en çok kullanılan e-ticaret altyapılarından birisidir. Basit bir hosting hesabı üzerinde dahi çalıştırabileceğiniz hafif bir yapıda kodlanmıştır. Esnekpos OpenCart modülleri eklentisiz opencart kurulumu üzerinden geliştirilip test edilmiştir. Kullanılan OpenCart sürümüne göre ilgili EsnekPos modülünü aşağıdan indirip kullanabilirsiniz.

#### Opencart 1.5.x

{% file src="/files/YPFjtsDCZJmqKX6ENXME" %}

#### Opencart 2.2.x

{% file src="/files/2QYTEA4tYVvhLCuKcoTA" %}

#### Opencart 2.3.x

{% file src="/files/RtmOXxxcVDUv0fT6Sf0M" %}

#### Opencart 3.0.x

{% file src="/files/AMRHciC81y7lquRhLqar" %}

<figure><img src="/files/hF72nXXue0PIyvo3HSIP" alt=""><figcaption></figcaption></figure>

WooCommerce, WordPress'in açık kaynaklı e-ticaret eklentisidir. Wordpress kullanıcıları tarafından kolaylıkla yönetilebilen WooCommerce pratik ve kullanışlı bir e-ticaret çözümü sunmaktadır. Esnekpos WooCommerce modülü eklentisiz WooCommerce kurulumu üzerinden geliştirilip test edilmiştir.

#### WooCommerce

{% file src="/files/b1LwJR0CxJhPUrNU2Ywz" %}

<figure><img src="/files/JR7O64QkM7ySmSpV96dI" alt=""><figcaption></figcaption></figure>

PrestaShop, PHP tabanlı MySQL veritabanı ile geliştirilmiş açık kaynaklı bir e-ticaret yönetim sistemidir. Kolay kurulumunun yanı sıra geniş tema ve eklenti desteği sayesinde en çok kullanılan e-ticaret altyapılarından birisidir. Basit bir hosting hesabı üzerinde dahi çalıştırabileceğiniz hafif bir yapıda kodlanmıştır. Esnekpos PrestaShop modülleri eklentisiz opencart kurulumu üzerinden geliştirilip test edilmiştir. Kullanılan PrestaShop sürümüne göre ilgili EsnekPos modülünü aşağıdan indirip kullanabilirsiniz.

#### PrestaShop 1.6.x

{% file src="/files/2rZskyDl1kZxLDAyawi8" %}

#### PrestaShop 1.7.x

{% file src="/files/QZQ7JZ3TmNGHoPANAOxE" %}


# Entegrasyon


# Test Ortamı

Test işlemleri için kullanılacak test üye iş yeri ve test kart bilgileri şu şekildedir;

Test Panel Adresi: <https://postest.esnekpos.com/>

Test ortam bilgileri elinde olan üye işyerleri bu panelden TEST işlemlerini takip edebilir ve raporlayabilir.

**Test API Base Adresi için bizimle iletişime geçiniz.**&#x20;

**Tel**: 0(212) 235 66 00&#x20;

**Mail**: <destek@esnekpos.com>

Test ortam bilgileri elinde olmayan üye iş yeri adayları aşağıdaki `MERCHANT` ve `MERCHANT_KEY` bilgileri ile test kartı bilgilerini kullanarak ödeme işlemi testi gerçekleştirebilir.

<table><thead><tr><th width="199"></th><th align="center">Test Üye İş Yeri Bilgileri</th></tr></thead><tbody><tr><td>Merchant</td><td align="center">TEST1234</td></tr><tr><td>MERCHANT_KEY</td><td align="center">4oK26hK8MOXrIV1bzTRVPA==</td></tr><tr><td></td><td align="center"></td></tr></tbody></table>

## Başarılı İşlem Yapabilen Test Kartları

* Kartlar tüm tahsilat yöntemlerini desteklemektedir,
* Son kullanma tarihi ve cvv bilgileri herhangi bir bilgi ile doldurulabilir,
* Kartlar tüm para birimlerini desteklemektedir,
* Kartlar taksitli tahsilat desteklemektedir,

<table><thead><tr><th width="209">Kart Numarası</th><th>Kart Bankası</th><th>Kart Tipi</th><th>Kart Ailesi</th><th>Kart Kuruluşu</th></tr></thead><tbody><tr><td>9792100000000001</td><td>Türkiye Halk Bankası</td><td>Credit</td><td>Paraf</td><td>Troy</td></tr><tr><td>9792380000000009</td><td>Türkiye Halk Bankası</td><td>Debit</td><td></td><td>Troy</td></tr><tr><td>6587619825149656</td><td>Troy Global</td><td>Credit</td><td></td><td>Troy</td></tr><tr><td>6504576578126549</td><td>Troy Global</td><td>Prepaid</td><td></td><td>Troy</td></tr><tr><td>6508475496125681</td><td>Troy Global</td><td>Debit</td><td></td><td>Troy</td></tr></tbody></table>

## Hata Üretebilen Test Kartları

| Kart Numarası    | Hata Kodu | Hata Açıklaması      | Direct/Normal Ödeme | 3D Pay Başlatma | 3D Pay Tamamlama | 3D Model Başlatma | 3D Model Doğrulama | 3D Model Tamamlama |
| ---------------- | --------- | -------------------- | ------------------- | --------------- | ---------------- | ----------------- | ------------------ | ------------------ |
| 5100050000006661 | 51        | Kart Limiti Yetersiz | X                   |                 | X                |                   |                    | X                  |
| 5100560000006669 | 05        | İşlem Onaylanmadı    | X                   |                 | X                |                   |                    | X                  |
| 5101380000006661 | 12        | Geçersiz işlem       | X                   |                 | X                |                   |                    | X                  |
| 5115830000006669 | 51        | Kart limiti yetersiz | X                   |                 | X                |                   | X                  | X                  |
| 5117580000006668 | 51        | Kart limiti yetersiz | X                   | X               | X                | X                 | X                  | X                  |

## BKM Test Bilgileri

<table><thead><tr><th width="200"></th><th align="center">BKM Express Test Hesap Bilgileri</th></tr></thead><tbody><tr><td>Kullanıcı Adı</td><td align="center">isyeri@bkm.com</td></tr><tr><td>Şifre</td><td align="center">147258</td></tr><tr><td>Doğrulama Kodu</td><td align="center">123456</td></tr></tbody></table>


# Gerçek(Prod) Ortam

Test işlemlerini başarılı bir şekilde tamamlayan üye iş yerleri için gerçek ortam bilgileri şu şekildedir;

Panel Adresi: [https://pos.esnekpos.com](https://pos.esnekpos.com/)

Gerçek ortam bilgileri elinde olan üye işyerleri bu panelden işlemlerini takip edebilir ve raporlayabilir.

**Test API Base adresi için bizimle iletişime geçiniz.**&#x20;

**Tel**: 0(212) 235 66 00&#x20;

**Mail**: <destek@esnekpos.com>

Gerçek ortam bilgileri elinde olan üye iş yerleri kendi `MERCHANT` ve `MERCHANT_KEY` bilgileri ile gerçek kart bilgilerini kullanarak ödeme işlemlerini gerçekleştirebilir.

İşlem sonunda üye iş yerinin belirttiği geri dönüş sayfasına verilerin eksiksiz ve doğru bir şekilde geldiğinden emin olunmalıdır. Sonrasında sistemden dönecek **hata kod** ve **mesajlarına** göre işlem sonucundaki senaryolar ve yazılım geliştirmeleri üye işyeri tarafından gerçekleştirilir.


# Ödeme Servisleri


# Ödeme Yöntemleri

hoppa ödeme sistemi üzerinden farklı yöntemler ile ödeme işlemleri gerçekleştirilebilmektedir. Ödeme yöntemleri şu şekildedir;

**3D ödeme modeli**: Modelde kullanıcı form bilgileri ve ödeme kart bilgileri üye iş yeri tarafından alınıp hoppa 3D ödeme servisine gönderilir. Kullanıcı ile hoppa sistemi arasında 3D ödeme işlemi gerçekleştirildikten sonra ödeme sonuç bilgileri üye iş yerinin belirmiş olduğu URL adresine FORM POST metodu ile döndürülür.

**Ortak Ödeme Sayfası Modeli**: Kullanıcı form bilgileri, ödeme kart bilgileri ve taksit bilgileri olmaksızın üye işyeri tarafından alınıp hoppa ortak ödeme sayfası servisine gönderilir. Kullanıcı hoppa ortak ödeme sayfası üzerinden kart bilgilerini ve taksit seçeneğini girerek ödemesini gerçekleştirdikten sonra ödeme sonuç bilgileri üye iş yerinin belirtmiş olduğu URL adresine FORM POST metodu ile döndürülür.

3D ödeme modeli ile ortak ödeme sayfası modeli arasındaki tek fark kullanıcı kart bilgilerinin ve taksitlendirme seçeneklerinin üye iş yeri tarafından alınıp alınmamasıdır.

**BKM Express**: BKM Express hesapları üzerinden ödeme işlemleri yapılmasına imkan sağlayan ödeme modelidir. BKM Express ile iki farklı şekilde ödeme alınabilmektedir. Birinci yöntemde, ortak ödeme sayfası modeline göre entegrasyon yapıldıysa ortak ödeme sayfasında BKM Express ile ödeme seçeneği gelmektedir. İkinci yöntemde ise BKM Express ile ödeme servisimizi kullanarak kendi entegrasyonunuzu yaparak ödeme alınabilir.


# 3D Ödeme

{% hint style="danger" %}

* <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)<mark style="color:red;">methodunun görünmemesi ve takip edilememesi gerekmektedir.</mark>
* <mark style="color:red;">Ödeme durumundan emin olmak için</mark> [<mark style="color:red;">PROCCESS\_QUERY</mark>](/hoppa-gelistirici-ortami/islem-sorgulama-servisi) <mark style="color:red;">methodu ile sorgulama yapmanız ve</mark> [<mark style="color:red;">PROCCESS\_QUERY</mark>](/hoppa-gelistirici-ortami/islem-sorgulama-servisi) <mark style="color:red;">methodunun cevabını dikkate almanız 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 %}

**3D Ödeme Servisi İstek Modeli;**

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

**3D Ödeme Servisi İşlem Akışı;**

3D ödeme modelini kullanarak 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.

**1. Adım:**

Üye işyeri kullanıcı, kart, sepet, ödeme tutar ve taksit bilgilerini, ödemenin sonucunun bildirilmesini istediği kendi web adresi(BACK\_URL) bilgisi ile birlikte hoppa 3D ödeme servisine yukarıda belirtilmiş olan istek modelini kullanarak ödeme isteğini gönderir ve ödeme işlemini başlatmış olur.

Güvenli ve sorunsuz bir şekilde işlemlerin gerçekleşebilmesi ve fraud işlemlerin önlenebilmesi için tüm parametrelerin eksiksiz bir şekilde gönderilmesi gerekmektedir.

Servise gönderilmesi gereken parametreler şu şekildedir;

\
3D Ödeme Servisi İstek Mesajı Parametreleri

<table><thead><tr><th width="254">Parametre</th><th width="98">Tip</th><th width="88">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 form 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>CC_NUMBER</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 16 haneli kart numarası bilgisidir.</td></tr><tr><td>EXP_MONTH</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 2 haneli son kullanım tarihini ay bilgisidir.</td></tr><tr><td>EXP_YEAR</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 4 haneli son kullanım tarihini yıl bilgisidir.</td></tr><tr><td>CC_CVV</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği kartın arka yüzünde bulunan 3 haneli güvenlik kodu bilgisidir.</td></tr><tr><td>CC_OWNER</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği kart sahibinin ad ve soyadı bilgisidir.</td></tr><tr><td>INSTALLMENT_NUMBER</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 gönderilmelidir.</td></tr><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><tr><td>CLIENT_IP</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) IP adres bilgisidir.</td></tr></tbody></table>

<br>

**Product**

<table><thead><tr><th width="260">Parametre</th><th width="117">Tip</th><th width="74">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"
     },
     "CreditCard" : {
         "CC_NUMBER" : "4159562885391991",
         "EXP_MONTH" : "12",
         "EXP_YEAR" : "2023",
         "CC_CVV" : "000",
         "CC_OWNER" : "TEST USER",
         "INSTALLMENT_NUMBER" : "1"
     },
     "Customer" : {
         "FIRST_NAME" : "Firstname",
         "LAST_NAME" : "Lastname",
         "MAIL" : "destek@esnekpos.com",
         "PHONE" : "05435434343",
         "CITY" : "Müşteri il",
         "STATE" : "Müşteri ilçe",
         "ADDRESS" : "Müşteri Adres",
         "CLIENT_IP" : "Müşteri IP"
     },
     "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ı 1",
             "PRODUCT_CATEGORY" : "Ev Tekstili",
             "PRODUCT_DESCRIPTION" : "Ürün Açıklaması",
             "PRODUCT_AMOUNT" : "70"
         }
     ]
}
                                        
```

**2. Adım:**

hoppa bilgileri değerlendirerek üye iş yerine cevap mesajını gönderir.(Cevap mesajı içerisinde URL\_3DS alanı bulunur.)

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

\
3D Ödeme Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th>Parametre</th><th width="94">Tip</th><th width="81">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><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>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>RETURN_MESSAGE_TR</td><td>string</td><td>Evet</td><td>Ödeme işlemi sonucu durum mesajı için Türkçe açıklama bilgisidir.</td></tr><tr><td>ERROR_CODE</td><td>string</td><td>Evet</td><td>Başarısız ödeme işlemi sonucu hata kod bilgisidir. Banka hata kodları da bu parametre içerisinde dönüş yapılır.</td></tr><tr><td>DATE</td><td>string</td><td>Evet</td><td>Ödeme işlemi için işlem tarihi bilgisidir.</td></tr><tr><td>URL_3DS</td><td>string</td><td>Evet</td><td>Üye iş yerinin kullanıcıyı yönlendireceği 3D Doğrulama Sayfası URL Adresi</td></tr><tr><td>REFNO</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait hoppa sistemi tarafından verilen referans numarası bilgisi</td></tr><tr><td>HASH</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait hoppa sistemi tarafından oluşturulan hash bilgisi</td></tr><tr><td>CUSTOMER_NAME</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) ad soyad bilgisidir.</td></tr><tr><td>CUSTOMER_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>CUSTOMER_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>CUSTOMER_ADDRESS</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) adres bilgisidir.</td></tr><tr><td>CUSTOMER_CC_NUMBER</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 16 haneli kart numarası bilgisidir. Kart bilgisi şifrelenmiş şekilde paylaşılır.</td></tr><tr><td>CUSTOMER_CC_NAME</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği kart sahibinin ad ve soyadı bilgisidir.</td></tr><tr><td>IS_NOT_3D_PAYMENT</td><td>boolean</td><td>Evet</td><td>Ödeme işleminin 3D gerçekleşip gerçekleşmediği bilgisidir.</td></tr><tr><td>VIRTUAL_POS_VALUES</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait sanalpos açıklamaları bilgisidir.</td></tr><tr><td>RETURN_MESSAGE_3D</td><td>string</td><td>Evet</td><td>Bankadan alınan 3D ödeme işlemine ait cevap mesajı bilgisidir.</td></tr><tr><td>BANK_AUTH_CODE</td><td>string</td><td>Evet</td><td>Bankadan alınan 3D ödeme işlemine ait provizyon bilgisidir.</td></tr></tbody></table>

```json
                                            
{
     "ORDER_REF_NUMBER": "RFN0001",
     "STATUS": "SUCCESS",
     "RETURN_CODE": "0",
     "RETURN_MESSAGE": "SUCCESS",
     "RETURN_MESSAGE_TR": null,
     "ERROR_CODE": null,
     "DATE": "27.07.2020 16:07:08",
     "URL_3DS": "http://posservicetest.esnekpos.com/api/pay/3DSecurity/order/12d2cd918afd2413116d25c2470d6d24924b44e9c440c18aed32922eddff6c40",
     "REFNO": "150840",
     "HASH": "12d2cd918afd2413116d25c2470d6d24924b44e9c440c18aed32922eddff6c40",
     "COMMISSION_RATE": "1,490",
     "CUSTOMER_NAME": "Firstname Lastname",
     "CUSTOMER_MAIL": "destek@esnekpos.com",
     "CUSTOMER_PHONE": "05435434343",
     "CUSTOMER_ADDRESS": "Müşteri Adres",
     "CUSTOMER_CC_NUMBER": "415956******1991",
     "CUSTOMER_CC_NAME": null,
     "IS_NOT_3D_PAYMENT": false,
     "VIRTUAL_POS_VALUES": null,
     "RETURN_MESSAGE_3D": null,
     "BANK_AUTH_CODE": ""
}
                                        
```

3D Ödeme işlem cevap mesajında `STATUS` parametresinin değeri SUCCESS ve `RETURN_CODE` parametresinin değeri 0 olarak dönmesi 3D Ödeme işleminin kabul edildiğini ifade etmektedir. Bundan sonraki aşamada ödeme alınacak kullanıcıdan 3D doğrulama işlemi yapılacaktır.

**3. 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.

**4. Adım:**

hoppa 3D doğrulama işlemlerini sonuçlandırır, ödemenin sonucunu üye işyerinin 1. adımda bildirmiş olduğu BACK\_URL adresine FORM POST metodu ile bildirir.

```html
<html xmlns=\"http://www.w3.org/1999/xhtml\" >
    <head><meta http-equiv=\"Content-Type\" content=\"text/html;charset=iso-8859-9\" /></head>
    <body onload='document.forms[0].submit()'>
        <form action='" + payment.DEALER_RESPONSE_URL + "' method='post'>
            <input type='hidden' name='DATE' value='{0}'>
            <input type='hidden' name='HASH' value='{0}'>
            <input type='hidden' name='ORDER_REF_NUMBER' value='{0}'>
            <input type='hidden' name='REFNO' value='{0}'>
            <input type='hidden' name='RETURN_CODE' value='{0}'>
            <input type='hidden' name='RETURN_MESSAGE' value='{0}'>
            <input type='hidden' name='RETURN_MESSAGE_TR' value='{0}'>
            <input type='hidden' name='STATUS' value='{0}'>
            <input type='hidden' name='ERROR_CODE' value='{0}'>
            <input type='hidden' name='CUSTOMER_NAME' value='{0}'>
            <input type='hidden' name='CUSTOMER_MAIL' value='{0}'>
            <input type='hidden' name='CUSTOMER_PHONE' value='{0}'>
            <input type='hidden' name='CUSTOMER_ADDRESS' value='{0}'>
            <input type='hidden' name='CUSTOMER_CC_NUMBER' value='{0}'>
            <input type='hidden' name='CUSTOMER_CC_NAME' value='{0}'>
            <input type='hidden' name='COMMISSION' value='{0}'>
            <input type='hidden' name='COMMISSION_RATE' value='{0}'>
            <input type='hidden' name='AMOUNT' value='{0}'>
            <input type='hidden' name='INSTALLMENT' value='{0}'>
            <input type='hidden' name='BANK_AUTH_CODE' value='{0}'>
    </form>
    </body>
</html>
```

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


# Ortak Ödeme Sayfası

{% 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)<mark style="color:red;">methodu ile sorgulama yapmanız ve</mark> [<mark style="color:red;">PROCCESS\_QUERY</mark> ](/hoppa-gelistirici-ortami/islem-sorgulama-servisi)<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)<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 %}

**Ortak Ödeme Sayfası Servisi İstek Modeli;**

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

**Ortak Ödeme Sayfası Servisi İşlem Akışı;**

Ortak ödeme sayfası modelini kullanarak 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.

**1. Adım:**

Üye işyeri kullanıcı, sepet, ödeme tutar bilgilerini ödemenin sonucunun bildirilmesini istediği kendi web adresi(BACK\_URL) bilgisi ile birlikte hoppa güvenli ödeme sayfası servisine yukarıda belirtilmiş olan istek modelini kullanarak ödeme isteğini gönderir ve ödeme işlemini başlatmış olur.

Güvenli ve sorunsuz bir şekilde işlemlerin gerçekleşebilmesi ve fraud işlemlerin önlenebilmesi için tüm parametrelerin eksiksiz bir şekilde gönderilmesi gerekmektedir.

Servise gönderilmesi gereken parametreler şu şekildedir;

\
Ortak Ödeme Sayfası Servisi İstek Mesajı Parametreleri

<table><thead><tr><th width="252">Parametre</th><th width="86">Tip</th><th width="78">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 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>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>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 form post olarak gönderilir.</td></tr><tr><td>LOCALE</td><td>string</td><td>Evet</td><td>Ödeme sayfasının dil seçenek bilgisidir. Türkçe için "tr", İngilizce için "en" olarak gönderilmelidir.</td></tr><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>Parametre</th><th width="101">Tip</th><th width="88">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==",
        "ORDER_REF_NUMBER" : "RFN0003",
        "ORDER_AMOUNT" : "150",
        "PRICES_CURRENCY" : "TRY",
        "BACK_URL" : "İşlem sonucunda sizin belirleyeceğiniz dönüş url adresi",
        "LOCALE" : "tr"
    },
    "Customer" : {
         "FIRST_NAME" : "Firstname",
         "LAST_NAME" : "Lastname",
         "MAIL" : "destek@esnekpos.com",
         "PHONE" : "05435434343",
         "CITY" : "Müşteri il",
         "STATE" : "Müşteri ilçe",
         "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ı 1",
             "PRODUCT_CATEGORY" : "Ev Tekstili",
             "PRODUCT_DESCRIPTION" : "Ürün Açıklaması",
             "PRODUCT_AMOUNT" : "70"
         }
     ]
 }
                                        
```

**2. Adım:**

hoppa bilgileri değerlendirerek üye iş yerine cevap mesajını gönderir.(Cevap mesajı içerisinde URL\_3DS alanı bulunur.)

Güvenli Ödeme Sayfası Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th width="253">Parametre</th><th width="87">Tip</th><th width="85">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><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>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>RETURN_MESSAGE_TR</td><td>string</td><td>Evet</td><td>Ödeme işlemi sonucu durum mesajı için Türkçe açıklama bilgisidir.</td></tr><tr><td>ERROR_CODE</td><td>string</td><td>Evet</td><td>Başarısız ödeme işlemi sonucu hata kod bilgisidir. Banka hata kodları da bu parametre içerisinde dönüş yapılır.</td></tr><tr><td>DATE</td><td>string</td><td>Evet</td><td>Ödeme işlemi için işlem tarihi bilgisidir.</td></tr><tr><td>URL_3DS</td><td>string</td><td>Evet</td><td>Üye iş yerinin kullanıcıyı yönlendireceği 3D Doğrulama Sayfası URL Adresi</td></tr><tr><td>REFNO</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait hoppa sistemi tarafından verilen referans numarası bilgisi</td></tr><tr><td>HASH</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait hoppa sistemi tarafından oluşturulan hash bilgisi</td></tr><tr><td>CUSTOMER_NAME</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) ad soyad bilgisidir.</td></tr><tr><td>CUSTOMER_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>CUSTOMER_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>CUSTOMER_ADDRESS</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) adres bilgisidir.</td></tr><tr><td>CUSTOMER_CC_NUMBER</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 16 haneli kart numarası bilgisidir. Kart bilgisi şifrelenmiş şekilde paylaşılır.</td></tr><tr><td>CUSTOMER_CC_NAME</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği kart sahibinin ad ve soyadı bilgisidir.</td></tr><tr><td>IS_NOT_3D_PAYMENT</td><td>boolean</td><td>Evet</td><td>Ödeme işleminin 3D gerçekleşip gerçekleşmediği bilgisidir.</td></tr><tr><td>VIRTUAL_POS_VALUES</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait sanalpos açıklamaları bilgisidir.</td></tr><tr><td>RETURN_MESSAGE_3D</td><td>string</td><td>Evet</td><td>Bankadan alınan 3D ödeme işlemine ait cevap mesajı bilgisidir.</td></tr></tbody></table>

Güvenli Ödeme Sayfası Servisi Cevap Mesajı Parametreleri

```json
                                            
{
    "ORDER_REF_NUMBER": "RFN0003",
    "STATUS": "SUCCESS",
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
    "RETURN_MESSAGE_TR": null,
    "ERROR_CODE": null,
    "DATE": "21.10.2020 09:32:32",
    "URL_3DS": "http://pos.esnekpos.com/Pages/CommonPayment.aspx?hash=9f9bde8bafc7389395aa24f47e58905d1063cd77268b791dbc0bcf87a01c2148",
    "REFNO": "25057",
    "HASH": "9f9bde8bafc7389395aa24f47e58905d1063cd77268b791dbc0bcf87a01c2148",
    "CUSTOMER_NAME": null,
    "CUSTOMER_MAIL": null,
    "CUSTOMER_PHONE": null,
    "CUSTOMER_ADDRESS": null,
    "CUSTOMER_CC_NUMBER": null,
    "CUSTOMER_CC_NAME": null,
    "IS_NOT_3D_PAYMENT": false,
    "VIRTUAL_POS_VALUES": null,
    "RETURN_MESSAGE_3D": null
}
                                        
```

Ortak Ödeme Sayfası işlem cevap mesajında `STATUS` parametresinin değeri SUCCESS ve `RETURN_CODE` parametresinin değeri 0 olarak dönmesi Ortak Ödeme Sayfası işleminin kabul edildiğini ifade etmektedir. Bundan sonraki aşamada ödeme yapacak kullanıcıdan kart bilgileri ve taksit bilgileri alınarak ödeme yapılacaktır.

**3. 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.

<figure><img src="https://developer.esnekpos.com/Content/classic/demos/default/assets/demo/media/img/ortak-odeme-sayfasi.png" alt=""><figcaption></figcaption></figure>

**4. Adım:**

hoppa kullanıcıdan kredi kartı bilgilerini ve taksit bilgilerini kendi sunucularında kendi güvenlik önlemlerini kullanarak alır ve ödeme sürecini ilerletir.

***

Tahsilat başlatılmadan önce işyeri limiti, kart bilgileri gibi ön kontroller yapılır.\
Bu kontrollerden herhangi biri başarısız olursa tahsilat işlemi başlatılmaz.\
Bu durumda, başarısızlık sonucu üye işyerinin 1. adımda ilettiği **BACK\_URL** adresine **Form POST** metodu ile bildirilir.

```html
<html xmlns=\"http://www.w3.org/1999/xhtml\">
    <head>
        <meta http-equiv=\"Content-Type\" content=\"text/html;charset=iso-8859-9\" />
    </head>
    <body onload='document.forms[0].submit()'>
        <form method='post' action='{0}'>
            <input type='hidden' name='DATE' value='{0}' />
            <input type='hidden' name='ORDER_REF_NUMBER' value='{0}' />
            <input type='hidden' name='RETURN_CODE' value='{0}' />
            <input type='hidden' name='RETURN_MESSAGE' value='{0}' />
            <input type='hidden' name='STATUS' value='{0}' />
        </form>
    </body>
</html>
```

<figure><img src="https://developer.esnekpos.com/Content/classic/demos/default/assets/demo/media/img/ortak-odeme-sayfasi.png" alt=""><figcaption></figcaption></figure>

**5. Adım:**

hoppa 3D doğrulama işlemlerini sonuçlandırır, ödemenin sonucunu üye işyerinin 1. adımda bildirmiş olduğu BACK\_URL adresine FORM POST metodu ile bildirir.

* [HTML](https://developer.esnekpos.com/Home/ortakodemesayfasi#m_tabs_1_1)

```html
 <html xmlns=\"http://www.w3.org/1999/xhtml\" >
    <head><meta http-equiv=\"Content-Type\" content=\"text/html;charset=iso-8859-9\" /></head>
    <body onload='document.forms[0].submit()'>
        <form action='" + payment.DEALER_RESPONSE_URL + "' method='post'>
            <input type='hidden' name='DATE' value='{0}'>
            <input type='hidden' name='HASH' value='{0}'>
            <input type='hidden' name='ORDER_REF_NUMBER' value='{0}'>
            <input type='hidden' name='REFNO' value='{0}'>
            <input type='hidden' name='RETURN_CODE' value='{0}'>
            <input type='hidden' name='RETURN_MESSAGE' value='{0}'>
            <input type='hidden' name='RETURN_MESSAGE_TR' value='{0}'>
            <input type='hidden' name='STATUS' value='{0}'>
            <input type='hidden' name='ERROR_CODE' value='{0}'>
            <input type='hidden' name='CUSTOMER_NAME' value='{0}'>
            <input type='hidden' name='CUSTOMER_MAIL' value='{0}'>
            <input type='hidden' name='CUSTOMER_PHONE' value='{0}'>
            <input type='hidden' name='CUSTOMER_ADDRESS' value='{0}'>
            <input type='hidden' name='CUSTOMER_CC_NUMBER' value='{0}'>
            <input type='hidden' name='CUSTOMER_CC_NAME' value='{0}'>
            <input type='hidden' name='COMMISSION' value='{0}'>
            <input type='hidden' name='AMOUNT' value='{0}'>
            <input type='hidden' name='INSTALLMENT' value='{0}'>
    </form>
    </body>
</html>
                                                
```

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


# Ödeme İsteği Servisi

Ödeme İsteği Gönderimi


# Ödeme İsteği Gönderimi

Ödeme İsteği Gönderimi

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

Servise gönderilmesi gereken parametreler şu şekildedir;

\
Ödeme İsteği Gönderimi Servisi İstek Mesajı Parametreleri

<table><thead><tr><th width="229">Parametre</th><th width="92">Tip</th><th width="77">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>AMOUNT</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait işlem tutarı bilgisidir.</td></tr><tr><td>INSTALLMENT</td><td>int</td><td>Evet</td><td>Taksit sayısı bilgisidir.</td></tr><tr><td>PHONE_NUMBER</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) telefon 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>TYPE</td><td>int</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcıya(müşteriye) Sms gönderilmesi için 1, Mail gönderilmesi için 2, Yanlızca link üretmek için 3 olarak gönderilmelidir.</td></tr><tr><td>LOCALE</td><td>string</td><td>Evet</td><td>Ödeme sayfasının dil seçenek bilgisidir. Türkçe için "tr", İngilizce için "en" olarak gönderilmelidir.</td></tr><tr><td>IS_TOTAL_AMOUNT</td><td>string</td><td>Evet</td><td>Karttan Çekilecek Tutar olup olmadığı bilgisidir.</td></tr><tr><td>PRODUCT</td><td>string</td><td>Evet</td><td>Ürünün ad bilgisidir.</td></tr></tbody></table>

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

```json
{
    "MERCHANT": "TEST1234", 
    "MERCHANT_KEY": "4oK26hK8MOXrIV1bzTRVPA==", 
    "AMOUNT" : "10,56", 
    "INSTALLMENT" : 0, // Taksit Limiti Bilgisi, 0 Yollanması Durumunda Limit Uygulanmaz 
    "PHONE_NUMBER": "5554443322", 
    "MAIL": "test@mail.com", 
    "TYPE" : 1, // 1 : SMS GÖnder , 2 : Mail Gönder , 3 : Yalnızca Link Üret 
    "LOCALE": "tr", // "tr" , "en" 
    "IS_TOTAL_AMOUNT" : true, // false : Hesaba Yatacak Tutar , true : Karttan Çekilecek Tutar 
    "PRODUCT" : "Test Ürün" 
}
```

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

Ödeme İsteği Gönderimi Servisi örnek bir JSON Response dosyası şu sekildedir;

```json
{
    "RETURN_CODE": "0", 
    "RETURN_MESSAGE": "Ödeme İsteği Başarıyla Gönderildi", 
    "STATUS": "SUCCESS", 
    "URL": "http://localhost:55826/Pages/PayLinkNew.aspx?hash=R428ZEXADN", 
    "SendPaymentRequestId": "2482" 
}
```


# Ödeme İsteği Durum Sorgulama

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

Servise gönderilmesi gereken parametreler şu şekildedir;

\
Ödeme İsteği Gönderimi Servisi İstek Mesajı Parametreleri

<table><thead><tr><th width="277">Parametre</th><th width="92">Tip</th><th width="77">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>SEND_PAYMENT_REQUEST_ID</td><td>string</td><td>Evet</td><td>Üye işyerinin oluşturmuş olduğu ödeme isteği sonucu dönmüş olduğumuz "SendPaymentRequestId" parametre bilgisidir.</td></tr></tbody></table>

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

```json
{ 
    "MERCHANT": "TEST1234", 
    "MERCHANT_KEY": "4oK26hK8MOXrIV1bzTRVPA==", 
    "SEND_PAYMENT_REQUEST_ID": 2482 
} 
```

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

Ödeme İsteği Gönderimi Servisi örnek bir JSON Response dosyası şu sekildedir;

```json
{ 
    "PAYMENTS": [ 
        { 
            "REFNO": "203761", 
            "PAYMENT_STATUS": "Ödeme - Başarısız", 
            "DATE": "17.10.2024 16:20:27", 
            "PAYMENT_DATE": "17.10.2024 16:18:11", 
            "AMOUNT": "10,56", 
            "ORDER_REF_NO": "37b86fc4-adf6-49db-815e-a80cff9d3dc8", 
            "INSTALLMENT": "1", 
            "COMMISSION": 0.16, 
            "COMMISSION_RATE": "1,490", 
            "SUCCESS_TRANSACTION_ID": null 
        }, 
        { 
            "REFNO": "203762", 
            "PAYMENT_STATUS": "Ödeme - Başarılı", 
            "DATE": "17.10.2024 16:20:27", 
            "PAYMENT_DATE": "17.10.2024 16:20:06", 
            "AMOUNT": "10,56", 
            "ORDER_REF_NO": "1ff755d2-8b74-4317-a721-295947d0fb5b", 
            "INSTALLMENT": "1", 
            "COMMISSION": 0.16, 
            "COMMISSION_RATE": "1,490", 
            "SUCCESS_TRANSACTION_ID": 538224 
        } 
    ], 
    "RETURN_CODE": "0", 
    "RETURN_MESSAGE": "SUCCESS", 
    "STATUS": "SUCCESS" 
} 
```


# Tekrarlı Ödeme Servisi


# Ödeme Alma Servisi

**Ödeme Alma Servisi**

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

Servise gönderilmesi gereken parametreler şu şekildedir;

\
Ödeme Alma Servisi İstek Mesajı Parametreleri

<table><thead><tr><th width="229">Parametre</th><th width="92">Tip</th><th width="77">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 formatında POST edilerek 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>REPEAT</td><td>int</td><td>Evet</td><td>Tekrar sayısı.</td></tr><tr><td>TRIES_COUNT</td><td>string</td><td>Evet</td><td>Tekrarı deneme sayısı.</td></tr><tr><td>START_DATE</td><td>string</td><td>Evet</td><td>Tekrarlı ödemenin başlangıç tarihi</td></tr></tbody></table>

<br>

**CARDS**

<table><thead><tr><th width="185">Parametre</th><th width="80">Tip</th><th width="85">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>CC_NUMBER</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 16 haneli kart numarası bilgisidir.</td></tr><tr><td>EXP_MONTH</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 2 haneli son kullanım tarihini ay bilgisidir.</td></tr><tr><td>EXP_YEAR</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 4 haneli son kullanım tarihini yıl bilgisidir.</td></tr><tr><td>CC_CVV</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği kartın arka yüzünde bulunan 3 haneli güvenlik kodu bilgisidir.</td></tr><tr><td>CC_OWNER</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği kart sahibinin ad ve soyadı bilgisidir.</td></tr></tbody></table>

<br>

**CUSTOMER**

<table><thead><tr><th width="158">Parametre</th><th width="92">Tip</th><th width="87">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><tr><td>CLIENT_IP</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) IP adres bilgisidir.</td></tr></tbody></table>

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

<pre class="language-json"><code class="lang-json">                                            
{
<strong>    "Config" : {
</strong>        "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":"ORDER_REF_NUMBER",
        "ORDER_AMOUNT":"100.00",
        "REPEAT": 5,
        "TRIES_COUNT": 3,
        "START_DATE": "2022-09-06"
    },
    "Cards" : [
        {
        "CC_NUMBER":"4531444531442283",
        "EXP_MONTH":"12",
        "EXP_YEAR":"2026",
        "CC_CVV":"111",
        "CC_OWNER":"TEST USER"
        },
        {
        "CC_NUMBER":"4531444531442283",
        "EXP_MONTH":"12",
        "EXP_YEAR":"2026",
        "CC_CVV":"111",
        "CC_OWNER":"TEST USER"
        }
    ],
    "Customer" : {
        "FIRST_NAME":"Firstname",
        "LAST_NAME":"Lastname",
        "MAIL":"test@test.com",
        "PHONE":"1122356600",
        "CITY":"Müşteri il",
        "STATE":"Müşteri ilçe",
        "ADDRESS":"Müşteri Adres",
        "CLIENT_IP":"Müşteri IP"
    }
}

                                            
                                        
</code></pre>

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

Ödeme Alma Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th width="211">Parametre</th><th width="86">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>Durum bilgisidir.</td></tr><tr><td>RETURN_CODE</td><td>string</td><td>Evet</td><td>Bakiye sorgulama işlemi sonucu durumu kod bilgisidir.</td></tr><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>Bakiye sorgulama işlemi sonucu durum mesaj bilgisidir.</td></tr></tbody></table>

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

Ödeme Alma servisi cevap mesajında `STATUS` parametresinin değeri **SUCCESS** ve `RETURN_CODE` parametresinin değeri **0** olarak dönmesi Ödeme Alma servisinin başarılı olarak gerçekleştiğini ifade etmektedir.

**İşlem Sonucu Bildirimi**

Ödemeye ait her tekrarın sonucu ödeme alma servisi istek mesajı parametreleri arasında yer alan BACK\_URL adresine aşağıdaki değerler ile JSON formatında POST edilerek bildirilir.

```json
                                            
{
  "RETURN_CODE": "0",
  "RETURN_MESSAGE": "",
  "ORDER_REF_NUMBER": "212",
  "REPEAT_NUMBER": "1",
  "REPEAT_ORDER_REF_NUMBER": "e4dbfa5e-f0f4-45df-9c43-72ecade89f47507161",
}
```


# Tekrar İptal Etme Servisi

**Tekrar İptal Etme Servisi**

Tekrar İptal Etme Servisi İstek Modeli.

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

Servise gönderilmesi gereken parametreler şu şekildedir;

\
Tekrar İptal Etme Servisi İstek Mesajı Parametreleri

<table><thead><tr><th width="227">Parametre</th><th width="91">Tip</th><th width="83">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>İşlem sorgulama/listeleme servisinden gelen tekrara ait referans numarası bilgisidir.</td></tr></tbody></table>

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

```json
                                            
                                        
{
    "MERCHANT": "TEST1234", 
    "MERCHANT_KEY": "4oK26hK8MOXrIV1bzTRVPA==",
    "ORDER_REF_NUMBER":"23",
}

                                            
                                        
```

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

\
Tekrar İptal Etme Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th width="210">Parametre</th><th width="89">Tip</th><th width="79">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>RETURN_CODE</td><td>string</td><td>Evet</td><td>İptal işlemi sonucu durumu kod bilgisidir.</td></tr><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>İptal işlemi sonucu durum mesaj bilgisidir.</td></tr></tbody></table>

```json
                                            
                                        
{
    "RETURN_CODE":"0",
    "RETURN_MESSAGE":"SUCCESS",
}
                                            
                                        
```

Tekrar İptal Etme servisi cevap mesajında `RETURN_CODE` parametresinin değeri **0** olarak dönmesi tekrar iptal etme servisinin başarılı olarak gerçekleştiğini ifade etmektedir.


# İşlem Listeleme Servisi

**İşlem Listeleme Servisi İstek Modeli;**

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

Servise gönderilmesi gereken parametreler şu şekildedir;

\
İşlem Listeleme Servisi İstek Mesajı Parametreleri

<table><thead><tr><th width="184">Parametre</th><th width="86">Tip</th><th width="86">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>START_DATE</td><td>string</td><td>Evet</td><td>Sorgu için başlangıç tarih bilgisidir.</td></tr><tr><td>END_DATE</td><td>string</td><td>Evet</td><td>Sorgu için bitiş tarih bilgisidir.</td></tr></tbody></table>

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

```json
                                            
{
    "MERCHANT": "TEST1234", 
    "MERCHANT_KEY": "4oK26hK8MOXrIV1bzTRVPA==",
    "START_DATE" : "01-12-2021",
    "END_DATE" : "05-07-2022"
}
                                        
```

**İşlem Listeleme Servisi Cevap Mesajı;**

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

\
İşlem Listeleme Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th width="238">Parametre</th><th width="81">Tip</th><th width="73">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>RETURN_CODE</td><td>string</td><td>Evet</td><td>Tekrarlı ödeme listeleme işlemi sonucu durumu kod bilgisidir.</td></tr><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>Tekrarlı ödeme listeleme işlemi sonucu durum mesaj bilgisidir.</td></tr><tr><td>STATUS</td><td>string</td><td>Evet</td><td>Tekrarlı ödeme listeleme işlemi sonucu durum mesaj bilgisidir.</td></tr><tr><td>RECURRING_PAYMENTS</td><td>array</td><td>Evet</td><td></td></tr></tbody></table>

<br>

**RECURRING\_PAYMENTS**

<table><thead><tr><th width="213">Parametre</th><th width="84">Tip</th><th width="73">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>ID</td><td>string</td><td>Evet</td><td>Tekrarlı ödeme id bilgisi</td></tr><tr><td>DATE</td><td>string</td><td>Evet</td><td>Ödeme işlemi için işlem tarihi bilgisidir.</td></tr><tr><td>RECURRING_COUNT</td><td>string</td><td>Evet</td><td>Tekrar sayısı</td></tr><tr><td>TRY_COUNT_LIMIT</td><td>int</td><td>Evet</td><td>Tekrarı deneme sayısı</td></tr><tr><td>AMOUNT</td><td>string</td><td>Evet</td><td>Tekrarlı ödeme tutar bilgisi</td></tr><tr><td>CURRENCY</td><td>string</td><td>Evet</td><td>Tekrarlı ödeme işlemi para birimidir.('TRY','USD','EUR')</td></tr><tr><td>SUCCES_COUNT</td><td>string</td><td>Evet</td><td>Tekrarlı ödemeye ait başarılı tekrar sayısı bilgisi</td></tr><tr><td>DEALER_REF_NO</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><tr><td>CUSTOMER_GSM</td><td>string</td><td>Evet</td><td>Müşteri telefon bilgisidir.</td></tr><tr><td>CUSTOMER_EMAIL</td><td>string</td><td>Evet</td><td>Müşteri email bilgisidir.</td></tr><tr><td>COSTUMER_NAME</td><td>string</td><td>Evet</td><td>Müşteri isim bilgisidir.</td></tr><tr><td>COSTUMER_ADRESS</td><td>string</td><td>Evet</td><td>Müşteri adres bilgisidir.</td></tr></tbody></table>

<br>

**RECURRING\_PAYMENT\_TRANSACTIONS**

<table><thead><tr><th width="177">Parametre</th><th width="97">Tip</th><th width="81">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>RECURRING_NO</td><td>int</td><td>Evet</td><td>N. tekrar</td></tr><tr><td>PAYMENT_DATE</td><td>string</td><td>Evet</td><td>Tekrarın çekileceği tarih</td></tr><tr><td>REF_NO</td><td>int</td><td>Evet</td><td>Tekrara ait referans numarası bilgisi. Ödeme işlemi sorgulama ve tekrar iptal etme servisinde kullanılabilir.</td></tr><tr><td>STATUS</td><td>string</td><td>Evet</td><td>Durum bilgisi.</td></tr><tr><td>TRIES_COUNT</td><td>string</td><td>Evet</td><td>Tekrarın denenme sayısı.</td></tr><tr><td>SUCCES_DATE</td><td>string</td><td>Evet</td><td>Tekrarın başarılı olduğu tarih.</td></tr><tr><td>PAYMENT_ID</td><td>array</td><td>Evet</td><td>Tekrar başarılı ise ödeme id bilgisi.</td></tr><tr><td>IS_ACTIVE</td><td>array</td><td>Evet</td><td>Tekrarın aktiflik durumu</td></tr></tbody></table>

<br>

**RECURRING\_PAYMENT\_TRIES**

<table><thead><tr><th width="166">Parametre</th><th width="89">Tip</th><th width="77">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>PAYMENT_ID</td><td>string</td><td>Evet</td><td>Ödeme id bilgisi.</td></tr><tr><td>STATUS</td><td>string</td><td>Evet</td><td>Tekrar deneme durumu.</td></tr><tr><td>DESCRIPTION</td><td>string</td><td>Evet</td><td>Tekrar denemesine ait açıklama.</td></tr><tr><td>TRY_DATE</td><td>string</td><td>Evet</td><td>Tekrar denemesinin yapıldığı tarih.</td></tr></tbody></table>

```json
                                            
{
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
    "STATUS": "SUCCESS",
    "RECURRING_PAYMENTS": [
        {
            "ID": 343666,
            "DATE": "24.06.2022",
            "RECURRING_COUNT": "10",
            "TRY_COUNT_LIMIT": "5",
            "AMOUNT": "1250,00",
            "CURRENCY": "TRY",
            "SUCCESS_COUNT": "3",
            "DEALER_REF_NO": "ORDER_REF_NUMBER",
            "COSTUMER_GSM": "5553332211",
            "COSTUMER_EMAIL": "test@test.com",
            "COSTUMER_NAME": "TEST USER",
            "COSTUMER_ADRESS": "TEST ADRESS",
            "RECURRING_PAYMENT_TRANSACTIONS": [
                { 
                "RECURRING_NO": 1,
                "PAYMENT_DATE": "24.06.2022",
                "REF_NO": "REF_NO_1",
                "STATUS": "Başarılı",
                "TRIES_COUNT": "1",
                "SUCCESS_DATE": "24.06.2022",
                "PAYMENT_ID": "343312",
                "IS_ACTIVE": "true",
                "RECURRING_PAYMENT_TRIES ": [
                        {
                        "PAYMENT_ID": "343312",
                        "STATUS": "Başarılı",
                        "DESCRIPTION": "Başarılı"
                        "TRY_DATE": "24.06.2022"
                        }
                    ]
                },
                { 
                "RECURRING_NO": 2,
                "PAYMENT_DATE": "24.07.2022",
                "REF_NO": "REF_NO_2",
                "STATUS": "Bekliyor",
                "TRIES_COUNT": "0",
                "SUCCESS_DATE": null,
                "PAYMENT_ID": null,
                "IS_ACTIVE": "true",
                "RECURRING_PAYMENT_TRIES ": []
                }
            ]
        }
    ]
}
                                            
                                        
```

İşlem listeleme servisi cevap mesajında `STATUS` parametresinin değeri **SUCCESS** ve `RETURN_CODE` parametresinin değeri **0** olarak dönmesi işlem listeleme servisinin başarılı olarak gerçekleştiğini ifade etmektedir.


# İşlem Sorgulama Servisi

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

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

Servise gönderilmesi gereken parametreler şu şekildedir;

İşlem Sorgulama Servisi İstek Mesajı Parametreleri

<table><thead><tr><th width="221">Parametre</th><th width="104">Tip</th><th width="86">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.</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"
}
                                        
```

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

İşlem Sorgulama Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th width="218">Parametre</th><th width="106">Tip</th><th width="94">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>RETURN_CODE</td><td>string</td><td>Evet</td><td>İşlem sorgulama işlemi sonucu durumu kod bilgisidir.</td></tr><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>İşlem sorgulama işlemi sonucu durum mesaj bilgisidir.</td></tr><tr><td>STATUS</td><td>string</td><td>Evet</td><td>İşlem sorgulama işlemi sonucu durum bilgisidir.</td></tr><tr><td>ID</td><td>string</td><td>Evet</td><td>Tekrarlı ödeme id bilgisi</td></tr><tr><td>DATE</td><td>string</td><td>Evet</td><td>Ödeme işlemi için işlem tarihi bilgisidir.</td></tr><tr><td>RECURRING_COUNT</td><td>string</td><td>Evet</td><td>Tekrar sayısı</td></tr><tr><td>TRY_COUNT_LIMIT</td><td>int</td><td>Evet</td><td>Tekrarı deneme sayısı</td></tr><tr><td>AMOUNT</td><td>string</td><td>Evet</td><td>Tekrarlı ödeme tutar bilgisi</td></tr><tr><td>CURRENCY</td><td>string</td><td>Evet</td><td>Tekrarlı ödeme işlemi para birimidir.('TRY','USD','EUR')</td></tr><tr><td>SUCCES_COUNT</td><td>string</td><td>Evet</td><td>Tekrarlı ödemeye ait başarılı tekrar sayısı bilgisi</td></tr><tr><td>DEALER_REF_NO</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><tr><td>CUSTOMER_GSM</td><td>string</td><td>Evet</td><td>Müşteri telefon bilgisidir.</td></tr><tr><td>CUSTOMER_EMAIL</td><td>string</td><td>Evet</td><td>Müşteri email bilgisidir.</td></tr><tr><td>COSTUMER_NAME</td><td>string</td><td>Evet</td><td>Müşteri isim bilgisidir.</td></tr><tr><td>COSTUMER_ADRESS</td><td>string</td><td>Evet</td><td>Müşteri adres bilgisidir.</td></tr></tbody></table>

**CARDS**

<table><thead><tr><th width="187">Parametre</th><th width="105">Tip</th><th width="99">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>ID</td><td>int</td><td>Evet</td><td>Kartın sistem tarafından atanan ID bilgisidir.</td></tr><tr><td>CARD_OWNER</td><td>string</td><td>Evet</td><td>Kart sahibinin ad ve soyadı bilgisidir.</td></tr><tr><td>MASKED_CARD_NUMBER</td><td>string</td><td>Evet</td><td>Kartın 16 haneli maskelenmiş kart numarası bilgisidir.</td></tr></tbody></table>

**RECURRING\_PAYMENT\_TRANSACTIONS**

<table><thead><tr><th width="187">Parametre</th><th width="105">Tip</th><th width="99">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>RECURRING_NO</td><td>int</td><td>Evet</td><td>N. tekrar</td></tr><tr><td>PAYMENT_DATE</td><td>string</td><td>Evet</td><td>Tekrarın çekileceği tarih</td></tr><tr><td>REF_NO</td><td>int</td><td>Evet</td><td>Tekrara ait referans numarası bilgisi. Ödeme işlemi sorgulama ve tekrar iptal etme servisinde kullanılabilir.</td></tr><tr><td>STATUS</td><td>string</td><td>Evet</td><td>Durum bilgisi.</td></tr><tr><td>TRIES_COUNT</td><td>string</td><td>Evet</td><td>Tekrarın denenme sayısı.</td></tr><tr><td>SUCCES_DATE</td><td>string</td><td>Evet</td><td>Tekrarın başarılı olduğu tarih.</td></tr><tr><td>PAYMENT_ID</td><td>array</td><td>Evet</td><td>Tekrar başarılı ise ödeme id bilgisi.</td></tr><tr><td>IS_ACTIVE</td><td>array</td><td>Evet</td><td>Tekrarın aktiflik durumu</td></tr></tbody></table>

<br>

**RECURRING\_PAYMENT\_TRIES**

<table><thead><tr><th width="166">Parametre</th><th width="92">Tip</th><th width="93">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>PAYMENT_ID</td><td>string</td><td>Evet</td><td>Ödeme id bilgisi.</td></tr><tr><td>STATUS</td><td>string</td><td>Evet</td><td>Tekrar deneme durumu.</td></tr><tr><td>DESCRIPTION</td><td>string</td><td>Evet</td><td>Tekrar denemesine ait açıklama.</td></tr><tr><td>TRY_DATE</td><td>string</td><td>Evet</td><td>Tekrar denemesinin yapıldığı tarih.</td></tr></tbody></table>

İşlem Sorgulama Servisi Cevap Mesajı Parametreleri

```json
{
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
    "STATUS": "SUCCESS",
    "ID": 343666,
    "DATE": "24.06.2022",
    "RECURRING_COUNT": "10",
    "TRY_COUNT_LIMIT": "5",
    "AMOUNT": "1250,00",
    "CURRENCY": "TRY",
    "SUCCESS_COUNT": "3",
    "DEALER_REF_NO": "ORDER_REF_NUMBER",
    "COSTUMER_GSM": "5553332211",
    "COSTUMER_EMAIL": "test@test.com",
    "COSTUMER_NAME": "TEST USER",
    "COSTUMER_ADRESS": "TEST ADRESS",
    "CARDS": [
        		{
        			"ID": 150,
        			"CARD_OWNER": "TEST USER",
        			"MASKED_CARD_NUMBER": "97921000****0001"
        		}
	  ],
    "RECURRING_PAYMENT_TRANSACTIONS": [
            { 
            "RECURRING_NO": 1,
            "PAYMENT_DATE": "24.06.2022",
            "REF_NO": "REF_NO_1",
            "STATUS": "Başarılı",
            "TRIES_COUNT": "1",
            "SUCCESS_DATE": "24.06.2022",
            "PAYMENT_ID": "343312",
            "IS_ACTIVE": "true",
            "RECURRING_PAYMENT_TRIES ": [
                    {
                    "PAYMENT_ID": "343312",
                    "STATUS": "Başarılı",
                    "DESCRIPTION": "Başarılı"
                    "TRY_DATE": "24.06.2022"
                    }
                ]
            },
            { 
            "RECURRING_NO": 2,
            "PAYMENT_DATE": "24.07.2022",
            "REF_NO": "REF_NO_2",
            "STATUS": "Bekliyor",
            "TRIES_COUNT": "0",
            "SUCCESS_DATE": null,
            "PAYMENT_ID": null,
            "IS_ACTIVE": "true",
            "RECURRING_PAYMENT_TRIES ": []
            }
     ]
}                                 
```

İşlem sorgulama servis cevap mesajında `STATUS` parametresinin değeri **SUCCESS** ve `RETURN_CODE` parametresinin değeri **0** olarak dönmesi işlem sorgulama servisinin başarılı olarak gerçekleştiğini ifade etmektedir.


# Kart İptal Etme Servisi

**Kart İptal Etme Servisi İstek Modeli;**

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

ervise gönderilmesi gereken parametreler şu şekildedir;

Kart İptal Etme Servisi İstek Mesajı Parametreleri

<table><thead><tr><th width="217">Parametre</th><th width="86">Tip</th><th width="72">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. İptal edilecek kart işlemi ilgili üye iş yerine ait belirtilen referans numarası ile eşleştirilerek işlem gerçekleştirilir.</td></tr><tr><td>CARD_ID</td><td>string</td><td>Evet</td><td>İşlem Sorgulama servisimizden dönen kart bilgileri arasındaki ID bilgisidir. İptal edilecek kart 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;

&#x20;                                  &#x20;

```json
{
    "MERCHANT": "TEST1234",
    "MERCHANT_KEY": "4oK26hK8MOXrIV1bzTRVPA==",
    "ORDER_REF_NUMBER": "ORDER_REF_NUMBER",
    "CARD_ID": "13"
}
                                        
```

**Kart İptal Etme Servisi Cevap Mesajı;**

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

Kart İptal Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th width="202">Parametre</th><th width="91">Tip</th><th width="75">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>RETURN_CODE</td><td>string</td><td>Evet</td><td>Kart ekleme işlemi sonucu durumu kod bilgisidir.</td></tr><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>Kart ekleme işlemi sonucu durum mesaj bilgisidir.</td></tr></tbody></table>

```json
{
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
}
                                        
```

Kart iptal etme servisi cevap mesajında `RETURN_CODE` parametresinin değeri **0** ve `RETURN_MESSAGE` parametresinin değeri **SUCCESS** olarak dönmesi kart iptal etme servisi başarılı olarak gerçekleştiğini ifade etmektedir.


# Kart Ekleme Servisi

**Kart Ekleme Servisi İstek Modeli;**

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

Servise gönderilmesi gereken parametreler şu şekildedir;

Kart Ekleme Servisi İstek Mesajı Parametreleri

<table><thead><tr><th width="220">Parametre</th><th width="84">Tip</th><th width="69">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. Kart ekleme işlemi ilgili üye iş yerine ait belirtilen referans numarası ile eşleştirilerek işlem gerçekleştirilir.</td></tr><tr><td>CARD</td><td>object</td><td>Evet</td><td></td></tr></tbody></table>

<br>

**EYVCREDİTCARD**

<table><thead><tr><th width="167">Parametre</th><th width="95">Tip</th><th width="73">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>CC_NUMBER</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 16 haneli kart numarası bilgisidir.</td></tr><tr><td>EXP_MONTH</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 2 haneli son kullanım tarihini ay bilgisidir.</td></tr><tr><td>EXP_YEAR</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 4 haneli son kullanım tarihini yıl bilgisidir.</td></tr><tr><td>CC_CVV</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği kartın arka yüzünde bulunan 3 haneli güvenlik kodu bilgisidir.</td></tr><tr><td>CC_OWNER</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği kart sahibinin ad ve soyadı bilgisidir.</td></tr></tbody></table>

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

```json
                                            
{
    "MERCHANT": "TEST1234",
    "MERCHANT_KEY": "4oK26hK8MOXrIV1bzTRVPA==",
    "ORDER_REF_NUMBER": "ORDER_REF_NUMBER",
    "CARD" : {
        "CC_NUMBER": "4531444531442283",
        "EXP_MONTH": "12",
        "EXP_YEAR": "2026",
        "CC_CVV": "111",
        "CC_OWNER": "TEST USER"
    }
}
                                        
```

**Kart Ekleme Servisi Cevap Mesajı;**

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

\
Kart Ekleme Servisi Cevap Mesajı Parametreleri

| Parametre       | Tip    | Zorunlu | Açıklama                                          |
| --------------- | ------ | ------- | ------------------------------------------------- |
| RETURN\_CODE    | string | Evet    | Kart ekleme işlemi sonucu durumu kod bilgisidir.  |
| RETURN\_MESSAGE | string | Evet    | Kart ekleme işlemi sonucu durum mesaj bilgisidir. |

```json
                                            
{
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
}
                                        
```

Kart ekleme servisi cevap mesajında `RETURN_CODE` parametresinin değeri **0** ve `RETURN_MESSAGE` parametresinin değeri **SUCCESS** olarak dönmesi işlem kart ekleme işleminin başarılı olarak gerçekleştiğini ifade etmektedir.


# Android Pos Web Api


# Pos Listeleme Servisi

**Android Pos Listeleme Servisi**

Android Pos Listeleme metodu ödeme yapabilecek posların bilgilerinin listelenmesi için kullanılır.

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

**Android Pos Listeleme Servisi İstek Modeli;**

Servise gönderilmesi gereken parametreler şu şekildedir;

Ortak Ödeme Sayfası Servisi İstek Mesajı Parametreleri

<table><thead><tr><th width="178">Parametre</th><th width="90">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></tbody></table>

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

&#x20;                                 &#x20;

```json
  {
    "MERCHANT": " TEST1234",
    "MERCHANT_KEY": " 4oK26hK8MOXrIV1bzTRVPA=="
  }
```

**ndroid Pos Listeleme Servisi Cevap Modeli**

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

Güvenli Ödeme Sayfası Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th width="209">Parametre</th><th width="88">Tip</th><th width="77">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>RETURN_CODE</td><td>string</td><td>Evet</td><td>Sorgulama işlemi sonucu durumu kod bilgisi.</td></tr><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>Sorgulama işlemi sonucu durum mesajı bilgisi.</td></tr><tr><td>POST_LIST</td><td>Array</td><td>Evet</td><td>Aktif olan android posların listesi.</td></tr></tbody></table>

<br>

**POST LIST**

<table><thead><tr><th width="157">Parametre</th><th width="96">Tip</th><th width="106">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>ID</td><td>Int</td><td>Evet</td><td>Android pos numarası.</td></tr><tr><td>TITLE</td><td>String</td><td>Evet</td><td>Android pos başlık bilgisi.</td></tr><tr><td>CONNECTED</td><td>Boolean</td><td>Evet</td><td>Android pos bağlantı durumu.</td></tr></tbody></table>

* [JSON](https://developer.esnekpos.com/Home/androidposlistelemeservisi#m_tabs_1_1)

```json
                                            
                                    
 {
       
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": null,
    "POS_LIST": [
        {
            "ID": 3,
            "TITLE": "testtitle1",
            "CONNECTED": false
        },
        {
            "ID": 5,
            "TITLE": "testtitle2",
            "CONNECTED": false
        }
    ]
 
 }
                                            
                                        
```

`RETURN_CODE` alanı 0 olarak dönmesi, sorgulama işleminin başarılı olarak gerçekleştiğini belirtmektedir.

**Android Pos Listeleme Servisi Durum Kodları ve Açıklamaları;**

Android Pos Listeleme Servisinden dönen `RETURN_CODE` açıklamalarının detayları şu şekildedir;

| STATUS\_ID | STATUS\_NAME          | Açıklama                          |
| ---------- | --------------------- | --------------------------------- |
| 0          | SUCCESS               | Başarılı işlemdir.                |
| 100        | ERROR                 | Hatalı İşlemdir.                  |
| 102        | AUTHENTICATION\_ERROR | Kimlik doğrulama hatası.          |
| 999        | UNKNOWN\_ERROR        | Beklenmeyen bir hata gerçekleşti. |


# Ö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)<mark style="color:red;">methodu ile sorgulama yapmanız ve</mark> [<mark style="color:red;">PROCCESS\_QUERY</mark> ](/hoppa-gelistirici-ortami/islem-sorgulama-servisi)<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)<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>


# İşlem İptal Servisi

**Android Pos İşlem İptal Servisi**

Android Pos İşlem İptal Servisi; başarılı olarak tamamlanan işlemlerin iptal edilebilmesi için kullanılan servistir.

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

Servise gönderilmesi gereken parametreler şu şekildedir;

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

**Config**

<table><thead><tr><th width="219">Parametre</th><th width="88">Tip</th><th width="93">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 form post olarak gönderilir.</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></tbody></table>

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

```json
                                            
{
        "MERCHANT": "TEST1234",
        "MERCHANT_KEY": "4oK26hK8MOXrIV1bzTRVPA==",
        "BACK_URL": "https://posservicetest.esnekpos.com/api/home/PhysicalPaymentLog",
        "ORDER_REF_NUMBER": "ORDER_REF_NUMBER"
}
                                            
                                        
```

**Android Pos İşlem İptal Servisi Cevap Mesajı;**

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

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

**Config**

<table><thead><tr><th width="232">Parametre</th><th width="83">Tip</th><th width="81">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>RETURN_CODE</td><td>string</td><td>Evet</td><td>Sorgulama işlemi sonucu durumu kod bilgisi.</td></tr><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>Sorgulama işlemi sonucu durum mesajı bilgisi.</td></tr><tr><td>STATUS</td><td>string</td><td>Evet</td><td>Durum bilgisidir.</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>REFNO</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait hoppa sistemi tarafından verilen referans numarası bilgisi</td></tr></tbody></table>

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

Android pos işlem iptal servisi cevap mesajında `STATUS` parametresinin değeri **SUCCESS** ve `RETURN_CODE` parametresinin değeri **0** olarak dönmesi Android Pos işlem iptal servisinin başarılı olarak gerçekleştiğini ifade etmektedir.

Servisten dönebilecek Status bilgileri;

<table><thead><tr><th width="81.33333333333331">RETURN_CODE</th><th>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>102</td><td>AUTHENTICATION_ERROR</td><td>Kimlik doğrulama hatası.</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>300</td><td>ORDER_CANCEL</td><td>Ödeme iptal servisinde oluşan 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>


# BKM Express


# Ortak Ödeme Sayfası İle BKM Express

{% 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)<mark style="color:red;">methodu ile sorgulama yapmanız ve</mark> [<mark style="color:red;">PROCCESS\_QUERY</mark> ](/hoppa-gelistirici-ortami/islem-sorgulama-servisi)<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)<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 %}

**Ortak Ödeme Sayfası Servisi ile BKM Express;**

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

**Ortak Ödeme Sayfası Servisi ile BKM Express Ödemesi İşlem Akışı;**

Ortak ödeme sayfası modelini kullanarak BKM Express 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. Bu yöntem Ortak ödeme sayfası yöntemi ile tamamen aynıdır, açılan ortak ödeme sayfasında BKM Express ile öde seçeneği açılacaktır ve ödeme işlemi bu seçenek seçildiğinde BKM Express hesabı üzerinden gerçekleşecektir. Ödeme esnasında ve sonrasında üye işyerlerine dönecek JSON dosyası ve form post sonucu ortak ödeme sayfası modeliyle tamamen aynıdır.

**1. Adım:**

Üye işyeri kullanıcı, sepet, ödeme tutar bilgilerini ödemenin sonucunun bildirilmesini istediği kendi web adresi(BACK\_URL) bilgisi ile birlikte hoppa güvenli ödeme sayfası servisine yukarıda belirtilmiş olan istek modelini kullanarak ödeme isteğini gönderir ve ödeme işlemini başlatmış olur.

Güvenli ve sorunsuz bir şekilde işlemlerin gerçekleşebilmesi ve fraud işlemlerin önlenebilmesi için tüm parametrelerin eksiksiz bir şekilde gönderilmesi gerekmektedir.

Servise gönderilmesi gereken parametreler şu şekildedir;

Ortak Ödeme Sayfası Servisi İstek Mesajı Parametreleri

<table><thead><tr><th width="232">Parametre</th><th width="126">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>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>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>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 form post olarak gönderilir.</td></tr><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>Parametre</th><th width="107">Tip</th><th width="108">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==",
        "ORDER_REF_NUMBER" : "RFN0003",
        "ORDER_AMOUNT" : "150",
        "PRICES_CURRENCY" : "TRY",
        "BACK_URL" : "İşlem sonucunda sizin belirleyeceğiniz dönüş url adresi"
    },
    "Customer" : {
         "FIRST_NAME" : "Firstname",
         "LAST_NAME" : "Lastname",
         "MAIL" : "destek@esnekpos.com",
         "PHONE" : "05435434343",
         "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ı 1",
             "PRODUCT_CATEGORY" : "Ev Tekstili",
             "PRODUCT_DESCRIPTION" : "Ürün Açıklaması",
             "PRODUCT_AMOUNT" : "70"
         }
     ]
 }
                                        
```

**2. Adım:**

hoppa bilgileri değerlendirerek üye iş yerine cevap mesajını gönderir.(Cevap mesajı içerisinde URL\_3DS alanı bulunur.)

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

Güvenli Ödeme Sayfası Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th>Parametre</th><th width="109">Tip</th><th width="105">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><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>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>RETURN_MESSAGE_TR</td><td>string</td><td>Evet</td><td>Ödeme işlemi sonucu durum mesajı için Türkçe açıklama bilgisidir.</td></tr><tr><td>ERROR_CODE</td><td>string</td><td>Evet</td><td>Başarısız ödeme işlemi sonucu hata kod bilgisidir. Banka hata kodları da bu parametre içerisinde dönüş yapılır.</td></tr><tr><td>DATE</td><td>string</td><td>Evet</td><td>Ödeme işlemi için işlem tarihi bilgisidir.</td></tr><tr><td>URL_3DS</td><td>string</td><td>Evet</td><td>Üye iş yerinin kullanıcıyı yönlendireceği 3D Doğrulama Sayfası URL Adresi</td></tr><tr><td>REFNO</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait hoppa sistemi tarafından verilen referans numarası bilgisi</td></tr><tr><td>HASH</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait hoppa sistemi tarafından oluşturulan hash bilgisi</td></tr><tr><td>CUSTOMER_NAME</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) ad soyad bilgisidir.</td></tr><tr><td>CUSTOMER_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>CUSTOMER_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>CUSTOMER_ADDRESS</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) adres bilgisidir.</td></tr><tr><td>CUSTOMER_CC_NUMBER</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 16 haneli kart numarası bilgisidir. Kart bilgisi şifrelenmiş şekilde paylaşılır.</td></tr><tr><td>CUSTOMER_CC_NAME</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği kart sahibinin ad ve soyadı bilgisidir.</td></tr><tr><td>IS_NOT_3D_PAYMENT</td><td>string</td><td>Evet</td><td>Ödeme işleminin 3D gerçekleşip gerçekleşmediği bilgisidir.</td></tr><tr><td>VIRTUAL_POS_VALUES</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait sanalpos açıklamaları bilgisidir.</td></tr><tr><td>RETURN_MESSAGE_3D</td><td>string</td><td>Evet</td><td>Bankadan alınan 3D ödeme işlemine ait cevap mesajı bilgisidir.</td></tr></tbody></table>

```json
                                            
{
    "ORDER_REF_NUMBER": "RFN0003",
    "STATUS": "SUCCESS",
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
    "RETURN_MESSAGE_TR": null,
    "ERROR_CODE": null,
    "DATE": "21.10.2020 09:32:32",
    "URL_3DS": "http://pos.esnekpos.com/Pages/CommonPayment.aspx?hash=9f9bde8bafc7389395aa24f47e58905d1063cd77268b791dbc0bcf87a01c2148",
    "REFNO": "25057",
    "HASH": "9f9bde8bafc7389395aa24f47e58905d1063cd77268b791dbc0bcf87a01c2148",
    "CUSTOMER_NAME": null,
    "CUSTOMER_MAIL": null,
    "CUSTOMER_PHONE": null,
    "CUSTOMER_ADDRESS": null,
    "CUSTOMER_CC_NUMBER": null,
    "CUSTOMER_CC_NAME": null,
    "IS_NOT_3D_PAYMENT": false,
    "VIRTUAL_POS_VALUES": null,
    "RETURN_MESSAGE_3D": null
}
                                        
```

Ortak Ödeme Sayfası işlem cevap mesajında `STATUS` parametresinin değeri SUCCESS ve `RETURN_CODE` parametresinin değeri 0 olarak dönmesi Ortak Ödeme Sayfası işleminin kabul edildiğini ifade etmektedir. Bundan sonraki aşamada ödeme yapacak kullanıcıdan BKM Express ile ödeme seçeneğini seçmesi durumunda BKM Express hesap giriş bilgileri ve ve taksit bilgileri alınarak ödeme yapılacaktır.

**3. 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.

**4. Adım:**

hoppa kullanıcıdan BKM Express hesap bilgilerini ve taksit bilgilerini kendi sunucularında kendi güvenlik önlemlerini kullanarak alır ve ödeme sürecini ilerletir.

<figure><img src="https://developer.esnekpos.com/Content/classic/demos/default/assets/demo/media/img/bkm-ortak-odeme.png" alt=""><figcaption></figcaption></figure>

**5. Adım:**

hoppa 3D doğrulama işlemlerini sonuçlandırır, ödemenin sonucunu üye işyerinin 1. adımda bildirmiş olduğu BACK\_URL adresine FORM POST metodu ile bildirir.

<pre class="language-html"><code class="lang-html">&#x3C;html xmlns="http://www.w3.org/1999/xhtml">
    &#x3C;head>&#x3C;meta http-equiv=\"Content-Type\" content=\"text/html;charset=iso-8859-9\" />&#x3C;/head>
    &#x3C;body onload='document.forms[0].submit()'>
        &#x3C;form action='" + payment.DEALER_RESPONSE_URL + "' method='post'>
            &#x3C;input type='hidden' name='DATE' value='{0}'>
            &#x3C;input type='hidden' name='HASH' value='{0}'>
            &#x3C;input type='hidden' name='ORDER_REF_NUMBER' value='{0}'>
            &#x3C;input type='hidden' name='REFNO' value='{0}'>
            &#x3C;input type='hidden' name='RETURN_CODE' value='{0}'>
            &#x3C;input type='hidden' name='RETURN_MESSAGE' value='{0}'>
            &#x3C;input type='hidden' name='RETURN_MESSAGE_TR' value='{0}'>
            &#x3C;input type='hidden' name='STATUS' value='{0}'>
            &#x3C;input type='hidden' name='ERROR_CODE' value='{0}'>
            &#x3C;input type='hidden' name='CUSTOMER_NAME' value='{0}'>
            &#x3C;input type='hidden' name='CUSTOMER_MAIL' value='{0}'>
            &#x3C;input type='hidden' name='CUSTOMER_PHONE' value='{0}'>
            &#x3C;input type='hidden' name='CUSTOMER_ADDRESS' value='{0}'>
<strong>            &#x3C;input type='hidden' name='CUSTOMER_CC_NUMBER' value='{0}'>
</strong>            &#x3C;input type='hidden' name='CUSTOMER_CC_NAME' value='{0}'>
            &#x3C;input type='hidden' name='COMMISSION' value='{0}'>
            &#x3C;input type='hidden' name='AMOUNT' value='{0}'>
            &#x3C;input type='hidden' name='INSTALLMENT' value='{0}'>
    &#x3C;/form>
    &#x3C;/body>
&#x3C;/html>
                                                
</code></pre>

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

| BKM Express Test Hesap Bilgileri |                  |
| -------------------------------- | ---------------- |
| Kullanıcı Adı                    | <isyeri@bkm.com> |
| Şifre                            | 147258           |
| Doğrulama Kodu                   | 123456           |


# Servis İle BKM Express

{% 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)<mark style="color:red;">methodu ile sorgulama yapmanız ve</mark> [<mark style="color:red;">PROCCESS\_QUERY</mark> ](/hoppa-gelistirici-ortami/islem-sorgulama-servisi)<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)<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 %}

**BKM Express Ödeme Servisi İstek Modeli**

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

**BKM Express Ödeme Servisi İşlem Akışı;**

BKM Express ö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.

**1. Adım:**

Üye işyeri kullanıcı, sepet, ödeme tutar bilgilerini ödemenin sonucunun bildirilmesini istediği kendi web adresi(BACK\_URL) bilgisi ile birlikte hoppa BKM Express Ödeme Servisi yukarıda belirtilmiş olan istek modelini kullanarak ödeme isteğini gönderir ve ödeme işlemini başlatmış olur.

Güvenli ve sorunsuz bir şekilde işlemlerin gerçekleşebilmesi ve fraud işlemlerin önlenebilmesi için tüm parametrelerin eksiksiz bir şekilde gönderilmesi gerekmektedir.

Servise gönderilmesi gereken parametreler şu şekildedir;

BKM Express Ödeme Servisi İstek Mesajı Parametreleri

<table><thead><tr><th width="222">Parametre</th><th width="98">Tip</th><th width="79">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 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>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>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 form post olarak gönderilir.</td></tr><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="245">Parametre</th><th width="84">Tip</th><th width="79">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==",
        "ORDER_REF_NUMBER" : "RFN0003",
        "ORDER_AMOUNT" : "150",
        "PRICES_CURRENCY" : "TRY",
        "BACK_URL" : "İşlem sonucunda sizin belirleyeceğiniz dönüş url adresi"
    },
    "Customer" : {
         "FIRST_NAME" : "Firstname",
         "LAST_NAME" : "Lastname",
         "MAIL" : "destek@esnekpos.com",
         "PHONE" : "05435434343",
         "CITY" : "Müşteri il",
         "STATE" : "Müşteri ilçe",
         "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ı 1",
             "PRODUCT_CATEGORY" : "Ev Tekstili",
             "PRODUCT_DESCRIPTION" : "Ürün Açıklaması",
             "PRODUCT_AMOUNT" : "70"
         }
     ]
 }
                                        
```

**2. Adım:**

hoppa bilgileri değerlendirerek üye iş yerine cevap mesajını gönderir.(Cevap mesajı içerisinde URL\_3DS alanı bulunur.)

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

BKM Express Ödeme Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th width="250">Parametre</th><th width="102">Tip</th><th width="80">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><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>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>RETURN_MESSAGE_TR</td><td>string</td><td>Evet</td><td>Ödeme işlemi sonucu durum mesajı için Türkçe açıklama bilgisidir.</td></tr><tr><td>ERROR_CODE</td><td>string</td><td>Evet</td><td>Başarısız ödeme işlemi sonucu hata kod bilgisidir. Banka hata kodları da bu parametre içerisinde dönüş yapılır.</td></tr><tr><td>DATE</td><td>string</td><td>Evet</td><td>Ödeme işlemi için işlem tarihi bilgisidir.</td></tr><tr><td>URL_3DS</td><td>string</td><td>Evet</td><td>Üye iş yerinin kullanıcıyı yönlendireceği 3D Doğrulama Sayfası URL Adresi</td></tr><tr><td>REFNO</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait hoppa sistemi tarafından verilen referans numarası bilgisi</td></tr><tr><td>HASH</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait hoppa sistemi tarafından oluşturulan hash bilgisi</td></tr><tr><td>CUSTOMER_NAME</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) ad soyad bilgisidir.</td></tr><tr><td>CUSTOMER_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>CUSTOMER_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>CUSTOMER_ADDRESS</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) adres bilgisidir.</td></tr><tr><td>CUSTOMER_CC_NUMBER</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 16 haneli kart numarası bilgisidir. Kart bilgisi şifrelenmiş şekilde paylaşılır.</td></tr><tr><td>CUSTOMER_CC_NAME</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği kart sahibinin ad ve soyadı bilgisidir.</td></tr><tr><td>IS_NOT_3D_PAYMENT</td><td>string</td><td>Evet</td><td>Ödeme işleminin 3D gerçekleşip gerçekleşmediği bilgisidir.</td></tr><tr><td>VIRTUAL_POS_VALUES</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait sanalpos açıklamaları bilgisidir.</td></tr><tr><td>RETURN_MESSAGE_3D</td><td>string</td><td>Evet</td><td>Bankadan alınan 3D ödeme işlemine ait cevap mesajı bilgisidir.</td></tr></tbody></table>

```json
                                            
{
    "ORDER_REF_NUMBER": "RFN0003",
    "STATUS": "SUCCESS",
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
    "RETURN_MESSAGE_TR": null,
    "ERROR_CODE": null,
    "DATE": "25.04.2021 18:51:00",
    "URL_3DS": "http://pos.esnekpos.com/Pages/BkmPayment.aspx?hash=d1488016d0e0e361c9cea3dea839bbc3d315199a6aece31e3b6534d3b7c56305",
    "REFNO": "58874",
    "HASH": "d1488016d0e0e361c9cea3dea839bbc3d315199a6aece31e3b6534d3b7c56305",
    "CUSTOMER_NAME": null,
    "CUSTOMER_MAIL": null,
    "CUSTOMER_PHONE": null,
    "CUSTOMER_ADDRESS": null,
    "CUSTOMER_CC_NUMBER": null,
    "CUSTOMER_CC_NAME": null,
    "IS_NOT_3D_PAYMENT": false,
    "VIRTUAL_POS_VALUES": null,
    "RETURN_MESSAGE_3D": null
}
                                        
```

BKM Express Ödeme Servisi işlem cevap mesajında `STATUS` parametresinin değeri SUCCESS ve `RETURN_CODE` parametresinin değeri 0 olarak dönmesi BKM Express Ödeme işleminin kabul edildiğini ifade etmektedir. Bundan sonraki aşamada ödeme yapacak kullanıcıdan BKM Express hesap giriş bilgileri ve ve taksit bilgileri alınarak ödeme yapılacaktır.

**3. 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.

**4. Adım:**

hoppa kullanıcıdan BKM Express hesap bilgilerini ve taksit bilgilerini kendi sunucularında kendi güvenlik önlemlerini kullanarak alır ve ödeme sürecini ilerletir.

<figure><img src="https://developer.esnekpos.com/Content/classic/demos/default/assets/demo/media/img/bkm-login.png" alt=""><figcaption></figcaption></figure>

**5. Adım:**

hoppa 3D doğrulama işlemlerini sonuçlandırır, ödemenin sonucunu üye işyerinin 1. adımda bildirmiş olduğu BACK\_URL adresine FORM POST metodu ile bildirir.

```html
                                            
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head><meta http-equiv=\"Content-Type\" content=\"text/html;charset=iso-8859-9\" /></head>
    <body onload='document.forms[0].submit()'>
        <form action='" + payment.DEALER_RESPONSE_URL + "' method='post'>
            <input type='hidden' name='DATE' value='{0}'>
            <input type='hidden' name='HASH' value='{0}'>
            <input type='hidden' name='ORDER_REF_NUMBER' value='{0}'>
            <input type='hidden' name='RETURN_CODE' value='{0}'>
            <input type='hidden' name='RETURN_MESSAGE' value='{0}'>
            <input type='hidden' name='STATUS' value='{0}'>
    </form>
    </body>
</html>
                                                
```

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

| BKM Express Test Hesap Bilgileri |                  |
| -------------------------------- | ---------------- |
| Kullanıcı Adı                    | <isyeri@bkm.com> |
| Şifre                            | 147258           |
| Doğrulama Kodu                   | 123456           |


# BKM Express Test Ortamı Bilgileri

Test işlemleri için kullanılacak test üye iş yeri ve BKM Express test hesap bilgileri şu şekildedir;

Test Panel Adresi: <https://postest.esnekpos.com/>

Gerçek ortam bilgileri elinde olan üye işyerleri bu panelden TEST işlemlerini takip edebilir ve raporlayabilir.

**Test API Base adresi için bizimle iletişime geçiniz.**&#x20;

**Tel**: 0(212) 235 66 00&#x20;

**Mail**: <destek@esnekpos.com>

Gerçek ortam bilgileri elinde olmayan üye iş yeri adayları aşağıdaki `MERCHANT` ve `MERCHANT_KEY` bilgileri ile test kartı bilgilerini kullanarak ödeme işlemi testi gerçekleştirebilir.

| Test Üye İş Yeri Bilgileri |                          |
| -------------------------- | ------------------------ |
| MERCHANT                   | TEST1234                 |
| MERCHANT\_KEY              | 4oK26hK8MOXrIV1bzTRVPA== |

Test işlemi sonunda üye iş yerinin belirttiği geri dönüş sayfasına verilerin eksiksiz ve doğru bir şekilde geldiğinden emin olunmalıdır. Sonrasında sistemden dönecek **hata kod** ve **mesajlarına** göre işlem sonucundaki senaryolar ve yazılım geliştirmeleri üye işyeri tarafından gerçekleştirilir.

| BKM Express Test Hesap Bilgileri |                  |
| -------------------------------- | ---------------- |
| Kullanıcı Adı                    | <isyeri@bkm.com> |
| Şifre                            | 147258           |
| Doğrulama Kodu                   | 123456           |


# Pazaryeri Entegrasyonu


# Pazaryeri Entegrasyonu

hoppa kullanmak isteyen pazaryerlerinin öncelikli olarak hoppa pazaryeri modelinde para akışının nasıl olduğunu sonrasında tanımlama ve işlemlerin gerçekleştirileceği servisleri kullanımı öğrenmeleri gerekmektedir.

Pazaryeri üzerinden satış yapan alt üye iş yerleri bulunmaktadır, bu iş yerleri pazaryeri modelimizde alt satıcı-mağaza(submerchant) olarak ifade edilmiştir. Pazaryeri ise tüm senaryolarımızda olduğu gibi üye iş yeri(merchant) olarak ifade edilmektedir.

Öncelikle pazaryerleri, ödeme işlemlerini gerçekleştireceği submerchant'larını tanımlamalıdır.

Pazaryeri, ödeme isteği içerisinde hangi mağazanın ne kadar para alacağını bildirir. Örneğin; 100 TL'lik bir tahsilatta hoppa oranı %3 diyelim. Bu oran ile pazaryeri 97 TL alacaklanacaktır. Pazaryeri ödeme esnasında altındaki 2 mağazaya 50 TL ve 40 TL ödeme gönderilmesini bildirmişse, pazaryerine kalan 7 TL gönderilecektir.

Pazaryeri, ilgili ödemeden alacaklı olan tüm mağazaların ödemelerini onayladıktan sonra kendi alacağı olan 7 TL otomatik olarak pazaryerine iletilir.


# Mağaza Tanımlama

**Pazaryeri Mağaza Tanımlama ve Güncelleme Servisi İstek Modeli;**

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

Servise gönderilmesi gereken parametreler şu şekildedir;

Pazaryeri Mağaza Tanımlama ve Güncelleme Servisi İstek Mesajı Parametreleri

<table><thead><tr><th width="270">Parametre</th><th width="90">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(Pazaryeri) özel oluşturulan eşsiz kimlik bilgisidir.</td></tr><tr><td>MERCHANT_KEY</td><td>string</td><td>Evet</td><td>Üye iş yerine(Pazaryeri) özel oluşturulan anahtar bilgisidir.</td></tr><tr><td>NAME</td><td>string</td><td>Evet</td><td>Üye iş yerine(Pazaryeri) ait isim bilgisidir.</td></tr><tr><td>OWNER_NAME</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) sahibinin ad bilgisidir.</td></tr><tr><td>OWNER_SURNAME</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) sahibinin soyad bilgisidir.</td></tr><tr><td>OWNER_IDENTITY_NUMBER</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) sahibinin T.C. Kimlik Numarası bilgisidir.</td></tr><tr><td>EMAIL</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) sahibinin e-mail bilgisidir.</td></tr><tr><td>GSM</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) sahibinin telefon bilgisidir.</td></tr><tr><td>COMPANY_NAME</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) ad bilgisidir.</td></tr><tr><td>TAX_OFFICE</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) vergi dairesi bilgisidir.</td></tr><tr><td>TAX_NUMBER</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) vergi numarası bilgisidir.</td></tr><tr><td>BANK_NAME</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) için ödemelerin yapılacağı hesaba ait hesap sahibinin adı veya şirketin ad bilgisidir.</td></tr><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. Diğer istek paremetrelerinde kullanılacak bu mağazanın unique bilgisi bu bilgidir.</td></tr><tr><td>TYPE</td><td>string</td><td>Evet</td><td>Mağaza(submerchant)'nın pazaryerin(merchant)deki tip bilgisidir. PERSONAL veya PERSONAL_COMPANY veya COMPANY olarak tanımlanacaktır. Şahıs olarak satış yapan mağazalar için PERSONAL, Şahıs şirketleri için PERSONAL_COMPANY, Şirketler için COMPANY seçeneği seçilmelidir.</td></tr><tr><td>IBAN</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) için banka hesabına ait IBAN bilgisidir.</td></tr><tr><td>CURRENCY</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) için banka hesabına ait para birimi bilgisidir. Şu an için sadece “TRY, USD, EUR, GBP” gönderilebilir.</td></tr></tbody></table>

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

```json
{
   "MERCHANT":"TEST1234",
   "MERCHANT_KEY":"4oK26hK8MOXrIV1bzTRVPA==",
   "NAME":"NAME",
   "OWNER_NAME":"OWNER_NAME",
   "OWNER_SURNAME":"OWNER_SURNAME",
   "OWNER_IDENTITY_NUMBER":"12365478912",
   "EMAIL":"abc@domain.com",
   "GSM":"5435434343",
   "COMPANY_NAME":"COMPANY_NAME",
   "TAX_OFFICE":"TAX_OFFICE",
   "TAX_NUMBER":"TAX_NUMBER",
   "BANK_NAME":"ACCOUNT OWNER NAME",
   "EXTERNAL_ID":"a5s9f6465s1-s164g4r6q",
   "TYPE":"PERSONAL_COMPANY",
   "BANK_ACCOUNTS":[
      {
         "IBAN":"TR123456789123456789123456",
         "CURRENCY":"TRY"
      },
      {
         "IBAN":"TR123456789123456789123468",
         "CURRENCY":"USD"
      }
   ]
}
```

**Pazaryeri Mağaza Tanımlama ve Güncelleme Servisi Cevap Mesajı;**

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

<table><thead><tr><th width="205">Parametre</th><th width="100">Tip</th><th width="90">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data</td><td>string</td><td>Evet</td><td>Tanımlama veya Güncelleme işlemine ait veri bilgisidir.</td></tr><tr><td>ResultCode</td><td>string</td><td>Evet</td><td>Tanımlama veya Güncelleme işlemi sonucu durumu kod bilgisidir.</td></tr><tr><td>ResultMessage</td><td>string</td><td>Evet</td><td>Tanımlama veya Güncelleme işlemi sonucu durum mesaj bilgisidir.</td></tr><tr><td>Exception</td><td>string</td><td>Evet</td><td>Tanımlama veya Güncelleme işlemi için işlem sırısında gerçekleşen istisna durum bilgisidir.</td></tr></tbody></table>

```json
                                            
{
    "Data": null,
    "ResultCode": "00",
    "ResultMessage": "SUCCESS",
    "Exception": null
}
                                        
```

Mağaza Tanımlama ve Güncelleme cevap mesajında `ResultMessage` parametresinin değeri **SUCCESS** ve `ResultCode` parametresinin değeri **0** olarak dönmesi tanımlama veya güncelleme işleminin başarılı olarak gerçekleştiğini ifade etmektedir.


# Mağaza Sorgulama

**Pazaryeri Mağaza Tanımlama ve Güncelleme Servisi İstek Modeli;**

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

Servise gönderilmesi gereken parametreler şu şekildedir;

Pazaryeri Mağaza Sorgulama İstek Mesajı Parametreleri

<table><thead><tr><th width="243">Parametre</th><th width="80">Tip</th><th width="95">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>MERCHANT</td><td>string</td><td>Evet</td><td>Üye iş yerine(Pazaryeri) özel oluşturulan eşsiz kimlik bilgisidir.</td></tr><tr><td>MERCHANT_KEY</td><td>string</td><td>Evet</td><td>Üye iş yerine(Pazaryeri) özel oluşturulan anahtar bilgisidir.</td></tr><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. Diğer istek paremetrelerinde kullanılacak bu mağazanın unique bilgisi bu bilgidir.</td></tr></tbody></table>

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

```
{
   "MERCHANT":"TEST1234",
   "MERCHANT_KEY":"4oK12326hK8MOXrIV1bzTRVPA==",
   "EXTERNAL_ID":"a5s1239f6465s1-s164g4r6q"
}
```

Pazaryeri Mağaza Sorgulama Cevap Mesajı;

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

<table><thead><tr><th width="240">Parametre</th><th width="78">Tip</th><th width="96">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>SUBMERCHANT_DETAIL</td><td>array</td><td>Evet</td><td>Mağaza(submerchant) sahibinin detay bilgisidir.</td></tr></tbody></table>

**SUBMERCHANT DETAIL**

<table><thead><tr><th width="244">Parametre</th><th width="82">Tip</th><th width="100">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>NAME</td><td>string</td><td>Evet</td><td>Üye iş yerine(Pazaryeri) ait isim bilgisidir.</td></tr><tr><td>OWNER_NAME</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) sahibinin ad bilgisidir.</td></tr><tr><td>OWNER_SURNAME</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) sahibinin soyad bilgisidir.</td></tr><tr><td>OWNER_IDENTITY_NUMBER</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) sahibinin T.C. Kimlik Numarası bilgisidir.</td></tr><tr><td>EMAIL</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) sahibinin e-mail bilgisidir.</td></tr><tr><td>GSM</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) sahibinin telefon bilgisidir.</td></tr><tr><td>COMPANY_NAME</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) ad bilgisidir.</td></tr><tr><td>TAX_OFFICE</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) vergi dairesi bilgisidir.</td></tr><tr><td>TAX_NUMBER</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) vergi numarası bilgisidir.</td></tr><tr><td>BANK_NAME</td><td>string</td><td>Evet</td><td>Mağaza(submerchant) için ödemelerin yapılacağı hesaba ait hesap sahibinin adı veya şirketin ad bilgisidir.</td></tr><tr><td>TYPE</td><td>string</td><td>Evet</td><td>Mağaza(submerchant)'nın pazaryerin(merchant)deki tip bilgisidir. PERSONAL veya PERSONAL_COMPANY veya COMPANY olarak tanımlanacaktır. Şahıs olarak satış yapan mağazalar için PERSONAL, Şahıs şirketleri için PERSONAL_COMPANY, Şirketler için COMPANY seçeneği seçilmelidir.</td></tr><tr><td>IS_ACTIVE</td><td>bool?</td><td>Evet</td><td>Mağaza(submerchant) için aktiflik durum bilgisidir.</td></tr></tbody></table>

```
{
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
    "STATUS": "SUCCESS",
    "MERCHANT_DETAIL": {
        "NAME": "ELEKSE",
        "OWNER_NAME": "TEST NAME",
        "OWNER_SURNAME": "TEST SURNAME",
        "OWNER_IDENTITY_NUMBER": "12345678910",
        "EMAIL": "info@elekse.com",
        "GSM": "5345552583",
        "COMPANY_NAME": "ELEKSE ÖDEME KURULUŞU VE PARA A.Ş.",
        "TAX_OFFICE": "Kağıthane",
        "TAX_NUMBER": "",
        "BANK_NAME": "kuveytturk",
        "TYPE": "PERSONAL",
        "IS_ACTIVE": true,
        "BANK_ACCOUNTS": [
            {
                "IBAN": "TR111111111111111111111111",
                "CURRENCY": "TRY"
            }
        ]
    }
}
```

İşlem durum sorgulama cevap mesajında `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.&#x20;


# Ödeme Alma

{% 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)<mark style="color:red;">methodu ile sorgulama yapmanız ve</mark> [<mark style="color:red;">PROCCESS\_QUERY</mark> ](/hoppa-gelistirici-ortami/islem-sorgulama-servisi)<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)<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 %}

**Pazaryeri Ödeme Alma Servisi İstek Modeli;**

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

**Pazaryeri Ödeme Alma Servisi İşlem Akışı;**

Pazaryeri ödeme alma modelini kullanarak 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.

**1. Adım:**

Üye işyeri(Pazaryeri) kullanıcı, kart, sepet, ödeme tutar ve taksit bilgilerini, ödemenin sonucunun bildirilmesini istediği kendi web adresi(BACK\_URL) bilgisi ile birlikte EsnekPos 3D ödeme servisine yukarıda belirtilmiş olan istek modelini kullanarak ödeme isteğini gönderir ve ödeme işlemini başlatmış olur.

Standart ödeme alma işlemine ek olarak “SubMerchantDetails” listesi eklenmiştir. Pazaryeri listede tahsilatta hangi mağazanın ne kadar ücret alacağını bildirecektir. Mağazaların alacağı tutarlar toplamı pazaryerinin alacağı toplam tutardan düşülerek kalan bakiye pazaryerine iletilecektir.

Servise gönderilmesi gereken parametreler şu şekildedir;

Pazaryeri Ödeme Alma Servisi İstek Mesajı Parametreleri

<table><thead><tr><th>Parametre</th><th width="113">Tip</th><th width="108">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>MERCHANT</td><td>string</td><td>Evet</td><td>Üye iş yerine(Pazaryeri) özel oluşturulan eşsiz kimlik bilgisidir.</td></tr><tr><td>MERCHANT_KEY</td><td>string</td><td>Evet</td><td>Üye iş yerine(Pazaryeri) ö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 form 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>CC_NUMBER</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 16 haneli kart numarası bilgisidir.</td></tr><tr><td>EXP_MONTH</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 2 haneli son kullanım tarihini ay bilgisidir.</td></tr><tr><td>EXP_YEAR</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 4 haneli son kullanım tarihini yıl bilgisidir.</td></tr><tr><td>CC_CVV</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği kartın arka yüzünde bulunan 3 haneli güvenlik kodu bilgisidir.</td></tr><tr><td>CC_OWNER</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği kart sahibinin ad ve soyadı bilgisidir.</td></tr><tr><td>INSTALLMENT_NUMBER</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 gönderilmelidir.</td></tr><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><tr><td>CLIENT_IP</td><td>string</td><td>Evet</td><td>İşlemi gerçekleştiren kullanıcının(müşterinin) IP bilgisidir.</td></tr><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>Mağaza(submerchant)'a aktarılacak tutar bilgisidir.</td></tr></tbody></table>

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

```json
                                            
{  
   "Config":{  
      "MERCHANT":"TEST1234",
      "MERCHANT_KEY":"4oK26hK8MOXrIV1bzTRVPA==",
      "BACK_URL":"http://localhost:51062/Pages/EYV3DPay.aspx",
      "PRICES_CURRENCY":"TRY",
      "ORDER_REF_NUMBER":"412",
      "ORDER_AMOUNT":"10.00"
   },
   "CreditCard":{  
      "CC_NUMBER":"4531444531442283",
      "EXP_MONTH":"08",
      "EXP_YEAR":"2023",
      "CC_CVV":"000",
      "CC_OWNER":"test",
      "INSTALLMENT_NUMBER":"1"
   },
   "Customer":{  
      "FIRST_NAME":"--",
      "LAST_NAME":"-",
      "MAIL":"abc@domain.com",
      "PHONE":"-",
      "CITY":"-",
      "STATE":"-",
      "ADDRESS":"-",
      "CLIENT_IP":"::1"
   },
   "SubMerchantDetails":[{  
      "EXTERNAL_ID":"EXTERNAL_ID1",
      "AMOUNT":"5.00" 
   },
   {  
      "EXTERNAL_ID":"EXTERNAL_ID2",
      "AMOUNT":"4.00"
   }]
}
                                        
```

**2. Adım:**

EsnekPos bilgileri değerlendirerek üye iş yerine(pazaryerine) cevap mesajını gönderir.(Cevap mesajı içerisinde URL\_3DS alanı bulunur.)

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

Pazaryeri Ödeme Alma Servisi Cevap Mesajı Parametreleri

| Parametre            | Tip    | Zorunlu | Açıklama                                                                                                                       |
| -------------------- | ------ | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| ORDER\_REF\_NUMBER   | string | Evet    | Üye iş yeri(Pazaryeri) tarafından ödeme isteğinde, isteğe ait verilen referans numarası bilgisidir.                            |
| STATUS               | string | Evet    | Ödeme işlemi sonucu durum bilgisidir.                                                                                          |
| RETURN\_CODE         | string | Evet    | Ödeme işlemi sonucu durumu kod bilgisidir.                                                                                     |
| RETURN\_MESSAGE      | string | Evet    | Ödeme işlemi sonucu durum mesaj bilgisidir.                                                                                    |
| RETURN\_MESSAGE\_TR  | string | Evet    | Ödeme işlemi sonucu durum mesajı için Türkçe açıklama bilgisidir.                                                              |
| ERROR\_CODE          | string | Evet    | Başarısız ödeme işlemi sonucu hata kod bilgisidir. Banka hata kodları da bu parametre içerisinde dönüş yapılır.                |
| DATE                 | string | Evet    | Ödeme işlemi için işlem tarihi bilgisidir.                                                                                     |
| URL\_3DS             | string | Evet    | Üye iş yerinin kullanıcıyı yönlendireceği 3D Doğrulama Sayfası URL Adresi                                                      |
| REFNO                | string | Evet    | Ödeme işlemine ait EsnekPos sistemi tarafından verilen referans numarası bilgisi                                               |
| HASH                 | string | Evet    | Ödeme işlemine ait EsnekPos sistemi tarafından oluşturulan hash bilgisi                                                        |
| CUSTOMER\_NAME       | string | Evet    | İşlemi gerçekleştiren kullanıcının(müşterinin) ad soyad bilgisidir.                                                            |
| CUSTOMER\_MAIL       | string | Evet    | İşlemi gerçekleştiren kullanıcının(müşterinin) mail bilgisidir.                                                                |
| CUSTOMER\_PHONE      | string | Evet    | İşlemi gerçekleştiren kullanıcının(müşterinin) telefon bilgisidir.                                                             |
| CUSTOMER\_ADDRESS    | string | Evet    | İşlemi gerçekleştiren kullanıcının(müşterinin) adres bilgisidir.                                                               |
| CUSTOMER\_CC\_NUMBER | string | Evet    | Ödeme işleminin gerçekleştirileceği karta ait 16 haneli kart numarası bilgisidir. Kart bilgisi şifrelenmiş şekilde paylaşılır. |
| CUSTOMER\_CC\_NAME   | string | Evet    | Ödeme işleminin gerçekleştirileceği kart sahibinin ad ve soyadı bilgisidir.                                                    |
| IS\_NOT\_3D\_PAYMENT | string | Evet    | Ödeme işleminin 3D gerçekleşip gerçekleşmediği bilgisidir.                                                                     |
| VIRTUAL\_POS\_VALUES | string | Evet    | Ödeme işlemine ait sanalpos açıklamaları bilgisidir.                                                                           |
| RETURN\_MESSAGE\_3D  | string | Evet    | Bankadan alınan 3D ödeme işlemine ait cevap mesajı bilgisidir.                                                                 |

```json
                                            
{
    "ORDER_REF_NUMBER": "412",
    "STATUS": "SUCCESS",
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
    "RETURN_MESSAGE_TR": null,
    "ERROR_CODE": null,
    "DATE": "12.08.2020 11:43:34",
    "URL_3DS": "https://posservicetest.esnekpos.com/api/pay/3DSecurity/order/a8790d467f8d3fd718e0ecbb438cccfccd74ddca6a73bcd60a59bbb9ac8d4264",
    "REFNO": "151038",
    "HASH": "a8790d467f8d3fd718e0ecbb438cccfccd74ddca6a73bcd60a59bbb9ac8d4264",
    "CUSTOMER_NAME": "-- -",
    "CUSTOMER_MAIL": "abc@domain.com",
    "CUSTOMER_PHONE": "-",
    "CUSTOMER_ADDRESS": "-",
    "CUSTOMER_CC_NUMBER": "453144******2283",
    "CUSTOMER_CC_NAME": null,
    "IS_NOT_3D_PAYMENT": false,
    "VIRTUAL_POS_VALUES": null,
    "RETURN_MESSAGE_3D": null
}
                                        
```

Pazaryeri Ödeme Alma işlem cevap mesajında `STATUS` parametresinin değeri SUCCESS ve `RETURN_CODE` parametresinin değeri 0 olarak dönmesi 3D Ödeme işleminin kabul edildiğini ifade etmektedir. Bundan sonraki aşamada ödeme alınacak kullanıcıdan 3D doğrulama işlemi yapılacaktır.

**3. Adım:**

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

**4. Adım:**

EsnekPos 3D doğrulama işlemlerini sonuçlandırır, ödemenin sonucunu üye işyerinin(Pazaryeri) 1. adımda bildirmiş olduğu BACK\_URL adresine FORM POST metodu ile bildirir.

```html
                                            
<html xmlns=\"http://www.w3.org/1999/xhtml\" >
    <head><meta http-equiv=\"Content-Type\" content=\"text/html;charset=iso-8859-9\" /></head>
    <body onload='document.forms[0].submit()'>
        <form action='" + payment.DEALER_RESPONSE_URL + "' method='post'>
            <input type='hidden' name='DATE' value='{0}'>
            <input type='hidden' name='HASH' value='{0}'>
            <input type='hidden' name='ORDER_REF_NUMBER' value='{0}'>
            <input type='hidden' name='REFNO' value='{0}'>
            <input type='hidden' name='RETURN_CODE' value='{0}'>
            <input type='hidden' name='RETURN_MESSAGE' value='{0}'>
            <input type='hidden' name='RETURN_MESSAGE_TR' value='{0}'>
            <input type='hidden' name='STATUS' value='{0}'>
            <input type='hidden' name='ERROR_CODE' value='{0}'>
            <input type='hidden' name='CUSTOMER_NAME' value='{0}'>
            <input type='hidden' name='CUSTOMER_MAIL' value='{0}'>
            <input type='hidden' name='CUSTOMER_PHONE' value='{0}'>
            <input type='hidden' name='CUSTOMER_ADDRESS' value='{0}'>
            <input type='hidden' name='CUSTOMER_CC_NUMBER' value='{0}'>
            <input type='hidden' name='CUSTOMER_CC_NAME' value='{0}'>
            <input type='hidden' name='COMMISSION' value='{0}'>
            <input type='hidden' name='AMOUNT' value='{0}'>
            <input type='hidden' name='INSTALLMENT' value='{0}'>
    </form>
    </body>
</html>
                                                
```

Üye işyerine(Pazaryeri) gönderilen FORM POST mesajında `STATUS` parametresinin değeri SUCCESS ve `RETURN_CODE` parametresinin değeri 0 olarak dönmesi pazaryeri ödeme alma işleminin sorunsuz bir şekilde gerçekleştiğini ifade etmektedir.


# Ödeme Onaylama

**Pazaryeri Ödeme Onaylama Servisi İstek Modeli;**

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

Mağaza yada mağazaların ödemelerini almaları için pazaryeri tarafından ödeme tamamlama(onaylama) servisine istek gönderilmelidir. Tahsilata dair tüm mağazalar alacaklarını tahsil ettiğinde pazaryerine kalan tutar transfer edilir.

Servise gönderilmesi gereken parametreler şu şekildedir;

<table><thead><tr><th width="223">Parametre</th><th width="92">Tip</th><th width="91">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>MERCHANT</td><td>string</td><td>Evet</td><td>Üye iş yerine(Pazaryeri) özel oluşturulan eşsiz kimlik bilgisidir.</td></tr><tr><td>MERCHANT_KEY</td><td>string</td><td>Evet</td><td>Üye iş yerine(Pazaryeri) özel oluşturulan anahtar bilgisidir.</td></tr><tr><td>ORDER_REF_NUMBER</td><td>string</td><td>Evet</td><td>Üye iş yeri(Pazaryeri) 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><tr><td>EXTERNAL_ID</td><td>string</td><td>Evet</td><td>Mağaza(submerchant)'nın pazaryeri(merchant) sistemindeki ID bilgisidir. Bu bilgi pazaryeri tarafından atanmaktadır.</td></tr></tbody></table>

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

```json
                                            
{
    "MERCHANT": "TEST1234",
    "MERCHANT_KEY": "4oK26hK8MOXrIV1bzTRVPA==",
    "ORDER_REF_NUMBER": "412",
    "SubMerchantDetails": [
        {
            "EXTERNAL_ID": "EXTERNAL_ID1"
        },
        {
            "EXTERNAL_ID": "EXTERNAL_ID2"
        }
    ]
}
                                        
```

**Pazaryeri Ödeme Onaylama Servisi Cevap Mesajı;**

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

<table><thead><tr><th width="169">Parametre</th><th width="90">Tip</th><th width="83">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data</td><td>string</td><td>Evet</td><td>Onaylama işlemine ait veri bilgisidir.</td></tr><tr><td>ResultCode</td><td>string</td><td>Evet</td><td>Onaylama işlemi sonucu durumu kod bilgisidir.</td></tr><tr><td>ResultMessage</td><td>string</td><td>Evet</td><td>Onaylama işlemi sonucu durum mesaj bilgisidir.</td></tr><tr><td>Exception</td><td>string</td><td>Evet</td><td>Onaylama işlemi için işlem sırısında gerçekleşen istisna durum bilgisidir.</td></tr></tbody></table>

```json

{
    "Data": null,
    "ResultCode": "0",
    "ResultMessage": "SUCCESS",
    "Exception": null
}
                                        
```

Pazaryeri ödeme onaylama cevap mesajında `ResultMessage` parametresinin değeri **SUCCESS** ve `ResultCode` parametresinin değeri **0** olarak dönmesi onaylama işleminin başarılı olarak gerçekleştiğini ifade etmektedir.


# İade Talebi

**Pazaryeri İade Talebi Servisi İstek Modeli;**

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

İade talebinde hangi magazaya ait ödemenin iade olması gerektiğini belirtmek için SubMerchantDetails alanı doldurulmalıdır.

Servise gönderilmesi gereken parametreler şu şekildedir;

<table><thead><tr><th width="214">Parametre</th><th width="87">Tip</th><th width="73">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>MERCHANT</td><td>string</td><td>Evet</td><td>Üye iş yerine(Pazaryeri) özel oluşturulan eşsiz kimlik bilgisidir.</td></tr><tr><td>MERCHANT_KEY</td><td>string</td><td>Evet</td><td>Üye iş yerine(Pazaryeri) özel oluşturulan anahtar bilgisidir.</td></tr><tr><td>ORDER_REF_NUMBER</td><td>int</td><td>Evet</td><td>Üye iş yeri(Pazaryeri) tarafından ödeme işlemi isteği gönderilirken verilmiş olan referans numarası bilgisidir. İptal edilecek ödeme işlemi ilgili üye iş yerine ait belirtilen referans numarası ile eşleştirilerek işlem gerçekleştirilir.</td></tr><tr><td>AMOUNT</td><td>string</td><td>Evet</td><td>İşlem yapılmak istenen referans numarasına ait İptal/İade tutar bilgisidir.</td></tr><tr><td>EXTERNAL_ID</td><td>string</td><td>Evet</td><td>Mağaza(submerchant)'nın pazaryeri(merchant) sistemindeki ID bilgisidir. Bu bilgi pazaryeri tarafından atanmaktadır.</td></tr><tr><td>AMOUNT</td><td>string</td><td>Evet</td><td>Mağaza(submerchant)'dan kesilecek tutar bilgisidir.</td></tr></tbody></table>

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

```json
                                            
{
    "MERCHANT": "TEST1234",
    "MERCHANT_KEY": "4oK26hK8MOXrIV1bzTRVPA==",
    "ORDER_REF_NUMBER": "412",
    "AMOUNT": "5",
    "SubMerchantDetails":[{  
      "EXTERNAL_ID":"EXTERNAL_ID1",
      "AMOUNT":"5.00" 
     }]
}
                                        
```

**Pazaryeri İade Talebi Servisi Cevap Mesajı;**

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

<table><thead><tr><th width="224">Parametre</th><th width="119">Tip</th><th width="102">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>RETURN_CODE</td><td>string</td><td>Evet</td><td>İade işlemi sonucu durumu kod bilgisidir.</td></tr><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>İade işlemi sonucu durum mesaj bilgisidir.</td></tr><tr><td>STATUS</td><td>string</td><td>Evet</td><td>İade işlemi sonucu durum bilgisidir.</td></tr><tr><td>ORDER_REF_NUMBER</td><td>string</td><td>Evet</td><td>Üye iş yeri(Pazaryeri) tarafından ödeme isteğinde, isteğe ait verilen referans numarası bilgisidir.</td></tr><tr><td>REFNO</td><td>string</td><td>Evet</td><td>İade işlemine ait hoppa sistemi tarafından verilen referans numarası bilgisidir.</td></tr></tbody></table>

```json
                                            
{
    "RETURN_CODE": "00",
    "RETURN_MESSAGE": "₺5,00 iade talebiniz alınmıştır.",
    "STATUS": "ORDER_CANCEL",
    "ORDER_REF_NUMBER": 412,
    "REFNO": null
}
                                        
```

Pazaryeri iade talebi cevap mesajında `STATUS` parametresinin değeri **ORDER\_CANCEL** ve `RETURN_CODE` parametresinin değeri **0** olarak dönmesi onaylama işleminin başarılı olarak gerçekleştiğini ifade etmektedir.


# Mağaza Alacak Azaltma

**Mağaza Alacak Azaltma Servisi İstek Modeli;**

<table><thead><tr><th width="95.33333333333331">Metod</th><th width="540">API URL</th><th>Parametreler</th></tr></thead><tbody><tr><td>POST</td><td>http://base-url/api/services/AddSubMerchantAmount</td><td>JSON File</td></tr></tbody></table>

Tahsilat esnasından iletilen mağazanın(submerchant) alacaklı olduğu tutar, sonradan azaltılabilir.

Servise gönderilmesi gereken parametreler şu şekildedir;

<table><thead><tr><th width="219">Parametre</th><th width="83">Tip</th><th width="97">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>MERCHANT</td><td>string</td><td>Evet</td><td>Üye iş yerine(Pazaryeri) özel oluşturulan eşsiz kimlik bilgisidir.</td></tr><tr><td>MERCHANT_KEY</td><td>string</td><td>Evet</td><td>Üye iş yerine(Pazaryeri) özel oluşturulan anahtar bilgisidir.</td></tr><tr><td>ORDER_REF_NUMBER</td><td>string</td><td>Evet</td><td>Üye iş yeri(Pazaryeri) tarafından ödeme işlemi isteği gönderilirken verilmiş olan referans numarası bilgisidir. İptal edilecek ödeme işlemi ilgili üye iş yerine ait belirtilen referans numarası ile eşleştirilerek işlem gerçekleştirilir.</td></tr><tr><td>EXTERNAL_ID</td><td>string</td><td>Evet</td><td>Mağaza(submerchant)'nın pazaryeri(merchant) sistemindeki ID bilgisidir. Bu bilgi pazaryeri tarafından atanmaktadır.</td></tr><tr><td>AMOUNT</td><td>int</td><td>Evet</td><td>İşlem yapılmak istenen referans numarasına ait azaltılmak istenen tutar bilgisidir.</td></tr></tbody></table>

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

```json
                                            
{
    "MERCHANT": "TEST1234",
    "MERCHANT_KEY": "4oK26hK8MOXrIV1bzTRVPA==",
    "ORDER_REF_NUMBER": "412",
    "EXTERNAL_ID": "EXTERNAL_ID1",
    "AMOUNT": -5
}
                                        
```

**Mağaza Alacak Azaltma Servisi Cevap Mesajı;**

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

<table><thead><tr><th width="249">Parametre</th><th width="87">Tip</th><th width="99">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>RETURN_CODE</td><td>string</td><td>Evet</td><td>Alacak azaltma işlemi sonucu durumu kod bilgisidir.</td></tr><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>Alacak azaltma işlemi sonucu durum mesaj bilgisidir.</td></tr><tr><td>STATUS</td><td>string</td><td>Evet</td><td>Alacak azaltma işlemi sonucu durum bilgisidir.</td></tr><tr><td>ORDER_REF_NUMBER</td><td>string</td><td>Evet</td><td>Üye iş yeri(Pazaryeri) tarafından ödeme isteğinde, isteğe ait verilen referans numarası bilgisidir.</td></tr><tr><td>REFNO</td><td>string</td><td>Evet</td><td>Alacak azaltma işlemine ait hoppa sistemi tarafından verilen referans numarası bilgisidir.</td></tr></tbody></table>

```json
                                            
{
    "RETURN_CODE": "00",
    "RETURN_MESSAGE": "5,00 ₺ alt mağaza alacağına eklenmiştir.",
    "STATUS": "SUCCESS",
    "ORDER_REF_NUMBER": 412,
    "REFNO": null
}
                                        
```

Mağaza alacak azaltma talebi cevap mesajında `STATUS` parametresinin değeri **SUCCESS** ve `RETURN_CODE` parametresinin değeri **0** olarak dönmesi azaltma işleminin başarılı olarak gerçekleştiğini ifade etmektedir.


# İade/İptal Servisi

**İade/İptal Servisi İstek Modeli;**

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

Servise gönderilmesi gereken parametreler şu şekildedir;

<table><thead><tr><th width="217">Parametre</th><th width="117">Tip</th><th width="98">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. İptal edilecek ödeme işlemi ilgili üye iş yerine ait belirtilen referans numarası ile eşleştirilerek işlem gerçekleştirilir.</td></tr><tr><td>AMOUNT</td><td>int</td><td>Evet</td><td>İşlem yapılmak istenen referans numarasına ait İptal/İade tutar bilgisidir.</td></tr><tr><td>SYNC_WITH_POS</td><td>bool</td><td>Hayır</td><td>Ödemenin iade/iptal işlemini banka ile senkron bir şekilde gerçekleştirmenizi sağlayacak parametredir.<br>False yollamanız durumunda anlık olarak banka tarafından onaylanmayan iade/iptal talebiniz sistemimize kaydedilir ve daha sonrasında operasyon birimimiz tarafından işleminiz tamamlanır.</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" ,
      "AMOUNT": 29.99,
      "SYNC_WITH_POS": false,
}
                                        
```

**İade/İptal Servisi Cevap Mesajı;**

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

<table><thead><tr><th width="203">Parametre</th><th width="114">Tip</th><th width="110">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>RETURN_CODE</td><td>string</td><td>Evet</td><td>İade işlemi sonucu durumu kod bilgisidir.</td></tr><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>İade işlemi sonucu durum mesaj bilgisidir.</td></tr><tr><td>STATUS</td><td>string</td><td>Evet</td><td>İade işlemi sonucu durum 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>REFNO</td><td>string</td><td>Evet</td><td>İade işlemine ait hoppa sistemi tarafından verilen referans numarası bilgisidir.</td></tr><tr><td>TRANSACTION_ID</td><td>int</td><td>Evet</td><td>İade işlemi kart bankası tarafından anlık olarak onaylanırsa hoppa sistemi tarafında ödemenin alt işlemlerine eklenen kaydın referans numarası bilgisidir.</td></tr></tbody></table>

```json
                                            
{
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "29,99 ₺ iade talebiniz başarıyla kaydedilmiştir.",
    "STATUS": "SUCCESS",
    "ORDER_REF_NUMBER": null,
    "REFNO": null,
    "TRANSACTION_ID": null
}
                                        
```

İade/iptal işlem cevap mesajında `STATUS` parametresinin değeri **SUCCESS** ve `RETURN_CODE` parametresinin değeri **0** olarak dönmesi İade/iptal İşleminin başarılı olarak gerçekleştiğini ifade etmektedir.


# İşlem Listeleme Servisi

**İşlem Listeleme Servisi İstek Modeli;**

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

Servise gönderilmesi gereken parametreler şu şekildedir;

<table><thead><tr><th width="186">Parametre</th><th width="113">Tip</th><th width="89">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>START_DATE</td><td>string</td><td>Evet</td><td>Sorgu için başlangıç tarih bilgisidir.</td></tr><tr><td>END_DATE</td><td>string</td><td>Evet</td><td>Sorgu için bitiş tarih bilgisidir.</td></tr></tbody></table>

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

```json
                                            
{
      "MERCHANT": "TEST1234" , 
      "MERCHANT_KEY": "4oK26hK8MOXrIV1bzTRVPA==" ,
      "START_DATE" : "01-06-2020",
      "END_DATE" : "05-06-2020"
}
                                        
```

**İşlem Listeleme Servisi Cevap Mesajı;**

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

İşlem Listeleme Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th>Parametre</th><th width="106">Tip</th><th width="98">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>ID</td><td>int</td><td>Evet</td><td>Ödeme için sistem tarafından oluşturulan id bilgisidir.</td></tr><tr><td>MERCHANT</td><td>string</td><td>Evet</td><td>Üye iş yerine özel oluşturulan eşsiz isim bilgisidir.</td></tr><tr><td>DEALERID</td><td>int</td><td>Evet</td><td>Üye iş yerine özel oluşturulan eşsiz id bilgisidir.</td></tr><tr><td>DEALER_CODE</td><td>int</td><td>Evet</td><td>Üye iş yerine özel oluşturulan eşsiz kod bilgisidir.</td></tr><tr><td>INSERT_DATETIME</td><td>string</td><td>Evet</td><td>Ödemenin sisteme kaydedildiği zaman bilgisidir.</td></tr><tr><td>CARD_TYPE</td><td>string</td><td>Evet</td><td>Kart tipi bilgisidir.</td></tr><tr><td>CARD_NUMBER</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 16 haneli kart numarası bilgisidir. Kart bilgisi şifrelenmiş şekilde paylaşılır.</td></tr><tr><td>CARD_NAME</td><td>string</td><td>Evet</td><td>Kart isim bilgisidir.</td></tr><tr><td>CARD_BANK_NAME</td><td>string</td><td>Evet</td><td>Kartın ait olduğu banka bilgisidir.</td></tr><tr><td>CARD_FAMILY</td><td>string</td><td>Evet</td><td>Kart ailesi bilgisidir.</td></tr><tr><td>CURRENCY</td><td>string</td><td>Evet</td><td>Ödeme para birimi bilgisidir. Şu an için sadece “TRY, USD, EUR, GBP” kullanılmaktadır.</td></tr><tr><td>VIRTUALPOS_NAME</td><td>string</td><td>Evet</td><td>Sanal pos isim bilgisidir.</td></tr><tr><td>STATUS_NAME</td><td>string</td><td>Evet</td><td>Durum bilgisidir.</td></tr><tr><td>INSTALLMENT</td><td>int</td><td>Evet</td><td>Ödeme işlemine ait taksit bilgisidir.</td></tr><tr><td>AMOUNT</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait miktar bilgisidir.</td></tr><tr><td>COMMISSION_AMOUNT</td><td>double</td><td>Evet</td><td>Komisyon miktarı bilgisidir.</td></tr><tr><td>DEALER_PAYMENT_REF_CODE</td><td>string</td><td>Evet</td><td>Üye iş yeri ödeme referans kod bilgisidir.</td></tr><tr><td>COMMISSION_RATE</td><td>double</td><td>Evet</td><td>Komisyon oranı bilgisidir.</td></tr><tr><td>CUSTOMER_NAME</td><td>string</td><td>Evet</td><td>Müşteri isim bilgisidir.</td></tr><tr><td>CUSTOMER_GSM</td><td>string</td><td>Evet</td><td>Müşteri telefon bilgisidir.</td></tr><tr><td>USER_NAME</td><td>string</td><td>Evet</td><td>Kullanıcı adı bilgisidir.</td></tr><tr><td>CANCEL_REQUEST</td><td>string</td><td>Evet</td><td>İptal isteği olup olmadığı bilgisidir.</td></tr><tr><td>DEALER_NAME</td><td>string</td><td>Evet</td><td>Üye iş yeri isim bilgisidir.</td></tr><tr><td>STATUS_ID</td><td>int</td><td>Evet</td><td>Durum id bilgisidir.</td></tr><tr><td>JSONDATE</td><td>string</td><td>Evet</td><td>Json tarih bilgisidir.</td></tr><tr><td>JSONPAYMENT</td><td>string</td><td>Evet</td><td>Json ödeme bilgisidir.</td></tr><tr><td>CC_HASH</td><td>string</td><td>Evet</td><td>Kredi katı hash bilgisidir.</td></tr><tr><td>PAYMENT_BANK_CODE</td><td>string</td><td>Evet</td><td>Bankadan ödeme işlemi için dönen ödeme kodu bilgisidir.</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="125">Tip</th><th width="110">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>TRANSACTION_ID</td><td>int</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>STATUS_ID</td><td>int</td><td>Evet</td><td>Alt işlem hareketine ait durum id 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="95">Tip</th><th width="93">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>

**SUB\_MERCHANT\_AMOUNT\_TRANSFER\_DETAIL**

<table><thead><tr><th width="214">Parametre</th><th width="118">Tip</th><th width="110">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>EXTRACT_ID</td><td>int</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>

<table><thead><tr><th width="212">RETURN_CODE</th><th width="94">string</th><th width="97">Evet</th><th>Dekont listeleme işlemi sonucu durumu kod bilgisidir.</th></tr></thead><tbody><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>Dekont listeleme işlemi sonucu durum mesaj bilgisidir.</td></tr><tr><td>STATUS</td><td>string</td><td>Evet</td><td>Dekont listeleme işlemi sonucuna ait durum bilgisidir.</td></tr></tbody></table>

PRODUCTS

<table><thead><tr><th width="242">Parametre</th><th width="121">Tip</th><th width="101">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>PAYMENT_ID</td><td>int</td><td>Hayır</td><td>İlgili işlemin ödeme ID bilgisidir.</td></tr><tr><td>PRODUCT_ID</td><td>string</td><td>Evet</td><td>Ürünün ID bilgisidir.</td></tr><tr><td>PRODUCT_NAME</td><td>string</td><td>Evet</td><td>Ürünün isim 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>decimal</td><td>Hayır</td><td>Ürünün tutar bilgisidir.</td></tr></tbody></table>

```json
                                            
{
    "paymentList": [
        {
            "ID": 000001,
            "MERCHANT": "TEST1234",
            "DEALERID": 1,
            "DEALER_CODE": 1,
            "INSERT_DATETIME": "/Date(1591127723720)/",
            "CARD_TYPE": "DEBIT",
            "CARD_NUMBER": "654321******1234",
            "CARD_NAME": "Name Surname",
            "CARD_BANK_NAME": "turkekonomibankasia.s.",
            "CARD_FAMILY": null,
            "CURRENCY": "TRY",
            "VIRTUALPOS_NAME": "İş Bankası",
            "STATUS_NAME": "Ödeme - Başarılı",
            "STATUS_ID": 3,
            "INSTALLMENT": 1,
            "AMOUNT": 88.50,
            "COMMISSION_AMOUNT": 1.9912500,
            "DEALER_PAYMENT_REF_CODE": "20202020202020",
            "COMMISSION_RATE": 0.02250,
            "CUSTOMER_NAME": "Name Surname",
            "CUSTOMER_GSM": "5435434343",
            "USER_NAME": null,
            "CANCEL_REQUEST": false,
            "DEALER_NAME": null,
            "JSONDATE": null,
            "JSONPAYMENT": null,
            "CC_HASH": null,
            "PAYMENT_BANK_CODE": "444444",
            "TRANSACTIONS": [
                {
                    "TRANSACTION_ID": 343666,
                    "STATUS_NAME": "Ödeme - Başarılı",
                    "STATUS_ID": 3,
                    "AMOUNT": "88,50",
                    "DATE": "19.04.2020 18:35:09",
                    "MERCHANT_AMOUNT_TRANSFER_DETAIL": {
                        "EXTRACT_ID": 5715,
                        "SENDED_AMOUNT": "7,42",
                        "SENDED_DATE": "4.05.2020 11:58:11"
                    },
                    "SUB_MERCHANT_DETAILS": [
                        {
                            "EXTERNAL_ID": "999999",
                            "AMOUNT": "79,09",
                            "DATE": "19.04.2020 18:35:09",
                            "SUB_MERCHANT_AMOUNT_TRANSFER_DETAIL": {
                                "EXTRACT_ID": 5779,
                                "SENDED_AMOUNT": "79,09",
                                "SENDED_DATE": "4.05.2020 11:57:28"
                            }
                        }
                    ]
                }
            ]
        },
        {
            "ID": 000002,
            "MERCHANT": "TEST1234",
            "DEALERID": 1,
            "DEALER_CODE": 1,
            "INSERT_DATETIME": "/Date(1591127580893)/",
            "CARD_TYPE": "DEBIT",
            "CARD_NUMBER": "123456******9876",
            "CARD_NAME": "Name Surname",
            "CARD_BANK_NAME": "ziraat",
            "CARD_FAMILY": null,
            "CURRENCY": "TRY",
            "VIRTUALPOS_NAME": "Ziraatbank",
            "STATUS_NAME": "Ödeme - Başarısız",
            "STATUS_ID": 3,
            "INSTALLMENT": 1,
            "AMOUNT": 47.89,
            "COMMISSION_AMOUNT": 1.0775250,
            "VIRTUAL_POS_COMMISSION_AMOUNT": 0.4884780,
            "DEALER_PAYMENT_REF_CODE": "30303030303030",
            "COMMISSION_RATE": 0.02250,
            "CUSTOMER_NAME": "Name Surname",
            "CUSTOMER_GSM": "5435434343",
            "USER_NAME": null,
            "CANCEL_REQUEST": false,
            "DEALER_NAME": null,
            "JSONDATE": null,
            "JSONPAYMENT": null,
            "CC_HASH": null,
            "PAYMENT_BANK_CODE": "222222",
            "TRANSACTIONS": [
                {
                    "TRANSACTION_ID": 343666,
                    "STATUS_NAME": "Ödeme - Başarılı",
                    "STATUS_ID": 3,
                    "AMOUNT": "47,89",
                    "DATE": "19.04.2020 18:35:09",
                    "MERCHANT_AMOUNT_TRANSFER_DETAIL": {
                        "EXTRACT_ID": 5715,
                        "SENDED_AMOUNT": "2,88",
                        "SENDED_DATE": "4.05.2020 11:58:11"
                    },
                    "SUB_MERCHANT_DETAILS": [
                        {
                            "EXTERNAL_ID": "999999",
                            "AMOUNT": "43,93",
                            "DATE": "19.04.2020 18:35:09",
                            "SUB_MERCHANT_AMOUNT_TRANSFER_DETAIL": {
                                "EXTRACT_ID": 5779,
                                "SENDED_AMOUNT": "43,93",
                                "SENDED_DATE": "4.05.2020 11:57:28"
                            }
                        }
                    ]
                }
            ],
            "PRODUCTS": [
                {
                    "PAYMENT_ID": 123456,
                    "PRODUCT_ID": 25,
                    "PRODUCT_NAME": "Elektronik Ev Aletleri",
                    "PRODUCT_CATEGORY": "Ev Aletleri",
                    "PRODUCT_DESCRIPTION": "Elektronik Alet Satışı",
                    "PRODUCT_AMOUNT": 100.00
                }
            ]
        }
    ],
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
    "STATUS": "SUCCESS"
}
                                        
```

İşlem durum sorgulama cevap mesajında `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.

**Ö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="134">STATUS_ID</th><th width="184.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>


# Android Pos İşlem Listeleme Servisi

**Android Pos İşlem Listeleme Servisi İstek Modeli;**

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

Servise gönderilmesi gereken parametreler şu şekildedir;

<table><thead><tr><th width="186">Parametre</th><th width="113">Tip</th><th width="89">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>START_DATE</td><td>string</td><td>Evet</td><td>Sorgu için başlangıç tarih bilgisidir.</td></tr><tr><td>END_DATE</td><td>string</td><td>Evet</td><td>Sorgu için bitiş tarih bilgisidir.</td></tr></tbody></table>

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

```json
                                            
{
      "MERCHANT": "TEST1234", 
      "MERCHANT_KEY": "4oK26hK8MOXrIV1bzTRVPA==" ,
      "START_DATE" : "01-06-2020",
      "END_DATE" : "05-06-2020"
}
                                        
```

**Android Pos İşlem Listeleme Servisi Cevap Mesajı;**

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

Android Pos İşlem Listeleme Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th>Parametre</th><th width="106">Tip</th><th width="98">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>ID</td><td>int</td><td>Evet</td><td>Ödeme için sistem tarafından oluşturulan id bilgisidir.</td></tr><tr><td>MERCHANT</td><td>string</td><td>Evet</td><td>Üye iş yerine özel oluşturulan eşsiz isim bilgisidir.</td></tr><tr><td>DEALERID</td><td>int</td><td>Evet</td><td>Üye iş yerine özel oluşturulan eşsiz id bilgisidir.</td></tr><tr><td>DEALER_CODE</td><td>int</td><td>Evet</td><td>Üye iş yerine özel oluşturulan eşsiz kod bilgisidir.</td></tr><tr><td>INSERT_DATETIME</td><td>string</td><td>Evet</td><td>Ödemenin sisteme kaydedildiği zaman bilgisidir.</td></tr><tr><td>CARD_TYPE</td><td>string</td><td>Evet</td><td>Kart tipi bilgisidir.</td></tr><tr><td>CARD_NUMBER</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 16 haneli kart numarası bilgisidir. Kart bilgisi şifrelenmiş şekilde paylaşılır.</td></tr><tr><td>CARD_NAME</td><td>string</td><td>Evet</td><td>Kart isim bilgisidir.</td></tr><tr><td>CARD_BANK_NAME</td><td>string</td><td>Evet</td><td>Kartın ait olduğu banka bilgisidir.</td></tr><tr><td>CARD_FAMILY</td><td>string</td><td>Evet</td><td>Kart ailesi bilgisidir.</td></tr><tr><td>CURRENCY</td><td>string</td><td>Evet</td><td>Ödeme para birimi bilgisidir. Şu an için sadece “TRY, USD, EUR, GBP” kullanılmaktadır.</td></tr><tr><td>VIRTUALPOS_NAME</td><td>string</td><td>Evet</td><td>Sanal pos isim bilgisidir.</td></tr><tr><td>STATUS_NAME</td><td>string</td><td>Evet</td><td>Durum bilgisidir.</td></tr><tr><td>INSTALLMENT</td><td>int</td><td>Evet</td><td>Ödeme işlemine ait taksit bilgisidir.</td></tr><tr><td>AMOUNT</td><td>string</td><td>Evet</td><td>Ödeme işlemine ait miktar bilgisidir.</td></tr><tr><td>COMMISSION_AMOUNT</td><td>double</td><td>Evet</td><td>Komisyon miktarı bilgisidir.</td></tr><tr><td>VIRTUAL_POS_COMMISSION_AMOUNT</td><td>double</td><td>Evet</td><td>Sanal pos komisyon miktarı bilgisidir.</td></tr><tr><td>DEALER_PAYMENT_REF_CODE</td><td>string</td><td>Evet</td><td>Üye iş yeri ödeme referans kod bilgisidir.</td></tr><tr><td>COMMISSION_RATE</td><td>double</td><td>Evet</td><td>Komisyon oranı bilgisidir.</td></tr><tr><td>CUSTOMER_NAME</td><td>string</td><td>Evet</td><td>Müşteri isim bilgisidir.</td></tr><tr><td>CUSTOMER_GSM</td><td>string</td><td>Evet</td><td>Müşteri telefon bilgisidir.</td></tr><tr><td>USER_NAME</td><td>string</td><td>Evet</td><td>Kullanıcı adı bilgisidir.</td></tr><tr><td>CANCEL_REQUEST</td><td>string</td><td>Evet</td><td>İptal isteği olup olmadığı bilgisidir.</td></tr><tr><td>DEALER_NAME</td><td>string</td><td>Evet</td><td>Üye iş yeri isim bilgisidir.</td></tr><tr><td>STATUS_ID</td><td>int</td><td>Evet</td><td>Durum id bilgisidir.</td></tr><tr><td>JSONDATE</td><td>string</td><td>Evet</td><td>Json tarih bilgisidir.</td></tr><tr><td>JSONPAYMENT</td><td>string</td><td>Evet</td><td>Json ödeme bilgisidir.</td></tr><tr><td>CC_HASH</td><td>string</td><td>Evet</td><td>Kredi katı hash bilgisidir.</td></tr><tr><td>PAYMENT_BANK_CODE</td><td>string</td><td>Evet</td><td>Bankadan ödeme işlemi için dönen ödeme kodu bilgisidir.</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="125">Tip</th><th width="110">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>TRANSACTION_ID</td><td>int</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>STATUS_ID</td><td>int</td><td>Evet</td><td>Alt işlem hareketine ait durum id 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="95">Tip</th><th width="93">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>

**SUB\_MERCHANT\_AMOUNT\_TRANSFER\_DETAIL**

<table><thead><tr><th width="214">Parametre</th><th width="118">Tip</th><th width="110">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>EXTRACT_ID</td><td>int</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>

<table><thead><tr><th width="212">RETURN_CODE</th><th width="94">string</th><th width="97">Evet</th><th>Dekont listeleme işlemi sonucu durumu kod bilgisidir.</th></tr></thead><tbody><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>Dekont listeleme işlemi sonucu durum mesaj bilgisidir.</td></tr><tr><td>STATUS</td><td>string</td><td>Evet</td><td>Dekont listeleme işlemi sonucuna ait durum bilgisidir.</td></tr></tbody></table>

```json
                                            
{
    "paymentList": [
        {
            "ID": 000001,
            "MERCHANT": "TEST1234",
            "DEALERID": 1,
            "DEALER_CODE": 1,
            "INSERT_DATETIME": "/Date(1591127723720)/",
            "CARD_TYPE": "DEBIT",
            "CARD_NUMBER": "654321******1234",
            "CARD_NAME": "Name Surname",
            "CARD_BANK_NAME": "turkekonomibankasia.s.",
            "CARD_FAMILY": null,
            "CURRENCY": "TRY",
            "VIRTUALPOS_NAME": "İş Bankası",
            "STATUS_NAME": "Ödeme - Başarılı",
            "STATUS_ID": 3,
            "INSTALLMENT": 1,
            "AMOUNT": 88.50,
            "COMMISSION_AMOUNT": 1.9912500,
            "VIRTUAL_POS_COMMISSION_AMOUNT": 0.9027000,
            "DEALER_PAYMENT_REF_CODE": "20202020202020",
            "COMMISSION_RATE": 0.02250,
            "CUSTOMER_NAME": "Name Surname",
            "CUSTOMER_GSM": "5435434343",
            "USER_NAME": null,
            "CANCEL_REQUEST": false,
            "DEALER_NAME": null,
            "JSONDATE": null,
            "JSONPAYMENT": null,
            "CC_HASH": null,
            "PAYMENT_BANK_CODE": "444444",
            "TRANSACTIONS": [
                {
                    "TRANSACTION_ID": 343666,
                    "STATUS_NAME": "Ödeme - Başarılı",
                    "STATUS_ID": 3,
                    "AMOUNT": "88,50",
                    "DATE": "19.04.2020 18:35:09",
                    "MERCHANT_AMOUNT_TRANSFER_DETAIL": {
                        "EXTRACT_ID": 5715,
                        "SENDED_AMOUNT": "7,42",
                        "SENDED_DATE": "4.05.2020 11:58:11"
                    },
                    "SUB_MERCHANT_DETAILS": [
                        {
                            "EXTERNAL_ID": "999999",
                            "AMOUNT": "79,09",
                            "DATE": "19.04.2020 18:35:09",
                            "SUB_MERCHANT_AMOUNT_TRANSFER_DETAIL": {
                                "EXTRACT_ID": 5779,
                                "SENDED_AMOUNT": "79,09",
                                "SENDED_DATE": "4.05.2020 11:57:28"
                            }
                        }
                    ]
                }
            ]
        },
        {
            "ID": 000002,
            "MERCHANT": "TEST1234",
            "DEALERID": 1,
            "DEALER_CODE": 1,
            "INSERT_DATETIME": "/Date(1591127580893)/",
            "CARD_TYPE": "DEBIT",
            "CARD_NUMBER": "123456******9876",
            "CARD_NAME": "Name Surname",
            "CARD_BANK_NAME": "ziraat",
            "CARD_FAMILY": null,
            "CURRENCY": "TRY",
            "VIRTUALPOS_NAME": "Ziraatbank",
            "STATUS_NAME": "Ödeme - Başarısız",
            "STATUS_ID": 3,
            "INSTALLMENT": 1,
            "AMOUNT": 47.89,
            "COMMISSION_AMOUNT": 1.0775250,
            "VIRTUAL_POS_COMMISSION_AMOUNT": 0.4884780,
            "DEALER_PAYMENT_REF_CODE": "30303030303030",
            "COMMISSION_RATE": 0.02250,
            "CUSTOMER_NAME": "Name Surname",
            "CUSTOMER_GSM": "5435434343",
            "USER_NAME": null,
            "CANCEL_REQUEST": false,
            "DEALER_NAME": null,
            "JSONDATE": null,
            "JSONPAYMENT": null,
            "CC_HASH": null,
            "PAYMENT_BANK_CODE": "222222",
            "TRANSACTIONS": [
                {
                    "TRANSACTION_ID": 343666,
                    "STATUS_NAME": "Ödeme - Başarılı",
                    "STATUS_ID": 3,
                    "AMOUNT": "47,89",
                    "DATE": "19.04.2020 18:35:09",
                    "MERCHANT_AMOUNT_TRANSFER_DETAIL": {
                        "EXTRACT_ID": 5715,
                        "SENDED_AMOUNT": "2,88",
                        "SENDED_DATE": "4.05.2020 11:58:11"
                    },
                    "SUB_MERCHANT_DETAILS": [
                        {
                            "EXTERNAL_ID": "999999",
                            "AMOUNT": "43,93",
                            "DATE": "19.04.2020 18:35:09",
                            "SUB_MERCHANT_AMOUNT_TRANSFER_DETAIL": {
                                "EXTRACT_ID": 5779,
                                "SENDED_AMOUNT": "43,93",
                                "SENDED_DATE": "4.05.2020 11:57:28"
                            }
                        }
                    ]
                }
            ]
        }
    ],
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
    "STATUS": "SUCCESS"
}
                                        
```

İşlem durum sorgulama cevap mesajında `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.

**Ö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="134">STATUS_ID</th><th width="184.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>


# Üye İşyeri Bakiye Sorgulama Servisi

**Üye İş Yeri Bakiye Sorgulama Servisi İstek Modeli;**

Bu servis ile birlikte üye iş yeri ve pazar yerleri için alt mağaza bakiye sorgulaması yapabilirsiniz.

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

Servise gönderilmesi gereken parametreler şu şekildedir;

<table><thead><tr><th width="263">Parametre</th><th width="82">Tip</th><th width="86">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>CURRENCY</td><td>string</td><td>Evet</td><td>Sorgulanacak bakiyenin para birimidir.('TRY','USD','EUR')</td></tr><tr><td>DEALER_SUB_EXTERNAL_ID</td><td>string</td><td>Evet</td><td>Sorgulanacak alt mağazanın üye işyerinde bulunan kimlik bilgisidir. Pazaryeri bakiye sorgulaması için "DEALER_SUB_EXTERNAL_ID" parametresine mağazanın pazaryeri (merchant) tarafındaki ID bilgisini girmesi gerekmektedir.</td></tr></tbody></table>

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

```json
                                            
                                        
                                                
{
    "MERCHANT" : "TEST1234",
    "MERCHANT_KEY" : "4oK26hK8MOXrIV1bzTRVPA==",
    "CURRENCY" : "TRY",
    "DEALER_SUB_EXTERNAL_ID" : null
}
                                                
                                            
                                        
```

**Üye İş Yeri Bakiye Sorgulama Servisi Cevap Mesajı;**

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

İşlem Listeleme Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th width="205">Parametre</th><th width="101">Tip</th><th width="97">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>STATUS</td><td>string</td><td>Evet</td><td>Durum bilgisidir.</td></tr><tr><td>RETURN_CODE</td><td>string</td><td>Evet</td><td>Bakiye sorgulama işlemi sonucu durumu kod bilgisidir.</td></tr><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>Bakiye sorgulama işlemi sonucu durum mesaj bilgisidir.</td></tr><tr><td>DEALER_BALANCE</td><td>array</td><td>Evet</td><td>Bakiye sorgulaması sonucunda istenen detayların bulunduğu bir JSON dizisidir.</td></tr></tbody></table>

<br>

**DEALER BALANCE**

<table><thead><tr><th width="242">Parametre</th><th width="106">Tip</th><th width="112">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>DEALER_SUB_ID</td><td>int</td><td>Evet</td><td>Alt üye iş yerine ait benzersiz kimlik bilgisidir.</td></tr><tr><td>DEALER_ID</td><td>int</td><td>Evet</td><td>Üye iş yerine ait benzersiz kimlik bilgisidir.</td></tr><tr><td>DEALER_TYPE</td><td>string</td><td>Evet</td><td>Üye iş yerinin tip bilgisidir.</td></tr><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>DEALER_NAME</td><td>string</td><td>Evet</td><td>Üye iş yerine ait isim bilgisidir.</td></tr><tr><td>BALANCE</td><td>decimal</td><td>Evet</td><td>Bakiye miktarı bilgisidir.</td></tr><tr><td>CURRENCY</td><td>string</td><td>Evet</td><td>Para birimi bilgisidir.</td></tr><tr><td>DEPOSIT_BALANCE</td><td>decimal</td><td>Evet</td><td>Teminat bakiyesi bilgisidir.</td></tr><tr><td>CHARGEBACK_BALANCE</td><td>decimal</td><td>Evet</td><td>Ödeme itirazı bakiye bilgisidir.</td></tr><tr><td>TOTAL_BALANCE</td><td>decimal</td><td>Evet</td><td>Toplam bakiye bilgisidir.</td></tr></tbody></table>

```json
                                            
                                        

 {
    "STATUS": "SUCCESS",
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
    "DEALER_BALANCE": {
            "DEALER_SUB_ID": 0,
            "DEALER_ID": 1,
            "DEALER_TYPE": "UyeIsyeri",
            "MERCHANT": "TEST1234",
            "DEALER_NAME": "TEST A.Ş.",
            "BALANCE": 24187.2569,
            "CURRENCY": "TRY",
            "DEPOSIT_BALANCE": 0.00,
            "CHARGEBACK_BALANCE": 120.00,
            "TOTAL_BALANCE": 24187.2569
            }
 }
                                            
         
```


# İş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>


# İşlem Sorgulama Servisi - Detaylı

**İş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/ProcessQueryDetail</td><td>JSON File</td></tr></tbody></table>

Servise gönderilmesi gereken parametreler şu şekildedir;

<table><thead><tr><th width="226">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>paymentList</td><td>class</td><td>Evet</td><td>Detay bilgilerinin geleceği nesnedir.</td></tr></tbody></table>

**PAYMENTLIST**

<table><thead><tr><th width="282">Parametre</th><th width="106">Tip</th><th width="98">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>ID</td><td>int</td><td>Evet</td><td>Ödeme için sistem tarafından oluşturulan id bilgisidir.</td></tr><tr><td>MERCHANT</td><td>string</td><td>Evet</td><td>Üye iş yerine özel oluşturulan eşsiz isim bilgisidir.</td></tr><tr><td>DEALERID</td><td>int</td><td>Evet</td><td>Üye iş yerine özel oluşturulan eşsiz id bilgisidir.</td></tr><tr><td>DEALER_NAME</td><td>string</td><td>Evet</td><td>Üye iş isim bilgisidir.</td></tr><tr><td>DEALER_CODE</td><td>long?</td><td>Evet</td><td>Üye iş yerine özel oluşturulan eşsiz kod bilgisidir.</td></tr><tr><td>INSERT_DATETIME</td><td>DateTime</td><td>Evet</td><td>Ödemenin sisteme kaydedildiği zaman bilgisidir.</td></tr><tr><td>CARD_TYPE</td><td>string</td><td>Evet</td><td>Kart tipi bilgisidir.</td></tr><tr><td>CARD_CATEGORY</td><td>string</td><td>Evet</td><td>Kart türü bilgisidir.</td></tr><tr><td>CARD_NUMBER</td><td>string</td><td>Evet</td><td>Ödeme işleminin gerçekleştirileceği karta ait 16 haneli kart numarası bilgisidir. Kart bilgisi şifrelenmiş şekilde paylaşılır.</td></tr><tr><td>CARD_NAME</td><td>string</td><td>Evet</td><td>Kart isim bilgisidir.</td></tr><tr><td>CARD_BANK_NAME</td><td>string</td><td>Evet</td><td>Kartın ait olduğu banka bilgisidir.</td></tr><tr><td>CARD_FAMILY</td><td>string</td><td>Evet</td><td>Kart ailesi bilgisidir.</td></tr><tr><td>CURRENCY</td><td>string</td><td>Evet</td><td>Ödeme para birimi bilgisidir. Şu an için sadece “TRY, USD, EUR, GBP” kullanılmaktadır.</td></tr><tr><td>VIRTUALPOS_NAME</td><td>string</td><td>Evet</td><td>Sanal pos isim bilgisidir.</td></tr><tr><td>STATUS_NAME</td><td>string</td><td>Evet</td><td>Durum bilgisidir.</td></tr><tr><td>INSTALLMENT</td><td>int?</td><td>Evet</td><td>Ödeme işlemine ait taksit bilgisidir.</td></tr><tr><td>AMOUNT</td><td>decimal</td><td>Evet</td><td>Ödeme işlemine ait miktar bilgisidir.</td></tr><tr><td>COMMISSION_AMOUNT</td><td>decimal?</td><td>Evet</td><td>Komisyon miktarı bilgisidir.</td></tr><tr><td>DEALER_PAYMENT_REF_CODE</td><td>string</td><td>Evet</td><td>Üye iş yeri ödeme referans kod bilgisidir.</td></tr><tr><td>COMMISSION_RATE</td><td>decimal?</td><td>Evet</td><td>Komisyon oranı bilgisidir.</td></tr><tr><td>CUSTOMER_NAME</td><td>string</td><td>Evet</td><td>Müşteri isim bilgisidir.</td></tr><tr><td>CUSTOMER_GSM</td><td>string</td><td>Evet</td><td>Müşteri telefon bilgisidir.</td></tr><tr><td>USER_NAME</td><td>string</td><td>Evet</td><td>Kullanıcı adı bilgisidir.</td></tr><tr><td>CANCEL_REQUEST</td><td>bool?</td><td>Evet</td><td>İptal isteği olup olmadığı bilgisidir.</td></tr><tr><td>STATUS_ID</td><td>int?</td><td>Evet</td><td>Durum id bilgisidir.</td></tr><tr><td>JSONDATE</td><td>string</td><td>Evet</td><td>Json tarih bilgisidir.</td></tr><tr><td>NEED_FILES</td><td>bool</td><td>Evet</td><td>Dosya gerekliliği bilgisidir.</td></tr><tr><td>CONFIRM_FILES</td><td>bool</td><td>Evet</td><td>Onay durum bilgisidir.</td></tr><tr><td>INSERT_BY</td><td>string</td><td>Evet</td><td>Ekleyen kişi bilgisidir.</td></tr><tr><td>CHECK_INSERT_DATETIME</td><td>DateTime?</td><td>Evet</td><td>Kontol tarihi bilgisidir.</td></tr><tr><td>JSONPAYMENT</td><td>string</td><td>Evet</td><td>Json ödeme bilgisidir.</td></tr><tr><td>CC_HASH</td><td>string</td><td>Evet</td><td>Kredi katı hash bilgisidir.</td></tr><tr><td>PAYMENT_BANK_CODE</td><td>string</td><td>Evet</td><td>Bankadan ödeme işlemi için dönen ödeme kodu bilgisidir.</td></tr><tr><td>DEALER_RESPONSE_URL</td><td>string</td><td>Evet</td><td>Üye işyeri için response url bilgisidir.</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><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>PRODUCTS</td><td>array</td><td>Evet</td><td>Ürün liste bilgisidir.</td></tr></tbody></table>

**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>STATUS_ID</td><td>int</td><td>Evet</td><td>Status ID 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>class</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>

**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>class</td><td>Evet</td><td>Bu kısımda magazaya ait işlem hareketindeki tutarın transfer detay bilgileri verilir.</td></tr></tbody></table>

**SUB\_MERCHANT\_AMOUNT\_TRANSFER\_DETAIL**

<table><thead><tr><th width="214">Parametre</th><th width="118">Tip</th><th width="110">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>EXTRACT_ID</td><td>int</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>

**PRODUCTS**

<table><thead><tr><th width="242">Parametre</th><th width="121">Tip</th><th width="101">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>ID</td><td>int</td><td>Evet</td><td>ID bilgisidir.</td></tr><tr><td>PAYMENT_ID</td><td>int</td><td>Hayır</td><td>İlgili işlemin ödeme ID bilgisidir.</td></tr><tr><td>PRODUCT_ID</td><td>string</td><td>Evet</td><td>Ürünün ID bilgisidir.</td></tr><tr><td>PRODUCT_NAME</td><td>string</td><td>Evet</td><td>Ürünün isim 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>decimal</td><td>Hayır</td><td>Ürünün tutar bilgisidir.</td></tr></tbody></table>

Gönderilen istek sonrası dönecek cevap bilgisi aşağıdaki gibidir;

```json
{
    "paymentList": {
        "ID": 150838,
        "MERCHANT": "TEST1234",
        "DEALERID": 79,
        "DEALER_NAME": "Esnekpos Test",
        "DEALER_CODE": 79,
        "INSERT_DATETIME": "/Date(1595848596993)/",
        "CARD_TYPE": "VISA",
        "CARD_CATEGORY": "CREDIT",
        "CARD_NUMBER": "453144******2283",
        "CARD_NAME": "deneme",
        "CARD_BANK_NAME": "halk",
        "CARD_FAMILY": "Paraf",
        "CURRENCY": "TRY",
        "VIRTUALPOS_NAME": "İş Bankası",
        "STATUS_NAME": "Ödeme - Başarılı",
        "INSTALLMENT": 1,
        "AMOUNT": 29.99,
        "COMMISSION_AMOUNT": 0.8997000,
        "DEALER_PAYMENT_REF_CODE": "0.54251300 1595848596|93",
        "COMMISSION_RATE": 0.03000,
        "CUSTOMER_NAME": "DENEME DENEME",
        "CUSTOMER_GSM": "05325257315",
        "USER_NAME": null,
        "CANCEL_REQUEST": true,
        "STATUS_ID": 3,
        "JSONDATE": null,
        "NEED_FILES": false,
        "CONFIRM_FILES": false,
        "INSERT_BY": null,
        "CHECK_INSERT_DATETIME": null,
        "JSONPAYMENT": null,
        "CC_HASH": "7f1dcf965c7f93298d004045c93e1cb11c8ee768dd6566a83b95b80771726db6",
        "PAYMENT_BANK_CODE": null,
        "DEALER_RESPONSE_URL": "https://unomodoeu.com/index.php?route=extension/payment/esnekpos_payment",
        "PAYMENT_WAY": "Virtual Pos",
        "PHYSICAL_POS_TITLE": "",
        "PHYSICAL_POS_ID": 0,
        "TRANSACTIONS": [
            {
                "TRANSACTION_ID": 435488,
                "STATUS_NAME": "Ödeme - Bekliyor",
                "STATUS_ID": 1,
                "AMOUNT": "-29,99",
                "DATE": "27.07.2020 14:16:36",
                "MERCHANT_AMOUNT_TRANSFER_DETAIL": null,
                "SUB_MERCHANT_DETAILS": null
            },
            {
                "TRANSACTION_ID": 435489,
                "STATUS_NAME": "Ödeme - 3D Doğrulama Bekleniyor",
                "STATUS_ID": 2,
                "AMOUNT": "-29,99",
                "DATE": "27.07.2020 14:16:37",
                "MERCHANT_AMOUNT_TRANSFER_DETAIL": null,
                "SUB_MERCHANT_DETAILS": null
            },
            {
                "TRANSACTION_ID": 435490,
                "STATUS_NAME": "Ödeme - Başarılı",
                "STATUS_ID": 3,
                "AMOUNT": "29,99",
                "DATE": "27.07.2020 14:16:45",
                "MERCHANT_AMOUNT_TRANSFER_DETAIL": null,
                "SUB_MERCHANT_DETAILS": null
            },
            {
                "TRANSACTION_ID": 435495,
                "STATUS_NAME": "İptal - Başarısız",
                "STATUS_ID": 6,
                "AMOUNT": "-29,99",
                "DATE": "27.07.2020 17:55:30",
                "MERCHANT_AMOUNT_TRANSFER_DETAIL": null,
                "SUB_MERCHANT_DETAILS": null
            },
            {
                "TRANSACTION_ID": 435496,
                "STATUS_NAME": "İade - Başarısız",
                "STATUS_ID": 8,
                "AMOUNT": "-29,99",
                "DATE": "28.07.2020 09:07:25",
                "MERCHANT_AMOUNT_TRANSFER_DETAIL": null,
                "SUB_MERCHANT_DETAILS": null
            }
        ],
        "PRODUCTS": []
    },
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
    "STATUS": "SUCCESS"
}                                                                                
```

İşlem durum sorgulama cevap mesajında  `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.

**Ö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>


# Transfer Listeleme Servisi

**Dekont Listeleme Servisi İstek Modeli;**

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

Servise gönderilmesi gereken parametreler şu şekildedir;

<table><thead><tr><th width="176">Parametre</th><th width="117">Tip</th><th width="97">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>START_DATE</td><td>string</td><td>Evet</td><td>Sorgu için başlangıç tarih bilgisidir.</td></tr><tr><td>END_DATE</td><td>string</td><td>Evet</td><td>Sorgu için bitiş tarih bilgisidir.</td></tr></tbody></table>

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

```json
                                            
{
      "MERCHANT": "TEST1234" , 
      "MERCHANT_KEY": "4oK26hK8MOXrIV1bzTRVPA==" ,
      "START_DATE" : "01-06-2020",
      "END_DATE" : "05-06-2020"
}
                                        
```

**Dekont Listeleme Servisi Cevap Mesajı;**

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

Dekont Listeleme Servisi Cevap Mesajı Parametreleri

<table><thead><tr><th width="284">Parametre</th><th width="80">Tip</th><th width="90">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>EXTRACT_ID</td><td>array</td><td>Evet</td><td>İşlem dekont numarasıdır.</td></tr><tr><td>MERCHANT_ID</td><td>string</td><td>Evet</td><td>Üye iş yerine özel oluşturulan eşsiz id bilgisidir.</td></tr><tr><td>SUB_MERCHANT_EXTERNAL_ID</td><td>string</td><td>Evet</td><td>Pazaryerlerine ait mağazalar için oluşturulan eşsiz id bilgisidir.</td></tr><tr><td>MERCHANT_DISPLAY_NAME</td><td>string</td><td>Evet</td><td>Üye iş yeri isim bilgisidir.</td></tr><tr><td>SALES_COUNT</td><td>string</td><td>Evet</td><td>Mevcut dekont (ödeme) için satış (transaction) adet bilgisidir.</td></tr><tr><td>RETURN_COUNT</td><td>string</td><td>Evet</td><td></td></tr><tr><td>RETURN_AMOUNT</td><td>string</td><td>Evet</td><td></td></tr><tr><td>TRANSFERRED_AMOUNT</td><td>string</td><td>Evet</td><td>Transfer edilen tutar bilgisidir.</td></tr><tr><td>CURRENCY</td><td>string</td><td>Evet</td><td>Transfer para birimi bilgisidir. Şu an için sadece “TRY, USD, EUR, GBP” kullanılmaktadır.</td></tr><tr><td>STATUS_NAME</td><td>string</td><td>Evet</td><td>Transfere ait durum isim bilgisidir.</td></tr><tr><td>STATUS_ID</td><td>string</td><td>Evet</td><td>Transfere ait durum id bilgisidir.</td></tr><tr><td>TRANSFERRED_DATE</td><td>string</td><td>Evet</td><td>Transfere ait tarih bilgisidir.</td></tr><tr><td>TRANSACTIONS</td><td>array</td><td>Evet</td><td>Dekonta ait gerçekleşen işlem hareketlerini içeren Json dizisidir.</td></tr><tr><td>PAYMENT_ID</td><td>string</td><td>Evet</td><td>İşlem hareketine ödeme id bilgisidir.</td></tr><tr><td>TRANSACTION_ID</td><td>string</td><td>Evet</td><td>İşlem hareketi id bilgisidir.</td></tr><tr><td>TRANSACTION_DETAIL_ID</td><td>string</td><td>Evet</td><td>İşlem hareketi detay id bilgisidir.</td></tr><tr><td>ORDER_REF_NUMBER</td><td>array</td><td>Evet</td><td>Üye iş yeri tarafından ödeme isteğinde, isteğe ait verilen referans numarası bilgisidir.</td></tr><tr><td>DATE</td><td>array</td><td>Evet</td><td>İşlem tarihi bilgisidir.</td></tr><tr><td>PAYMENT_AMOUNT</td><td>array</td><td>Evet</td><td>İşlem hareketine ait ödeme tutarı bilgisidir.</td></tr><tr><td>AMOUNT</td><td>array</td><td>Evet</td><td>İşlem hareketine ait ödeme tutarı bilgisidir.</td></tr><tr><td>STATUS_NAME</td><td>array</td><td>Evet</td><td>İşlem hareketine ait durum isim bilgisidir.</td></tr><tr><td>STATUS_ID</td><td>array</td><td>Evet</td><td>İşlem hareketine ait durum id bilgisidir.</td></tr><tr><td>RETURN_CODE</td><td>string</td><td>Evet</td><td>Dekont listeleme işlemi sonucu durumu kod bilgisidir.</td></tr><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>Dekont listeleme işlemi sonucu durum mesaj bilgisidir.</td></tr><tr><td>STATUS</td><td>string</td><td>Evet</td><td>Dekont listeleme işlemi sonucuna ait durum bilgisidir.</td></tr></tbody></table>

```json
                                            
{
    "EXTRACTS": [
        {
            "EXTRACT_ID": 1111,
            "MERCHANT_ID": 89889,
            "SUB_MERCHANT_EXTERNAL_ID": "null",
            "MERCHANT_DISPLAY_NAME": "DISPLAY NAME",
            "SALES_COUNT": 1,
            "SALES_AMOUNT": "53,53",
            "RETURN_COUNT": 0,
            "RETURN_AMOUNT": "0,00",
            "TRANSFERRED_AMOUNT": "53,53",
            "CURRENCY": "TRY",
            "STATUS_NAME": "Ödendi",
            "STATUS_ID": 2,
            "TRANSFERRED_DATE": "1.06.2020 13:13:18",
            "TRANSACTIONS": [
                {
                    "PAYMENT_ID": 828282,
                    "TRANSACTION_ID": 222333,
                    "TRANSACTION_DETAIL_ID": 505050,
                    "ORDER_REF_NUMBER": "0.54251300 1595848596|939",
                    "DATE": "7.05.2020 20:47:03",
                    "PAYMENT_AMOUNT": "69,79",
                    "AMOUNT": "53,53",
                    "STATUS_NAME": "Ödeme - Başarılı",
                    "STATUS_ID": 3
                }
            ]
        },
        {
            "EXTRACT_ID": 2222,
            "MERCHANT_ID": null,
            "SUB_MERCHANT_EXTERNAL_ID": "99991",
            "MERCHANT_DISPLAY_NAME": "DISPLAY NAME",
            "SALES_COUNT": 3,
            "SALES_AMOUNT": "594,84",
            "RETURN_COUNT": 0,
            "RETURN_AMOUNT": "0,00",
            "TRANSFERRED_AMOUNT": "594,84",
            "CURRENCY": "TRY",
            "STATUS_NAME": "Ödendi",
            "STATUS_ID": 2,
            "TRANSFERRED_DATE": "1.06.2020 13:11:26",
            "TRANSACTIONS": [
                {
                    "PAYMENT_ID": 767676,
                    "TRANSACTION_ID": 21212121,
                    "TRANSACTION_DETAIL_ID": 4347,
                    "ORDER_REF_NUMBER": "0.54251300 1595848596|935",
                    "DATE": "1.05.2020 09:21:30",
                    "PAYMENT_AMOUNT": "178,24",
                    "AMOUNT": "131,63",
                    "STATUS_NAME": "Ödeme - Başarılı",
                    "STATUS_ID": 3
                },
                {
                    "PAYMENT_ID": 81295,
                    "TRANSACTION_ID": 232323,
                    "TRANSACTION_DETAIL_ID": 49494949,
                    "ORDER_REF_NUMBER": "0.54251300 1595848596|936",
                    "DATE": "6.05.2020 19:20:31",
                    "PAYMENT_AMOUNT": "379,99",
                    "AMOUNT": "297,75",
                    "STATUS_NAME": "Ödeme - Başarılı",
                    "STATUS_ID": 3
                },
                {
                    "PAYMENT_ID": 818181,
                    "TRANSACTION_ID": 242424,
                    "TRANSACTION_DETAIL_ID": 46464646,
                    "ORDER_REF_NUMBER": "0.54251300 1595848596|937",
                    "DATE": "6.05.2020 20:02:38",
                    "PAYMENT_AMOUNT": "207,59",
                    "AMOUNT": "165,46",
                    "STATUS_NAME": "Ödeme - Başarılı",
                    "STATUS_ID": 3
                }
            ]
        }
    ],
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
    "STATUS": "SUCCESS"
}
                                        
```

İşlem durum sorgulama cevap mesajında `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.

**Ö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="136">STATUS_ID</th><th width="174.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>


# Bin Sorgulama Servisi

**Bin Sorgulama Servisi İstek Modeli;**

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

Servise gönderilmesi gereken parametreler şu şekildedir;

<table><thead><tr><th width="151">Parametre</th><th width="96">Tip</th><th width="73">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>CardNumber</td><td>string</td><td>Evet</td><td>Sorgunamak istenen karta ait bin numarası bilgisidir.(16 haneli kart numarasının ilk 6 hanesi birleşik şekilde)</td></tr></tbody></table>

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

```json
                                            
{
	"CardNumber":"51015200"
}
                                        
```

**Bin Sorgulama Servisi Cevap Mesajı;**

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

<table><thead><tr><th width="153">Parametre</th><th width="81">Tip</th><th width="98">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>Bank_Name</td><td>string</td><td>Evet</td><td>Banka adı bilgisidir.</td></tr><tr><td>Bank_Brand</td><td>string</td><td>Evet</td><td>Marka adı bilgisidir.</td></tr><tr><td>Card_Type</td><td>string</td><td>Evet</td><td>Kart tipi bilgisidir.</td></tr><tr><td>Card_Family</td><td>string</td><td>Evet</td><td>Kart ailesi bilgisidir.</td></tr><tr><td>Card_Kind</td><td>string</td><td>Evet</td><td>Kart türü bilgisidir.Cevaplar; DEBİT KART,BİREYSEL KART,TİCARİ KART</td></tr></tbody></table>

```json
                                            
                                            
{
"Bank_Name": "IS BANK",
"Bank_Brand": "MASTERCARD",
"Card_Type": "CREDIT",
"Card_Family": "Maximum",
"Card_Kind": "BİREYSEL KART"
}
                                            
                                        
```


# Taksit Ve Oran Listeleme

**Taksit ve Oran Listeleme Servisi İstek Modeli;**

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

Servise gönderilmesi gereken parametreler şu şekildedir;

<table><thead><tr><th width="291">Parametre</th><th width="93">Tip</th><th width="75">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>AMOUNT</td><td>string</td><td>Hayır</td><td>Taksit ve oran tutar bilgisi</td></tr><tr><td>MERCHANT_PUBLIC_TOKEN</td><td>string</td><td>Hayır</td><td>https://pos.esnekpos.com/Pages/DealerProfile.aspx sayfasındaki Merchant Public Token bilgisi. Bu alan gönderildiğinde MERCHANT ve MERCHANT_KEY bilgisi gönderilmemelidir.</td></tr><tr><td>BIN</td><td>string</td><td>Hayır</td><td>Kartı numarasının ilk 8 hanesi</td></tr><tr><td>COMMISSION_FOR_CUSTOMER</td><td>int</td><td>Hayır</td><td>Komisyonun müşteriye mi yoksa satıcıya mı yansıtılacağı bilgisi. (0 veya 1 gönderilir.)</td></tr></tbody></table>

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

```json
                                            
{
      "MERCHANT": "TEST1234" , 
      "MERCHANT_KEY": "4oK26hK8MOXrIV1bzTRVPA==",
      "AMOUNT": "1250,00",
      "MERCHANT_PUBLIC_TOKEN": "8f72166e-251f-4ae2-b92a-c5364f17109d",
      "COMMISSION_FOR_CUSTOMER": 1
}
                                        
```

**Taksit ve Oran Listeleme Servisi Cevap Mesajı;**

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

<table><thead><tr><th>Parametre</th><th width="85">Tip</th><th width="69">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>FAMILY</td><td>string</td><td>Evet</td><td>Kart ailesi bilgisidir.</td></tr><tr><td>INSTALLMENT</td><td>int</td><td>Evet</td><td>Taksit sayısı bilgisidir.</td></tr><tr><td>RATE</td><td>double</td><td>Evet</td><td>Komisyon oranı bilgisidir.</td></tr><tr><td>AMOUNT_PER_INSTALLMENT</td><td>int</td><td>Evet</td><td>Her bir taksit için tutar bilgisidir.</td></tr><tr><td>AMOUNT_TOTAL</td><td>int</td><td>Evet</td><td>Toplam tutar bilgisidir.</td></tr><tr><td>AMOUNT_BE_SEND_TO_DEALER</td><td>int</td><td>Evet</td><td>Üye işyerine gönderilen tutar bilgisidir.</td></tr></tbody></table>

```json
                                            
{
    "STATUS": "SUCCESS",
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
    "INSTALLMENTS": [
        {
            "FAMILY": "bonus",
            "INSTALLMENT": 1,
            "RATE": 0.03,
            "AMOUNT_PER_INSTALLMENT": 0,
            "AMOUNT_TOTAL": 0,
            "AMOUNT_BE_SEND_TO_DEALER": 0
        },
        {
            "FAMILY": "bonus",
            "INSTALLMENT": 2,
            "RATE": 0.042,
            "AMOUNT_PER_INSTALLMENT": 0,
            "AMOUNT_TOTAL": 0,
            "AMOUNT_BE_SEND_TO_DEALER": 0
        } ,
        .
        .
        .
        {
            "FAMILY": "axess",
            "INSTALLMENT": 1,
            "RATE": 0.03,
            "AMOUNT_PER_INSTALLMENT": 0,
            "AMOUNT_TOTAL": 0,
            "AMOUNT_BE_SEND_TO_DEALER": 0
        },
        .
        .
        .
    ]
}
                                        
```


# Dekont Listeleme Servisi

**Dekont Listeleme Servisi İstek Modeli;**

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

Servise gönderilmesi gereken parametreler şu şekildedir;

<table><thead><tr><th width="291">Parametre</th><th width="93">Tip</th><th width="75">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>START_DATE</td><td>Date</td><td>Evet</td><td>Yapılacak olan sorgulamanın başlangıç tarih bilgisidir.</td></tr><tr><td>END_DATE</td><td>Date</td><td>Evet</td><td>Yapılacak olan sorgulamanın bitiş tarih bilgisidir.</td></tr></tbody></table>

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

```json
                                            
{
    "MERCHANT": "TEST1234",
    "MERCHANT_KEY": "4oK26hK8MOXrIV1bzTRVPA==",
    "START_DATE": "2024-01-01",
    "END_DATE": "2024-10-01"
}
                                       
```

**Dekont Listeleme Servisi Cevap Mesajı;**

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

**RECEIPTS**

<table><thead><tr><th>Parametre</th><th width="85">Tip</th><th width="69">Zorunlu</th><th>Açıklama</th></tr></thead><tbody><tr><td>NUMBER</td><td>string</td><td>Evet</td><td>Sorgulama İşlemi Sonucu Gelen Dekont Numarası Bilgisidir.</td></tr><tr><td>SERIAL</td><td>string</td><td>Evet</td><td>Sorgulama İşlemi Sonucu Gelen Dekonta Ait Seri Numarası Bilgisidir.</td></tr><tr><td>DEALER_NAME</td><td>string</td><td>Evet</td><td>Sorgulama İşlemi Sonucu Gelen Dekontun Ait Olduğu Üye İşyeri Bilgisidir.</td></tr><tr><td>MERCHANT</td><td>string</td><td>Evet</td><td>Üye İş Yerine Özel Oluşturulan Eşsiz Kimlik Bilgisidir.</td></tr><tr><td>DATE</td><td>int</td><td>Evet</td><td>İşlem Sonucundaki Dekont Üretim Tarihi Bilgisidir.</td></tr><tr><td>AMOUNT</td><td>double</td><td>Evet</td><td>İlgili Dekontun Tutar Bilgisidir.</td></tr><tr><td>CURRENCY</td><td>int</td><td>Evet</td><td>İlgili Dekontun Para Birimi Bilgisidir.</td></tr><tr><td>URL</td><td>int</td><td>Evet</td><td>Dekonta Erişim Sağlanabilecek URL Bilgisidir.</td></tr></tbody></table>

<table><thead><tr><th width="201">Parametre</th><th width="76">Tip</th><th width="112">Zorunluluk</th><th>Açıklama</th></tr></thead><tbody><tr><td>RETURN_CODE</td><td>string</td><td>Evet</td><td>Sorgulama işlemi sonucu durumu kod bilgisidir.</td></tr><tr><td>RETURN_MESSAGE</td><td>string</td><td>Evet</td><td>Sorgulama işlemi sonucu durum mesaj bilgisidir.</td></tr><tr><td>STATUS</td><td>string</td><td>Evet</td><td>Sorgulama işlemi sonucu durum bilgisidir.</td></tr></tbody></table>

```json
                                            
{
    "RECEIPTS": [
        {
            "NUMBER": "13537",
            "SERIAL": "EPT",
            "DEALER_NAME": "Elekse A.Ş.",
            "MERCHANT": "TEST1234",
            "DATE": "31.05.2024",
            "AMOUNT": "364,41",
            "CURRENCY": "TRY",
            "URL": "*****/Pages/ReceiptDetail.aspx?Hash=B0F6CDB81BC1F74C570F7CC5DE31752E&CurrencyId=1"
        },
        {
            "NUMBER": "14397",
            "SERIAL": "EPT",
            "DEALER_NAME": "Elekse A.Ş.",
            "MERCHANT": "TEST1234",
            "DATE": "30.06.2024",
            "AMOUNT": "0,22",
            "CURRENCY": "TRY",
            "URL": "*****/Pages/ReceiptDetail.aspx?Hash=0942A4C0998E9936B5B029AC82E94DE1&CurrencyId=1"
        },
        {
            "NUMBER": "15088",
            "SERIAL": "EPT",
            "DEALER_NAME": "Elekse A.Ş.",
            "MERCHANT": "TEST1234",
            "DATE": "31.07.2024",
            "AMOUNT": "0,13",
            "CURRENCY": "TRY",
            "URL": "*****/Pages/ReceiptDetail.aspx?Hash=140A0688E2975BA759F51626D330047B&CurrencyId=1"
        }
    ],
    "RETURN_CODE": "0",
    "RETURN_MESSAGE": "SUCCESS",
    "STATUS": "SUCCESS"
}                                        
```


# Hata Kodları

**Servis Hata Kodları ve Açıklamaları;**

Servisler üzerinden yapılan işlemlerin sonucunda, hata oluşması durumunda sistem tarafından belirli hata kodları dönmektedir. Esnekpos ödeme API'sinin döndüğü cevap ve bu cevaptaki hata kodları ile açıklamaları şu şekildedir;

<table><thead><tr><th width="90">RETURN_CODE</th><th width="234.33333333333331">STATUS</th><th>Açıklama</th></tr></thead><tbody><tr><td>100</td><td>ERROR</td><td>Servis kullanım yetkisi olmadığında ve diğer tüm genel hatalarda bu mesaj dönmektedir.</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 yapılamadığında bu hata mesajı dönmektedir.</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>106</td><td>BRAND_ERROR</td><td>Ödeme yapılacak kartın family(bonus, amex, combo, vs...) tipi üye işyerine kısıtlandırılmış ise bu mesaj dönmektedir.</td></tr><tr><td>201</td><td>PAYMENT_ERROR</td><td>Ödeme esnasında alınan hatalara bu mesaj dönmektedir.</td></tr><tr><td>206</td><td>Not3DAuthentication</td><td>3D Doğrulama yapılamadığı zaman bu hata mesajı dönmektedir.</td></tr><tr><td>34</td><td>BLOCKED_ERROR</td><td>Kara Listede yer alan bir veri ile işlen yapıldığına bu hata mesajı dönmektedir.</td></tr><tr><td>300</td><td>ORDER_CANCEL</td><td>Pazaryeri ödeme iptal servisinde oluşan hatalarda bu mesaj dönmektedir.</td></tr><tr><td>400</td><td>PROCESS_QUERY</td><td>İşlem durum sorgulama servisinde oluşan hatalarda bu mesaj dönmektedir.</td></tr><tr><td>500</td><td>DIRECT_PAYMENT</td><td>3D'siz(Direk) ödeme işlemlerinde oluşan hatalarda bu mesaj dönmektedir.</td></tr></tbody></table>

hoppa ödeme API'sinin döndüğü örnek cevap şablonu;

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


