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

Servis Adresi

İstek Parametreleri

PaymentDealerAuthentication

Parametre Açıklama
DealerCode string Ruut sistemi tarafından verilen bayi kodu
Username string Ruut sistemi tarafından verilen Api kullanıcı adı
Password string Ruut 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 Ruut 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, Ruut 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 Ruut 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 Ruut sistemine kaydedilmişse, Ruut sistemindeki bu müşterinin Unique ID si.
CustomerCode string Bu müşterinin, sizin sisteminizdeki Unique ID si. Bu kod Ruut'a 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 Ruut sistemine ilk kez kaydedilecekse, müşterinin adı girilir.
LastName string Müşteri Ruut sistemine ilk kez kaydedilecekse, müşterinin soyadı girilir. (opsiyonel)
Gender tinyint Müşteri Ruut sistemine ilk kez kaydedilecekse, müşterinin cinsiyeti girilir. (opsiyonel) 1: erkek 2: kadın
BirthDate string Müşteri Ruut sistemine ilk kez kaydedilecekse, müşterinin doğum tarihi girilir. (opsiyonel)
CustomerGsmNumber string Müşteri Ruut sistemine ilk kez kaydedilecekse, müşterinin cep telefonu girilir. (opsiyonel)
CustomerEmail string Müşteri Ruut sistemine ilk kez kaydedilecekse, müşterinin email adresi girilir. (opsiyonel)
Address string Müşteri Ruut 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 Ruut' 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, Ruut ile paylaşılması, ileride ödemeyle ilgili oluşabilecek sorunlara karşı, hem bayimizin hem de Ruut' 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@ruutapp.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.TestRuut.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.testruutapp.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 Ruut sistemindeki DealerCustomerId verilmiş hem de bayinin kendi Müşteri kodu verilmiş. Ama Ruut 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