Создание заказа на покупку
Метод Create sales order позволяет создать заказ на покупку новой подписки для клиента текущего реселлера или любого из его нижестоящих реселлеров по ценам, указанным в тарифном плане (см. Заказ подписки по ценам, указанным в тарифном плане).
Заказ подписки на сертификат или домен доступен только с помощью метода API v1 Create an Order (см. Создание Заказа).
Заказ подписки по индивидуальным ценам или с индивидуальной наценкой доступен только через Панель управления Оператора (см. Заказ на покупку подписки).
Заказ подписки с указанием дополнительных параметров (например, услуги Microsoft, Google) требует последовательного выполнения нескольких шагов:
Для авторизации требуется API-токен менеджера (сотрудника). API-токен можно получить через Панель управления Оператора (см. Просмотр и обновление информации о сотруднике).
По указанному в запросе API-токену определяются:
- Роль и уровень доступа менеджера, от которых зависит доступность метода.
- Текущий реселлер и его нижестоящие реселлеры, доступные в рамках метода.
POST {base_url}/api/v3/resellers/{reseller_id}/sales_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 | Обязательный | Атрибуты операции | ||||
account_id | form | integer | Обязательный | ID клиента, для которого необходимо заказать подписку | ||||
plan_id | form | integer | Обязательный | ID тарифного плана | ||||
plan_period_id | form | integer | Обязательный | ID периода тарифного плана | ||||
payment_model | form | string | Обязательный | Модель оплаты подписки. Возможные значения:
| ||||
subscription_credit_limit_use_system | form | bool | Опциональный | Использование в заказе системного значения кредитного лимита по подписке:
Параметр используется только для заказов по модели Постоплата ( | ||||
subscription_credit_limit | form | number | Опциональный | Величина кредитного лимита по подписке на уровне заказа, если не используется системное значение значение кредитного лимита по подписке (subscription_credit_limit_use_system = false ). Параметр используется только для заказов по модели Постоплата (payment_model = postpay ) | ||||
provisioning_date | form | string | Опциональный | Дата предоставления для создания отложенного заказа (ГГГГ-ММ-ДД). Можно указать дату в пределах от текущей до текущей + 15 дней. Подробнее см. Отложенный заказ на покупку | ||||
resources | form | object | Опциональный | Перечень ресурсов в заказе на покупку. Обязательный, если хотя бы для одного ресурса указано ненулевое минимальное количество в тарифном плане или заказывается дополнительное количество (см. Ресурсы тарифного плана) | ||||
data | form | array | Опциональный | Информация о ресурсах. Обязательно для ресурсов с ненулевым минимальным или дополнительным количеством | ||||
plan_resource_id | form | integer | Опциональный | ID ресурса тарифного плана | ||||
additional | form | integer | Опциональный | Дополнительное количество ресурса сверх включенного в тарифный план | ||||
account_product_managers | form | object | Опциональный | Ответственные сотрудники для клиента (см. Управление ответственными сотрудниками) | ||||
data | form | array | Опциональный | Информация об ответственных сотрудниках для клиента в рамках продукта, связанного с указанным тарифным планом | ||||
manager_product_role_id | form | integer | Опциональный | ID роли сотрудника в рамках продукта | ||||
responsible_product_manager_id | form | integer | Опциональный | ID ответственного сотрудника в рамках продукта | ||||
promo_code | form | string | Опциональный | Код для получения скидки | ||||
task_id | form | string | Опциональный | ID асинхронной задачи, в рамках которой была проведена валидация дополнительных параметров (см. Валидация дополнительных параметров услуг для тарифного плана) — если для заказа подписки требуется указать дополнительные параметры (например, услуги Microsoft, Google) |
Модель ответа
- В случае отсутствия ошибок метод возвращает данные о созданном заказе на покупку (см. модель ответа в Получение информации о заказе). Статус ответа: 201 Created.
При заказе подписки по модели Постоплата, когда требуется ручное подтверждение менеджера для клиента (см. Управление разрешением на работу клиента по модели Постоплата) в случае отсутствия ошибок метод возвращает данные о созданной ручной операции.
Название
Тип данных
Описание
postpay_verification object Данные о разрешении на работу клиента по модели Постоплата manual_operation_id
integer
ID ручной операции
Ошибки
Статус ошибки | Текст ошибки | Комментарий |
---|---|---|
422 | Невозможен заказ подписки на тарифный план c id | Тарифный план с указанным ID должен быть в статусе Активный (см. Получение списка тарифных планов) |
Период id недоступен для заказа | Период с указанным ID должен быть доступен в рамках тарифного плана | |
Клиент id не найден | Необходимо указать существующего клиента реселлера (см. Получение списка Клиентов) | |
Заказанное количество ресурсов не удовлетворяет доступному диапазону значений | Необходимо уменьшить или увеличить количество ресурсов в соответствии с пределами, заданными в тарифном плане | |
Ресурс id недоступен для заказа в тарифном плане | Ресурс с указанным ID недоступен в рамках тарифного плана | |
Заказ не может быть завершен: сумма заказа превышает кредитный лимит по подписке | Чтобы создать заказ, необходимо увеличить кредитный лимит для клиента (см. Просмотр и обновление информации о клиенте) или индивидуальный кредитный лимит для данной подписки (см. Просмотр и обновление информации о подписке) | |
Заказ не может быть завершен: платеж за полный месяц превышает кредитный лимит по подписке | Чтобы создать заказ, необходимо увеличить кредитный лимит для клиента или индивидуальный кредитный лимит для данной подписки | |
Ресурс id должен быть заказан | В заказ необходимо добавить обязательный ресурс с указанным ID, так как в тарифном плане для ресурса установлено минимальное количество больше 0 | |
Вы не можете заказать план для выбранного клиента, так как для данного типа клиента план недоступен | Чтобы создать заказ, необходимо указать клиента с другим типом клиента (см. available_account_types в Получение информации о тарифном плане) | |
Вы не можете заказать план для выбранного аккаунта, так как план является пробным, а данный аккаунт находится в финансовой блокировке | Для клиентов в статусе Финансовая блокировка доступен заказ только платных подписок | |
Вы не можете заказать план для выбранного клиента, так как данный клиент находится в статусе S | Для клиентов в этом статусе заказ новых подписок недоступен | |
Вы не можете заказать план для выбранного клиента, так как план является единичным и у данного клиента уже есть подписка на данный план в статусе S | У клиента может быть только одна подписка на тарифный план с признаком Единичный | |
Заказ дополнительного количества ресурсов недоступен для пробного периода | Чтобы создать заказ на покупку пробной подписки, для каждого ресурса дополнительное количество должно быть равно 0 | |
Пробный период не может быть заказан: минимальное количество ресурса больше включенного | Заказ на покупку пробной подписки с такой конфигурацией ресурсов недоступен | |
Заказ услуги на выбранный аккаунт недоступен из-за ограничений, наложенных на аккаунт или реселлера | Валидационный сервис (см. Управление валидационным сервисом) определил, что клиент или реселлер находятся в ограничительных списках. Заказ недоступен для продукта, с которым связан указанный тарифный план (см. Получение информации о тарифном плане) | |
Заказ услуги недоступен. Сервис по проверке ограничений, наложенных на аккаунт или реселлера, недоступен. Попробуйте разместить заказ позже | Валидационный сервис (см. Управление валидационным сервисом) не смог получить информацию для проверки клиента и реселлера. Чтобы создать заказ, повторите попытку позже или обратитесь в службу технической поддержки | |
Заказ услуги недоступен. В аккаунте или у реселлера отсутствует атрибут ИНН | Чтобы создать заказ, необходимо сначала создать и заполнить дополнительный параметр для ИНН реселлера или клиента (см. Настройка дополнительных параметров), а затем повторить попытку | |
Дата предоставления заказа может принимать значения с {текущая дата} по {текущая дата + 15 дней} | Указанная дата предоставления заказа provisioning_date не входит в допустимый диапазон | |
Указанная роль не настроена в продукте | Если требуется задать ответственных сотрудников для клиента, необходимо следующие данные:
| |
Cотрудник id не является ответственным менеджером по продукту |
Пример запроса
POST /api/v3/resellers/1/sales_order
Host: test.activeplatform.com
Content-Type: application/vnd.api+json
X-Api-Token: vY5fwetestK3gJXZH5uHCw
Accept: application/vnd.api+json
{
"data": {
"attributes": {
"account_id": "710",
"plan_id": 1598,
"plan_period_id": 2808,
"payment_model": "prepay",
"provisioning_date": "2022-03-01",
"resources": {
"data": [
{
"plan_resource_id": 4340,
"additional": 2
}
]
},
"promo_code": ""
}
}
}
Пример ответа
{
"data": {
"id": "12187",
"type": "sales_orders",
"attributes": {
"created_at": "2020-11-11T09:59:59.644+03:00",
"updated_at": "2020-11-11T09:59:59.875+03:00",
"document_id": "SO006650",
"status": "waiting_for_payment",
"account_id": 710,
"type": "SalesOrder",
"closed_at": null,
"expiration_date": "2022-03-03",
"provisioning_date": "2020-11-11",
"total": "160.0",
"promo_code": "",
"payment_id": 9264,
"manager_id": 225,
"requester_ip": null,
"custom_price": false,
"created_by": "#225 Sales Manager",
"subscription_id": 3007747,
"items": [
{
"id": 35924,
"target_id": 3012374,
"target_type": "Subscription",
"type": "ProvisioningItem::New",
"status": "completed",
"description": "Autoprovisioning Plan 1",
"quantity": 1
},
{
"id": 35925,
"target_id": 49964,
"target_type": "SubscriptionResource",
"type": "ProvisioningItem::Upgrade",
"status": "completed",
"description": "Resource 1",
"quantity": 1,
"resource_id": 152581
}
]
},
"relationships": {
"charges": {
"data": [
{
"id": "312660",
"type": "charges"
}
]
}
}
}
}