Ödeme Onaylama

v1/transaction/charge

Paynet.js ve ya Paynet-custom.js ile başlatılan hazır form ya da özelleştirilebilir form entegrasyonlarında kredi kartı ödeme işlemini sonlandırmaya, kredi kartından ilgili tutarın çekiminin yapıldığı servistir. Bu servisi kullanmak için Paynet.js’in sunucunuza post ettiği session_id ve token_id bilgilerine ihtiyaç vardır.

Ödeme servisini kullanabilmeniz için secret_key ile basic authentication yapmalısınız. Bakınız

https://api.paynet.com.tr/v1/transaction/charge

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

Parametre İsmi

Tip

Zorunlu

Açıklama

session_id

string

Evet

Paynet.js’in formunuza attach ettiği parametre

token_id

string

Evet

Paynet.js’in formunuza attach ettiği parametre

amount

string

Evet

Bu servise gönderilen amount parametresi, hazır form veya özelleştirilebilir form entegrasyonunda ödeme işlemini başlatırken data-amount parametresi ile ayarlanan tutar ile karşılaştırılır. Tutarlar uyuşmuyor ise ödeme işlemi tamamlanamaz, ödeme servisi hata döner. Bu servise gönderilen tutar hazır form entegrasyonunda data-amount ile ayarlanan tutarın aynısı, özelleştirilebilir form entegrasyonunda data-amount ile ayarlanan tutarın 100 ile çarpılmış hali olmalıdır.

transaction_type

char

Evet

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

add_comission_amount

bool

Evet

Hazır form veya özelleştirilebilir form entegrasyonunda ödeme işlemini başlatırken data-add_comission_amount parametresi ile ayarlanan değer ile karşılaştırılır. Değerler uyuşmuyor ise ödeme işlemi tamamlanamaz, ödeme servisi hata döner.

ratio_code

string

Evet

Hazır form veya özelleştirilebilir form entegrasyonunda ödeme işlemini başlatırken data-ratio_code parametresi ile ayarlanan değer ile karşılaştırılır. Değerler uyuşmuyor ise ödeme işlemi tamamlanamaz, ödeme servisi hata döner. Oran kodu kullanılmayacaksa parametrenin değeri boş string olarak gönderilmeli.

installments

string

Evet

Hazır form veya özelleştirilebilir form entegrasyonunda ödeme işlemini başlatırken data-installments parametresi ile ayarlanan değer ile karşılaştırılır. Değerler uyuşmuyor ise ödeme işlemi tamamlanamaz, ödeme servisi hata döner. Bu parametre ile taksit sınırlandırma kullanılmayacaksa parametrenin değeri boş string olarak gönderilmeli.

no_instalment

bool

Evet

Hazır form veya özelleştirilebilir form entegrasyonunda ödeme işlemini başlatırken data-no_instalment parametresi ile ayarlanan değer ile karşılaştırılır. Değerler uyuşmuyor ise ödeme işlemi tamamlanamaz, ödeme servisi hata döner.

tds_required

bool

Evet

Eğer işlem yapılacak POS 3D’siz işlemi destekliyor ve entegrasyonda işlem 3D zorunlu yapılmak isteniyorsa ise hem hazır form veya özelleştirilebilir form entegrasyonunda ödeme işlemini başlatırken data-tds_required, hem de charge servisinde bu parametre true olarak ayarlanmalı, 3D zorunlu değil ise false olarak ayarlanmalı.

reference_no

string

Hayır

İşlem ile ilişkilendireceğiniz sizin göndereceğiniz bir referans numarası. Sipariş numarası, fatura numarası gibi. Referans numarasını unique bir değer gönderirseniz charge transaction servisinden cevap alamadığınız durumlarda işlemin durumunu check transansaction servisi üzerinden kontrol edebilirsiniz. Bu şekilde mükerrer çekim işlemlerinden korunmuş oluruz.

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.

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

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

id

string

İşlemin id'si

xact_id

string

İşlemin id'sinin şifrelenmiş hali.

xact_date

datetime

İşlemin tarihi

transaction_type

char

1: satış

pos_type

char

5: Paynet POS

is_tds

bool

İşlem 3D’li ise true

agent_id

string

İşlemi yapan bayinin Paynet cari hesap kodu

user_id

string

PaynetJ olarak default döner

email

string

Mail adresi

phone

string

Telefon bilgisi

bank_id

char

Bankanın Paynet sistemindeki kodu

bank_name

string

Bankanın Paynet sistemindeki adı

campaign_url

string

Bankaların artı taksit ve taksit erteleme seçim ekranını gösteren url. Detaylı bilgi için arayınız.

instalment

int

Taksit sayısı. Bknz

ratio

float

Ödeme sırasında kullanılan oran

ratio_code

string

Ödeme sırasında kullanılan oran kodu

card_no_masked

string

Maskeli kart numarası

card_holder

string

Kart sahibi

amount

decimal

Kredi kartından çekilen tutar

net_amount

decimal

Komisyon hariç tutar

comission

decimal

Hizmet bedeli

comission_tax

decimal

Hizmet bedeli vergisi

end_user_commission

decimal

Kullanıcı hizmet bedeli

end_user_ratio

float

Ödeme sırasında kullanılan kullanıcı oran kodu

currency

char

Para birimi

authorization_code

string

Banka onay kodu

reference_code

string

Banka referans kodu

order_id

string

Banka sipariş no

user_unique_id

string

Üye iş yeri tarafından verilen kullanıcıya özgü benzersiz id. İlk defa kart saklama yapılıyorsa zorunlu.

card_owner_id

string

İlk defa kart saklama yapıldıktan sonra, Paynet tarafından user_unique_id’ye göre oluşturulan kart sahibinin benzersiz değeri. Bir sonraki kart saklama servisleri bu benzersiz değer üzerinden yapılır.

card_hash

string

Kart numarasının hashlenmiş değeri

card_bank_id

string

Saklanan kartın Paynet sistemindeki kodu

card_logo_url

string

Kartın logo görseli

is_succeed

bool

İşlem başarılı ise true. Eğer işlem başarılı ise http 200 ve is_succeed true döner. Banka onay vermemiş ise http 200 ve is_succedd false döner.

is_save_card_succeed

bool

Kart kaydetme işlemi başarılı ise true döner. Varsayılan değeri false'tur.

save_card_result_message

string

Kart kaydetme işlemi sonuç mesajı

paynet_error_id

string

Paynet sistemi hata kodu

paynet_error_message

string

Paynet sistemi hata mesajı

bank_error_id

string

Banka sisteminin hata kodu

bank_error_message

string

Banka sisteminin hata mesajı

bank_error_short_desc

string

Banka sisteminin hata mesajı

bank_error_long_desc

string

Banka sisteminin hata mesajı

agent_reference_no

string

Ödeme işleminde kullandığınız referans numaranız. reference_no ile aynı

object_name

string

transaction

code

string

Sistem sonuç kodu bknz. Bakınız

message

string

Sistem mesajı

ratio_code_method

string

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

md_status

int

3D ödeme onaylama işlem sonucu

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_*****FBWZ/****/tZjhkI8ecXG3HsTm8H76A6I1apMT*****",
"token_id": "3C72FBF6-****-****-****-CA2CE9AAE900",
"reference_no": "",
"transaction_type": 1,
"add_comission_amount": "true",
"no_instalment": "false",
"tds_required": "true",
"installments": "0,3,6,8,9",
"ratio_code": "",
"amount": 1256000
}
Response
{
"id": 2526145,
"xact_id": "xk_EAAAAFZ59jeB/zqMRhd0yygDgbCmqfeCJCPOmJSNDIIxBYQ5",
"xact_date": "2020-01-30T14:38:44.6478544+03:00",
"transaction_type": 1,
"pos_type": 5,
"is_tds": true,
"agent_id": "1001",
"user_id": "PaynetApi",
"email": null,
"phone": null,
"bank_id": "AXSS",
"bank_name": "Axess",
"instalment": 0,
"ratio": 0.025,
"card_no_masked": "435508******4358",
"card_holder": "TEST",
"amount": 80,
"net_amount": 78,
"comission": 2,
"comission_tax": 0,
"currency": "TRY",
"authorization_code": "aut-1022",
"reference_code": "ref-1022",
"order_id": "order-1022",
"is_succeed": true,
"paynet_error_id": "",
"paynet_error_message": "",
"bank_error_id": "",
"bank_error_message": "",
"bank_error_short_desc": "",
"bank_error_long_desc": "",
"agent_reference_no": "1000",
"xact": "2526145",
"campaign_url": "",
"end_user_comission": 0,
"end_user_ratio": 0,
"ratio_code": "",
"ratio_code_method": "",
"is_save_card_succeed": true,
"save_card_result_message": "Kart saklama islemi basarili",
"card_owner_id": "2ce0bd9d-aeb3-4af0-9dd6-cf294e72f9cb",
"user_unique_id": "31",
"card_hash": "pch_Ie_StuwWK-dFd6H6FtZpWeqs-xq-",
"card_bank_id": "AXSS",
"company_cost_ratio": "0.1",
"company_commission":""
"company_commission_with_tax":
"company_net_amount":""
"plus_installment":""
"card_type":""
"card_brand_name":""
"card_logo_url": "https://pts-statics.paynet.com.tr/img/banklogo/small/AXSS.png",
"md_status": -1,
"object_name": "transaction",
"code": 0,
"message": "Başarılı İşlem"
}
Service Url

Sistem

URL

Canlı Sistem

https://api.paynet.com.tr/v1/transaction/charge

Test Sistemi

​https://pts-api.paynet.com.tr/v1/transaction/charge

Aşağıdaki örnekte post edilen session_id ve token_id değerleri alınarak ödeme onaylama servisine gönderilir.

<?php
$secret_key = "sck_pcs_rMnxDSW/43243434/YAzXXXXXXXXXXXX";
$PostURL = "https://pts-api.paynet.com.tr/v1/transaction/charge";
$session_id = $_REQUEST["session_id"];
$token_id = $_REQUEST["token_id"];
$params = array(
'session_id' => $session_id,
'token_id' => $token_id,
'transaction_type' => 1,
'amount' => '1500',
'add_comission_amount' => false,
'ratio_code' => '',
'installments' => '',
'no_instalment' => false,
'tds_required' => true
);
$options = array(
'http' => array(
'header' =>"Accept: application/json; charset=UTF-8\r\n".
"Content-type: application/json; charset=UTF-8\r\n".
"Authorization: Basic ".$secret_key,
'method' => 'POST',
'content' => json_encode($params),
'ignore_errors' => true
),
);
$context = stream_context_create($options);
$result = json_decode(@file_get_contents($PostURL, false, $context));
if($result->is_succeed == true)
{
echo "Başarılı";
}
else
{
echo "Başarısız";
}
?>