PaymentNut
Документация для разработчиков / Работа с API / Отмена транзакции
Для транзакций по двухстадийной схеме (при вызове страницы оплаты через API для переменной manual_confirmation задано значение "1" или в ЛК включена опция "заморозка средств на карте" при создании объекта Продукт или Счет) необходимо ее последующее подтверждение (или отмена), которое можно выполнить через ЛК, либо через указанный ниже вызов по API.

После выполнения отмены транзакции по двухстадийной схеме происходит разблокировка ранее заблокированных средств на карте. Комиссия за транзакцию в случае ее отмены в некоторых случаях взимается с проекта (согласно Договору).

В случае если транзакция двухстадийная и через ЛК или API не было явного подтверждения или отмены в течении 7 дней спустя авторизации, то транзакция подтверждается автоматически.

Отмена транзакции невозможна, если прошло менее 24 часов спустя авторизации транзакции и ее сумма 10 рублей и менее.

URL: https://paymentnut.ru/api/transaction_cancel/v1
Метод отправки: POST, параметры передаются в теле запроса в формате ключ=значение
Аутентификация: используется HTTP Basic Auth – отправка логина и пароля в заголовке HTTP–запроса. В качестве логина используется Идентификатор проекта, в качестве пароля – API ключ. Оба этих значения доступны в настройках проекта Личного Кабинета его владельцу.
Поддерживаемые параметры:

Наименование параметра Описание Допустимые символы Минимальное, максимальное кол–во знаков Допустимые значения Обязателен Пример
transaction_id Идентификатор транзакции [a-zA-Z0-9] 32,32 Да ee865b8e4683fb2144ed0eafce9f51ef


Пример запроса (PHP и CURL):


$project_id='0D2239F1BBDAA3E4F98CFD0CDF2F9D73';
$api_key='1EA457132ABC39FBBA99A0EEFE0BF13D';
$url='https://paymentnut.ru/api/transaction_cancel/v1';

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_USERPWD, $project_id . ":" . $api_key);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"transaction_id=ee865b8e4683fb2144ed0eafce9f51ef");

$response=curl_exec($ch);

$response=json_decode($response, true);
print_r($response);


Ответ

В случае успешного принятия запроса, а возвращается JSON с response_code=1, отдается команда на подтверждение транзакции (команда выполняется в течении нескольких минут).

Внимание! response_code=1 не является подтверждением отмены транзакции, а лишь указывает на прием корректного запроса с Вашей стороны. В ходе выполнения команды могут возникнуть иные ошибки. Для проверки фактической отмены транзакции (через несколько минут) используйте API метод поиска транзакций.

В случае неуспешного выполнения запроса возвращается JSON с response_code=0, response=x. Возможные значения response (ошибок) приводятся ниже.

Возвращаемые ошибки (response_code=0, response=x)

Response Значение
1 Некорректное значение Идентификатора проекта в логине HTTP Basic Auth
2 Некорректное значение API ключа в пароле HTTP Basic Auth
3 Некорректное значение поля transaction_id
4 Идентификатор проекта или API ключ указан неверно, несовместимый тарифный план с данным методом API, или проект не может работать по API
5 Транзакция не найдена
6 Транзакция не может быть отменена (например, уже подтверждена или отменена)
7 Команда на подтверждение или отмену транзакции уже выполняется (команда выполняется в течении нескольких минут)
8 Сумма транзакции 10 рублей или менее и прошло менее 24 часов спустя авторизации транзакции