Ödeme İsteği Gönderme İşlemi

Servis Adresi

İstek Parametreleri

PaymentDealerAuthentication

Parametre Açıklama
DealerCode(string) Moka sistemi tarafından verilen bayi kodu
Username (string) Moka sistemi tarafından verilen Api kullanıcı adı
Password (string) Moka sistemi tarafından verilen Api şifresi
CheckKey (string) Kontrol anahtarı (DealerCode + "MK" + Username + "PD" + Password) String olarak birleştirilen bu bilgilerin SHA-256 hash algoritmasından geçirilmesiyle oluşturulur.
Buraya tıklayarak deneme ekranına gidebilirsiniz.

PaymentUserPosRequest

Parametre Açıklama
OtherTrxCode (string) Mütabakat sağlamak için kendi Unique Transaction (İşlem) Kodunuzu bu alanda göndermelisiniz. Not : Bayi ödeme detay listesi alırken bu kodunuzu kullanarak Ödeme durumunu öğrenebilirsiniz.
DealerCustomerTypeId (integer) Moka tarafından bayinize özel oluşturulmuş Ödeme İsteği gönderme tanım kaydının ID si. Bu tanımdaki kurallara göre ödeme isteğini göndermelisiniz. Aksi taktirde hata mesajları alacaksınız.
FullName (string) Ödeme link’ inin gönderileceği müşterinizin adı soyadı - Link müşterinize gönderilmeyecek, servisle size dönecekse bu alanı girmeyebilirsiniz.
GsmNumber (string) Ödeme link’ inin gönderileceği telefon numarası - Link müşterinize gönderilmeyecek, servisle size dönecekse bu alanı girmeyebilirsiniz.
Email (string) Ödeme link’ inin gönderileceği email adresi - Link müşterinize gönderilmeyecek, servisle size dönecekse bu alanı girmeyebilirsiniz.
IsPoolPayment (tinyint) Havuz ödemesi mi ?
0 : Hayır - Karttan çekilen tutar, Moka ile bayi arasındaki anlaşmaya göre ertesi gün veya daha sonra bayinin hesabına yatırılır.
1 : Evet - Para kredi kartından çekilecek fakat havuzda bekletilecek. Bayi, müşteri hizmet veya ürünü teslim aldıktan sonra ödemeyi onaylayacak ve bu işlemle ilgili ödeme onaydan sonra bayinin ekstresine yansıyacak. Bayi, havuz ödemesini onaylayıncaya kadar, bu ödeme ekstreye dahil edilmez. Havuz sisteminde bir ödeme göndermek için bu alanı 1 yapınız.
IsPreAuth (tinyint) Ön provizyon işlemi mi ?
0 : Hayır - Doğrudan Çekim İşlemi
1 : Evet - Ön Provizyon Alma İşlemi (Bir süre sonra DoCapture servisi ile ödemeye dönüştürülmeli)
IsTokenized (tinyint) Ödeme için girilen kart Moka sisteminde saklanacak mı ? (Kart saklayabilmek için bayinin kart saklama hizmeti alıyor olması gerekir)
0 : Kart saklanmayacak
1 : Kart mutlaka saklanacak
2 : Kartının saklanıp saklanmayacağına ödeme yapan müşteri karar verecek
DealerCustomerId (integer) Daha önceden bu müşteri Moka sistemine kaydedilmişse, Moka sistemindeki bu müşterinin Unique ID si.
CustomerCode (string) Bu müşterinin, sizin sisteminizdeki Unique ID si. Bu kod Mokaya daha önceden kaydedilmişse, bu kod ile de ödeme isteği gönderebilirsiniz ve kart saklanacaksa, bu müşteri altında saklanır. Bu müşteri ilk kez kaydedilecekse, bu kod ile kaydedilir
FirstName (string) Müşteri Moka sistemine ilk kez kaydedilecekse, müşterinin adı girilir.
LastName (string) Müşteri Moka sistemine ilk kez kaydedilecekse, müşterinin soyadı girilir. (opsiyonel)
Gender (tinyint) Müşteri Moka sistemine ilk kez kaydedilecekse, müşterinin cinsiyeti girilir. (opsiyonel) 1: erkek 2: kadın
BirthDate (string) Müşteri Moka sistemine ilk kez kaydedilecekse, müşterinin doğum tarihi girilir. (opsiyonel)
CustomerGsmNumber (string) Müşteri Moka sistemine ilk kez kaydedilecekse, müşterinin cep telefonu girilir. (opsiyonel)
CustomerEmail (string) Müşteri Moka sistemine ilk kez kaydedilecekse, müşterinin email adresi girilir. (opsiyonel)
Address (string) Müşteri Moka sistemine ilk kez kaydedilecekse, müşterinin ikamet adresi girilir. (opsiyonel)
Amount (decimal) Ödeme tutarı (Kuruş kısmı nokta ile yazılır. Örn: 27.50)
Currency (string) Para birimi. Opsiyonel alandır, hiç gönderilmezse veya boş gönderilirse, default’ u TL dir, Diğer değerler : USD, EUR, GBP
InstallmentNumber (integer) Taksit Sayısı. Opsiyonel alandır, hiç gönderilmezse, boş gönderilirse, 0 veya 1 gönderilirse Peşin satış demektir, Taksit için 2 ile 12 arasında bir değer gönderilmelidir.
SetInstallmentBy (tinyint) Taksitli ödemelerde, taksit sayısını kimin seçeceğini belirler.
0 : Taksit sayısını müşteri seçecek
1 : Taksit sayısını ödemeyi gönderen bayi seçip yolladı
CommissionByDealer (tinyint) Komisyon bayi tarafından mı ödenecek, yoksa müşteriye mi yüklenecek ?
0 : Hem peşin hem de taksitli ödemelerin hepsinde komisyonu Müşteri ödeyecek. Bayi komisyona karışmaz.
1 : Sadece peşin ödemede komisyonu bayi öder, taksitlerde komisyonu müşteri öder.
2 : Hem peşin hem de 2 taksitte, komisyonu bayi öder, daha yüksek taksitlerde komisyon müşteriden alınır.
3 : Hem peşin hem de 2 taksitte, komisyonu bayi öder, daha yüksek taksitlerde komisyon müşteriden alınır.
.
.
12 : Hem peşin hem de bütün taksitlerde, komisyonu bayi öder.
IsCommissionDiffByDealer (tinyint) Üstte yer alan, kaç takside kadar komisyonu bayinin ödeyeceği bilgisine göre, daha fazla taksitlerde, komisyonun tamamı ya da sadece aradaki fark müşteriye yansıtılabilir.
0 : Hayır (Seçilen Taksit Komisyonunun Tamamını Müşteriye Yansıt)
1 : Evet (Seçilen Taksit Komisyonu – (eksi) Bayinin Karşılamayı Kabul Ettiği Taksit Komisyonu kadar komisyonu (Fark Komisyonu) Müşteriye Yansıt)
IsThreeD (tinyint) Ödeme işlemi 3D kullanılarak mı yapılacak ?
0 : 3D zorunlu değil (müşteri isterse non-3D ödeme yapar, isterse de 3D seçenegini işaretleyebilir)
1 : 3D kullanılarak ödeme yapılmasi zorunlu
Description (string)(opsiyonel) Açıklama alanıdır. Ödemeye ilişkin bir açıklama yazmak istenirse bu alana yazılabilir.(200 karaktere kadar yazılabilir.)
ReturnHash (tinyint) Değeri 1 olarak verilmek zorundadır. 3D Ödeme akışı tamamlandığında, RedirectURL' nize, işlemin başarılı olup olmadığı bu servisin cevabında dönen CodeForHash kodunun sonuna, T veya F harfi eklenerek hash' lenmesi ile bildirilecektir.
RedirectUrl (string) Ödemenin yapılacağı Link, müşteriye gönderilmeyecekse, servisle size geri dönecek ve siz bu linki kendiniz açacaksanız, o zaman RedirectUrl alanını vermeniz gerekir. Link, SMS veya email ile müşterinin kendisine yollanacaksa, ödeme sonucu Moka' nın kendi sayfasına yönlendirileceğinden bu alanı vermenize gerek yoktur.
3D işlemi sonucunda, başarılı ya da başarısız işlem sonucunun döndürüldüğü ve kullanıcının yönlendirildiği bayi web sayfası. Bu URL’ yi verirken, sonuna parametre olarak kendi işlem ID’ nizi yazarsanız, hangi işleminizin sonucunu aldığınızı belirlemiş olursunuz. OtherTrxCode alanını gönderiyorsanız, URL' yi verirken Get parametresi kullanmasanız da olur. OtherTrxCode alanı bu URL' ye POST atılıyor zaten.
Örnek : https://www.mysite.com/PayResult?MyTrxId=1A2B3C4DF5R
Önemli Not : URL sonuna yazdığınız kendinize ait işlem kodunun, güvenliğiniz için, tahmin edilemez bir kod olmasını tercih ediniz.
BuyerInformation (Array)(opsiyonel) Bayimizden Ürün/Hizmet satın alan müşterisi ile ilgili alanlardır. Bu alanların gönderilmesi zorunlu olmamasına karşın, Moka ile paylaşılması, ileride ödemeyle ilgili oluşabilecek sorunlara karşı, hem bayimizin hem de Moka' nın menfaatinedir.

BuyerFullName (string) Opsiyonel alandır.Alıcının adı ve soyadıdır.
BuyerEmail (string) Opsiyonel alandır.Alıcının eposta adresidir.
BuyerGsmNumber (string) Opsiyonel alandır.Alıcının cep telefonu numarasıdır.
BuyerAddress (string) Opsiyonel alandır.Alıcının adresidir.
BasketProduct (Array)(opsiyonel)

ProductId (integer) Ürün ID sidir.
ProductCode (string) Ürünün bayi tarafındaki özel kodudur.
UnitPrice (integer) Birim fiyatıdır.
Quantity (integer) Ürünün miktarı.

Örnek İstek (JSON)


{
   "DealerAuthentication":{
      "DealerCode":"XXX",
      "Username":"XXX",
      "Password":"XXX",
      "CheckKey":"28ba1f316e661ee7a0477a13aa30613da548c94a8098829af9255b04d7e916e3"
   },
   "PaymentUserPosRequest":{
      "OtherTrxCode":"78687676",
      "DealerCustomerTypeId":"2",
      "FullName":"Zeynep",
      "GsmNumber":"",
      "Email":"zeynep.hashan@moka.com",
      "IsPoolPayment":"0",
      "IsPreAuth":"0",
      "IsTokenized":"0",
      "DealerCustomerId":"",
      "CustomerCode":"",
      "FirstName":"",
      "LastName":"",
      "Gender":"0",
      "BirthDate":"19901218",
      "CustomerGsmNumber":"",
      "CustomerEmail":"",
      "Address":"",
      "Amount":"0.01",
      "Currency":"TL",
      "InstallmentNumber":"0",
      "SetInstallmentBy":"0",
      "CommissionByDealer":"",
      "IsCommissionDiffByDealer":"0",
      "IsThreeD":"0",
      "Description":"",
      "ReturnHash":1,
      "RedirectUrl":"https://service.TestMoka.com/PaymentDealerThreeD?MyTrxCode=78687676",
      "BuyerInformation":{
         "BuyerFullName":"",
         "BuyerGsmNumber":"",
         "BuyerEmail":"",
         "BuyerAddress":"Tasdelen"
      }
   }
}

Başarılı İstek Sonucu

Başarılı Sonuç Örneği


{
   "Data":{
      "UserPosPaymentId":3393,
      "DealerCustomerId":0,
      "Url":"https://pos.testmoka.com/CustomerPos/PaymentRequest?uppc=57681",
	  "CodeForHash":"9FDFBDFC-42C5-417E-AA93-E4D9D5312AAC"
   },
   "ResultCode":"Success",
   "ResultMessage":"",
   "Exception":null
}

Başarısız İstek Sonucu

ResultCodeAçıklama
PaymentUserPos.DealerAuthentication.InvalidRequestCheckKey hatalı ya da nesne hatalı ya da JSON bozuk olabilir.
PaymentUserPos.DealerAuthentication.InvalidAccountBöyle bir bayi bulunamadı.
PaymentUserPos.CreateUserPosPayment.ChannelPermissionNotAvailableBayinin, ödeme isteği gönderme yetkisi yok.
PaymentUserPos.CreateUserPosPayment.IpAddressNotAllowedBayinin erişebileceği IP ler kısıtlanmış.
PaymentUserPos.CreateUserPosPayment.EmailOrGsmNumberRequiredÖdeme linki gönderilecek email veya telefon verilmemiş.
PaymentUserPos.CreateUserPosPayment.GsmRequiredÖdeme linki gönderilecek telefon verilmemiş.
PaymentUserPos.CreateUserPosPayment.EmailRequiredÖdeme linki gönderilecek email verilmemiş.
PaymentUserPos.CreateUserPosPayment.InvalidGsmNumberÖdeme linki gönderilecek telefon numarası yanlış
PaymentUserPos.CreateUserPosPayment.InvalidEmailFormatÖdeme linki gönderilecek email formatı yanlış
PaymentUserPos.CreateUserPosPayment.InvalidCustomerGsmNumberKart saklama hizmeti için, bayi müşteri bilgisi olan telefon bilgisi yanlış
PaymentUserPos.CreateUserPosPayment.InvalidCustomerEmailFormatKart saklama hizmeti için, bayi müşteri bilgisi olan email bilgisi yanlış
PaymentUserPos.CreateUserPosPayment.InvalidCurrencyCodePara birimi yanlış (TL, USD, EUR veya GBP olmalı)
PaymentUserPos.CreateUserPosPayment.InstallmentNotAvailableForForeignCurrencyTransactionYabancı para için taksit yapılamaz.
PaymentUserPos.CreateUserPosPayment.DealerCustomerTypeNotFoundBöyle bir ödeme isteği gönderme tanımı bulunamadı.
PaymentUserPos.CreateUserPosPayment.DealerCustomerTypeMismatchForDealerBu ödeme isteği gönderme tanımı, bu bayiye ait değil.
PaymentUserPos.CreateUserPosPayment.ForeignCurrencyUnavailableBayinin, yabancı para izni yok.
PaymentUserPos.CreateUserPosPayment.InvalidPaymentPermissionÖn otorizasyon veya doğrudan ödeme göndermeye ilişkin hata mesajı
PaymentUserPos.CreateUserPosPayment.InvalidPoolPermissionHavuzlu ödeme göndermeye ilişkin hata mesajı
PaymentUserPos.CreateUserPosPayment.InvalidTokenizationPermissionValueKart saklamaya ilişkin hata mesajı
PaymentUserPos.CreateUserPosPayment.InvalidTokenizationPermissionBayinin kart saklama izni yok
PaymentUserPos.CreateUserPosPayment.InvalidCommissionByDealerValueKaç takside kadar komisyon bayiden, değeri, yanlış verilmiş
PaymentUserPos.CreateUserPosPayment.InvalidCommissionDiffByDealerValueDaha fazla taksitlerde komisyon farkı kimden, değeri, yanlış verilmiş
PaymentUserPos.CreateUserPosPayment.SetInstallmentByAndInstallmentNumberInconsistentTaksit seçimini kim yapacak, bayi mi, müşteri mi ? Tanım ile verilen değer uyumlu olmalı
PaymentUserPos.CreateUserPosPayment.InvalidInstallmentNumberTaksit sayısı yanlış girilmiş.
PaymentUserPos.CreateUserPosPayment.SetInstallmentByInconsistentTaksit seçimini kim yapacak, bayi mi, müşteri mi ? Tanım ile verilen değer uyumlu olmalı
PaymentUserPos.CreateUserPosPayment.ThreeDRequired3D zorunlu olmalı
PaymentUserPos.CreateUserPosPayment.InvalidBirthDateFormatBayi müşterisinin bilgilerinden, doğum tarihi yanlış girilmiş.
PaymentUserPos.CreateUserPosPayment.DealerCustomerNotCreatedYeni bir bayi müşterisi oluşturulmaya çalışıldı ancak hata alındı.
PaymentUserPos.CreateUserPosPayment.DealerCustomerNotFoundMevcut bir bayi müşterisi gönderildi (CustomerCode ile), ancak bu müşteri bulunamadı.
PaymentUserPos.CreateUserPosPayment.DealerCustomerInfoIsMissingBayi müşterisi oluşturmak için en azından CustomerCode ve FirstName verilmeli.
PaymentUserPos.CreateUserPosPayment.DealerCustomerIdAndCustomerCodeDontMatchForDealerHem Moka sistemindeki DealerCustomerId verilmiş hem de bayinin kendi Müşteri kodu verilmiş. Ama Moka sisteminde bu müşteri verileri uyumsuz
PaymentUserPos.CreateUserPosPayment.InvalidBuyerGsmNumberHizmet alan kişiye ait alanlarda sorun var.
PaymentUserPos.CreateUserPosPayment.InvalidBuyerEmailFormatHizmet alan kişiye ait alanlarda sorun var.
PaymentUserPos.CreateUserPosPayment.DailyDealerLimitExceededBayinin günlük ödeme limiti aşıldı.
PaymentUserPos.CreateUserPosPayment.MonthlyDealerLimitExceededBayinin aylık ödeme limiti aşıldı.
EX Beklenmeyen bir hata oluştu

Başarısız Sonuç Örneği


{
	"Data": null,
	"ResultCode": "PaymentUserPos.CreateUserPosPayment.GsmRequired",
	"ResultMessage": "",
	"Exception": null
}

Açıklama