# 1. Versiyon Tarihçesi

<table data-full-width="true"><thead><tr><th width="138">Versiyon No</th><th width="167">Güncelleme Tarihi</th><th>Açıklama</th></tr></thead><tbody><tr><td>V01</td><td>01.10.2018</td><td>İlk versiyon.</td></tr><tr><td>V02</td><td>17.12.2018</td><td>Ön validasyon eklendi.</td></tr><tr><td>V03</td><td>21.02.2019</td><td>Birkaç düzeltme.</td></tr><tr><td>V04</td><td>21.04.2019</td><td>Sadece taksitleri getiren servis eklendi.</td></tr><tr><td>V05</td><td>21.06.2019</td><td>İlk requestte seçili taksit var ise direkt sms kod girişi sayfası açılacak şekilde düzenleme yapıldı.</td></tr><tr><td>V06</td><td>10.07.2019</td><td>İşlem iade modülü eklendi.</td></tr><tr><td>V07</td><td>20.08.2019</td><td>Ondalık sayı problemi düzeltildi. Bütün ondalık sayılar 100 ile çarpılarak tam sayı olarak gönderilecektir.</td></tr><tr><td>V08</td><td>16.09.2019</td><td>Ödeme Planı modülü eklendi.</td></tr><tr><td>V09</td><td>22.11.2019</td><td>Başvuru yapanın soyadı bilgisi ayrı parametre olarak gönderiliyor.</td></tr><tr><td>V10</td><td>27.11.2020</td><td>Ödeme formu servisindeki zorunlu alanların güncellenmesi.</td></tr><tr><td>V11</td><td>12.07.2021</td><td>Tek butonla Haso ödeme formuna geçiş.</td></tr><tr><td>V12</td><td>29.09.2021</td><td>GetCustomerInformation endpointi hazırlandı.</td></tr><tr><td>V13</td><td>07.10.2021</td><td>Request parametreleri sadeleştirildi.</td></tr><tr><td>V14</td><td>14.10.2021</td><td><ul><li>Hata kodları listesi.</li><li>Limit belirleme servisleri.</li><li>Ödeme planının geldiği servislere TotalAmount ve Fee eklendi.</li></ul></td></tr><tr><td>V15</td><td>15.10.2021</td><td>Limit belirleme servisine ilave parametreler eklendi.</td></tr><tr><td>V16</td><td>15.10.2021</td><td>İşlem ekleme servisi yapıldı.</td></tr><tr><td>V17</td><td>16.10.2021</td><td>SetPaidPayment ve RefundTransaction endpointleri eklendi.</td></tr><tr><td>V18</td><td>19.10.2021</td><td>Limit tanımlama servisleri için test modu eklendi.</td></tr><tr><td>V19</td><td>01.11.2021</td><td>GetCustomerInformation cevabında güncelleme.</td></tr><tr><td>V20</td><td>23.11.2021</td><td>Müşteri İşlemlerini Getir endpointi yapıldı.</td></tr><tr><td>V21</td><td>29.12.2021</td><td><ul><li>RefundTransaction endpointine RefundId zorunlu parametresi eklendi.</li><li>CheckRefund endpointi eklendi.</li></ul></td></tr><tr><td>V22</td><td>12.01.2022</td><td>Yeniden Kkb Pin Kodu Gönderilmesi için endpoint eklendi.</td></tr><tr><td>V23</td><td>22.01.2022</td><td>Günlük mutabakat servisleri eklendi.</td></tr><tr><td>V24</td><td>08.03.2022</td><td><ul><li>GetCustomerInformation ve GetInstallment servislerine “basketList” parametresi eklendi.</li><li>GetCustomerInformation, GetInstallement ve CreateTransaction servislerine “NotCalculateFees” eklendi.</li></ul></td></tr><tr><td>V25</td><td>14.03.2022</td><td><ul><li>RefundTransaction endpoint response Paymentplan eklendi.</li><li>CreateTransaction ednpointine installment id değil installment no alınması.</li><li>GetCustomerPayments endpointi eklendi.</li><li>GetCustomerInformation endpointinde payment plan altına fee amount bilgisi de eklendi.</li></ul></td></tr><tr><td>V26</td><td>19.03.2022</td><td>Ön tanımlı limit geliştirmesi.</td></tr><tr><td>V26.1</td><td>30.03.2022</td><td>Müşteri Ödemeleri Getir endpointinde request ve response parametrelerine eklemeler.</td></tr><tr><td>V26.2</td><td>13.04.2022</td><td>Taksit sınırları için GetCustomerInformation ve CreateTransaction endpointlerine skuList parametresi eklendi.</td></tr><tr><td>V26.3</td><td>28.04.2022</td><td>GetCustomerInformation response parametrelerine limitValidityDate eklendi.</td></tr><tr><td>V26.4</td><td>30.05.2022</td><td><p></p><ul><li>CreateTransaction için definedIdList request parametresi eklendi.</li><li>Taksitlerin döndüğü responselara “originalFee” fieldı eklendi.</li></ul></td></tr><tr><td>V26.5</td><td>09.06.2022</td><td>GetCustomerInformation response parametrelerine initialLimit ve totalRemainingAmount eklendi.</td></tr><tr><td>V26.6</td><td>17.06.2022</td><td>GetCustomerInformation ve CreateTransaction request parametrelerine RevisedFeeRate eklendi.</td></tr><tr><td>V26.7</td><td>30.06.2022</td><td>Belirli skularda geçerli ek limit kullanılabilir.</td></tr><tr><td>V27</td><td>04.07.2022</td><td><ul><li>SendExecutionTransaction</li><li>PaidExecutionTransaction endpointleri</li></ul></td></tr><tr><td>V27.1</td><td>29.07.2022</td><td>GetCustomerInformation response modeline diffExtraAndCustomerLimit eklendi.</td></tr><tr><td>V28</td><td>23.08.2022</td><td>ChangeCustomerGsmNo endpoint eklendi.</td></tr><tr><td>V29</td><td>31.08.2022</td><td>GetCustomerInformation ve CreateTransaction request parametrelerine Basket modeli eklendi. Response parametrelerine de MerchantContributions eklendi.</td></tr><tr><td>V30</td><td>14.10.2022</td><td>SetCustomerStatusAsSuspend endpointi yapıldı.</td></tr><tr><td>V31</td><td>20.02.2023</td><td><ul><li>HasoAuthSendInfo endpointine forceToPredefinedLimit eklendi.</li><li> GetCustomerInformation ve CreateTransaction endpointlerine ForceRiskFreeEvaluate eklendi.</li></ul></td></tr><tr><td>V32</td><td>31.03.2023</td><td>SendTransactionExpense endpointi eklendi. GetCustomerTransactions ve GetCustomerPayments için yeni response parametreler eklendi.</td></tr><tr><td>V33</td><td>14.04.2023</td><td>Haso Başvuru kullanılacaksa modeli bu dökümandan ayrıldı.</td></tr><tr><td>V34</td><td>14.07.2023</td><td>Müşteriye Özel limit tanımlanması için kullanılır.</td></tr><tr><td>V35</td><td>31.07.2023</td><td>Müşteri hesabına bakiye yüklemek için yeni endpoint eklendi.</td></tr><tr><td>V36</td><td>31.10.2023</td><td>GetCustomerInformation ve CreateTransaction response modele feeDiscountCampaigns eklendi.</td></tr><tr><td>V37</td><td>07.12.2023</td><td>SetBulkPaidPayment endpointi eklendi.</td></tr><tr><td>V38</td><td>21.12.2023</td><td>GetPaymentPlanByDealerSegment endpointi eklendi.</td></tr></tbody></table>


# 2. 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.
* Haso ile iletişime geçerek servislere erişim sağlayacağınız IP bilgilerini yazılı olarak iletiniz.
* Servisi kullanabilmek için gerekli merchant\_id, merchant\_key ve merchant\_salt 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.
* 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>


# 3. Servis Erişim Bilgileri

Servis erişim bilgileri için bizimle iletişime geçiniz.


# 4. Kullanım Amacı

Bu servis sayesinde Haso sisteminde müşteri sorgulayabilir, limit alabilir ve işlem  oluşturabilirsiniz.

* Haso işlemi oluşturmak için 2 yöntem vardır. Haso UI ekranlarını kullanacaksanız “Haso\_UI\_v1” isimli dökümana sahip olmalısınız. Bu dökümanda sadece rest endpoint apileri bulunmaktadır.
* Başvuru formu kendi sayfanızda olacaksa bu dökümanda bahsedilen rest api servislerini kullanarak verileri hasoya post edebilirsiniz. Haso limit almak için gerekli bilgiler (Tckn, Ad Soyad, Mobil No, Doğum tarihi, İşlem Tutarı vb) kendi sayfanızda müşteriden alınır, backendten Hasoya gönderilir. Sipariş isteğinde ise öncelikle müşterinin sipariş tutarına göre ne kadar taksit seçebileceği gösterilerek sonrasında taksit seçimi ile birlikte Haso Servlet sayfasına post edilir. Taksit seçeneği sizin tarafta yapıldığı için httppost isteği sonrasında başarılı veya başarısız olma durumuna göre ilgili sayfalarınızı müşteriye gösterebilirsiniz.
* Her metod çağrısı için token oluşturmanız gerekir. Her metod için token oluşturma argoritması farklıdır. Bu yüzden token oluşturmayı örnek kodlardan bakabilirsiniz.


# 5. Servis Metodları


# 5.1. Müşteri Limit Bilgilerini Getir

Müşteri bilgilerini ve/veya taksit planını getirmek için kullanılır. Eğer müşteri daha önce Haso başvurusu yapmışsa başvuru servisinde dönen ödeme planı cevabında işlemi yapan müşterinin CustomerId parametresi de döner. Müşteriye özel üretilen bu unique bilgiyi kendi veritabanınıza kaydettiğinizde müşteri tekrar ödeme sayfanıza geldiğinde taksitler ile birlikte müşterinin limit bilgilerini de bu servis ile gösterebilirsiniz.&#x20;

Servis Url: <mark style="color:red;">{SERVIS\_URL}/Index/GetCustomerInformation</mark>

<table data-full-width="true"><thead><tr><th>Parametre adı</th><th width="153">Parametre  Tipi</th><th width="66">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>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><tr><td>customerId</td><td>String</td><td>O</td><td>Müşterinin önceki başvurusu cevabında size gönderilen müşteriyi tanımlayan unique değerdir. Eğer yeni müşteri ise null gönderebilirsiniz.</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>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>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>RevisedFeeRate</td><td>İnt</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>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + ipAddress + customerId + orderAmount + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr><tr><td>basketList</td><td>List model</td><td>O</td><td>Sepette bulunan ürünleri aşağıdaki bilgileri gönderilirse erteleme, peşinat, taksit sayısı ve işlem ücreti gibi hesaplamalarda özelleştirme yapılabilir.</td></tr><tr><td>basketList.skuCode</td><td>String</td><td>O</td><td>Ürününüzün sku kodudur.</td></tr><tr><td>basketList.skudefinitionId</td><td>String</td><td>O</td><td>Ürün grubu kodudur.</td></tr><tr><td>basketList.skuAmount</td><td>İnt</td><td>O</td><td>Ürün tutarının 100 ile çarpılmış halidir.</td></tr><tr><td>basketList.skuMerchant</td><td>String</td><td>O</td><td>Ürünün satan satıcıya verdiğiniz koddur.</td></tr><tr><td>basketList.skuMerchantContributionRate</td><td>İnt</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>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### **Çıkış Parametreleri**

<table data-full-width="true"><thead><tr><th>Parametre adı</th><th>Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr></tbody></table>

#### Data parametresinde müşteri limit bilgileri ile taksit değerleri vardır. Data parametresi içeriği ise şöyledir:

<table data-full-width="true"><thead><tr><th width="357">Parametre adı</th><th width="117">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“FirstPaymentDate”]</td><td>DateTime</td><td>İlk ödeme günüdür.</td></tr><tr><td>Data[“DownPaymentAmount”]</td><td>Decimal</td><td>Limit aşımı durumunda peşin alınacak tutar değeridir.</td></tr><tr><td>Data[“PostponeEnabled”]</td><td>Bool</td><td>Taksit Erteleme seçilip seçilemeyeceğini belirtir.</td></tr><tr><td>Data[“CustomerInfo”]</td><td></td><td>Müşteri limit bilgilerini içeren modeldir. Bu modele ait parametreler şöyledir.</td></tr><tr><td>CustomerInfo.customerID</td><td>String</td><td>Requestte gönderilen CustomerId değeridir.</td></tr><tr><td>CustomerInfo.customerLimit</td><td>Decimal</td><td>Müşterinin kullanılabilir limitidir.</td></tr><tr><td>CustomerInfo.specialLimit</td><td>Decimal</td><td>Müşteriye atanan özel limit değeridir.</td></tr><tr><td>CustomerInfo.initialLimit</td><td>Decimal</td><td>Müşterinin ilk limit aldığı andaki değerdir.</td></tr><tr><td>CustomerInfo.extraLimit</td><td>Decimal</td><td>Müşterinin belirli skularda kullanabileceği ek limit değeridir.</td></tr><tr><td>CustomerInfo.diffExtraAndCustomerLimit</td><td>Decimal</td><td>Müşterinin ek limiti ile geçerli limiti arasındaki farktır.</td></tr><tr><td>CustomerInfo.hasOverduePayments</td><td>Bool</td><td>Müşterinin vadesi geçen ödenmemiş ödeme kaydı olup olmadığı bilgisini verir.</td></tr><tr><td>CustomerInfo.totalOrderedAmount</td><td>Decimal</td><td>Müşterinin toplam başarılı sipariş tutarıdır.</td></tr><tr><td>CustomerInfo.totalPaidAmount</td><td>Decimal</td><td>Müşterinin taplam ödeme yaptığı tutardır.</td></tr><tr><td>CustomerInfo.totalRemainingAmount</td><td>Decimal</td><td>Müşterinin ödemesi gereken toplam tutardır.</td></tr><tr><td>CustomerInfo.balanceAmount</td><td>Decimal</td><td>Müşterinin sahip olduğu bakiye tutarıdır.</td></tr><tr><td>CustomerInfo.isNeedLimitRequest</td><td>Bool</td><td>Eğer bu parametre True ise Limit sorgusu yapılması gerekmektedir.</td></tr><tr><td>CustomerInfo.limitIncreased</td><td>Bool</td><td>Farklı zamanlarda segment cap limitlerinde değişiklik yapılabilir. Müşterinin de limitinde artış meydana gelebilir. Eğer limiti artmışsa bu parametre true yapılır. Müşteriye limitinin arttığını bilgilendirmek isteyebilirsiniz.</td></tr><tr><td>CustomerInfo.dealerSegment</td><td>String</td><td>Müşterinin geçerli satıcı segmentidir.</td></tr><tr><td>CustomerInfo.hasoSegment</td><td>String</td><td>Müşterinin geçerli haso segmentidir.</td></tr><tr><td>CustomerInfo.limitValidityDate</td><td>DateTime</td><td>Limit geçerlilik tarihidir.</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>

#### Listenin içindeki her bir taksit modeline ait alanlar ise şöyledir.

<table data-full-width="true"><thead><tr><th width="416">Parametre adı</th><th width="95">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Installments.InstallmentNo</td><td>Int</td><td>Kaç taksit olacağını belirten taksit sayısıdır.</td></tr><tr><td>Installments.Price</td><td>Decimal</td><td>Taksit tutarıdır.</td></tr><tr><td>Installments.TransactionPrice</td><td>Decimal</td><td>Sipariş tutarıdır. Ekstra ücretler eklenmiş taksitler ilave olan tutar değildir. Taksitleri getirmek için orderAmount parametresi olarak gönderdiğiniz değerdir.</td></tr><tr><td>Installments.TotalAmount</td><td>Decimal</td><td>Toplam işlem tutarıdır.</td></tr><tr><td>Installments.downPayment</td><td>Decimal</td><td>Taksit kaydı eğer peşin alınacak ise bu tutar ile gösterilir.</td></tr><tr><td>Installments.Fee</td><td>Decimal</td><td>Sipariş tutarı haricinde ödenecek toplam ekstra tutardır.</td></tr><tr><td>Installments.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>Installments.feeDiscountCampaigns</td><td>List</td><td>Fee indirimi uygulanan kampanya adı ve indirim oranlarını listeler</td></tr><tr><td>Installments.merchantContributions</td><td>List</td><td>Requestte basketList parametresinde gönderilen skuMerchantContributionRate değerine göre hangi satıcının ne kadar işlem ücretini karşılayacağı gösterilir.</td></tr><tr><td>Installments.merchantContributions.skuCode</td><td>string</td><td>basketList ile gönderilen sku</td></tr><tr><td>Installments.merchantContributions.skuMerchant</td><td>string</td><td>basketList ile gönderilen merchant kodu</td></tr><tr><td>Installments.merchantContributions. skuMerchantContributionAmount</td><td>Decimal</td><td>Merchant için hesaplanan işlem ücreti katkı bedeli</td></tr><tr><td>Installments.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>Installments.PaymentPlan. InstallmentNo</td><td>Int</td><td>Ödeme planındaki taksit numarasıdır.</td></tr><tr><td>Installments.PaymentPlan. installmentPayment</td><td>Decimal</td><td>Ödeme planındaki taksitin tutarıdır.</td></tr><tr><td>Installments.PaymentPlan. termDate</td><td>Date</td><td>Ödeme planındaki taksidin vade tarihidir.</td></tr><tr><td>Installments.PaymentPlan.fee</td><td>Decimal</td><td>İşlemdeki fee değerinin taksit başına düşen değeri</td></tr><tr><td>Installments.PaymentPlan.originalFee</td><td>Decimal</td><td>İşlemdeki original fee değerinin taksit başına düşen değeri</td></tr></tbody></table>


# Müşteri Bilgilerini Getir

Cep telefonu ya da T.C. Kimlik numarasından müşteri bilgilerini elde etmek \
için kullanılır.  İstek parametrelerinde  Tckn gönderilirse mobileNumber gönderilse dahi dikkate alınmayacak Tckn üzerinden arama işlemi yapılacaktır.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/Index/GetCustomerId</mark>

<table data-full-width="true"><thead><tr><th>Parametre adı</th><th width="153">Parametre  Tipi</th><th width="66">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>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><tr><td>mobileNumber</td><td>String</td><td>O</td><td>Müşterinin cep telefonu numarası</td></tr><tr><td>Tckn</td><td>String</td><td>O</td><td>Müşterinin T.C. kimlik numarası </td></tr></tbody></table>

#### **Çıkış Parametreleri**

<table data-full-width="true"><thead><tr><th>Parametre adı</th><th width="228">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr></tbody></table>

#### Data parametresinde müşteri bilgileri vardır. Data parametresi içeriği ise şöyledir:

<table data-full-width="true"><thead><tr><th width="240">Parametre adı</th><th width="169">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“customerInfo”]</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Müşteri bilgilerini içeren modeldir. Bu modele ait parametreler şöyledir.</td></tr><tr><td>customerInfo.customerID</td><td>String</td><td>Requestte gönderilen CustomerId değeridir.</td></tr><tr><td>customerInfo.nameSurname</td><td>String</td><td>Müşteri adı soyadı</td></tr><tr><td>customerInfo.mobileNumber</td><td>String</td><td>Müşteri cep telefonu bilgisi</td></tr></tbody></table>


# 5.2. Limit Belirle

Müşterinin sipariş vermeden sadece limitinin belirlenmesi için kullanılır. Kkb isteği yapılır veya ön tanımlı satıcı limiti tanımlanır. Ön tanımlı limit var ve sıfırdan büyük ise kkb isteği yapılmaz. 3 adımdan oluşur.


# 5.2.1 Limit İsteğinin Başlatılması

Müşterinin bilgileri ile Kkb talebinin veya ön tanımlı limit isteğinin başlatıldığı servistir. Gönderilen Tckn eğer sistemde yoksa öncelikle müşteri Haso sistemine kaydedilir. Eğer müşteri Haso sisteminde kayıtlı değil ise veya kayıtlı olmasına rağmen limit belirlenmesi gerekiyorsa Kkb talebi yapılır. Kkb talebi başarılı yapıldı ise Kkb tarafından müşterinin telefonuna Pin Kodu gönderilir. 2. Adımda girilecek olan PinKodu ile birlikte gönderilmek üzere KkbRefNo parametresi çıkış parametrelerinde yer alır. Kkb talebi başarısız ise hata kodu geri döner. Eğer müşteri Haso sisteminde kayıtlı ve limit belirlenmesine ihtiyaç yoksa response olarak müşterinin mevcut limitini içeren CustomerInfo modeli döner. Ön tanımlı limit verilmek isteniyorsa PreDefinedLimit request parametresi sıfırdan büyük gönderilmelidir. PreDefinedLimit>0 ise kkb isteği yapılmadan otp doğrulaması ile satıcı limiti müşteriye tanımlanır.&#x20;

Servis Url: <mark style="color:red;">{SERVIS\_URL}/RequestV2/HasoAuthSendInfo</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="221">Parametre adı</th><th width="144">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 size verilen sabit parametredir.</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><tr><td>shopperName</td><td>String</td><td>Z</td><td>Müşterinin adı bilgisidir. Tckn doğrulamada kullanıldığı için müşterinin kimliğinde nasıl yazıyorsa aynen girilmesi gerekir. Eğer orta adı var ise o da girilmelidir.</td></tr><tr><td>shopperSurname</td><td>String</td><td>Z</td><td>Müşterinin soyadı bilgisidir. Tckn doğrulamada kullanıldığı için müşterinin kimliğinde nasıl yazıyorsa aynen girilmesi gerekir.</td></tr><tr><td>tckn</td><td>String(11)</td><td>Z</td><td>Müşterinin 11 haneli tckn bilgisidir.</td></tr><tr><td>mobileNumber</td><td>String(10)</td><td>Z</td><td>Başında ülke kodu veya sıfır olmadan girilen 10 haneli cep telefonu numarasıdır. Örneğin 5161112233 formatında gönderilmelidir.</td></tr><tr><td>email</td><td>String</td><td>Z</td><td>Müşterinin sisteme kayıt olacağı email adresidir.</td></tr><tr><td>dealerSegment</td><td>String(10)</td><td>Z</td><td>Müşterinin satıcı tarafındaki segmentidir.</td></tr><tr><td>birthDate</td><td>DateTime</td><td>Z</td><td>“yyyy-mm-dd” olarak gönderilmesi gereken doğum tarihi parametresidir. Tckn doğrulamada doğum yılı gerektiği için önemli bir parametredir.</td></tr><tr><td>PreDefinedLimit</td><td>String</td><td>O</td><td>Ön tanımlı limit tutarıdır. 100 ile çarparak gönderiniz. Ondalık basamak olmamalıdır.</td></tr><tr><td>testOn</td><td>Bool</td><td>O</td><td>Gerçek Kkb isteği yapmamak için kullanılır. Eğer true gönderilirse gerçek kkb isteği yapılmaz. Sadece sandbox ortamında çalışır.</td></tr><tr><td>skipTcknValidation</td><td>Bool</td><td>O</td><td>True gönderilirse nvi servislerinden tckn doğrulaması yapılmaz. Sadece tckn’nin 11 karakterli nümerik olması kontrolü yapılır.</td></tr><tr><td>SpecialLimit</td><td>String</td><td>O</td><td>Müşterinin alacağı kendi limitine ilave olarak özel limit tanımlanmak isterse bu parametre ile özel limit değeri gönderilebilir.</td></tr><tr><td>forceToPredefinedLimit</td><td>Bool</td><td>O</td><td>Ön tanımlı limit göderildiğinde başka şarta bakmadan ön tanımlı limitin kullanıcıya tanımlanması zorlanır.</td></tr><tr><td>requestToken</td><td>String</td><td>Z</td><td><p></p><p><mark style="color:red;">merchantId + ipAddress + shopperName + shopperSurname</mark></p><p><mark style="color:red;">+ tckn + birthDate + mobileNumber + email + dealerSegment + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz.</p></td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="157">Parametre 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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string, object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr></tbody></table>

Müşteri Haso sisteminde kayıtlı değilse veya olmasına rağmen Kkb sorgusu ihtiyacı varsa kkb talebi yapılır. Bu durumda Data parametresi içeriğinde şu key değerleri olur.

<table data-full-width="true"><thead><tr><th width="196">Parametre Adı</th><th width="121">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“KkbRefNo”]</td><td>String</td><td><p></p><ol start="2"><li>ve 3. adımda request olarak kullanılacaktır.</li></ol></td></tr><tr><td>Data[“Message”]</td><td>String</td><td>Bilgi mesajıdır.</td></tr><tr><td>Data[“KkbPhones”]</td><td>List&#x3C;string></td><td>Kkb’de tanımlı olan telefon numaralarının maskelenmiş formatıdır.</td></tr><tr><td>Data[“CustomerId”]</td><td>String</td><td>Kaydedilen müşteri için verilen unique değerdir. Bu değeri kendi sisteminizde müşteri ile eşleştirmek için kullanabilirsiniz.</td></tr><tr><td>Data[“OtpCode”]</td><td>String</td><td>Öntanımlı limiti gönderilmiş ise otp sms işlemini satıcı kendisi gönderecekse müşteriye gönderilecek sms içeriğinde yer alacak olan kod değeridir.</td></tr></tbody></table>

Eğer müşteri zaten Hasoda kayıtlı ve Kkb sorgu ihtiyacı yoksa CustomerId ve güncel limit bilgisini içeren CustomerInfo model döner. Normalde müşterinin limit ihtiyacı yok ise zaten bu endpoint çağrılmamalıdır.

<table data-full-width="true"><thead><tr><th width="211">Parametre Adı</th><th width="83">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“CustomerInfo”]</td><td>Model</td><td>GetCustomerInformation endpointinde de bulunan response modeldir.</td></tr></tbody></table>


# 5.2.2. Limit Talebinin Pin Kodu ile Onaylanması

Limit belirlemenin ilk adımında başarılı bir şekilde talep başlatıldı ise müşteriye Pin kodu  gönderilmiştir. Gönderilen pin kodu ile talebin onaylandığı servistir.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/RequestV2/SendKkbPinCode</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="156">Parametre adı</th><th width="146">Parametre Tipi</th><th width="66">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>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><tr><td>kkbRefNo</td><td>String</td><td>Z</td><td>İlk adımda dönen referans no bilgisidir.</td></tr><tr><td>pinCode</td><td>String</td><td>Z</td><td>Müşterinin telefonuna gönderilen Pin Kodunu sayfanızda girdiği değerdir.</td></tr><tr><td>testResult</td><td>String</td><td>O</td><td>Eğer 1. Adımda testOn=true gönderilmişse bu parametre ile istenen Kkb sonucu belirtilir. testResult dolu ise PinCode parametresinine herhangi bir değer verilebilir. testResult in (“A”,”B”,”C,”D”,”E”,”F”) gönderilirse sonuç başarılı ve bir limit değeri döner. E ve F için limit=0’dır. testResult=”RETRY” gönderilirse Kkb raporu henüz olaylanmamış tekrar deneyiniz gibi response döner.</td></tr><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + ipAddress + kkbRefNo + pinCode + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz. </td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

&#x20;Pin kodu ile talep onaylanırsa kkb rapor sonucu da kkbden talep edilir. Eğer kkb rapor sonucunu dönerse müşterinin limiti sonucu belli olur. Eğer reddedildiyse Success=false ile hata olarak response gelir. Reddedilmediyse rapor sonucu analiz edilerek müşterinin limiti oluşturulur. Bu durumda 3. Adıma gerek kalmayacaktır. Eğer kkbden rapor sonucu gelmez ise müşterinin limiti bu anda belirlenemez. Sistem tarafından belli aralıklarla rapor sonucu sorgulanacak ve rapor oluştuğu anda müşteri limiti sisteme kaydedilecektir. Siz de manuel olarak rapor sonucunu almak istediğinizde 3. Adımdaki servis çağrılmalıdır.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="155">Parametre adı</th><th width="227">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr></tbody></table>

Rapor sonucu belli olmamışsa 3. Adımda kullanılmak üzere KkbRefNo ve durumu belirten Message değerleri Data içinde yer alır.

<table data-full-width="true"><thead><tr><th width="185">Parametre adı</th><th width="80">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“KkbRefNo”]</td><td>String</td><td><p></p><ol start="3"><li>adımda request olarak kullanılacaktır.</li></ol></td></tr><tr><td>Data[“Message”]</td><td>String</td><td>M101 kodu ile 3.adımın çağrılabileceği belirtilir.</td></tr></tbody></table>

Büyük olasılıkla rapor oluşacaktır. Bu durumda CustomerId ve güncel limit bilgisini içeren CustomerInfo model döner.

<table data-full-width="true"><thead><tr><th width="212">Parametre adı</th><th width="94">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“CustomerInfo”]</td><td>Model</td><td>GetCustomerInformation endpointinde de bulunan response modeldir.</td></tr></tbody></table>


# 5.2.3. KKB Rapor Sonucu Kontrolü

Eğer 2. Adım olan Kkb Talebinin Onaylanması servisinden rapor sonucu gelmemiş ise bu servis ile  rapor sonucu kontrol edilebilir.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/RequestV2/AskKkbReportResult</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="155">Parametre adı</th><th width="148"> Parametre Tipi </th><th width="67">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>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><tr><td>kkbRefNo</td><td>String</td><td>Z</td><td>İkinci adımda dönen referans no bilgisidir.</td></tr><tr><td>testResult</td><td>String</td><td>O</td><td>Eğer 1. Adımda testOn=true gönderilmişse bu parametre ile istenen Kkb sonucu belirtilir. testResult dolu ise PinCode parametresinine herhangi bir değer verilebilir. testResult in (“A”,”B”,”C,”D”,”E”,”F”) gönderilirse sonuç başarılı ve bir limit değeri döner. E ve F için limit=0’dır. testResult=”RETRY” gönderilirse Kkb raporu henüz olaylanmamış tekrar deneyiniz gibi response döner.</td></tr><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + ipAddress + kkbRefNo + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

Onaylanan Kkb talebinin raporunun oluşturulup oluşturulmadığı kontrol edilir. Eğer kkb rapor sonucunu dönerse müşterinin limiti sonucu belli olur. Eğer reddedildiyse Success=false ile hata olarak response gelir. Reddedilmediyse rapor sonucu analiz edilerek müşterinin limiti oluşturulur. Eğer kkbden rapor sonucu gelmez ise müşterinin limiti bu anda belirlenemez. Sistem tarafından belli aralıklarla rapor sonucu sorgulanacak ve rapor oluştuğu anda müşteri limiti sisteme kaydedilecektir. Bu servis ile dilerseniz manuel olarak rapor sonucunu tekrar kontrol edebilirsiniz.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="160">Parametre adı</th><th width="223">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr></tbody></table>

Rapor sonucu belli olmamışsa bu adımda tekrar kullanılmak üzere KkbRefNo ve durumu belirten Message değerleri Data içinde yer alır.

<table data-full-width="true"><thead><tr><th width="185">Parametre adı </th><th width="85">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“KkbRefNo”]</td><td>String</td><td><p></p><ol start="3"><li>adımda request olarak kullanılacaktır.</li></ol></td></tr><tr><td>Data[“Message”]</td><td>String</td><td>M101 kodu ile 3.adımın tekrar çağrılabileceği belirtilir.</td></tr></tbody></table>

Büyük olasılıkla rapor oluşacaktır. Bu durumda CustomerId ve güncel limit bilgisini içeren CustomerInfo model döner.

<table data-full-width="true"><thead><tr><th width="209">Parametre adı </th><th width="95">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“CustomerInfo”]</td><td>Model</td><td>GetCustomerInformation endpointinde de bulunan response modeldir.</td></tr></tbody></table>


# 5.2.4. Yeniden KkbPin Kodu Gönderilmesi

Rapor talebinin pin ile onaylanması için yeni pin üretmek amacıyla kullanılacak metoddur. Kkbden gönderilen sms’in kullanıcıya ulaşmamış olması durumunda, bu metod ile tekrar pin üreterek, müşteriye yeniden iletimi sağlanabilir.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/RequestV2/ReSendKkbPin</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="160">Parametre adı</th><th width="144">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 size verilen sabit parametredir.</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><tr><td>kkbRefNo</td><td>String</td><td>Z</td><td>İlk adımda dönen referans no bilgisidir.</td></tr><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + ipAddress + kkbRefNo + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="160">Parametre adı</th><th width="223">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr></tbody></table>

Yeniden pinkodu gönderdikten sonra 5.8.2 KKB Talebinin Onaylanması adımında kullanılmak üzere Data.KkbRefNo parametresi kullanılır.

<table data-full-width="true"><thead><tr><th width="187">Parametre adı</th><th width="79">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“KkbRefNo”]</td><td>String</td><td><p></p><ol start="2"><li>adımda request olarak kullanılacaktır.</li></ol></td></tr><tr><td>Data[“Message”]</td><td>String</td><td>Yeniden pin gönderme başarılı ise RS100</td></tr></tbody></table>


# 5.3. Yeni İşlem Oluşturma

Yeni bir işlem oluşturmak için lütfen aşağıdaki parametleri inceleyiniz.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/ServletV2/TransactionMobile</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="213">Parametre adı </th><th width="148">Parametre  Tipi</th><th width="63">Z/O</th><th>Açıklama</th></tr></thead><tbody><tr><td>Token</td><td>String</td><td></td><td></td></tr><tr><td>merchantId</td><td>String</td><td>Z</td><td>Haso tarafından size verilen sabit parametredir.</td></tr><tr><td>okUrl</td><td>String</td><td></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></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></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>İstek yapan istemcinin ip adresi</td></tr><tr><td>merchantOid</td><td>String(20)</td><td>Z</td><td>Kendi sisteminizde oluşturduğunuz sipariş için unique verdiğiniz sipariş numaranızdır.</td></tr><tr><td>qrhash</td><td>String</td><td>O</td><td>Mobil uygulamadan oluşturulan QR kod içerisinde bulunan şifreli müşteri bilgileri. QR okutularak müşteri bilgileri elde etme, elde edilen bu değer gönderilir.  Oluşturulan her QR kod 10 dakika geçerlidir. CustomerID verisi bu değer üzerinden okunacaktır.</td></tr><tr><td>branchId</td><td>String(20)</td><td>O</td><td>Siparişin verildiği şubenin (Mağazanın) Id numarası. Sipariş raporlarında hangi mağazadan  verildiğini belirtir.</td></tr><tr><td>customerId</td><td>String(10)</td><td>Z</td><td>Haso sisteminde müşterinin sahip olduğu unique değerdir. Limit tanımında size gönderilmişti. <br><mark style="color:red;">Not: qrhash parametresi gönderilirse zorunlu değildir. Ancak yine de gönderilebilir fakat qrhash içerisindeki customerID verisi dikkate alınacaktır.</mark></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>OrderItems</td><td>Json</td><td>O</td><td><p>Sipariş içeriğindeki ürün bilgilerinin key-value şeklinde json array stringi olarak hazırlanmasıdır. Json demetinde olması beklenen key değerleri şunlardır. </p><p>“id”: sisteminizde her bir ürün için verilmiş unique kod. </p><p>“name”: Ürün adı</p><p>“category”: Ürün kategorisi</p><p>“brand”: ürünün marka bilgisi</p><p>“variant”: Renk gibi ürüne ait bir variant değeri</p><p>“variant2”: Beden/size gibi ürüne ait diğer varyant</p><p>“url”: Sitenizdeki ilgili ürünün detay urlsi.</p><p>“image”: Sitenizdeki ilgili ürünün görsel urlsi.</p><p>“quantity”: İlgili üründen kaç adet alındığı bilgisidir.</p><p>“price”: Ürünün satış fiyatı</p></td></tr></tbody></table>

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="216">Parametre adı </th><th width="225">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td>bool</td><td>işlemin başarılı sonuç dönüp dönmediğini bildirir. False dönerse Errors parametresi doludur. True dönerse ödeme planını kendi veritabanınıza kaydedebilir ve siparişinizi aktif edebilirsiniz.</td></tr><tr><td>Errors</td><td>List&#x3C;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>expiredate</td><td>Datetime</td><td>Başlatılan işlemin sona erme süresi</td></tr><tr><td>customerID</td><td>String</td><td>İşlemi oluşturulan Müşteri numarası</td></tr><tr><td>checkoutkey</td><td>String</td><td>Her işlem için belirlenen benzersiz guid değeri (Kendi tarafınızda saklamanızı öneririz)</td></tr></tbody></table>

## OkUrl, FailUrl, CallbackUrl dönüş parametreleri

<table data-full-width="true"><thead><tr><th width="466">Parametre adı </th><th width="120">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>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><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>Taksit numarasıdır.</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><strong>FailUr</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>


# 5.4. İşlem Durumunu Aktifleştirme

Haso sisteminde bulunan işlemlerinizin durumunu izin verilen durumlarda değiştirmenizi sağlar. İşlemi aktif etmek için kullanılabilir.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/Index/UpdateTransaction</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="183">Parametre adı </th><th width="147">Parametre 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 size verilen sabit parametredir.</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><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + merchantOid + transactionCode + transactionStatus + ipAddress + merchantSalt</mark> parametrelerinden oluşan string parametre sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. Örnek token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr><tr><td>transactionCode</td><td>String</td><td>Z</td><td>Durumunu değiştirmek istediğiniz işlemin Haso sistemindeki işlem numarasıdır. Başvuru sonucunda okUrl’e düşen response parametrelerinde bu değer vardır.</td></tr><tr><td>merchantOid</td><td>String</td><td>Z</td><td>Haso işlem numarası ile eşleştirilmiş kendi sipariş numaranızdır.</td></tr><tr><td>transactionStatus</td><td>String</td><td>Z</td><td>Aktiflemek için <mark style="color:red;">"Completed"</mark> göndermelisiniz.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak çıkış döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="154">Parametre adı </th><th width="227">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</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>Parametre adı </th><th>Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“<mark style="color:red;">message</mark>”]</td><td>String</td><td>Aktifleme işleminin başarılı olduğuna dair mesaj bulunur.</td></tr></tbody></table>


# 5.5 Ödeme Planını Getir

Haso sisteminde onaylanmış bir işlemin güncel ödeme planını (taksit detaylarını) istediğiniz zaman bu metod ile alabilirsiniz.

İşlem ilk onaylandığında başvuru sonucunda size zaten ödeme planı döner. Gelen ödeme planını kendi sisteminize kaydetmenizi ve müşterinize gerekli gördüğünüz yerlerde kendi sisteminizden göstermenizi tavsiye ederiz. Bu metodun kullanılma amacı ise iptal, iade veya zamanla taksitlerde ödeme yapılması durumunda taksit durumları değişeceği için kendi sisteminizdeki ödeme planı tablonuzu güncellemenizi sağlamaktır.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/Index/GetPaymentsOfTransaction</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="171">Parametre adı</th><th width="146">Parametre Tipi</th><th width="63">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>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><tr><td>requestToken</td><td>String</td><td>Z</td><td><p></p><p><mark style="color:red;">merchantId + merchantOid + transactionCode + ipAddress + merchantSalt</mark> parametrelerinden oluşan string parametre sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hashbased_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. Örnek token oluşturma için örnek kodlarımızı inceleyiniz.</p></td></tr><tr><td>transactionCode</td><td>String</td><td>Z</td><td>Ödeme planını getirmek istediğiniz işlemin Haso sistemindeki işlem numarasıdır. Başvuru sonucunda okUrl’e düşen response parametrelerinde bu değer vardır</td></tr><tr><td>merchantOid</td><td>String</td><td>Z</td><td>Haso işlem numarası ile eşleştirilmiş kendi sipariş numaranızdır.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak çıkış döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="155">Parametre 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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</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="275">Parametre adı </th><th width="78">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“<mark style="color:red;">TransactionPayments</mark>”]</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">Parametre adı </th><th width="104">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>TransactionCode</td><td>String</td><td>Request olarak gönderilen transactionCode ile karşılaştırılması için kullanılabilecek bir değerdir.</td></tr><tr><td>MerchantOid</td><td>String</td><td>Request olarak gönderilen merchantOid ile karşılaştırılması için kullanılabilecek bir değerdir.</td></tr><tr><td>CustomerId</td><td>String</td><td>İşlemin sahibi olan müşteriyi tanımlayan unique bir değerdir.</td></tr><tr><td>TotalAmount</td><td>Decimal</td><td>Toplam işlem tutarıdır.</td></tr><tr><td>Fee</td><td>Decimal</td><td>Sipariş tutarı haricinde ödenecek toplam ekstra tutardı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>Kaçıncı taksit olduğunu belirten değerdir.</td></tr><tr><td>TransactionPayments.InstallmentPayment</td><td>Decimal</td><td>Taksit tutarını belirten değerdir.</td></tr><tr><td>TransactionPayments.TermDate</td><td>DateTime</td><td>Taksit vade tarihidir.</td></tr><tr><td>TransactionPayments.PaymentStatusText</td><td>String</td><td>Taksitin durumunu gösteren string ifadedir. “Ödendi” vs gibi değerler içerir.</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.Fee</td><td>Decimal</td><td>Taksit için geçerli ekstra ücrettir.</td></tr></tbody></table>


# 5.6 Ödendi Bilgisinin Gönderilmesi&#x20;

Haso dışında bir yapıdan ödeme alındığı zaman ödeme kaydının durumunu hasoda da Ödendi  yapılması için bu servis kullanılır.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/RequestV2/SetPaidPayment</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="228">Parametre adı</th><th width="108">Parametre Tipi </th><th width="63">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>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><tr><td>paymentCode</td><td>String</td><td>Z</td><td>Hangi ödeme kaydının durumunu değiştirileceği bu parametre ile belirlenir. Başvuru sonucunda ödeme planında size bu bilgi gönderilir.</td></tr><tr><td>merchantOid</td><td>String(20)</td><td>Z</td><td>Kendi sisteminizde oluşturduğunuz sipariş için unique verdiğiniz sipariş numaranızdır.</td></tr><tr><td>paymentDate</td><td>DateTime</td><td>Z</td><td>Ödemenin müşteriden alındığı tarihtir.</td></tr><tr><td>paymentReferenceCode</td><td>String</td><td>O</td><td>Kendi sisteminizde ödemenin alındığı ödeme kanalına ait referans numarasıdır. Opsiyoneldir.</td></tr><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + merchantOid + paymentCode + paymentReferenceCode + paymentDate + ipAddress + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="217">Parametre adı </th><th width="224">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>Data[“Message”]</td><td>String</td><td>RS100 kodu ile işlemin başarılı olduğunu belirtir.</td></tr><tr><td>Data[“paymentfunds”]</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer payment fona aktarılmış ise fon bilgileri bu modelde aktarılır.</td></tr></tbody></table>


# 5.7 İşlemin İadesi

Başarılı bir işlemin tamamın veya bir kısmının iadesi gerçekteş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.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/RequestV2/RefundTransaction</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="174">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 size verilen sabit parametredir.</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><tr><td>transactionCode</td><td>String</td><td>Z</td><td>Her işlemin sahip olduğu unique bir değerdir. Başvuru sonucunda ödeme planında size bu bilgi gönderilir.</td></tr><tr><td>merchantOid</td><td>String(20)</td><td>Z</td><td>Kendi sisteminizde oluşturduğunuz sipariş için unique verdiğiniz sipariş numaranızdır.</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. <mark style="color:red;">refundAmount</mark> 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. CheckRefund endpointinde bu parametre ile iadeyi kontrol edebilirsiniz.</td></tr><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + merchantOid + transactionCode + refundAmount + refundId + ipAddress + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="301">Parametre adı </th><th width="225">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>Data[“Message”]</td><td>String</td><td>RS100 kodu ile işlemin başarılı olduğunu belirtir.</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[“hasoRefundFeeAmount”]</td><td>Decimal</td><td>İşlemin tamamı iade edilmişse ekstra tutar değeri bu parametre ile gönderilir.</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 taksidin vade tarihidir.</td></tr></tbody></table>


# 5.8 İşlem İadesi Kontrolü

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.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/RequestV2/CheckRefund</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="157">Parametre adı </th><th width="149">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 size verilen sabit parametredir.</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><tr><td>refundId</td><td>String(36)</td><td>Z</td><td>Sizn tarafınızda oluşturulan İade işlemi için unique olacak maximum 36 karakter içerebilen parametredir. CheckRefund endpointinde bu parametre ile iadeyi kontrol edebilirsiniz.</td></tr><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + refundId + ipAddress + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="283">Parametre adı </th><th width="223">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>Data[“Message”]</td><td>String</td><td>RS100 kodu ile işlemin başarılı olduğunu belirtir.</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[“hasoRefundFeeAmount”]</td><td>Decimal</td><td>İşlemin tamamı iade edilmişse ekstra tutar değeri bu parametre ile gönderilir.</td></tr></tbody></table>


# 5.9 Müşteri İşlemlerini Getir

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

Servis Url: <mark style="color:red;">{SERVIS\_URL}/Index/GetCustomerTransactions</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="182">Parametre adı </th><th width="123">Parametre Tipi</th><th width="63">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>customerId</td><td>String(10)</td><td>Z</td><td>Haso sisteminde müşterinin sahip olduğu unique değerdir. Limit tanımında size gönderilmişti.</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><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + customerId + ipAddress + merchantSalt</mark> parametrelerinden oluşan string parametre sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. Örnek token oluşturma için örnek kodlarımızı inceleyiniz.</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 array olarak gönderebilirsiniz.</td></tr><tr><td>pageNo</td><td>Int</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>Int</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>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak çıkış döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="156">Parametre adı</th><th width="225">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></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>Parametre adı</th><th>c</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“<mark style="color:red;">Transactions</mark>”]</td><td>String</td><td>İşleme ait ödeme planını içerek json modeldir.</td></tr></tbody></table>

Transactions Model içeriği şöyledir.

<table data-full-width="true"><thead><tr><th width="468">Parametre adı</th><th width="140">Parametre adı</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>Eticaret lokal sipariş numarasıdı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>Int</td><td>İşlemin durumun bildiren durum kodudur.</td></tr><tr><td>Transactions.transactionStatusText</td><td>Int</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>Int</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>


# 5.10 Müşteri Ödemelerini Getir

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

Servis Url: <mark style="color:red;">{SERVIS\_URL}/Index/GetCustomerPayments</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="179">Parametre adı</th><th width="144">Parametre 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 size verilen sabit parametredir.</td></tr><tr><td>customerId</td><td>String(10)</td><td>Z</td><td>Haso sisteminde müşterinin sahip olduğu unique değerdir. Limit tanımında size gönderilmişti.</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><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + customerId + ipAddress + merchantSalt</mark> parametrelerinden oluşan string parametre sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. Örnek token oluşturma için örnek kodlarımızı inceleyiniz.</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>Int</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>Int</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>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak çıkış döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th>Parametre adı </th><th>Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></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>Parametre adı </th><th>Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“<mark style="color:red;">Payments</mark>”]</td><td>array</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">Parametre 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>Satıcı sipariş numarasıdı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>


# 5.11 Günlük Mutabakat servisleri

Günlük olarak sipariş, yapılan ödeme ve iade tutarlarını dönen servislerdir. Toplam tutarları  ve detaylı olarak dönüş yapan 2 endpoint bulunmaktadır.


# 5.11.1 Genel Mutabakat Servisi

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

Servis Url: <mark style="color:red;">{SERVIS\_URL}/Index/GetDailySettlement</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="159">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 size verilen sabit parametredir.</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><tr><td>settlementDate</td><td>Date</td><td>Z</td><td>Toplam tutarları öğrenmek istediğiniz tarih bilgisidir. Tarih formarı "yyyy-MM-dd" olmalıdır</td></tr><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + ipAddress + settlementDate + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th>Parametre adı </th><th>Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>Data[“order”]</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Başarılı siparişlere ait Count ve TotalAmount değerlerini barındıran parametredir.</td></tr><tr><td>Data[“payment”]</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Belirtilen tarihde alınan ödeme kayıtlarının count ve Total Amount değerlerini içerir.</td></tr><tr><td>Data[“refund”]</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Belirtilen tarihlerde yapılan başarılı iadelerin count ve TotalAmount değerlerini içerir. TotalAmount değeri müşteriye iade edilecek tutardır (hasoRefundAmount)</td></tr></tbody></table>


# 5.11.2 Mutabakat Detay Servisi

Gönderilen tarih parametresine göre sipariş, yapılan ödeme ve iade tutarlarını sipariş numarası  ile birlikte array olarak geri döndürür.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/Index/GetDailySettlementDetail</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="164">Parametre adı</th><th width="148">Parametre  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 size verilen sabit parametredir.</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><tr><td>settlementDate</td><td>Date</td><td>Z</td><td>Detaylı tutarları öğrenmek istediğiniz tarih bilgisidir. Tarih formarı "yyyy-MM-dd" olmalıdır</td></tr><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + ipAddress + settlementDate + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="178">Parametre adı </th><th width="223">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>Data[“order”]</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Başarılı siparişlere ait orderId ve Amount değerlerini içeren array parametredir.</td></tr><tr><td>Data[“payment”]</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Belirtilen tarihde alınan ödeme kayıtlarının orderId ve Amount değerlerini içeren array parametredir.</td></tr><tr><td>Data[“refund”]</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Belirtilen tarihlerde yapılan başarılı iadelerin orderId ve Amount değerlerini içeren array parametredir. Amount değeri müşteriye iade edilecek tutardır (hasoRefundAmount)</td></tr></tbody></table>


# 5.12. İcraya gönderilen işlemin Bildirilmesi

İcraya verilen müşterinin ilgili işlemin Hasoya bildirilmesi için kullanılır.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/RequestV2/SendExecutionTransaction</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="171">Parametre adı</th><th width="143">Parametre Tipi</th><th width="66">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>transactionCode</td><td>String(20)</td><td>Z</td><td>Haso sistemindeki işlem numarası.</td></tr><tr><td>merchantOid</td><td>String(20)</td><td>Z</td><td>Kendi sisteminizde oluşturduğunuz sipariş için unique verdiğiniz sipariş numaranızdı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><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + merchantOid + transactionCode + ipAddress + merchantSalt</mark> parametrelerinden oluşan string parametre sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. Örnek token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak çıkış döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="156">Parametre adı </th><th width="226">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr></tbody></table>


# 5.13. İcraya verilmiş işlemin Ödenmesi

İcraya verilmiş işlemin ödemesi alınırsa bu endpoint ile kayıt ödendi yapılır.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/RequestV2/PaidExecutionTransaction</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="227">Parametre adı </th><th width="144">Parametre Tipi </th><th width="67">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>transactionCode</td><td>String(20)</td><td>Z</td><td>Haso sistemindeki işlem numarası.</td></tr><tr><td>merchantOid</td><td>String(20)</td><td>Z</td><td>Kendi sisteminizde oluşturduğunuz sipariş için unique verdiğiniz sipariş numaranızdır.</td></tr><tr><td>PaymentDate</td><td>DateTime</td><td>Z</td><td>Ödemenin müşteriden alındığı tarihtir.</td></tr><tr><td>PaymentReferenceCode</td><td>String(60)</td><td>O</td><td>Kendi sisteminizde ödemenin alındığı ödeme kanalına ait referans numarasıdır. Opsiyoneldir.</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><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + merchantOid + transactionCode + PaymentReferenceCode + PaymentDate + ipAddress + merchantSalt</mark> parametrelerinden oluşan string parametre sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. Örnek token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak çıkış döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="156">Parametre adı </th><th width="223">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr></tbody></table>


# 5.14 İcraya Verilen işlem için masraf tutarı girişi

İcraya verilen işlemler için KTVU ve diğer masraf tutarı gönderilir. Aynı işlem için farklı zamanlarda farklı masraflar gönderilirse toplam masraf değeri gönderilmelidir. Toplam masraf tutarı son taksite eklenir.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/RequestV2/SendTransactionExpense</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="234">Parametre adı </th><th width="150">Parametre  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 size verilen sabit parametredir.</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><tr><td>transactionCode</td><td>String</td><td>Z</td><td>Her işlemin sahip olduğu unique bir değerdir. Başvuru sonucunda ödeme planında size bu bilgi gönderilir.</td></tr><tr><td>merchantOid</td><td>String(20)</td><td>Z</td><td>Kendi sisteminizde oluşturduğunuz sipariş için unique verdiğiniz sipariş numaranızdır.</td></tr><tr><td>counterPartyAttorneyFee</td><td>String</td><td>Z</td><td>Ktvu tutarıdır. 100 ile çarparak gönderiniz. Ondalık basamak olmamalıdır.</td></tr><tr><td>expenseAmount</td><td>String</td><td>Z</td><td>İcrada çıkan toplam masraf tutarıdır. 100 ile çarparak gönderiniz. Ondalık basamak olmamalıdır.</td></tr><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + merchantOid + transactionCode + counterPartyAttorneyFee + expenseAmount + ipAddress + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/HasH-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="307">Parametre adı</th><th width="224">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</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 taksidin vade tarihidir.</td></tr><tr><td>PaymentPlan.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>


# 5.15 Müşterinin GsmNo Değiştirilmesi

Sistemde var olan müşterinin telefon numarasını değiştirmek için kullanılır. Yeni telefon numarası müşterinin tckn’si ile kkb sisteminde sorgulanır. Kkb’de tanımlı olmayan telefon numarası reddedilir.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/Index/ChangeCustomerGsmNo</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="157">Parametre adı</th><th width="145">Parametre Tipi </th><th width="66">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>customerId</td><td>String</td><td>Z</td><td>Haso sisteminde müşterinin sahip olduğu unique değerdir. Limit tanımında size gönderilmişti.</td></tr><tr><td>newGsmNo</td><td>String(10)</td><td></td><td>Başında ülke kodu veya sıfır olmadan girilen 10 haneli cep telefonu numarasıdır. Örneğin 5161112233 formatında gönderilmelidir.</td></tr><tr><td>ipAddress</td><td>String</td><td>0</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><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + ipAddress + customerId + newGsmNo + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="157">Parametre adı</th><th width="223">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>data.message</td><td>String</td><td>Haso tarafından belirlenen açıklamalardır.</td></tr></tbody></table>


# 5.16 Müşterinin Durumunu Askıya Alınması

Fraud şüphesi görünen müşterinin durumunun askıya alınabilmesi için kullanılır. Askıya alınan  müşteri yeni işlem oluşturamaz.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/RequestV2/SetCustomerStatusAsSuspend</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="156">Parametre adı </th><th width="144">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 size verilen sabit parametredir.</td></tr><tr><td>customerId</td><td>String</td><td>O*</td><td>Haso sisteminde müşterinin sahip olduğu unique değerdir. Limit tanımında size gönderilmişti.</td></tr><tr><td>merchantOid</td><td>String(20)</td><td>O*</td><td>Kendi sisteminizde oluşturduğunuz sipariş için unique verdiğiniz sipariş numaranızdı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><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + merchantOid + customerId + ipAddress + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr></tbody></table>

&#x20;\* customerId veya merchantOid dolu olmalıdır.

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="157">Parametre adı </th><th width="223">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>data.message</td><td>String</td><td>Haso tarafından belirlenen açıklamalardır.</td></tr></tbody></table>


# 5.17 Hata Kodları Listesi

Opsiyonel bir metodtur. Sistemde var olan hata kodlarının güncel halini liste halinde veren  servistir.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/Index/GetErrorCodes</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="154">Parametre adı</th><th width="146">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 size verilen sabit parametredir.</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><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + ipAddress + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th>Parametre adı</th><th>Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>Data[“ErrorCodes”]</td><td>List</td><td>Hata kodları ve açıklamasını içeren modeldir. Bu modele ait parametreler şöyledir.</td></tr><tr><td>ErrorCodes.errorCode</td><td>String</td><td>Sistemde unique olan hata kodudur.</td></tr><tr><td>ErrorCodes.message</td><td>String</td><td>Haso tarafından belirlenen açıklamalardır.</td></tr></tbody></table>


# 5.18 Müşteriye Özel Limit Tanımlanması

Müşterinin kendi limitine ilave olarak çalışan özel limit tanımlanması isteniyorsa bu endpoint  kullanılır.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/RequestV2/SetSpecialLimit</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="156">Parametre adı </th><th width="143">Parametre 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 size verilen sabit parametredir.</td></tr><tr><td>customerId</td><td>String</td><td>Z</td><td>Haso sisteminde müşterinin sahip olduğu unique değerdir. Limit tanımında size gönderilmişti.</td></tr><tr><td>specialLimit</td><td>String</td><td>Z</td><td>Özel limit değeridir. 100 ile çarparak gönderiniz. Ondalık basamak olmamalıdı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><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + customerId + specialLimit + ipAddress + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="201">Parametre adı</th><th width="225">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>ErrorCodes.message</td><td>String</td><td>Haso tarafından belirlenen açıklamalardır.</td></tr></tbody></table>


# 5.19 Müşteriye Bakiye Yüklenmesi

Müşterinin hesabına bakiye yüklemek bu endpoint kullanılır. Müşterinin bakiye tutarı ödenmemiş  bir taksitini karşıladığı an taksit tutarı kadar bakiye düşülür ve ilgili taksit kapatılır.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/RequestV2/LoadCustomerBalance</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="227">Parametre adı</th><th width="143">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 size verilen sabit parametredir.</td></tr><tr><td>customerId</td><td>String</td><td>Z</td><td>Haso sisteminde müşterinin sahip olduğu unique değerdir. Limit tanımında size gönderilmişti.</td></tr><tr><td>balanceAmount</td><td>String</td><td>Z</td><td>Yüklenecek olan bakiye tutarıdır. 100 ile çarparak gönderiniz. Ondalık basamak olmamalıdır.</td></tr><tr><td>paymentDate</td><td>Date</td><td>Z</td><td>Müşterinin ödemeyi yaptığı tarih</td></tr><tr><td>paymentReferenceCode</td><td>String</td><td>O</td><td>Satıcı tarafında oluşturulan, Ödeme işlemini tanımlayan referans kodudur.</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><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + customerId + balanceAmount + ipAddress + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="201">Parametre adı</th><th width="228">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>ErrorCodes.message</td><td>String</td><td>Haso tarafından belirlenen açıklamalardır.</td></tr></tbody></table>


# 5.20 Toplu Olarak Ödendi Bilgisinin Gönderilmesi

Haso dışında bir yapıdan ödeme alındığı zaman ödeme kaydının durumunu hasoda da Ödendi  yapılması için bu servis kullanılır. Birden fazla PaymentCode array olarak gönderilebilir.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/RequestV2/SetBulkPaidPayment</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="226">Parametre adı </th><th width="144">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 size verilen sabit parametredir.</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><tr><td>paymentCodes</td><td>List&#x3C;String></td><td>Z</td><td>Alınan tahsilat hangi ödeme kayıtları için yapılmışsa bu kayıtların paymentCode değerleri array olarak gönderilir.</td></tr><tr><td>merchantOid</td><td>String(20)</td><td>Z</td><td>Kendi sisteminizde oluşturduğunuz sipariş için unique verdiğiniz sipariş numaranızdır.</td></tr><tr><td>paymentDate</td><td>DateTime</td><td>Z</td><td>Ödemenin müşteriden alındığı tarihtir.</td></tr><tr><td>paymentReferenceCode</td><td>String</td><td>O</td><td>Kendi sisteminizde ödemenin alındığı ödeme kanalına ait referans numarasıdır. Opsiyoneldir.</td></tr><tr><td>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + merchantOid + paymentReferenceCode + paymentDate + ipAddress + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="222">Parametre adı </th><th width="225">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>Data[“Message”]</td><td>String</td><td>RS100 kodu ile işlemin başarılı olduğunu belirtir.</td></tr><tr><td>Data[“paymentfunds”]</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer payment fona aktarılmış ise fon bilgileri bu modelde aktarılır.</td></tr></tbody></table>


# 5.21. Satıcı Segmenti ile Ödeme planının Getirilmesi

Satıcı segmenti ödeme planındaki işlem ücretini etkiler. Bu sebeple satıcı segmenti ve sipariş tutarı parametreleri ile oluşacak olan taksit planını getirmek için kullanılır.Eğer satıcı segmenti Haso tarafında birden fazla segment ile ilişkili ise en yüksek işlem ücreti çıkacak Haso segmenti oranı ile ödeme planı hesaplanır.

Servis Url: <mark style="color:red;">{SERVIS\_URL}/Index/GetPaymentPlanByDealerSegment</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="353">Parametre adı</th><th width="148">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 size verilen sabit parametredir.</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><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>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>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>RevisedFeeRate</td><td>İnt</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>requestToken</td><td>String</td><td>Z</td><td><mark style="color:red;">merchantId + ipAddress + dealerSegment + orderAmount + merhant_salt</mark> parametreleri ile sha256 algoritması ve HMAC(http://en.wikipedia.org/wiki/Hash-based_message_authentication_code) yöntemi ile şifreleyerek token oluşturur. Sonrasında token'ı base64 hale dönüştürür. token oluşturma için örnek kodlarımızı inceleyiniz.</td></tr><tr><td>basketList</td><td>List model</td><td>O</td><td>Sepette bulunan ürünleri aşağıdaki bilgileri gönderilirse erteleme, peşinat, taksit sayısı ve işlem ücreti gibi hesaplamalarda özelleştirme yapılabilir.</td></tr><tr><td>basketList.skuCode</td><td>String</td><td>O</td><td>Ürününüzün sku kodudur.</td></tr><tr><td>basketList.skudefinitionId</td><td>String</td><td>O</td><td>Ürün grubu kodudur.</td></tr><tr><td>basketList.skuAmount</td><td>İnt</td><td>O</td><td>Ürün tutarının 100 ile çarpılmış halidir.</td></tr><tr><td>basketList.skuMerchant</td><td>String</td><td>O</td><td>Ürünün satan satıcıya verdiğiniz koddur.</td></tr><tr><td>basketList.skuMerchantContributionRate</td><td>İnt</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>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="155">Parametre adı</th><th width="224">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>Dictionary&#x3C;<mark style="color:blue;">string</mark>, <mark style="color:blue;">object</mark>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr></tbody></table>

Data parametresinde müşteri limit bilgileri ile taksit değerleri vardır. Data parametresi içeriği ise şöyledir:

<table data-full-width="true"><thead><tr><th width="280">Parametre adı</th><th width="109">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Data[“FirstPaymentDate”]</td><td>DateTime</td><td>İlk ödeme günüdür</td></tr><tr><td>Data[“DownPaymentAmount”]</td><td>Decimal</td><td>Limit aşımı durumunda peşin alınacak tutar değeridir.</td></tr><tr><td>Data[“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>

Listenin içindeki her bir taksit modeline ait alanlar ise şöyledir.

<table data-full-width="true"><thead><tr><th width="415.6666666666667">Parametre adı</th><th width="95">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Installments.InstallmentNo</td><td>Int</td><td>Kaç taksit olacağını belirten taksit sayısıdır.</td></tr><tr><td>Installments.Price</td><td>Decimal</td><td>Taksit tutarıdır.</td></tr><tr><td>Installments.TransactionPrice</td><td>Decimal</td><td>Sipariş tutarıdır. Ekstra ücretler eklenmiş taksitler ilave olan tutar değildir. Taksitleri getirmek için orderAmount parametresi olarak gönderdiğiniz değerdir.</td></tr><tr><td>Installments.TotalAmount</td><td>Decimal</td><td>Toplam işlem tutarıdır.</td></tr><tr><td>Installments.downPayment</td><td>Decimal</td><td>Taksit kaydı eğer peşin alınacak ise bu tutar ile gösterilir.</td></tr><tr><td>Installments.Fee</td><td>Decimal</td><td>Sipariş tutarı haricinde ödenecek toplam ekstra tutardır.</td></tr><tr><td>Installments.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>Installments.feeDiscountCampaigns</td><td>List</td><td>Fee indirimi uygulanan kampanya adı ve indirim oranlarını listeler</td></tr><tr><td>Installments.merchantContributions</td><td>List</td><td>Requestte basketList parametresinde gönderilen skuMerchantContributionRate değerine göre hangi satıcının ne kadar işlem ücretini karşılayacağı gösterilir.</td></tr><tr><td>Installments.merchantContributions.skuCode</td><td>string</td><td>basketList ile gönderilen sku</td></tr><tr><td>Installments.merchantContributions.skuMerchant</td><td>string</td><td>basketList ile gönderilen merchant kodu</td></tr><tr><td>Installments.merchantContributions. skuMerchantContributionAmount</td><td>Decimal</td><td>Merchant için hesaplanan işlem ücreti katkı bedeli</td></tr><tr><td>Installments.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>Installments.PaymentPlan. InstallmentNo</td><td>Int</td><td>Ödeme planındaki taksit numarasıdır.</td></tr><tr><td>Installments.PaymentPlan. installmentPayment</td><td>Decimal</td><td>Ödeme planındaki taksitin tutarıdır.</td></tr><tr><td>Installments.PaymentPlan. termDate</td><td>Date</td><td>Ödeme planındaki taksidin vade tarihidir.</td></tr><tr><td>Installments.PaymentPlan.fee</td><td>Decimal</td><td>İşlemdeki fee değerinin taksit başına düşen değeri</td></tr><tr><td>Installments.PaymentPlan.originalFee</td><td>Decimal</td><td>İşlemdeki original fee değerinin taksit başına düşen değeri</td></tr></tbody></table>


# 5.22. Mağaza Listesi

Yeni İşlem oluşturma çağrılarında branchId parametresine gönderilecek. Mağazaların listesini döndürür.  Her işlem oluşturmada bu listedeki branchId parametresi raporların oluşturulmasına olanak sağlar

Servis Url: <mark style="color:red;">{SERVIS\_URL}/Index/GetBranches</mark>

#### Giriş Parametreleri

<table data-full-width="true"><thead><tr><th width="154">Parametre adı</th><th width="146">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 size verilen sabit parametredir.</td></tr></tbody></table>

Giriş parametreleri Servis Url adresine WebRequest ile post isteği yapılır. İstek sonucunda Json olarak response döner.

#### Çıkış Parametreleri

<table data-full-width="true"><thead><tr><th width="213">Parametre adı</th><th width="222">Tipi</th><th>Açıklama</th></tr></thead><tbody><tr><td>Success</td><td><mark style="color:blue;">bool</mark></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;<mark style="color:blue;">string</mark>></td><td>Success=false ise işlem ile ilgili hataları liste şeklinde getirir.</td></tr><tr><td>Data</td><td>List&#x3C;<mark style="color:blue;">Dictionary</mark>&#x3C;string, object>></td><td>Eğer success=true ise key-value şeklinde data döner.</td></tr><tr><td>Data[“branchId”]</td><td>String</td><td>Mağaza Id numarası</td></tr><tr><td>Data[“branchName”]</td><td>String</td><td>Mağaza Adı</td></tr></tbody></table>


