Цей функціонал буде активовано після вашого запиту в груповому чаті.

API метод працює по білому списку IP адрес. Надайте їх в груповий чат.


Зміст


Опис

Після успішного холдування коштів на картці платника та перевірки мерчантом наявності товару або послуги необхідно виконати підтвердження списання коштів на ваш розрахунковий рахунок використовуючи метод в цьому розділі.

Увага! Списання треба проводити на всю суму.

При відсутності товару або послуги необхідно виконати повернення коштів.

На 15 день відбудеться автоматичне списання коштів у випадку якщо за цей період вами не було проведено будь яких дій.

Підтвердження списання можливо лише при відправці запиту з того ж API ключа та юр. особи які були на момент холдування кошітв.

Відправляти товар або надавати послугу до успішного списання заборонено. На момент списання картка може бути заблокована і отримати кошти буде неможливо.


Вимоги


API параметри

HTTP METHOD:

API ENDPOINT: https://secure.platononline.com/post-unq/

Параметр

Значення

Опис

Особливості

action

CAPTURE

Код платіжного метода

client_key

String

API ключ мерчанта

Ключ надається на пошту мерчанта і має відповідати ключу по якому було проведено оплату з HOLD

trans_id

String

ID оплати в системі PSP Platon

amount

Number

Сума списання

Має бути меньше або рівна сумі в HOLD

Вірний варіант

1000.00

Невалідні варіанти

1000
1000.0
1,000.0
1,000.00

hash

String

Контрольний підпис

md5(
  strtoupper(
    $client_pass.
    $trans_id
  )
)

Приклад запиту

<?php
  $client_pass = '***';
  $data['client_key'] = '***';
  $data['action'] = 'CAPTURE';
  $data['trans_id'] = '19848-26243-92097';
  $data['amount'] = '100.00';
  $data['hash'] = md5(
                    strtoupper(
                        $client_pass.
                        $data['trans_id']
                    )
                    );

$url = 'https://secure.platononline.com/post-unq/';
$crq = curl_init();
curl_setopt($crq, CURLOPT_URL, $url);
curl_setopt($crq, CURLOPT_HEADER, 0);
curl_setopt($crq, CURLOPT_POST, 1);
curl_setopt($crq, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($crq, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($crq, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($crq, CURLOPT_POSTFIELDS, http_build_query($data));
$result = curl_exec($crq);
  if (curl_errno($crq)) {
    echo 'ERROR: '.curl_error($crq);
  }else{
    echo $result;
  }
curl_close($crq);

Postman Collection


Callback

При успішному списанні:

array (
  'action' => 'SALE',
  'result' => 'SUCCESS',
  'status' => 'SETTLED',
  'order_id' => '1974133',
  'trans_id' => '27841-94347-36138',
  'trans_date' => '2020-01-07 17:50:34',
  'descriptor' => NULL,
  'auth_code' => '',
  'hash' => '********************************',
)

Для перевірки достовірності отриманого callback, рекомендуємо звіряти підпис hash по формулі md5(strtoupper(strrev(email).client_pass.trans_id.strrev(substr(card,0,6).substr(card,-4)))).

Увага! Якщо при першочерговому запиті на оплату не було вказано email, то варто вказати пусте значення email.

{
  "action":"CAPTURE",
  "result":"SUCCESS",
  "status":"SETTLED",
  "order_id":"110714",
  "trans_id":"27851-06615-85267",
  "amount":"657.63"
}

При невдалому списанні:

array (
  'action' => 'SALE',
  'result' => 'DECLINED',
  'status' => 'PENDING',
  'order_id' => '1974133',
  'trans_id' => '27841-94347-36138',
  'trans_date' => '2020-01-07 17:50:34',
  'descriptor' => NULL,
  'auth_code' => '',
  'hash' => '********************************',
)

Для перевірки достовірності отриманого callback, рекомендуємо звіряти підпис hash по формулі md5(strtoupper(strrev(email).client_pass.trans_id.strrev(substr(card,0,6).substr(card,-4)))).

Увага! Якщо при першочерговому запиті на оплату не було вказано email, то варто вказати пусте значення email.

{
  "action":"CAPTURE",
  "result":"DECLINED",
  "status":"PENDING",
  "order_id":"110714",
  "trans_id":"27851-06615-85267",
  "amount":"657.63"
}