PaymentNut
Документация для разработчиков / Работа с API / Изменение подписки
Изменение действующих подписок возможно для проектов на тарифном плане "Индивидуальный".

Допускается не более одного изменения каждой подписки за последние 48 часов.

При изменении подписки, на электронную почту плательщика отправляется письмо с новыми параметрами подписки, а так же ссылка на ее отмену.

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

Наименование параметра Описание Допустимые символы Минимальное, максимальное кол–во знаков Допустимые значения Обязателен Пример
subscription_id Идентификатор существующей действующей подписки [a-zA-Z0-9] 32,32 Да 139ABC3D0B0D7B324158679D42BAE0A8
recurrent_amount Сумма каждого последующего регулярного платежа в рублях (RUB). Разделитель – точка (.). Обязательно всегда указывать два знака (копейки) после разделителя. [0-9.] 1,10 Минимальное – 1.15, максимальное – 1000000 Да 50.00
interval Интервал между платежами 1 – день
2 – неделя
3 – месяц
Да 1
period Период. В комбинации с интервалом, 1 'месяц' значит раз в месяц, а 2 'неделя' – раз в две недели. Должен быть больше 0 и целым числом. Сочетание значения периода и интервала не должно превышать одного года. [1-9] Больше нуля Да 1
max_periods Суммарное количество регулярных платежей в подписке (включая уже выполненные). 0 — без ограничений. Допускается только целое число. [0-9] 1,3 Любые Да 1
next_transaction_date Дата и время (UTC) следующего регулярного платежа (в Unix timestamp). Если значение не задано, то следующий регулярный платеж будет выполнен через указанный интервал и период относительно предыдущего регулярного или установочного платежа, например через месяц. Если указываете явную дату и время следующего регулярного платежа, то она должна быть как минимум на 12 часов позднее текущего времени и не старше одного года от текущего времени. Данный параметр не является обязательным. [0-9] Как минимум на 12 часов позднее текущего времени Нет 1669826983


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


$project_id='0D2239F1BBDAA3E4F98CFD0CDF2F9D73';
$api_key='1EA457132ABC39FBBA99A0EEFE0BF13D';
$url='https://paymentnut.ru/api/subscription_change/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,"subscription_id=139ABC3D0B0D7B324158679D42BAE0A8&recurrent_amount=50.00&interval=1&period=1&max_periods=1next_transaction_date=");

$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 Некорректное значение поля subscription_id
4 Идентификатор проекта или API ключ указан неверно, несовместимый тарифный план с данным методом API, или проект не может работать по API
5 Подписка не найдена
6 Подписка не может быть изменена (например, уже отменена)
7 Команда на изменение подписки уже выполняется (команда выполняется в течении нескольких минут)
8 Недопустимые символы или кол–во символов в поле recurrent_amount
9 Значение поля recurrent_amount менее минимального
10 Значение поля recurrent_amount превышает максимальное
11 Недопустимое кол–во цифр после разделителя в поле recurrent_amount
12 Недопустимое значение в поле interval
13 Значение поля period не задано
14 Значение поля interval в сочетании с period дают интервал между платежами более одного года
15 Недопустимое кол–во символов в поле max_periods
16 Значение поля next_transaction_date менее 12 часов позднее текущего времени
17 Значение поля next_transaction_date превышает один год
18 За последние 48 часов уже выполнялся запрос на изменение данной подписки
19 Все переданные значения не отличаются от текущих параметров подписки
20 Значение поля max_periods превышает или равно количеству уже совершенных успешных регулярных платежей