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

После выполнения подтверждения транзакции по двухстадийной схеме происходит списание средств с карты и зачисление их на лицевой счет проекта, а так же взимается комиссия с проекта с суммы подтверждения транзакции.

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

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

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

Разделитель – точка (.). Обязательно всегда указывать два знака после разделителя.
[0-9.] 1,10 Минимальное:
– 1.15
Максимальное:
сумма транзакции
Да 25.00


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


$project_id='0D2239F1BBDAA3E4F98CFD0CDF2F9D73';
$api_key='1EA457132ABC39FBBA99A0EEFE0BF13D';
$url='https://paymentnut.ru/api/transaction_confirm/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&amount=25.00");

$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 Некорректное значение поля amount
9 В поле amount не два знака после разделителя
10 Сумма подтверждения (amount) менее минимального значения
11 Сумма подтверждения (amount) более суммы транзакции