# Gereksinimler

Servisleri kullanmaya başlamadan aşağıdaki işlemleri yaptığınızdan ve gerekli  bilgileri temin ettiğinizden emin olunuz.

* Bu dokümanın yayınlanmış son versiyon olduğunu kontrol ediniz.&#x20;
* Haso ile iletişime geçerek servislere erişim sağlayacağınız IP bilgilerini yazılı olarak iletiniz.&#x20;
* Servisi kullanabilmek için gerekli merchantId, merchantUser ve uiMerchantSalt bilgilerini temin ediniz.
* Sandbox ortamı ile live ortamının kullanım bilgileri farklıdır. Servisi kullanmak için edindiğiniz size özel bilgilerin sandbox/live bilgileri olduğunu kontrol ediniz. Dökümandaki API URL bilgisi sandbox ortamıdır.
* Servis isteği yaptığınız sunucunuzun TLS 1.2 desteği olduğundan emin olunuz.
* Bilgi ve destek için <info@haso.com.tr>


# Erişim Jetonu Alma

POST /Index/GetToken

Host: {SERVIS\_URL}

Content-Type: application/json

Bu method kullanılarak **HASO** sisteminden daha sonraki istekler de kullanılacak erişim jetonu elde edilir. Her alınan Jetonun **20dk geçerlilik süresi** vardır. Geçerlilik süresi geçen Jetonlar bir daha kullanılamayacaktır.

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="165">Ad</th><th width="111">Tipi</th><th width="63">Z/O</th><th>Açıklama</th></tr></thead><tbody><tr><td>refNumber</td><td>String</td><td>Z</td><td>Sizin tarafınızdan oluşturulan isteğinize ait tanımlayıcıdır. Örn: 1905231436-1</td></tr><tr><td>merchantId</td><td>String</td><td>Z</td><td><strong>HASO</strong> tarafından verilen sabit parametredir.</td></tr><tr><td>merchantUser</td><td>String(36)</td><td>Z</td><td><strong>HASO</strong> tarafından verilen sabit parametredir.</td></tr><tr><td>uiMerchantSalt</td><td>String</td><td>Z</td><td><strong>HASO</strong> tarafından verilen sabit parametredir.</td></tr><tr><td>orderAmount</td><td>Decimal</td><td>Z</td><td>Gönderilecek değer 100 ile çarpılarak gönderilmelidir ondalık basamak nokta yada virgül içermemelidir. Örn: 500 TL lik bir alışveriş için 500*100 = 50000 değeri gönderilmelidir.</td></tr></tbody></table>

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="170">Ad</th><th width="224">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td>bool</td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List&#x3C;string></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;string, object></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>Data[“Token”]</td><td>String</td><td>Üretilen token bilgisi</td></tr><tr><td>Data[“videoUrl”]</td><td>Decimal</td><td>Bilgilendirme amaçlı kullanıcılara göstermek istenebilecek HASO tanıtımı ile ilgili video URL’si</td></tr></tbody></table>


# Yeni Limit Oluşturma

FORM POST /ServletV2/GetLimit

Host: {SERVIS\_URL}

Content-Type: text/html

Müşterinin sipariş vermeden sadece limitinin belirlenmesi için kullanılır. Aşağıdaki giriş parametreleri ile gelinen veriler üzerinden Limit Alma HASO ekranları açılır ve müşteri limit alma sürecine başlar. İşlemler tamamlandıktan sonra ilgili Müşteri ve Limit bilgileri E-Ticaret sistemine bildirilir.

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="158">Ad</th><th width="79">Tipi</th><th width="63">Z/O</th><th>Açıklama</th></tr></thead><tbody><tr><td>token</td><td>String</td><td>Z</td><td>/Index/GetToken methodundan elde edilen token bilgisi</td></tr><tr><td>merchantId</td><td>String</td><td>Z</td><td><strong>HASO</strong> tarafından verilen sabit parametredir.</td></tr><tr><td>okUrl</td><td>String</td><td>Z</td><td>Sipariş başarılı olarak tamamlanırsa HASO Sistemi tarafıdan <strong>FORM POST</strong> edilecek URL adresiniz.</td></tr><tr><td>failUrl</td><td>String</td><td>Z</td><td>Limit başarısız olarak tamamlanırsa ya da iptal edilirse <strong>HASO</strong> Sistemi tarafıdan FORM POST edilecek URL adresiniz.</td></tr><tr><td>callbackUrl</td><td>String</td><td>Z</td><td>Limit işleminin başarılı olması ve müşterinin <strong>HASO</strong> UI ekranlarında tamamlanmış olduğu halde işlemi yarıda bırakması tarayıcısını kapatması gibi durumlarda E-Ticaret sistemine failURL veya okURL dönüşü sağlanamazsa limit sonucu bildiriminin kesilmemesi için <strong>HASO</strong> tarafından E-Ticaret sisteminine bildirimin sağlanmasını garanti edecek URL.</td></tr><tr><td>response</td><td>String</td><td>O</td><td>Parametre değeri olarak json bilgisi gönderilirse istekten sonra <strong>HASO</strong> ekranlarına tarayıcı yönlendirmesi yapılmaz, istek sonucu <strong>JSON</strong> olarak cevaplanır. Bu şekilde gelen isteklerin cevap bilgisi aşağıda “<strong>Çıkış Parametreleri</strong>” bölümünde açıklanmıştır.</td></tr><tr><td>IpAddress</td><td>String</td><td>O</td><td>İsteği yapan müşterinin gerçek IP Adresi loglama ve herhangi bir sorun durumunda kullanılacak veridir.</td></tr><tr><td>mobileNumber</td><td>String</td><td>O</td><td>GSM numarası ilk basamağında 0 içermeyen 10 haneli olarak aşağıdaki formatta sağlanmalıdır. Format : ########## örn : 5536616020</td></tr><tr><td>birthDate</td><td>String</td><td>O</td><td>Doğum Tarihi Yıl-Ay-Gün aşağıdaki formatta sağlanmalıdır. Format : yyyy-MM-dd örn : 19830817</td></tr><tr><td>email</td><td>String</td><td>O</td><td>E-Posta adresi</td></tr><tr><td>name</td><td>String</td><td>O</td><td>Ad bilgisi</td></tr><tr><td>surname</td><td>String</td><td>O</td><td>Soyad bilgisi</td></tr><tr><td>tckn</td><td>String</td><td>O</td><td>TCKN bilgisi</td></tr></tbody></table>

#### Çıkış Parametreleri

#### Giriş parametresi reponse=json olarak gönderilmişse dönüş bilgileri aşağıda açıklanmıştır;

<table data-full-width="true"><thead><tr><th width="116">Ad</th><th width="124">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td>Bool</td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List&#x3C;string></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr></tbody></table>

#### Data

#### Data parametresi içeriği aşağıda belirtilmiştir;

<table data-full-width="true"><thead><tr><th width="128">Ad</th><th width="103">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>URL</td><td>String</td><td>Limit alma işlemi için isteğe özel hazırlanmış kullanılacak <strong>HASO</strong> url bilgisi.</td></tr><tr><td>Expiredate</td><td>DateTime</td><td>URL bilgisinin geçerli olacağı zaman aralığı bu süre sonlandığında URL geçersiz olacaktır.</td></tr></tbody></table>

**HASO** ekranlarında limit alma işlemleri tamamlandığında bildirilen **OkUrl** ve **callbackUrl** adreslerine dönüş bilgileri aşağıda açıklanmıştır.

<table data-full-width="true"><thead><tr><th width="376">Ad</th><th width="121">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td><p><strong>OkUrl</strong></p><p>callbackUrl</p><p>(<strong>callbackUrl</strong> tamamlanan limit bildirimi için <strong>okURL</strong> erişimi sağlanamazsa aynı verilerle E-Ticaret sisteminden Http 200 durum kodu alınana kadar istek yapılır.)</p></td><td>Form Post</td><td>Müşterinin Limiti <strong>HASO</strong> arayüzlerinde başarılı olarak tamamlanırsa. İstekde belirttiğiniz <strong>okURL</strong> ya da <strong>callbackUrl</strong> URL adresine aşağıdaki parametrelerle <strong>FORM POST</strong> yöntemi ile geri bildirim sağlanacaktır. Geri bildirim içerisinde bulunan veriler şöyledir;</td></tr><tr><td>Success</td><td>Bool</td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List&#x3C;string></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr></tbody></table>

#### Data

#### Data parametresi içeriği aşağıda belirtilmiştir;

<table data-full-width="true"><thead><tr><th width="160">Ad</th><th width="97">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>NameSurname</td><td>String</td><td>Müşteri Ad Soyad</td></tr><tr><td>CustomerId</td><td>String</td><td><strong>HASO</strong> sisteminideki müşteri numarası Limit alma işlemi tamamlandıktan sonra sistemde atanan Müşteri Numarası.</td></tr><tr><td>CustomerLimit</td><td>Numeric</td><td>müşteriye atanan <strong>HASO</strong> limitinin değeri.</td></tr></tbody></table>


# Müşteri Limit Bilgilerini Getir

FORM POST /Index/GetCustomerInformation

Host: {SERVIS\_URL}

Content-Type: application/json

**HASO** sisteminde tanımlı bir müşterinin limit bilgilerini bu method ile alabilirsiniz. **Giriş** ve **Çıkış** parametreleri aşağıda detaylı olarak listelenmiştir.

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="135">Ad</th><th width="78">Tipi</th><th width="65">Z/O</th><th>Açıklama </th></tr></thead><tbody><tr><td>MerchantId</td><td>String</td><td>Z</td><td><strong>HASO</strong> tarafından verilen sabit parametredir.</td></tr><tr><td>CustomerId</td><td>String</td><td>Z</td><td><strong>HASO</strong> sisteminde müşterinin sahip olduğu unique değerdir. Transaction sonucunda okURL yada callBackURL sonunda iletilmiştir. Örn:5004</td></tr></tbody></table>

Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="214">Ad</th><th width="222">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td>bool</td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List&#x3C;string></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;string, object></td><td>Eğer success=true ise keyvalue şeklinde data dön</td></tr><tr><td>Data[“CustomerInfo”]</td><td>Dictionary&#x3C;string, object></td><td>Müşteri limit bilgilerini içeren nesne. Eğer null değeri atanmışsa ilgili customerId’ye sahip müşteri <strong>HASO</strong> sisteminde bulunmuyordur.</td></tr></tbody></table>

#### CustomerInfo Model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th width="337">Ad</th><th width="98">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>CustomerInfo.CustomerLimit</td><td>Decimal</td><td>Müşterinin <strong>HASO</strong> limiti</td></tr><tr><td>CustomerInfo.CustomerLimitFormatter</td><td>String</td><td>Müşterinin <strong>HASO</strong> limiti formatlanmış biçimde</td></tr></tbody></table>


# Cep Telefonu Numarası Değiştirme

FORM POST /Index/ChangeCustomerGsmNo

Host: {SERVIS\_URL}

Content-Type: application/json

Kullanıcının **HASO** sisteminde bulunan Cep Telefonu bilgisini değiştirmeye olanak sağlar.

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="138">Ad</th><th width="79">Tipi</th><th width="62">Z/O</th><th>Açıklama</th></tr></thead><tbody><tr><td>MerchantId</td><td>String</td><td>Z</td><td><strong>HASO</strong> tarafından verilen sabit parametredir.</td></tr><tr><td>CustomerId</td><td>String</td><td>Z</td><td><strong>HASO</strong> sisteminde müşterinin sahip olduğu unique değerdir. Transaction sonucunda okURL yada callBackURL sonunda iletilmiştir. Örn:5004</td></tr><tr><td>NewGsmNo</td><td>String</td><td>Z</td><td>Yeni cep telefonu numarası 0 içermeden 10 karakter olarak örn: 5536625050</td></tr></tbody></table>

Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="195">Ad</th><th width="224">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td>bool</td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List&#x3C;string></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;string, object></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>Data[“message”]</td><td>String</td><td>İşleminin başarılı olduğuna dair mesaj bulunur. <strong>RS100</strong> kodu işlemin başarılı olduğunu bildirir. <strong>RS115</strong> kodu cep telefonu kullanılamaz “<strong>KkbPhones</strong>” verisi doludur. <strong>H311</strong> kodu değiştirilmek istenen Cep Telefonu zaten aynıdır <strong>H223</strong> Müşteri bulunamadı.</td></tr><tr><td>Data[“KkbPhones”]</td><td>List&#x3C;string></td><td>Değiştirilmek istenen Cep Telefonu numarası KKB sisteminde uyuşmuyorsa. Kullanılabilecek formatlı telefon listesi dönüşü. Örn: KkbPhones": ["553*****20" ]</td></tr></tbody></table>


# Yeni İşlem Oluşturma

FORM POST /ServletV2/Transaction

Host: {SERVIS\_URL}

Content-Type: text/html

Yeni bir sipariş talebi başlatmak için kullanılan methoddur. Gönderilen veriler doğrulanması durumunda istek **HASO** URL’sine yönlendirilecektir. **customerId** parametresi sağlanırsa müşteri tanınacak, doğrulanmış ve limiti bulunan bir müşteriyse **HASO** arayüzlerinden **Taksit Planı** adımı ile devam edecektir. Aşağıda **Giriş** ve **Çıkış** parametreleri detaylı olarak bulunabilir.

#### **Giriş Parametreleri**

<table data-full-width="true"><thead><tr><th width="159">Ad</th><th width="80">Tipi</th><th width="62">Z/O</th><th>Açıklama</th></tr></thead><tbody><tr><td>token</td><td>String</td><td>Z</td><td>/Index/GetToken methodundan elde edilen token bilgisi</td></tr><tr><td>orderAmount</td><td>String</td><td></td><td>Gönderilecek değer 100 ile çarpılarak gönderilmelidir ondalık basamak nokta yada virgül içermemelidir. Örn: 500 TL lik bir alışveriş için 500*100 = 50000 değeri gönderilmelidir.</td></tr><tr><td>merchantId</td><td>String</td><td></td><td><strong>HASO</strong> tarafından verilen sabit parametredir.</td></tr><tr><td>okUrl</td><td>String</td><td>Z</td><td>Sipariş başarılı olarak tamamlanırsa HASO Sistemi tarafından <strong>FORM POST</strong> edilecek URL adresiniz.</td></tr><tr><td>failUrl</td><td>String</td><td>Z</td><td>Sipariş başarısız olarak tamamlanırsa ya da iptal edilirse <strong>HASO</strong> Sistemi tarafından FORM POST edilecek URL adresiniz.</td></tr><tr><td>callbackUrl</td><td>String</td><td>Z</td><td>Siparişin başarılı olması ve müşterinin <strong>HASO</strong> UI ekranlarında tamamlanmış olduğu halde işlemi yarıda bırakması tarayıcısını kapatması gibi durumlarda E-Ticaret sistemine failURL veya okURL dönüşü sağlanamazsa sipariş bildiriminin kesilmemesi için <strong>HASO</strong> tarafından E-Ticaret sistemine bildirimin sağlanmasını garanti edecek URL.</td></tr><tr><td>IpAddress</td><td>String</td><td>O</td><td>İsteği yapan müşterinin gerçek IP Adresi loglama ve herhangi bir sorun durumunda kullanılacak veridir.</td></tr><tr><td>merchantOid</td><td>String</td><td>Z</td><td>Sizin tarafınızdan oluşturulan benzersiz olması gereken <strong>HASO</strong> işlem numarası ile eşleştirilmiş kendi sipariş numaranızdır. Siparişe ait tanımlayıcıdır. Örn: 1905231436-1</td></tr><tr><td>customerId</td><td>String</td><td>O</td><td>Her başarılı işlemin sonunda <strong>okUrl</strong> adresinize <strong>POST</strong> edilen verilerin içinde tarafınıza dönülecek doğrulanmış müşterilerin tanımlayıcı numarasıdır. Bir sonraki İşlem oluşturma isteklerinde gönderilirse ilgili müşteri <strong>HASO</strong> tarafından tanınacaktır.</td></tr><tr><td>mobileNumber</td><td>String</td><td>Z</td><td>GSM numarası ilk basamağında 0 içermeyen 10 haneli olarak aşağıdaki formatta sağlanmalıdır. Format : ########## örn : 5536616020</td></tr><tr><td>birthDate</td><td>String</td><td></td><td>Doğum Tarihi Yıl-Ay-Gün aşağıdaki formatta sağlanmalıdır. Format : yyyy-MM-dd örn : 19830817</td></tr><tr><td>email</td><td>String</td><td>Z</td><td>E-Posta adresi</td></tr><tr><td>name</td><td>String</td><td>Z</td><td>Ad bilgisi</td></tr><tr><td>surname</td><td>String</td><td>Z</td><td>Soyad bilgisi</td></tr><tr><td>tckn</td><td>String</td><td>Z</td><td>TCKN bilgisi (Eğer customerId ile geliniyorsa zorunlu değildir)</td></tr><tr><td>UserAddress</td><td>String</td><td>O</td><td>Sipariş teslimat adresidir. Opsiyonel olmasına rağmen sipariş sonrası müşteri takibini kolaylaştırdığı için gönderilmesi rica olunur. Gönderilecek modelde şu parametre isimlerinde gönderilmelidir.<br>{ "<strong>UserNameSurname</strong>": "Nilüfer Bursalı", "<strong>Detail</strong>": "Abc Mahallesi Abc Caddesi Abc Sitesi B Blok D:1", "<strong>PostalCode</strong>": "16240", "<strong>TownName</strong>": "NİLÜFER", "<strong>CityName</strong>": "BURSA", "<strong>CountryName</strong>": "TÜRKİYE", "<strong>Phone</strong>": "+90 516 111 22 33" }</td></tr><tr><td>OrderItems</td><td>String</td><td>Z</td><td><p>Sipariş içeriğindeki ürün bilgilerinin gönderileceği modeli <strong>json array</strong> stringi olarak gönderilmelidir. Örnek modelde göründüğü gibi şu parametre isimlerinde gönderilmelidir.</p><p>[ { "<strong>Id</strong>": "1.Ürün Sku kodu unique kod", "<strong>Name</strong>": "1. Ürün adı", "<strong>Category</strong>": "1. Ürün kategori adı veya kodu", "<strong>Brand</strong>": "1.Ürün markası", "<strong>Variant</strong>": "1. ürün özellik örneğin renk adı", "<strong>Variant2</strong>": "1. ürün diğer özellik örneğin beden, boy vs", "<strong>Url</strong>": "Sitenizdeki 1. ürün detay adresi", "<strong>Image</strong>": "1. ürünü gösteren bir foto adresi", "<strong>Quantity</strong>": "1. ürün adedi", "<strong>Price</strong>": "1. ürün tutarı. Ondalık olmadan 100 ile çarparak int gönderilmelidir" }, { "<strong>Id</strong>": "2.Ürün Sku kodu unique kod", "<strong>Name</strong>": "2. Ürün adı", "<strong>Category</strong>": "2. Ürün kategori adı veya kodu", "<strong>Brand</strong>": "2.Ürün markası", "<strong>Variant</strong>": "2. ürün özellik örneğin renk adı", "<strong>Variant2</strong>": "2. ürün diğer özellik örneğin beden, boy vs", "<strong>Url</strong>": "Sitenizdeki 2. ürün detay adresi", "<strong>Image</strong>": "2. ürünü gösteren bir foto adresi", "<strong>Quantity</strong>": "2. ürün adedi", "<strong>Price</strong>": "2. ürün tutarı. Ondalık olmadan 100 ile çarparak int gönderilmelidir" } ]</p></td></tr></tbody></table>

####

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="439">Ad</th><th width="121">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td><strong>OkUrl</strong> callbackUrl (<strong>callbackUrl</strong> tamamlanan sipariş E-Ticaret sisteminden onaylanmaz yada <strong>okURL</strong> erişimi sağlanamazsa aynı verilerle Http 200 durum kodu alınana kadar E-Ticaret tarafının <strong>HASO</strong> sistemine çağrı yaparak siparişi onaylayana kadar istek yapılır.)</td><td>Form Post</td><td>Müşterinin siparişi <strong>HASO</strong> arayüzlerinde başarılı olarak tamamlanırsa. İstekte belirttiğiniz <strong>okURL</strong> ya da <strong>callbackUrl</strong> URL adresine aşağıdaki parametrelerle <strong>FORM POST</strong> yöntemi ile geri bildirim sağlanacaktır. Geri bildirim içerisinde bulunan veriler şöyledir;</td></tr><tr><td>Success</td><td>Bool</td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List&#x3C;string></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td></td><td></td></tr></tbody></table>

Data Parametresinde taksit değerleri vardır. Data parametresi içeriği ise şöyledir;

<table data-full-width="true"><thead><tr><th width="270">Ad</th><th width="79">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>NameSurname</td><td>String</td><td>Müşteri Ad Soyad</td></tr><tr><td>CustomerId</td><td>String</td><td><strong>HASO</strong> sistemindeki müşteri numarası bir sonraki Transaction işlemlerinde customerId ile bu değer gönderilirse <strong>HASO</strong> sistemi kullanıcıyı tanıyacak ve limiti varsa Taksit Planı ekranından devam edilecektir.</td></tr><tr><td>TransactionStatus</td><td>String</td><td>İşlemin durum kodu durum kodu <strong>6</strong> olarak tarafınıza dönülen siparişler E-Ticaret tarafından /Index/UpdateTransaction isteği yapılarak aktif edilmesi gereken siparişlerdir.</td></tr><tr><td>Data[“TransactionPayments”]</td><td>String</td><td>İşleme ait ödeme planını içerek json modeldir.</td></tr></tbody></table>

Transaction Payments Model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th width="363">Ad</th><th width="111">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>TransactionCode</td><td>String</td><td><strong>HASO</strong> sistemindeki işlem numarası. Bu numarayı kendi sipariş numaranız ile birlikte kendi veritabanınızda saklamanızı tavsiye ederiz.</td></tr><tr><td>MerchantOid</td><td>String</td><td>Sizin tarafınızdan oluşturulan benzersiz olması gereken <strong>HASO</strong> işlem numarası ile eşleştirilmiş kendi sipariş numaranızdır.</td></tr><tr><td>Fee</td><td>Decimal</td><td>Sipariş tutarı haricinde ödenecek toplam ekstra tutardır.</td></tr><tr><td>TotalAmount</td><td>Decimal</td><td>Toplam işlem tutarıdır.</td></tr><tr><td>DownPayment</td><td>Decimal</td><td>Bu işlem için müşteriden alınması gereken peşinat tutarını gösterir</td></tr><tr><td>TransactionPayments</td><td>List</td><td>Ödeme planında kaç taksit varsa o kadar item içeren listedir. Listedeki elemanların parametreleri şunlardır.</td></tr><tr><td>TransactionPayments.InstallmentNo</td><td>Integer</td><td>Taksit numarasıdır.</td></tr><tr><td>TransactionPayments.PaymentCode</td><td>String</td><td>Her ödeme kaydı için verilen unique bir değer.</td></tr><tr><td>TransactionPayments.InstallmentPayment</td><td>Decimal</td><td>Ödenmesi gereken taksit tutarıdır.</td></tr><tr><td>TransactionPayments.Fee</td><td>Decimal</td><td>Taksit kaydına düşen fee değeridir.</td></tr><tr><td>TransactionPayments.TermDate</td><td>DateTime</td><td>Taksitin vade tarihidir.</td></tr><tr><td></td><td></td><td></td></tr><tr><td><strong>FailUrl</strong></td><td>Form Post</td><td>Müşterinin siparişi <strong>HASO</strong> iptal edilirse, istekte belirttiğiniz <strong>failURL</strong> URL adresine aşağıdaki parametrelerle <strong>FORM POST</strong> yöntemi ile geri bildirim sağlanacaktır. Geri bildirim içerisinde bulunan veriler şöyledir;</td></tr><tr><td>Success</td><td></td><td></td></tr><tr><td>Errors</td><td>List</td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>MercantOid</td><td>String</td><td>İşlem başlangıcında gönderilen Sipariş Numarası</td></tr></tbody></table>


# İşlem Durumunu Aktifleştirme

FORM POST /Index/UpdateTransaction

Host: {SERVIS\_URL}

Content-Type: application/json

**HASO** sistemi tarafında sipariş tamamlanıp sağlamış olduğunuz **OkUrl** adresine geri bildirim sağlanıp siparişin tarafınızdan başarılı şekilde işlendiğinden emin olduktan sonra **HASO** sistemine siparişin başarılı olarak tamamlanmasını ve işlemin sonlanmasını **E-Ticaret** sisteminden **HASO** tarafına bildirmenize olanak sağlayan methodtur. Bu işlemin sonucunda ilgili müşterinin siparişi aktif edilecek ve tutarına göre **HASO** limitleri tekrar hesaplanacaktır.

Not: Method çağırılmadığı takdirde işlem **HASO** sisteminde aktifleştirilmeyecektir.

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="175">Ad</th><th width="78">Tipi</th><th width="64">Z/O</th><th>Açıklama</th></tr></thead><tbody><tr><td>TransactionCode</td><td>String</td><td>Z</td><td><strong>okURL</strong> adresine TransactionPayments parametresi içinden dönen değerdir.</td></tr><tr><td>MerchantOid</td><td>String</td><td>Z</td><td>/ServletV2/Transaction methoduna gönderdiğiniz Sizin tarafınızdan oluşturulan benzersiz olması gereken <strong>HASO</strong> işlem numarası ile eşleştirilmiş kendi sipariş numaranızdır.</td></tr><tr><td>MerchantId</td><td>String</td><td>Z</td><td><strong>HASO</strong> tarafından verilen sabit parametredir.</td></tr></tbody></table>

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="180">Ad</th><th width="224">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td>bool</td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List&#x3C;string></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;string, object></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>Data[“message”]</td><td>String</td><td>Aktifleşme işleminin başarılı olduğuna dair mesaj bulunur.</td></tr></tbody></table>


# İşlem İadesi

FORM POST /Index/RefundTransaction

Host: {SERVIS\_URL}

Content-Type: application/json

**HASO** sisteminde başarılı bir işlemin tamamın veya bir kısmının iadesi gerçekleştirilir. Daha önce iade isteği başarılı olan **refundId** gönderilmiş ise **H307** kodu ile iadenin daha önce yapıldığı bilgisi döner. Bu durumda **CheckRefund** servisi ile iade sonucu alınabilir. Eğer işlem bulunamazsa **H249** kodu döner.

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="180">AD</th><th width="108">Tipi</th><th width="62">Z/O</th><th>Açıklama</th></tr></thead><tbody><tr><td>MerchantId</td><td>String</td><td>Z</td><td><strong>HASO</strong> tarafından verilen sabit parametredir.</td></tr><tr><td>TransactionCode</td><td>String</td><td>Z</td><td><strong>okURL</strong> adresine TransactionPayments parametresi içinden dönen değerdir.</td></tr><tr><td>MerchantOid</td><td>String</td><td>Z</td><td>/ServletV2/Transaction methoduna gönderdiğiniz Sizin tarafınızdan oluşturulan benzersiz olması gereken <strong>HASO</strong> işlem numarası ile eşleştirilmiş kendi sipariş numaranızdır. Siparişe ait tanımlayıcıdır. Örn: 1905231436-1</td></tr><tr><td>RefundAmount</td><td>String</td><td>Z</td><td>İade edilecek tutar. 100 ile çarparak gönderiniz. Ondalık basamak olmamalıdır. <strong>refundAmount</strong> siparişteki toplam ürün tutarı veya fazla gönderilir ise bütün ödeme kayıtlarını ve işlemi iptal eder. Az gönderilirse Kısmi İade olur.</td></tr><tr><td>RefundId</td><td>String(36)</td><td>Z</td><td>Sizin tarafınızda oluşturulan İade işlemi için unique olacak maximum 36 karakter içerebilen parametredir. <strong>CheckRefund</strong> endpointinde bu parametre ile iadeyi kontrol edebilirsiniz.</td></tr></tbody></table>

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="309">Ad</th><th width="222">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td>bool</td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List&#x3C;string></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;string, object></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>Data[“message”]</td><td>String</td><td>Aktifleşme işleminin başarılı olduğuna dair mesaj bulunur.</td></tr><tr><td>Data[“hasoRefundAmount”]</td><td>Decimal</td><td>İade edilen tutarın içinde bulunan, Müşterinin daha önceden ödeme yaptığı değerdir. Bu tutar kadar müşteriye para iadesi yapılabilir.</td></tr><tr><td>Data[“PaymentPlan”]</td><td>List</td><td>Her taksit değeri için ödeme planını list olarak gösterir. Bu modele ait alt parametreler ise şöyledir.</td></tr><tr><td>PaymentPlan.InstallmentNo</td><td>İnt</td><td>Ödeme planındaki taksit numarasıdır.</td></tr><tr><td>PaymentPlan.installmentPayment</td><td>Decimal</td><td>Ödeme planındaki taksitin tutarıdır.</td></tr><tr><td>PaymentPlan.termDate</td><td>Date</td><td>Ödeme planındaki taksitin vade tarihidir.</td></tr></tbody></table>


# İşlem İadesi Kontrolü

FORM POST /Index/CheckRefund

Host: {SERVIS\_URL}

Content-Type: application/json

**RefundTransaction** servisinde gönderilmiş olan **RefundId** parametresi ile iade işleminin durumunu kontrol eder. Eğer **H308** kodu ile hata gelirse İade işlemi bulunamadı anlamına gelmektedir.

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="134">AD</th><th width="106">Tipi</th><th width="65">Z/O</th><th>Açıklama</th></tr></thead><tbody><tr><td>MerchantId</td><td>String</td><td>Z</td><td><strong>HASO</strong> tarafından verilen sabit parametredir.</td></tr><tr><td>RefundId</td><td>String(36)</td><td>Z</td><td>Sizin tarafınızda oluşturulan İade işlemi için unique olacak maximum 36 karakter içerebilen parametredir.</td></tr></tbody></table>

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="258">Ad</th><th width="223">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td>bool</td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List&#x3C;string></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;string, object></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>Data[“message”]</td><td>String</td><td>Aktifleşme işleminin başarılı olduğuna dair mesaj bulunur.</td></tr><tr><td>Data[“hasoRefundAmount”]</td><td>Decimal</td><td>İade edilen tutarın içinde bulunan, Müşterinin daha önceden ödeme yaptığı değerdir. Bu tutar kadar kredi kartı iadesi yapılabilir.</td></tr><tr><td>Data[“hasoRefundAmount”]</td><td>Decimal</td><td>İade edilen tutarın içinde bulunan, Müşterinin daha önceden ödeme yaptığı değerdir. Bu tutar kadar kredi kartı iadesi yapılabilir.</td></tr></tbody></table>


# Müşteri İşlemlerini Getir

FORM POST /Index/ GetCustomerTransactions

Host: {SERVIS\_URL}

Content-Type: application/json

**HASO** sisteminde tanımlı bir müşterinin onaylanmış işlemlerinin güncel ödeme planını (taksit detaylarını) istediğiniz zaman bu method ile alabilirsiniz. İşlemler yeniden eskiye göre sayfalama ile listelenir.

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="182">Ad</th><th width="122">Tipi</th><th width="68">Z/O</th><th>Açıklama</th></tr></thead><tbody><tr><td>MerchantId</td><td>String</td><td>Z</td><td><strong>HASO</strong> tarafından verilen sabit parametredir.</td></tr><tr><td>CustomerId</td><td>String</td><td>Z</td><td><strong>HASO</strong> sisteminde müşterinin sahip olduğu unique değerdir. Transaction sonucunda okURL yada callBackURL sonunda iletilmiştir.</td></tr><tr><td>TransactionCodes</td><td>List&#x3C;string></td><td>O</td><td>Müşterinin bazı işlemlerinin ödeme planını almak isterseniz transactionCode değerlerini dizi olarak gönderebilirsiniz.</td></tr><tr><td>PageNo</td><td>Integer</td><td></td><td>Geçerli sayfa numarasıdır. Gönderilmezse varsayılan 1 kabul edilir.</td></tr><tr><td>PageSize</td><td>Integer</td><td></td><td>Bir sayfada kaç adet işlem gelmesini istiyorsanız bu parametreyi kullanabilirsiniz. Gönderilmezse varsayılan 50 değerini alır.</td></tr></tbody></table>

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="206">Ad</th><th width="224">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td>bool</td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List&#x3C;string></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;string, object></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>Data[“Transactions”]</td><td>String</td><td>İşleme ait ödeme planını içeren <strong>JSON</strong> model</td></tr></tbody></table>

Transactions Model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th width="469">Ad</th><th width="105">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Transactions.TransactionCode</td><td>String</td><td>Her işlem için unique olan işlem kodu değeridir.</td></tr><tr><td>Transactions.MerchantOid</td><td>String</td><td>Sizin tarafınızdan oluşturulan benzersiz olması gereken HASO işlem numarası ile eşleştirilmiş kendi sipariş numaranızdır.</td></tr><tr><td>Transactions.CustomerId</td><td>String</td><td>İşlemin sahibi olan müşteriyi tanımlayan unique bir değerdir.</td></tr><tr><td>Transactions.TotalAmount</td><td>Decimal</td><td>Toplam işlem tutarıdır.</td></tr><tr><td>Transactions.Fee</td><td>Decimal</td><td>Sipariş tutarı haricinde ödenecek toplam ekstra tutardır.</td></tr><tr><td>Transactions.counterPartyAttorneyFee</td><td>Decimal</td><td>İcraya verilen işlem için KYVU değeri.</td></tr><tr><td>Transactions.expenseAmount</td><td>Decimal</td><td>İcraya verilen işlem için masraf değeri.</td></tr><tr><td>Transactions.transactionStatus</td><td>Integer</td><td>İşlemin durumun bildiren durum kodudur.</td></tr><tr><td>Transactions.transactionStatusText</td><td>Integer</td><td>İşlem durumunun açıklamasıdır.</td></tr><tr><td>Transactions.TransactionPayments</td><td>List</td><td>Ödeme planında kaç taksit varsa o kadar item içeren listedir. Listedeki elemanların parametreleri şunlardır.</td></tr><tr><td>Transactions.TransactionPayments.InstallmentNo</td><td>Integer</td><td>Kaçıncı taksit olduğunu belirten değerdir.</td></tr><tr><td>Transactions.TransactionPayments.InstallmentPayment</td><td>Decimal</td><td>Taksit tutarını belirten değerdir.</td></tr><tr><td>Transactions.TransactionPayments.TermDate</td><td>DateTime</td><td>Taksit vade tarihidir.</td></tr><tr><td>Transactions.TransactionPayments.PaymentStatus</td><td>Integer</td><td>Taksit durum kodudur.</td></tr><tr><td>Transactions.TransactionPayments.PaymentStatusText</td><td>String</td><td>Taksitin durumunu gösteren string ifadedir.</td></tr><tr><td>Transactions.TransactionPayments.PaymentCode</td><td>String</td><td>Her ödeme kaydı için verilen unique bir değer.</td></tr><tr><td>Transactions.TransactionPayments.totalExpenseAmount</td><td>Decimal</td><td>İcraya verilen işlem için ktvu ve diğer masraflar toplamının taksite yansıtılan değer.</td></tr></tbody></table>


# Müşteri Ödemelerini Getir

FORM POST /Index/ GetCustomerPayments

Host: {SERVIS\_URL}

Content-Type: application/json

**HASO** sisteminde tanımlı bir müşterinin onaylanmış ödemelerini istediğiniz zaman bu metod ile alabilirsiniz. İşlemler yeniden eskiye göre sayfalama ile listelenir.

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="181">Parametre adı </th><th width="151">Parametre  Tipi</th><th width="65">Z/O</th><th>Açıklama</th></tr></thead><tbody><tr><td>MerchantId</td><td>String</td><td>Z</td><td><strong>HASO</strong> tarafından verilen sabit parametredir.</td></tr><tr><td>CustomerId</td><td>String(10)</td><td>Z</td><td><strong>HASO</strong> sisteminde müşterinin sahip olduğu unique değerdir. Transaction sonucunda okURL yada callBackURL sonunda iletilmiştir.</td></tr><tr><td>PaymentStatuses</td><td>List&#x3C;int></td><td>O</td><td>Ödeme durumuna göre filtre yapılmak istenirse kullanılabilir. 0-Ödenmedi, 1-Ödendi, 2-Kısmi Ödeme, 3-Vadesi Geçmiş Ödeme, 4-İptal Edildi</td></tr><tr><td>PageNo</td><td>Integer</td><td>O</td><td>Geçerli sayfa numarasıdır. Gönderilmezse varsayılan 1 kabul edilir.</td></tr><tr><td>PageSize</td><td>Integer</td><td>O</td><td>Bir sayfada kaç adet işlem gelmesini istiyorsanız bu parametreyi kullanabilirsiniz. Gönderilmezse varsayılan 50 değerini alır.</td></tr></tbody></table>

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="109">Ad</th><th width="231">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td>bool</td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List&#x3C;string></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;string, object></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr></tbody></table>

#### Data parametresinde işlem listesi vardır. Data parametresi içeriği ise şöyledir:

<table data-full-width="true"><thead><tr><th width="184">Ad</th><th width="229">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“Payments”]</td><td>Dictionary&#x3C;string, Object></td><td>Müşteriye ait ödeme planını içerek json modeldir.</td></tr></tbody></table>

#### Payments Model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th width="283">Ad</th><th width="104">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Payments.paymentCode</td><td>String</td><td>Her ödeme için unique olan ödeme kodu değeridir.</td></tr><tr><td>Payments.merchantOid</td><td>String</td><td>Sizin tarafınızdan oluşturulan benzersiz olması gereken HASO işlem numarası ile eşleştirilmiş kendi sipariş numaranızdır.</td></tr><tr><td>Payments.InstallmentNo</td><td>Integer</td><td>Kaçıncı taksit olduğunu belirten değerdir.</td></tr><tr><td>Payments.InstallmentPayment</td><td>Decimal</td><td>Taksit tutarını belirten değerdir.</td></tr><tr><td>Payments.TermDate</td><td>DateTime</td><td>Taksit vade tarihidir.</td></tr><tr><td>Payments.PaymentStatus</td><td>Int</td><td>Taksit durum kodudur.</td></tr><tr><td>Payments.PaymentStatusText</td><td>String</td><td>Taksitin durumunu gösteren string ifadedir.</td></tr><tr><td>Payments.overdueAmount</td><td>Decimal</td><td>Taksite ait gecikme ücreti.</td></tr><tr><td>Payments.overdueRate</td><td>Decimal</td><td>Taksite ait gecikme oranı.</td></tr><tr><td>Payments.overdueDate</td><td>DateTime</td><td>Taksite ait gecikmenin başlayacağı tarih.</td></tr><tr><td>Payments.totalExpenseAmount</td><td>Decimal</td><td>İcraya verilen işlem için ktvu ve diğer masraflar toplamının taksite yansıtılan değer.</td></tr></tbody></table>


# Genel Mutabakat Servisi

FORM POST /Index/ GetDailySettlement

Host: {SERVIS\_URL}

Content-Type: application/json

**HASO** sisteminde gönderilen tarih parametresine göre sipariş, yapılan ödeme ve iade toplam tutarlarını geri döndürür.

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="166">Parametre adı</th><th width="147">Parametre  Tipi</th><th width="65">Z/O</th><th>Açıklama</th></tr></thead><tbody><tr><td>MerchantId</td><td>String</td><td>Z</td><td>HASO tarafından verilen sabit parametredir.</td></tr><tr><td>settlementDate</td><td>Date</td><td>Z</td><td>Toplam tutarları öğrenmek istediğiniz tarih bilgisidir. Tarih formatı "yyyy-MM-dd" olmalıdır</td></tr></tbody></table>

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="110">Ad</th><th width="223">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td>bool</td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List&#x3C;string></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;string, object></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr></tbody></table>

#### Data parametresinde işlem listeleri vardır. Data parametresi içeriği ise şöyledir:

<table data-full-width="true"><thead><tr><th width="149">Ad</th><th width="197">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“order”]</td><td>Dictionary&#x3C;string, int></td><td>Başarılı siparişlere ait count ve totalAmount değerlerini içeren nesnedir.</td></tr></tbody></table>

#### Order Model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th width="190">Ad</th><th width="197">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>order.count</td><td>Integer</td><td>Sipariş sayısı.</td></tr><tr><td>order.totalAmount</td><td>Decimal</td><td>Toplam tutar</td></tr><tr><td>Data[“payment”]</td><td>Dictionary&#x3C;string, int></td><td>Belirtilen tarihte alınan ödeme kayıtlarının count ve totalAmount değerlerini içeren nesnedir.</td></tr></tbody></table>

#### Payment Model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th width="210">Ad</th><th width="197">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>payment.count</td><td>Integer</td><td>Ödeme sayısı.</td></tr><tr><td>payment.totalAmount</td><td>Decimal</td><td>Toplam tutar</td></tr><tr><td>Data[“refund”]</td><td>Dictionary&#x3C;string, int></td><td>Belirtilen tarihlerde yapılan başarılı iadelerin count ve totalAmount değerlerini içeren nesnedir</td></tr></tbody></table>

#### Refund Model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th width="212">Ad</th><th width="222">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>refund.count</td><td>Integer</td><td>İade sayısı</td></tr><tr><td>refund.totalAmount</td><td>Decimal</td><td>Toplam tutar</td></tr></tbody></table>


# Mutabakat Detay Servisi

FORM POST /Index/ GetDailySettlementDetail

Host: {SERVIS\_URL}

Content-Type: application/json

**HASO** sisteminde gönderilen tarih parametresine göre sipariş, yapılan ödeme ve iade toplam tutarlarını geri döndürür.

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="165">Parametre adı</th><th width="147">Parametre  Tipi</th><th width="64">Z/O </th><th>Açıklama</th></tr></thead><tbody><tr><td>MerchantId</td><td>String</td><td>Z</td><td>HASO tarafından verilen sabit parametredir.</td></tr><tr><td>settlementDate</td><td>Date</td><td>Z</td><td>Detaylı tutarları öğrenmek istediğiniz tarih bilgisidir. Tarih formatı "yyyy-MM-dd" olmalıdır.</td></tr></tbody></table>

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="113">Ad</th><th width="228">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td>bool</td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List&#x3C;string></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;string, object></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr></tbody></table>

#### Data parametresinde işlem listeleri vardır. Data parametresi içeriği ise şöyledir:

<table data-full-width="true"><thead><tr><th width="149">Ad</th><th width="198">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“order”]</td><td>Dictionary&#x3C;string, int></td><td>Başarılı siparişlere ait orderId ve Amount değerlerini içeren nesnedir.</td></tr></tbody></table>

#### Order Model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th width="175">Ad</th><th width="197">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>order.orderId</td><td>String</td><td>Sipariş numarası</td></tr><tr><td>order.amount</td><td>Decimal</td><td>Tutar</td></tr><tr><td>Data[“payment”]</td><td>Dictionary&#x3C;string, int></td><td>Belirtilen tarihte alınan ödeme kayıtlarının orderId ve Amount değerlerini içeren nesnedir</td></tr></tbody></table>

#### Payment Model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th width="178">Ad</th><th width="195">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>payment.orderId</td><td>String</td><td>Sipariş numarası</td></tr><tr><td>payment.amount</td><td>Decimal</td><td>Tutar</td></tr><tr><td>Data[“refund”]</td><td>Dictionary&#x3C;string, int></td><td>Belirtilen tarihlerde yapılan başarılı iadelerin orderId ve Amount değerlerini içeren nesnedir</td></tr></tbody></table>

#### Refund Model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th width="159">Ad</th><th width="94">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>refund.orderId</td><td>String</td><td>Sipariş numarası</td></tr><tr><td>refund.Amount</td><td>Decimal</td><td>Tutar</td></tr></tbody></table>


# Müşteri İşlemini Getir

FORM POST /Index/GetMerchantOid

Host: {SERVIS\_URL}

Content-Type: application/json

E-Ticaret tarafından benzersiz olarak üretilen MerchantOid verisi (Sipariş numarası) oluşturulan bir siparişin varlığını **HASO** sisteminde kontrol eder. Eğer sipariş bulunursa Çıkış parametresi cevabı döndürülür. Sipariş durumları transactions -> **transactionStatus** verisi ile kontrol edilebilir. /Index/UpdateTransaction ile işlem durumunu değiştirdiğiniz HASO ve E-Ticaret tarafında tamamlanmış her başarılı bir şiparişin **TransactionStatus** durumu 2 değerini içerir.

**TransactionStatus** durum kodları şöyledir:

0-Tanımsız

1-Tamamlanmadı

2-Tamamlandı

3-Reddedildi

4-Pin Bekleniyor

5-Kkb Sonuç Bekleniyor

6-Sipariş Sonucu Bekleniyor

7-İptal Edildi

8-Kısmi İade

9-Peşin Ödeme Bekleniyor

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="147">Ad</th><th width="81">Tipi</th><th width="62">Z/O</th><th>Açıklama</th></tr></thead><tbody><tr><td>MerchantId</td><td>String</td><td>Z</td><td>HASO tarafından verilen sabit parametredir.</td></tr><tr><td>MerchantOid</td><td>String</td><td>Z</td><td>Sorgulanacak Sipariş Numarası Sizin tarafınızdan oluşturulan benzersiz olması gereken HASO işlem numarası ile eşleştirilmiş kendi sipariş numaranızdır.</td></tr></tbody></table>

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="206">Ad</th><th width="222">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td>bool</td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List&#x3C;string></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;string, object></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>Data[“Transactions”]</td><td>String</td><td>İşleme ait ödeme planını içeren <strong>JSON</strong> model</td></tr></tbody></table>

#### Transactions Model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th width="465">Ad</th><th width="104">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Transactions.TransactionCode</td><td>String</td><td>Her işlem için unique olan işlem kodu değeridir.</td></tr><tr><td>Transactions.MerchantOid</td><td>String</td><td>Sizin tarafınızdan oluşturulan benzersiz olması gereken <strong>HASO</strong> işlem numarası ile eşleştirilmiş kendi sipariş numaranızdır.</td></tr><tr><td>Transactions.CustomerId</td><td>String</td><td>İşlemin sahibi olan müşteriyi tanımlayan unique bir değerdir.</td></tr><tr><td>Transactions.TotalAmount</td><td>Decimal</td><td>Toplam işlem tutarıdır.</td></tr><tr><td>Transactions.Fee</td><td>Decimal</td><td>Sipariş tutarı haricinde ödenecek toplam ekstra tutardır.</td></tr><tr><td>Transactions.counterPartyAttorneyFee</td><td>Decimal</td><td>İcraya verilen işlem için KYVU değeri</td></tr><tr><td>Transactions.expenseAmount</td><td>Decimal</td><td>İcraya verilen işlem için masraf değeri</td></tr><tr><td>Transactions.transactionStatus</td><td>Integer</td><td>İşlemin durumun bildiren durum kodudur.</td></tr><tr><td>Transactions.transactionStatusText</td><td>Integer</td><td>İşlem durumunun açıklamasıdır.</td></tr><tr><td>Transactions.TransactionPayments</td><td>List</td><td>Ödeme planında kaç taksit varsa o kadar item içeren listedir. Listedeki elemanların parametreleri şunlardır.</td></tr><tr><td>Transactions.TransactionPayments.InstallmentNo</td><td>Integer</td><td>Kaçıncı taksit olduğunu belirten değerdir.</td></tr><tr><td>Transactions.TransactionPayments.InstallmentPayment</td><td>Decimal</td><td>Taksit tutarını belirten değerdir.</td></tr><tr><td>Transactions.TransactionPayments.TermDate</td><td>DateTime</td><td>Taksit vade tarihidir.</td></tr><tr><td>Transactions.TransactionPayments.PaymentStatus</td><td>Integer</td><td>Taksit durum kodudur.</td></tr><tr><td>Transactions.TransactionPayments.PaymentStatusText</td><td>String</td><td>Taksitin durumunu gösteren string ifadedir.</td></tr><tr><td>Transactions.TransactionPayments.PaymentCode</td><td>String</td><td>Her ödeme kaydı için verilen unique bir değer.</td></tr><tr><td>Transactions.TransactionPayments.totalExpenseAmount</td><td>Decimal</td><td>İcraya verilen işlem için ktvu ve diğer masraflar toplamının taksite yansıtılan değer.</td></tr></tbody></table>


# Taksitleri Getir

FORM POST /Index/GetInstallments

Host: {SERVIS\_URL}

Content-Type: application/json

**HASO** sisteminde tanımlı bir müşterinin taksit bilgilerini bu method ile alabilirsiniz. **Giriş** ve **Çıkış** parametreleri aşağıda detaylı olarak listelenmiştir.

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="208">Ad</th><th width="223">Tipi</th><th width="69">Z/O</th><th>Açıklama </th></tr></thead><tbody><tr><td>merchantId</td><td>String</td><td>Z</td><td>Haso tarafından size verilen sabit parametredir.</td></tr><tr><td>DealerSegment</td><td>String</td><td>O</td><td>Müşterinin satıcı tarafındaki segmentidir</td></tr><tr><td>OrderAmount</td><td>String</td><td>Z</td><td>Sipariş tutarı. 100 ile çarparak gönderiniz. Ondalık basamak olmamalıdır.</td></tr><tr><td>NotCalculateFees</td><td>Bool</td><td>O</td><td>Ekstra ücret hesaplanmaması isteniyorsa true gönderilmeli.</td></tr><tr><td>Data["BasketList"]</td><td>Dictionary&#x3C;string, object></td><td>O</td><td>Opsiyoneldir, gönderilmeyebilir.</td></tr><tr><td>RevisedFeeRate</td><td>int</td><td>O</td><td>Fee değerinde yapılacak değişikliği belirten değerdir. 100 ile çarparak gönderiniz. Ondalık basamak olmamalıdır. 0 gönderilirse veya gönderilmezse fee değerinde değişiklik yapılmaz. 20 gönderilirse yeni fee değeri orjinal feenin %20’sidir.</td></tr><tr><td>PostponeSelected</td><td>Bool</td><td>O</td><td>Taksitler ertelemeli olarak hesaplanacak ise true gönderilir. False ise taksitlerde erteleme yapılmaz.</td></tr><tr><td>forceRiskFreeEvaluate</td><td>Bool</td><td>O</td><td>true geldiğinde riskli müşterilerden ilk taksiti peşin olarak almayacak şekilde ayarlanır</td></tr><tr><td>ipAddress</td><td>String</td><td>O</td><td>İstek yapan istemcinin ip adresi. (Önemli: Lokal makinenizde yapacağınız denemelerde mutlaka dış IP adresini gönderdiğinizden emin olun)</td></tr></tbody></table>

#### BasketList model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th width="274">Ad</th><th width="111">Tipi</th><th width="80">Z/O</th><th>Açıklama</th></tr></thead><tbody><tr><td>SkuCode</td><td>string</td><td>O</td><td>Ürününüzün sku kodudur.</td></tr><tr><td>skudefinitionId</td><td>string</td><td>O</td><td>Ürün grubu kodudur.</td></tr><tr><td>skuAmount</td><td>int</td><td>O</td><td>Ürün tutarının 100 ile çarpılmış halidir.</td></tr><tr><td>skuMerchant</td><td>string</td><td>O</td><td>Ürünün satan satıcıya verdiğiniz koddur.</td></tr><tr><td>skuMerchantContributionRate</td><td>int</td><td>O</td><td>Taksit planında çıkan fee değerinin ürünün sepetteki oranına göre hangi satıcı ürünü için ne kadar fee olacağı hesaplanabilir. Böylelikle satıcı bazlı fee hesaplanabilir.</td></tr></tbody></table>

<table data-full-width="true"><thead><tr><th width="222">Ad</th><th width="94">Tipi</th><th width="64">Z/O</th><th>Açıklama </th></tr></thead><tbody><tr><td>RevisedFeeRate</td><td>decimal</td><td>O</td><td>Fee değerinde yapılacak değişikliği belirten değerdir. 100 ile çarparak gönderiniz. Ondalık basamak olmamalıdır. 0 gönderilirse veya gönderilmezse fee değerinde değişiklik yapılmaz. 20 gönderilirse yeni fee değeri orjinal feenin %20’sidir.</td></tr><tr><td>PostponeSelected</td><td>bool</td><td>O</td><td>Taksitler ertelemeli olarak hesaplanacak ise true gönderilir. False ise taksitlerde erteleme yapılmaz.</td></tr><tr><td>ForceRiskFreeEvaluate</td><td>bool</td><td>O</td><td>True geldiğinde riskli müşterilerden ilk taksiti peşin olarak almayacak şekilde ayarlanır.</td></tr><tr><td>merchantId</td><td>string</td><td>Z</td><td><strong>HASO</strong> tarafından verilen sabit parametredir.</td></tr><tr><td>IpAddress</td><td>string</td><td>O</td><td>İsteği yapan müşterinin gerçek IP Adresi loglama ve herhangi bir sorun durumunda kullanılacak veridir.</td></tr></tbody></table>

## Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="214">Ad</th><th width="222">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td>bool</td><td>Yapılan isteğin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse Data parametresi doludur.</td></tr><tr><td>Errors</td><td>List</td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;string, object></td><td>Eğer success=true ise keyvalue şeklinde data dön</td></tr></tbody></table>

#### Data Model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th width="216">Ad</th><th width="106">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>firstPaymentDate</td><td>DateTime</td><td>İlk ödeme günüdür</td></tr><tr><td>downPaymentAmount</td><td>Decimal</td><td>Limit aşımı durumunda peşin alınacak tutar değeridir.</td></tr><tr><td>postponeEnabled</td><td>Bool</td><td>Taksit Erteleme seçilip seçilemeyeceğini belirtir.</td></tr><tr><td>Data["installments"]</td><td>List</td><td>Sipariş tutarına göre kaç taksit olacaksa o sayıda item’a sahip bir liste gelir.</td></tr></tbody></table>

#### installments Model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th>Ad</th><th>Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>installmentNo</td><td>Int</td><td>Kaç taksit olacağını belirten taksit sayısıdır.</td></tr><tr><td>price</td><td>Decimal</td><td>Taksit tutarıdır.</td></tr><tr><td>transactionPrice</td><td>Decimal</td><td>Sipariş tutarıdır. Ekstra ücretler ilave olan tutar değildir. Taksitleri getirmek için orderAmount parametresi olarak gönderdiğiniz değerdir.</td></tr><tr><td>totalAmount</td><td>Decimal</td><td>Toplam işlem tutarıdır. Ekstra ücret dahil tutardır.</td></tr><tr><td>downPayment</td><td>Decimal</td><td>Taksit kaydı eğer peşin alınacak ise bu tutar ile gösterilir.</td></tr><tr><td>fee</td><td>Decimal</td><td>Sipariş tutarı haricinde ödenecek toplam ekstra tutardır.</td></tr><tr><td>originalFee</td><td>Decimal</td><td>Fee değerinde indirim yapıldığını göstermek için kullanılır. üstü çizili değerdir. İşlem ücreti listelerindeki değerdir.</td></tr><tr><td>feeDiscountCampaigns</td><td>Dictionary&#x3C;string, object></td><td>Fee indirimi uygulanan kampanya adı ve indirim oranlarını listeler</td></tr><tr><td>Data["merchantContributions"]</td><td></td><td></td></tr></tbody></table>

#### merchantContributions model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th>Ad</th><th>Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>skuCode</td><td>string</td><td>Ürününüzün sku kodudur.</td></tr><tr><td>skuMerchant</td><td>string</td><td>Ürünün satan satıcıya verdiğiniz koddur.</td></tr><tr><td>skuMerchantContributionAmount</td><td>Decimal</td><td>Merchant için hesaplanan işlem ücreti katkı bedeli</td></tr></tbody></table>

<table data-full-width="true"><thead><tr><th>Ad</th><th>Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>installments.paymentPlan</td><td></td><td>Seçili taksit değerine ait ödeme planı detayını gösterir.</td></tr></tbody></table>

#### paymentPlan model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th>Ad</th><th>Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>installmentNo</td><td>int</td><td>Ödeme planındaki taksit numarasıdır.</td></tr><tr><td>installmentPayment</td><td>decimal</td><td>Ödeme planındaki taksitin tutarıdır.</td></tr><tr><td>termDate</td><td>date</td><td>Ödeme planındaki taksidin vade tarihidir.</td></tr><tr><td>fee</td><td>decimal</td><td>İşlemdeki fee değerinin taksit başına düşen değeri</td></tr><tr><td>originalFee</td><td>decimal</td><td>İşlemdeki original fee değerinin taksit başına düşen değeri</td></tr></tbody></table>


