Создание заказа на продление
Метод Create renewal order позволяет создать заказ на продление существующей подписки текущего реселлера или любого из его нижестоящих реселлеров (см. Ручное продление подписки).
Для авторизации требуется API-токен менеджера (сотрудника). API-токен можно получить через Панель управления Оператора (см. Просмотр и обновление информации о сотруднике).
По указанному в запросе API-токену определяются:
- Роль и уровень доступа менеджера, от которых зависит доступность метода.
- Текущий реселлер и его нижестоящие реселлеры, доступные в рамках метода.
POST {base_url}/api/v3/resellers/{reseller_id}/renewal_order
Аргументы
Название | Тип параметра | Тип данных | Обязательный/ | Описание | ||||
---|---|---|---|---|---|---|---|---|
X-Api-Token | header | string | Обязательный | API-токен сотрудника, выполняющего операцию (см. Просмотр и обновление информации о сотруднике) | ||||
Content-Type | header | string | Обязательный | Тип данных, передаваемых в запросе. Необходимо указать: application/vnd.api+json | ||||
Accept | header | string | Обязательный | Поддерживаемые типы данных в ответе. Необходимо указать: application/vnd.api+json | ||||
base_url | path | string | Обязательный | URL ActivePlatform | ||||
reseller_id | path | integer | Обязательный | ID реселлера. Возможно указать ID текущего реселлера или ID любого из его нижестоящих реселлеров (см. Просмотр информации о реселлере) | ||||
data | form | object | Обязательный | Информация об атрибутах операции | ||||
attributes | form | object | Обязательный | Атрибуты операции | ||||
subscription_id | form | integer | Обязательный | ID подписки, которую необходимо продлить | ||||
plan_period_id | form | integer | Обязательный | ID периода тарифного плана подписки | ||||
resources | form | object | Опциональный | Перечень ресурсов в заказе на продление. Обязательный, если хотя бы для одного ресурса указано ненулевое минимальное количество в тарифном плане или заказывается дополнительное количество (см. Ресурсы тарифного плана) | ||||
data | form | array | Опциональный | Информация о ресурсах. Обязательно для ресурсов с ненулевым минимальным или дополнительным количеством | ||||
plan_resource_id | form | integer | Опциональный | ID ресурса тарифного плана | ||||
quantity | form | integer | Опциональный | Целевое количество ресурса | ||||
promo_code | form | string | Опциональный | Код для получения скидки |
Модель ответа
В случае отсутствия ошибок метод возвращает данные о созданном заказе на переключение (см. модель ответа в Получение информации о заказе). Статус ответа: 201 Created.
Ошибки
Статус ошибки | Текст ошибки | Комментарий |
---|---|---|
403 | Выполнение действия запрещено | Список доступных действий над подпиской см. в Получение информации о подписке |
422 | Заказанное количество ресурсов не удовлетворяет доступному диапазону значений | Необходимо уменьшить или увеличить количество ресурсов в соответствии с пределами, заданными в целевом тарифном плане |
Период id недоступен для заказа в тарифном плане | Продление на период с указанным ID недоступно по одной из следующих причин:
| |
Ресурс id недоступен для заказа в тарифном плане | Ресурс с указанным ID недоступен в рамках тарифного плана | |
Ресурс id должен быть заказан | В заказ необходимо добавить обязательный ресурс с указанным ID, так как в тарифном плане для ресурса установлено минимальное количество больше 0 | |
Заказ не может быть завершен: сумма заказа превышает кредитный лимит по подписке | Чтобы создать заказ, необходимо увеличить кредитный лимит для клиента (см. Просмотр и обновление информации о клиенте) или индивидуальный кредитный лимит для подписки (см. Просмотр и обновление информации о подписке) | |
Количество заказанных ресурсов для план ресурса с id должно быть N | Количество ресурса с указанным ID в заказе должно быть равно текущему количеству ресурса в подписке | |
Заказ услуги на выбранный аккаунт недоступен из-за ограничений, наложенных на аккаунт или реселлера | Валидационный сервис (см. Управление валидационным сервисом) определил, что клиент или реселлер находятся в ограничительных списках. Заказ недоступен для продукта, с которым связана указанная подписка (см. Получение информации о подписке) | |
Заказ услуги недоступен. Сервис по проверке ограничений, наложенных на аккаунт или реселлера, недоступен. Попробуйте разместить заказ позже | Валидационный сервис (см. Управление валидационным сервисом) не смог получить информацию для проверки клиента и реселлера. Чтобы создать заказ, повторите попытку позже или обратитесь в службу технической поддержки | |
Заказ услуги недоступен. В аккаунте или у реселлера отсутствует атрибут ИНН | Чтобы создать заказ, необходимо сначала создать и заполнить дополнительный параметр для ИНН реселлера или клиента (см. Настройка дополнительных параметров), а затем повторить попытку |
Пример запроса
POST /api/v3/resellers/1/renewal_order
Host: test.activeplatform.com
Content-Type: application/vnd.api+json
X-Api-Token: vY5fwetestK3gJXZH5uHCw
Accept: application/vnd.api+json
{
"data": {
"attributes": {
"subscription_id": 3007529,
"plan_period_id" : 2808,
"resources": {
"data": [
{
"plan_resource_id": 4340,
"quantity": 5
}
]
},
"promo_code": ""
}
}
}
Пример ответа
{
"data": {
"id": "11769",
"type": "renewal_orders",
"attributes": {
"created_at": "2021-03-06T00:43:54.987+03:00",
"updated_at": "2021-03-06T00:43:55.439+03:00",
"document_id": "RN002623",
"status": "waiting_for_provisioning",
"account_id": 710,
"type": "RenewalOrder",
"closed_at": null,
"expiration_date": "2023-03-06",
"provisioning_date": "2022-03-06",
"total": "14.52",
"promo_code": null,
"payment_id": null,
"manager_id": 225,
"requester_ip": null,
"custom_price": false,
"created_by": "#225 Adam Manager",
"subscription_id": 3007529,
"items": [
{
"id": 20158,
"target_id": 3007529,
"target_type": "Subscription",
"type": "ProvisioningItem::Renew",
"status": "waiting_for_payment",
"description": "Clean CSPmonthly",
"quantity": "2023-03-06"
},
{
"id": 20159,
"target_id": 49964,
"target_type": "SubscriptionResource",
"type": "ProvisioningItem::Upgrade",
"status": "waiting_for_payment",
"description": "HDD",
"quantity": 1,
"resource_id": 152581
}
]
},
"relationships": {
"charges": {
"data": [
{
"id": "311809",
"type": "charges"
}
]
}
}
}
}