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

Запит на повернення необхідно проводити не раніше чим через 10 хв після отримання коллбеку про успішну оплату. В іншому випадку ви отримаєте помилку.


note

Зміст

Зміст


note

Опис

Опис

Цей метод дозволяє повернути платнику його грошові кошти.

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


note

Чекліст інтеграції

Чекліст інтеграції

  • Провести інтеграцію цього API методу.
  • Повідомити тех підтримці PSP Platon посилання для Callback (якщо раніше не було вказано).
  • Повідомити тех підтримці PSP Platon ваші IP адреси серверів сайта або про те, що буде використовуватись додаток (в цьому випадку обмеження по IP будуть зняті).
  • Після успішної оплати провести запит на повернення.
  • Отримати Callback або Response за змінити статус оплати у вашій системі.
  • Відобразити платнику на сайті / додатку повернення коштів.

note

Вимоги

Вимоги

Необхідна підтримка протоколу TLS не нижче версії 1.2


note

API параметри

API параметри

HTTP METHOD: POST

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

Параметр

Значення

Опис

Особливості

action

CREDITVOID

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

client_key

String

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

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

trans_id

String

ID оплати PSP Platon

amount

Number

Сума повернення

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

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

1000.00

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

1000
1000.0
1,000.0
1,000.00

hash

String

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

md5(
  strtoupper(
    strrev($email).
    $client_pass.
    $trans_id.
    strrev(
      substr($card_number,0,6).
      substr($card_number,-4)
    )
  )
)

Якщо в запиті на оплату не було вказано email, то необхідно залишити пусте значення email.


note

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

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

<?php
  $client_pass = '***';
  $data['client_key'] = '***';
  $data['action'] = 'CREDITVOID';
  $data['trans_id'] = '19848-26243-92097';
  $data['amount'] = '85.00';
  $card = '411111******1111';
  $email = ''; // пошта з транзакції оплати, якщо була вказана
  $data['hash'] = md5(
            strtoupper(
              strrev($email).
              $client_pass.
              $data['trans_id'].
              strrev(
                substr($card,0,6).
                substr($card,-4)
              )
            )
          );
          
$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


note

Callback та Response

Callback та Response

Проміжна відповідь:

{
  "action":"CREDITVOID",
  "result":"ACCEPTED",
  "order_id":"27859-52747-0554",
  "trans_id":"27859-54289-00657"
}

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

Callback відправляється через годину після успішної авторизації.

array (
  'id' => '27860-50312-05387',
  'order' => '27860-49622-7227',
  'status' => 'REFUND',
  'rrn' => NULL,
  'approval_code' => NULL,
  'card' => '**************',
  'description' => 'Оплата',
  'amount' => '500.00',
  'currency' => 'UAH',
  'name' => ' ',
  'email' => NULL,
  'country' => NULL,
  'state' => NULL,
  'city' => NULL,
  'address' => NULL,
  'date' => '2020-01-09 21:23:51',
  'ip' => '46.133.140.32',
  'sign' => '********************************'
)

Для проверки достоверности полученного callback, рекомендуем сверять подпись sign по формуле md5(strtoupper(strrev(email).client_pass.order.strrev(substr(card,0,6).substr(card,-4)))).

Внимание! Если при запросе на оплату не был указан email, то при проверке sing в подписи коллбека следует указать пустое значение для email.

Callback відправляється через годину після успішної авторизації.

array (
  'action' => 'CREDITVOID',
  'result' => 'SUCCESS',
  'status' => 'REFUND',
  'order_id' => '7428404',
  'trans_id' => '30009-01494-16697',
  'amount' => '97.00',
  'creditvoid_date' => '2020-09-15 07:30:16',
  'hash' => '********************************',
)

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

Внимание! Если при запросе на оплату не был указан email, то при проверке sing в подписи коллбека следует указать пустое значение для email.

Callback відправляється через годину після успішної авторизації.

array (
  'action' => 'CREDITVOID',
  'result' => 'SUCCESS',
  'status' => 'SETTLED',
  'order_id' => '7428404',
  'trans_id' => '30009-01494-16697',
  'amount' => '97.00',
  'creditvoid_date' => '2020-09-15 07:30:16',
  'hash' => '********************************',
)

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

Внимание! Если при запросе на оплату не был указан email, то при проверке sing в подписи коллбека следует указать пустое значение для email.

При помилці запиту:

{
  "result":"ERROR",
  "error_message":"Transaction already refunded"
}

note

Помилки запитів

Помилки запитів