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

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


note

Зміст

Зміст


note

Опис

Опис

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

Увага! Повернення необхідно проводити в повному обсязі.

Повернення можливе лише при відправці запиту використовуючи той же 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(
    $pass.
    $trans_id
  )
)

note

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

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

<?php
  $client_pass = '***';
  $data['client_key'] = '***';
  $data['action'] = 'CREDITVOID';
  $data['trans_id'] = '19848-26243-92097';
  $data['amount'] = '85.00';
  $data['hash'] = md5(
                    strtoupper(
                      $pass.
                      $trans_id
                    )
                  );
          
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://secure.platononline.com/post-unq/",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => $data,
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

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"
}

Дополнительная проверка возврата

Для получения информации о возврате в случае, если ваша система не смогла принять Callback, Response или по другой причине, можно воспользоваться дополнительными API запросами проверки:


note

Ошибки запросов

Ошибки запросов


note

Связанные разделы

Связанные разделы

Другие методы возвратов: