PaymentNut
Документация для разработчиков / Работа с API / Изменение подписки
Возможно изменить подписку, которая находится в статусе (status) активна (1) или просрочена (2).

Допускается не более одного изменения каждой подписки за последние 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 часов позднее текущего времени Нет 1708633715


Пример запроса (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, подписка изменяется, плательщику отправляется электронное письмо с новыми условиями подписки, а так же ссылка на отмену подписки.

В случае неуспешного выполнения запроса возвращается 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 превышает или равно количеству уже совершенных успешных регулярных платежей