Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

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

Warning

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


Содержание

Зміст

Table of Contents
maxLevel2
minLevel1
include
outlinefalse
indent0px
absoluteUrl
exclude
true
stylecircle

Описание

Данный метод позволяет вернуть плательщику денежные средства
typelist
printablefalse
class

Опис

Требования

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

Warning

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

Note

Возврат средств возможен только при отправке запроса с API ключа и юр. лица, что были использованы для оплаты.

Чеклист интеграции

  •  Интегрировать запрос согласно данного API.
  •  Передать тех поддержке PSP Platon ссылку для Callback (если ранее не было указано).
  •  Сообщить в тех поддержке PSP Platon ваши IP адреса сервера сайта или о том, что будет использоваться приложение (в этом случае ограничения по IP будут сняты).
  •  После успешной оплаты тестовой / реальной картой провести запрос на возврат.
  •  Получить Callback и Response.
  •  Отобразить плательщику на сайте / приложении возврат средств.

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


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

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

Вимоги

Expand
titleTLS 1.2

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


API

параметры

параметри

HTTP METHOD: POST

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

Параметр

Значение

Значення

Описание

Опис

Особенности

Особливості

action

Status
colourGreen
title

обязательно

обов'язковий

CREDITVOID

Код

платежного

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

client_key

Status
colourGreen
title

обязательно

обов'язковий

String

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

Ключ

предоставляется

надається на

почту мерчанту

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

trans_id

Status
colourGreen
title

обязательно

обов'язковий

String

ID

транзакции PlatonID транзакции в системе

оплати PSP Platon

amount

Status
colourGreen
title

обязательно

обов'язковий

Number

Сумма возврата

Должна быть меньше или равна сумме списания

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

Сума має дорівнювати сумі оплати.

Tip
Верный вариант

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

1000.00

Warning
Неверные варианты

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

1000
1000.0
1,000.0
1,000.00

hash

Status
colourGreen
title

обязательно

обов'язковий

String

Контрольная подпись

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

Code Block
languagephp
md5(
  strtoupper(
    $pass.
    
$order
$trans_id
  )
)

Примеры запроса

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

Expand
titleПример запроса Приклад запиту на PHP
Code Block
languagephp
<?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(
                      $pass$client_pass.
                      $order$data['trans_id']
                    )
                  );
          
$curl$url = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "'https://secure.platononline.com/post-unq/",';
$crq = 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_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($curl$crq);
  if (curl_errno($crq)) {
    echo 'ERROR: '.curl_closeerror($curl$crq);
  }else{
    echo $response; $result;
  }
curl_close($crq);
Info

Postman Collection


Callback и Response

Expand
titleОсобенности работы с Callback
Include Page
Работа с Робота з CallbackРабота с
Робота з Callback
Expand
titleБезопасность
Include Page
БезопасностьБезпекаБезопасность
Безпека

Промежуточный ответ:

Expand
titleResponse при успешной авторизации запроса на возврат
Code Block
languagejson
{
  "action":"CREDITVOID",
  "result":"ACCEPTED",
  "order_id":"27859-52747-0554",
  "trans_id":"27859-54289-00657"
}

При успешном возврате:

Expand
titleCallback при успешном возврате при оплате по протоколу https://secure.platononline.com/payment/auth
Info

Callback отправляется через час после успешной авторизации

Code Block
languagephp
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' => '********************************'
)
Info

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

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

Expand
titleCallback при успешном ПОЛНОМ возврате при оплате по протоколу https://secure.platononline.com/post-unq/
Info

Callback отправляется через час после успешной авторизации

Code Block
languagephp
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' => '********************************',
)
Info

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

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

Expand
titleCallback при успешном ЧАСТИЧНОМ возврате при оплате по протоколу https://secure.platononline.com/post-unq/
Info

Callback отправляется через час после успешной авторизации

Code Block
languagephp
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' => '********************************',
)
Info

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

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

При ошибке запроса:

Expand
titleResponse при неуспешной авторизации запроса на возврат
Code Block
languagejson
{
  "result":"ERROR",
  "error_message":"Transaction already refunded"
}

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

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


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

Expand
titleСписок ошибок, их причин и возможных решений.
Include Page
Ошибки/решения при запросахОшибки/решения при запросахПомилки та рішення при запитах
Помилки та рішення при запитах

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

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