# Ödeme Onaylama

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.

{% hint style="success" %}
<https://api.paynet.com.tr/v1/transaction/charge>
{% endhint %}

{% tabs %}
{% tab title="İstek Parametreleri" %}

| Parametre İsmi        | Tip         | Zorunlu | Açıklama                                                                                                                                                                                                                                                                                                                                                                   |
| --------------------- | ----------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **session\_id**       | string(100) | Evet    | Paynet.js’in formunuza attach ettiği parametre                                                                                                                                                                                                                                                                                                                             |
| **token\_id**         | string(100) | Evet    | Paynet.js’in formunuza attach ettiği parametre                                                                                                                                                                                                                                                                                                                             |
| **reference\_no**     | string( 50) | 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. |
| **transaction\_type** | char(1)     | Evet    | Satış ya da ön provizyon. 1 satış, 3 ön provizyon. Varsayılan satış işlemidir.                                                                                                                                                                                                                                                                                             |
| {% endtab %}          |             |         |                                                                                                                                                                                                                                                                                                                                                                            |

{% tab title="Dönüş Parametreleri" %}

| Parametre İsmi               | Tip         | Açıklama                                                                                                                                          |
| ---------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| **xact\_id**                 | string(100) | İşlemin id'si                                                                                                                                     |
| **xact\_date**               | datetime    | İşlemin tarihi                                                                                                                                    |
| **transaction\_type**        | char(1)     | 1: satış                                                                                                                                          |
| **pos\_type**                | char(1)     | 5: Paynet POS                                                                                                                                     |
| **is\_tds**                  | bool        | İşlem 3D’li ise true                                                                                                                              |
| **agent\_id**                | string(10)  | İşlemi yapan bayinin Paynet cari hesap kodu                                                                                                       |
| **user\_id**                 | string(10)  | PaynetJ olarak default döner                                                                                                                      |
| **email**                    | string(60)  | Mail adresi                                                                                                                                       |
| **phone**                    | string(10)  | Telefon bilgisi                                                                                                                                   |
| **bank\_id**                 | char(4)     | Bankanın Paynet sistemindeki kodu                                                                                                                 |
| **instalment**               | int         | Taksit sayısı                                                                                                                                     |
| **ratio**                    | float       | Ödeme sırasında kullanılan oran                                                                                                                   |
| **card\_no\_masked**         | string(25)  | Maskeli kart numarası                                                                                                                             |
| **card\_holder**             | string(50)  | Kart sahibi                                                                                                                                       |
| **amount**                   | decimal     | Kredi kartından çekilen tutar                                                                                                                     |
| **net\_amount**              | decimal     | Komisyon hariç tutar                                                                                                                              |
| **comission**                | decimal     | Komisyon tutarı                                                                                                                                   |
| **comission\_tax**           | decimal     | Komisyon vergisi                                                                                                                                  |
| **currency**                 | char(3)     | Para birimi                                                                                                                                       |
| **authorization\_code**      | string(10)  | Banka onay kodu                                                                                                                                   |
| **reference\_code**          | string(50)  | Banka referans kodu                                                                                                                               |
| **order\_id**                | string(50)  | Banka sipariş no                                                                                                                                  |
| **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. |
| **paynet\_error\_id**        | string      | Paynet sistemi hata kodu                                                                                                                          |
| **paynet\_error\_message**   | string      | Paynet sistemi hata mesajı                                                                                                                        |
| **bank\_error\_id**          | string(50)  | Banka sisteminin hata kodu                                                                                                                        |
| **bank\_error\_message**     | string(50)  | Banka sisteminin hata mesajı                                                                                                                      |
| **bank\_error\_short\_desc** | string(250) | Banka sisteminin hata mesajı                                                                                                                      |
| **bank\_error\_long\_desc**  | string      | Banka sisteminin hata mesajı                                                                                                                      |
| **agent\_reference\_no**     | string(50)  | Ödeme işleminde kullandığınız referans numaranız. reference\_no ile aynı                                                                          |
| **object\_name**             | string      | transaction                                                                                                                                       |
| **code**                     | string      | Sistem sonuç kodu bknz. Bknz.[Dönüş Kodları](https://doc.paynet.com.tr/uornek/genel-bilgiler/hata-kodlari/doenues-kodlari)                        |
| **message**                  | string      | Sistem mesajı                                                                                                                                     |
| {% endtab %}                 |             |                                                                                                                                                   |

{% tab title="Request" %}

```
{  
   "session_id":"js_EAAAAD3fKWDiouwO+dcEqN2gusaKLSmLIOJV37ZIJOnKyg6+",
   "token_id":"jt_EAAAAKfn6aGfKgvaK1yVPAbFKF4F4RhV7iR1lJBAxVeltC\/+UefYTyMeO2bgVOnMsjU06j\/ZNv42tDQZnyB2aOwEZME-",
   "reference_no":"1234",
   "transaction_type":1
}
```

{% endtab %}

{% tab title="Response" %}

```
{  
   "xact_id":"xk_EAAAAE3ovgioQa0Xc++vq16TJYL6Qerwf6hgceGxLAtX7QG9",
   "xact_date":"0001-01-01T00:00:00",
   "transaction_type":1,
   "pos_type":5,
   "is_tds":true,
   "agent_id":"20081",
   "user_id":"paynetj",
   "email":null,
   "phone":null,
   "bank_id":"BONS",
   "instalment":3,
   "ratio":0.021,
   "card_no_masked":"444444******0004",
   "card_holder":"gokhan",
   "amount":5000,
   "net_amount":4764,
   "comission":200,
   "comission_tax":36,
   "currency":"TRY",
   "authorization_code":"aut-3060",
   "reference_code":"ref-3060",
   "order_id":"order-3060",
   "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":null,
   "object_name":"transaction",
   "code":0,
   "message":"Ba\u015far\u0131l\u0131 \u0130\u015flem"
}

```

{% endtab %}

{% tab title="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> |
| {% endtab %}     |                                                        |
| {% endtabs %}    |                                                        |

Aşağıdaki örnekte post edilen **session\_id** ve **token\_id** değerleri alınarak ödeme onaylama servisine gönderilir.

```php
<?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,				
);
			
$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";
}
			
?>
```
