PaymentNut
Документация для разработчиков / Работа с API / Поиск подписок
API PaymentNut позволяет программно осуществлять поиск подписок по определенным критериям. По найденным подпискам отдается подробная информация. Данный способ доступа к информации о подписках удобен, когда требуется машинно получить и обработать данные без открытия Личного Кабинета.

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

Наименование параметра Описание Допустимые символы Минимальное, максимальное кол–во знаков Допустимые значения Обязателен Пример
search_type Тип поиска 1 – поиск всех подписок проекта

2 – поиск подписки по ее идентификатору

3 – поиск подписок по значению reference_1

4 – поиск подписок по значению reference_2

5 – поиск подписок по значению reference_3

Да 3
search_value Значение критерия поиска [a-zA-Z0-9 ] 0, 32 Любые Обязателен для следующих типов поиска: 2, 3, 4, 5 re865b8e4683fb2144ed0eafce9f51et
timestamp_1_operator Оператор сравнения переменной timestamp_1 [0-9] 1, 1 1 – меньше
2 – больше
Обязателен если задано значение timestamp_1 2
timestamp_1 Значение времени создания установочной транзакции (date_created, Unix timestamp), в сочетании с оператором (timestamp_1_operator) [0-9] 10, 10 Любые Нет 1659312000
timestamp_2_operator Оператор сравнения переменной timestamp_2 [0-9] 1, 1 1 – меньше
2 – больше
Обязателен если задано значение timestamp_2 1
timestamp_2 Значение времени создания установочной транзакции (date_created, Unix timestamp), в сочетании с оператором (timestamp_2_operator)

В сочетании с timestamp_1 возможно задать промежуток поиска.
[0-9] 10, 10 Любые Нет 1661904000
status Статус подписки [0-9] 1, 1 1 – Активна
2 – Просрочена
3 – Отменена
4 – Отклонена
5 – Завершена
Нет 1


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


$project_id='0D2239F1BBDAA3E4F98CFD0CDF2F9D73';
$api_key='1EA457132ABC39FBBA99A0EEFE0BF13D';
$url='https://paymentnut.ru/api/subscription/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,"search_type=3&search_value=re865b8e4683fb2144ed0eafce9f51et&timestamp_1_operator=2&timestamp_1=1659312000&timestamp_2_operator=1&timestamp_2=1661904000&status=1");

//в данном примере происходит поиск всех активных подписок (status=1) со значением reference_1=re865b8e4683fb2144ed0eafce9f51et, в период создания установочной транзакции между 1-ым и 31 августа 2022 г.

$response=curl_exec($ch);

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


Ответ

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

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


Данные подписки (response_code=1)

Параметр Значение
subscription_id Идентификатор подписки
status Статус подписки:

1 – Активна

2 – Просрочена

3 – Отменена

4 – Отклонена

5 – Завершена
date_created Дата и время (UTC) создания установочного платежа (в Unix timestamp)
description Назначение подписки (в некоторых случаях кириллические символы могут быть транслитерированы)
email Email введеный при установочном платеже
originator_object_type Связанный объект, которым инициализирована подписка:

1 – Счет

2 – Продукт

3 – Вызов по API
originator_object_id Идентификатор связанного объекта
reference_1 Значение поля reference_1 (при вызове по API)
reference_2 Значение поля reference_2 (при вызове по API)
reference_3 Значение поля reference_3 (при вызове по API)
custom_data Значение поля custom_data (при вызове по API)
recurrent_initial_amount Сумма установочного платежа в рублях
recurrent_amount Сумма каждого регулярного платежа в рублях
interval Интервал между платежами:

1 – день

2 – неделя

3 – месяц
period Период интервала
max_periods Количество регулярных платежей в подписке, если задано
recurrent_start_date Дата и время (UTC) первого регулярного платежа (в Unix timestamp), если было задано при формировании подписки
cancelled_reason При status=3, метод отмены подписки:

1 – отменена через ЛК

2 – отменена через API

3 – отменена плательщиком по ссылке из email

4 – иное
cancelled_date При status=3, дата и время (UTC) отмены подписки (в Unix timestamp)
rejected_reason При status=4, причина отклонения подписки:

1 – карта не могла быть сохранена для совершения регулярных платежей

2 – совершено три неудачные попытки оплаты регулярных платежей, идущих подряд

3 – установочный платеж был отклонен
rejected_date При status=4, дата и время (UTC) отклонения подписки (в Unix timestamp)
next_transaction_date Дата и время (UTC) следующего регулярного платежа (в Unix timestamp)


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

Response Значение
1 Некорректное значение Идентификатора проекта в логине HTTP Basic Auth
2 Некорректное значение API ключа в пароле HTTP Basic Auth
3 Недопустимое значение поля search_type
4 Недопустимые кол–во символов в поле search_value
5 Идентификатор проекта или API ключ указан неверно, проекту не согласован данный метод API, или проект не может работать по API
7 Не указано значение search_value
8 Подписки не найдены
9 Недопустимое кол–во символов в timestamp_1
10 Не задано значение для timestamp_1_operator, но задано значение для timestamp_1
11 Недопустимое кол–во символов в timestamp_2
12 Не задано значение для timestamp_2_operator, но задано значение для timestamp_2
13 Недопустимое значение status