3D ile ödeme

3D’li ödeme iki adımdan oluşur. Bunlar 3D ödeme başlatma ve 3D ödemesi yapmaktır. 3D Ödeme başlatma servisi ile bankaların 3D doğrulama sayfalarına erişim yapılacak url ve ya html içeriğe erişebileceksiniz. 3D ödemesi ile de 3D doğrulama sonucuna göre ödeme işlemini sonlandırırsınız.

  • 3D ödeme başlatma servisine, ödeme servisine ek olarak 3D doğrulama sonucunun döneceği return_url parametresi ile request gönderilir.

  • Uygulamanızı 3D ödeme başlatma servisinden dönen "post_url" parametresine redirect edersiniz.

  • Bankaların 3D doğrulama ekranı açılır.

  • 3D doğrulama sonucu başlatma servisine gönderdiğiniz return_url parametresinde belirtilen url'e post edilir.

  • return_url'inize gelen parametreleri 3D ödemesi servisine post edersiniz ve sonucu kontrol edersiniz.

3D ödeme başlatma

Ödeme işleminden farklı olarak return_url parametresi gönderilir. Servisten dönen post_url ya da html_content parametrelerini kullanarak bankaların 3D doğrulama sayfasını açabilirsiniz.

https://api.paynet.com.tr/v2/transaction/tds_initial

İstek Parametreleri
Dönüş Parametreleri
Request
Response
Service Url
İstek Parametreleri

Parametre İsmi

Tip

Zorunlu

Açıklama

amount

string

Evet

Kredi kartından çekilecek tutar. Ondalık ayıraç olarak virgül (,) kullanılmaktadır.

reference_no

string

Evet

Ödeme işleminin ilişkili olduğu referans numarası. Tekil (unique) bir veri olmalı. (örn: sipariş numarası)

agent_reference_no

string

Hayır

Ana firma bayi referans kodu

return_url

string

Evet

3D doğrulama sonucunun post edileceği URL

domain

string

Evet

İşlemin yapıldığı uygulamanın domain bilgisi. (örn: www.acme.com )

card_holder

string

Hayır

Kart sahibi bilgisi.

Saklı kart ile işlem yapılmıyorsa zorunlu.

pan

string

Hayır

Kart numarası.

Saklı kart ile işlem yapılmıyorsa zorunlu.

month

int

Hayır

Son kullanma tarihi Ay bilgisi. ( örn: 8,12 )

Saklı kart ile işlem yapılmıyorsa zorunlu.

year

int

Hayır

Son kullanma tarihi Yıl bilgisi. ( örn: 2020, 2030 ) Saklı kart ile işlem yapılmıyorsa zorunlu.

cvc

string

Hayır

Kart güvenlik kodu.

Saklı kart ile işlem yapılmıyorsa zorunlu.

card_hash

string

Hayır

Saklı kartın token bilgisi. Kart bilgileri girilmemiş ise bu bilgi zorunlu.

card_holder_phone

string

Hayır

Kart sahibinin telefon numarası

card_holder_mail

string

Hayır

Kart sahibi email adresi.

description

string

Hayır

İşlem ile ilgili açıklama alanı.

instalment

int

Hayır

İşlemin kaç taksit yapılacağı bilgisi. Değer gönderilmezse tek çekim uygulanır.

agent_id

string

Hayır

Eğer alt bayileriniz var ise işlemin hangi bayi üzerinden geldiğini bu alana bayi kodu göndererek yapabilirsiniz.

user_id

string

Hayır

Kullanıcı kodu

company_amount

string

Hayır

Eğer alt bayileriniz var ise işlemin ne kadarının sizin hesabınıza aktarılacağını belirleyebilirsiniz. Ondalık ayıraç olarak virgül (,) kullanılmaktadır.

add_commission

bool

Hayır

İşlem hizmet bedelinin karttan çekilecek tutar'a eklenmesini istiyorsanız "true" gönderebilirsiniz.

ratio_code

string

Hayır

Paynet.com.tr yönetim ekranlarında “API oran tanımları” sayfasından tanımlayabileceğiniz oran tablolarının “oran kodunu” bu alanda gönderebilirsiniz. Gönderdiğiniz oran koduna ait oran tablosu üzerinden komisyon hesaplaması yapılır. Bu sayede API üzerinden istediğiniz oranlar ile işlem yapabilirsiniz.

save_card

bool

Hayır

Ödeme işlemi ile birlikte kredi kart numarasının da saklanması istiyorsanız bu parametreyi true yollayabilirsiniz. Kart saklama işlemi yapıyorsanız card_desc zorunlu, card_owner_id ya da user_unique_id değerlerinden en az birini göndermeniz zorunlu.

card_desc

string

Hayır

Kart saklama işlemi yapılıyor ise bu alan zorunludur.

user_unique_id

string

Hayır

Üye iş yeri tarafından verilen kullanıcıya özgü benzersiz id. İlk defa kart saklama yapılıyorsa zorunlu. İlk kart saklama tamamlandıktan sonra Paynet tarafından bu kullanıcıya benzersiz bir değer atanır( card_owner_id). Bu değeri kendi sisteminizde kullanıcınız ile ilişkilendirerek saklamalısınız. Daha sonra bu kullanıcıya yapılan kart saklama işlemlerinde user_unique_id yerine Paynet tarafından verilen card_owner_id değişkenini kullanmalısınız.

card_owner_id

string

Hayır

İlk defa kart saklama yapıldıktan sonra, Paynet tarafından user_unique_id’ye göre oluşturulan kart sahibinin benzersiz bilgisi. Bir sonraki kart saklama ve karttan ödeme alma işlemlerinde bu değer kullanılır.

user_gsm_no

string

Hayır

Kart saklama işleminde ek olarak OTP kontrolü yapmak isterseniz bu parametre kullanılır. Daha detaylı bilgi için lütfen destek ekibimiz ile iletişime geçiniz.

subscription_id

string

Hayır

Düzenli ödeme kodu, mevcut bir düzenli ödemenize manuel ödeme almak istediğinizde invoice_no ile beraber kullanılır.

invoice_no

string

Hayır

Düzenli ödeme fatura numarası.

ratio_code_method

char

Hayır

Bu alanla ilgili daha detaylı bilgi için lütfen destek ekibimiz ile iletişime geçiniz.

merge_option

bool

Hayır

Bu alanla ilgili daha detaylı bilgi için lütfen destek ekibimiz ile iletişime geçiniz.

pos_type

int

Hayır

Bu alanla ilgili daha detaylı bilgi için lütfen destek ekibimiz ile iletişime geçiniz

approved_card

bool

Hayır

Bu alanla ilgili daha detaylı bilgi için lütfen destek ekibimiz ile iletişime geçiniz.

dont_apply_campaign

bool

Hayır

İşlem esnasında herhangi bir artı taksitten yararlanmak istemiyorsanız bu parametreyi true olarak göndermelisiniz, default false'tur

agent_customer_name

string

Hayır

Buraya yazacağınız değer slipte "Müşteri Adı" alanında görünecektir. Müşterinize göstermek istediğiniz firma adınızı yazabilirsiniz

is_escrow

bool

Hayır

Yapılan işlemin ana firma onaylı gerçekleşmesini istiyorsanız "true" göndermeniz gerekmektedir. Parametre gönderilmezse false kabul edilir.

iban

string

Hayır

Başında ülke kodu olacak şekilde (örn "TR") toplamda 26 karakter olacak şekilde girilmelidir.

Dönüş Parametreleri

Parametre İsmi

Tip

Açıklama

post_url

string

Bu URL'e redirect ettiğinizde bankanın 3D doğrulama sayfasını gösterir.

html_content

string

post_url yerine bu HTML content'i sayfanıza eklediğinizde bankanın 3D doğrulama sayfasını gösterir.

token_id

string

İşlemin token bilgisi

session_id

string

3D ödeme akışının session bilgisi

object_name

string

tdsinitial_response

code

string

HTTP Status Kodlar. Bakınız

message

string

işlem sonuç mesajı

Request
{
"return_url": "https://pts-kurumsal.paynet.com.tr/Demo/TDSCharge",
"amount": "20,50",
"reference_no": "REF1001",
"domain": "paynet.com.tr",
"card_holder": "Paynet A.Ş",
"pan": "1212121212121212",
"month": "12",
"year": "23",
"cvc": "000"
}
Response
{
"token_id": "DF63C3CB-358A-4258-BDDA-522F4D8C5FA8",
"session_id": "js_EAAAAFAL6CJHCCqAoll6DRsSqLfUMmn0pcqT6LZiJk6ZX*3G",
"post_url": "https://pts-api.paynet.com.tr/v1/paynetjgate/tds_easy?session_id=js_EAAAAFAL6CJHCCqAoll6DRsSqLfUMmn0pcqT6LZiJk6ZX*3G&token_id=DF63C3CB-358A-4258-BDDA-522F4D8C5FA8",
"html_content": "<form name=\"paynetForm\" id=\"paynetForm\" method=\"post\" action=\"https://pts-api.paynet.com.tr/v1/paynetjgate/tds_easy\"><input type=\"hidden\" name=\"session_id\" value=\"\"/><input type=\"hidden\" name=\"token_id\" value=\"\"/></form><script type=\"text/javascript\">document.forms[0].submit();</script>",
"object_name": "tdsinitial_response",
"code": 0,
"message": "Başarılı İşlem"
}
Service Url

Sistem

URL

Canlı sistem

https://api.paynet.com.tr/v2/transaction/tds_initial

Test sistemi

https://pts-api.paynet.com.tr/v2/transaction/tds_initial

3D Ödemesi Yapmak

3D doğrulama sonucunda kredi kartından ilgili tutarın çekim yapıldığı servis. "3D ödeme başlatma" servisinde kullandığınız return_url'e post edilen session_id ve token_id değerlerini bu service post edip ödeme akışını tamamlayabilirsiniz.

https://api.paynet.com.tr/v2/transaction/tds_charge

İstek Parametreleri
Dönüş Parametreleri
Request
Response
Service Url
İstek Parametreleri

Parametre İsmi

Tip

Zorunlu

Açıklama

session_id

string

Evet

3D ödeme akışının session bilgisi

token_id

string

Evet

İşlemin token bilgisi

transaction_type

int

Hayır

Satış ya da ön provizyon. 1 satış, 3 ön provizyon. Varsayılan satış işlemidir.

Dönüş Parametreleri

Parametre İsmi

Tip

Açıklama

id

int

tekil paynet işlem id

xact_id

string

paynet işlem id'nin hash değeri

xact_date

Datetime

işlemin tarihi

transaction_type

int

işlem tipi 1: satış, 2: ön provizyon

pos_type

int

pos tipi

agent_id

string

Bayi kodu

is_tds

string

True ise 3D'siz işlem yapılamaz. False ise 3D'li veya 3D'siz işlem yapılabilir.

user_id

string

Kullanıcı kodu

user_unique_id

string

Müşterinizin benzersiz numarası

email

string

Mail adresi

phone

string

Telefon bilgisi

bank_id

string

Banka kodu

bank_name

string

Banka adı

instalment

int

Taksit bilgisi

ratio

float

işlem komisyon oranı

card_no_masked

string

Maskeli kart bilgisi

card_holder

string

Kart sahibi

card_hash

string

Token edilmiş kart bilgisi

card_bank_id

string

Saklı kart bankası

amount

decimal

Brüt işlem tutarı

net_amount

decimal

Hizmet bedeli hariç tutar

comission

decimal

Hizmet bedeli tutarı

comission_tax

decimal

Hizmet bedelinin vergisi

currency

string

Para birimi

bank_authorization_code

string

Banka onay kodu

bank_reference_code

string

Banka referans kodu

bank_order_id

string

Banka sipariş numarası

is_succeed

bool

İşlemin başarılı ya başarısız olduğu bilgisi. true ise ilgili karttan tutar tahsil edilmiş demektir.

paynet_error_id

string

Paynet hata kodu

paynet_error_message

string

Paynet hata açıklaması

bank_error_id

string

Bankadan bildirilen hata kodu

bank_error_message

string

Bankadan bildirilen hata mesajı

bank_error_short_desc

string

Bankadan bildirilen hata mesajı

bank_error_long_desc

string

Bankadan bildirilen hata mesajı

reference_no

string

Request sırasında gönderilen referans kodu

xact_transaction_id

string

İşlem id

campaign_url

string

Bazı kart progamlarında + taksit ve taksit erteleme seçimi işlem sonrası başka bir uygulamada seçilebiliyor.

end_user_comission

decimal

ratio_code kullanımında komisyon değeri

end_user_ratio

float

ratio_code kullanımında komisyon oranı

ratio_code

string

oran kodu

ratio_code_method

string

oran kodu methodu

is_save_card_succeed

bool

Kart saklama işlemi yapılıyorsa kart saklama sonucu

save_card_result_message

string

Kart saklama mesajı

card_owner_id

string

Kart saklamada bir sonraki sefer kullanılacak id

card_logo_url

string

Saklı kart logosu

md_status

string

Banka 3D sonuç kodu

object_name

string

Nesne adı

code

string

HTTP status kodlar. Bakınız

message

string

İşlem sonuç mesajı

company_cost_ratio

float

Ana firma hizmet bedeli değeri

company_commission

decimal

Bu işlem sonucunda ana firmaya kesilecek hizmet bedeli tutarı

company_commission_with_tax

decimal

Bu işlem sonucunda ana firmaya kesilecek KDV'li hizmet bedeli tutarı

company_net_amount

decimal

Bu işlem sonucunda ana firmaya ödenecek net tutar

plus_installment

string

Artı taksit sayısı

card_type

char

Kredi kartı. Bakınız

card_brand_name

string

Kart bankası markası (VISA, MASTERCARD, AMEX)

Request
{
"session_id": "js_EAAAAFAL6CJHCCqAoll6DRsSqLfUMmn0pcqT6LZiJk6ZX*3G",
"token_id": "DF63C3CB-358A-4258-BDDA-522F4D8C5FA8"
}
Response
{
"is_tds": true,
"md_status": 1,
"id": 7438118,
"xact_id": "xk_EAAAADIJMBHKDhG0bG1f/yItmz1v9cZqMZVHViQJF0VezRKF",
"xact_date": "2020-02-25T15:12:48.353769+03:00",
"transaction_type": 1,
"pos_type": 5,
"agent_id": "1001",
"user_id": "paynet",
"email": null,
"phone": null,
"instalment": 4,
"ratio": 0,
"card_no_masked": "435508******4358",
"card_holder": "Paynet Ödeme Hizmetleri AŞ",
"amount": 6500.50,
"net_amount": 6500.50,
"comission": 0,
"comission_tax": 0,
"currency": "TRY",
"bank_id": "WRLD",
"bank_name": "WorldCard",
"bank_authorization_code": "159116",
"bank_reference_code": "90eb21b1be8044859dc9ab6c00faba89",
"bank_order_id": "B72A95279A3D4F54A41A408FB784E77A",
"is_succeed": true,
"paynet_error_id": "",
"paynet_error_message": "",
"bank_error_id": "",
"bank_error_message": "",
"bank_error_short_desc": "",
"bank_error_long_desc": "",
"reference_no": "857f60cf128ddbf112171522",
"xact_transaction_id": "B72A9527-9A3D-4F54-A41A-408FB784E77A",
"campaign_url": "",
"end_user_comission": 0,
"end_user_ratio": 0,
"ratio_code": "",
"ratio_code_method": "",
"is_save_card_succeed": false,
"save_card_result_message": "",
"card_owner_id": "",
"user_unique_id": "",
"card_hash": "",
"card_bank_id": "",
"card_logo_url": "",
"company_cost_ratio":"",
"company_commission":"",
"company_commission_with_tax":"",
"company_net_amount":"",
"plus_installment":"",
"card_type":"",
"card_brand_name":"",
"object_name": "tdscharge_response",
"code": 0,
"message": "Başarılı İşlem"
}
Service Url

Sistem

URL

Canlı sistem

https://api.paynet.com.tr/v2/transaction/tds_charge

Test sistemi

https://pts-api.paynet.com.tr/v2/transaction/tds_charge

tds_charge işlemi sırasında eğer connection timeout ya da execution time out gibi sebeplerden dolayı cevap alamıyorsanız, aynı session_id ve token_id ile cevap alana kadar işleme devam edebilirsiniz. Sistem aynı session_id ve token_id ile daha önceden başarılı bir işlem var ise o işlemi döndürür. Bu durumda sonuç kodu 0 yerine 100 döner, sonuç mesajı da “Önceki Başarılı İşlem” şeklinde döner.