Создание заказа на покупку

Метод Create sales order позволяет создать заказ на покупку новой подписки для клиента текущего реселлера или любого из его нижестоящих реселлеров по ценам, указанным в тарифном плане (см. Заказ подписки по ценам, указанным в тарифном плане).

Заказ подписки на сертификат или домен доступен только с помощью метода API v1 Create an Order (см. Создание Заказа).

Заказ подписки по индивидуальным ценам или с индивидуальной наценкой доступен только через Панель управления Оператора (см. Заказ на покупку подписки).

Заказ подписки с указанием дополнительных параметров (например, услуги Microsoft, Google) требует последовательного выполнения нескольких шагов:

  1. Получить список дополнительных параметров, которые требуются для провижининга услуг в тарифном плане — см. Получение списка дополнительных параметров услуг для тарифного плана. Для некоторых услуг дополнительные параметры могут иметь ограниченный список допустимых значений. В таком случае вместе со списком дополнительных параметров будет получен список их допустимых значений.
  2. Указать требуемые значения дополнительных параметров и отправить их на валидацию — см. Валидация дополнительных параметров услуг для тарифного плана. Для выполнения валидации создается асинхронная задача. Выполнение задачи может занимать некоторое время.
  3. Дождаться завершения асинхронной задачи и проверить результат валидации дополнительных параметров — см. Получение информации об асинхронной задаче.
  4. После успешной валидации дополнительных параметров создать заказ на покупку новой подписки с указанием ID асинхронной задачи, в рамках которой была проведена валидация дополнительных параметров — см. эту статью.

Для авторизации требуется API-токен менеджера (сотрудника). API-токен можно получить через Панель управления Оператора (см. Просмотр и обновление информации о сотруднике).

По указанному в запросе API-токену определяются:

  • Роль и уровень доступа менеджера, от которых зависит доступность метода.
  • Текущий реселлер и его нижестоящие реселлеры, доступные в рамках метода.

POST {base_url}/api/v3/resellers/{reseller_id}/sales_order

Аргументы

Название

Тип параметра

Тип данных

Обязательный/ 
Опциональный

Описание

X-Api-TokenheaderstringОбязательныйAPI-токен сотрудника, выполняющего операцию (см. Просмотр и обновление информации о сотруднике)
Content-TypeheaderstringОбязательныйТип данных, передаваемых в запросе. Необходимо указать: application/vnd.api+json
AcceptheaderstringОбязательныйПоддерживаемые типы данных в ответе. Необходимо указать: application/vnd.api+json
base_urlpathstringОбязательныйURL ActivePlatform
reseller_idpathintegerОбязательныйID реселлера. Возможно указать ID текущего реселлера или ID любого из его нижестоящих реселлеров (см. Просмотр информации о реселлере)
dataformobjectОбязательныйИнформация об атрибутах операции

attributesformobjectОбязательныйАтрибуты операции


account_idformintegerОбязательныйID клиента, для которого необходимо заказать подписку


plan_idformintegerОбязательныйID тарифного плана


plan_period_idformintegerОбязательныйID периода тарифного плана


payment_modelformstringОбязательный

Модель оплаты подписки. Возможные значения:

  • prepay Предоплата.
  • postpay Постоплата.


subscription_credit_limit_use_systemformboolОпциональный

Использование в заказе системного значения кредитного лимита по подписке:

  • true — используется системное значение кредитного лимита по подписке из правила обслуживания или переопределенное на уровне клиента.
  • false — используется значение, установленное в параметре subscription_credit_limit на уровне заказа.

Параметр используется только для заказов по модели Постоплата (payment_model = postpay)



subscription_credit_limitformnumberОпциональныйВеличина кредитного лимита по подписке на уровне заказа, если не используется системное значение значение кредитного лимита по подписке (subscription_credit_limit_use_system = false). Параметр используется только для заказов по модели Постоплата (payment_model = postpay)


provisioning_dateformstringОпциональныйДата предоставления для создания отложенного заказа (ГГГГ-ММ-ДД). Можно указать дату в пределах от текущей до текущей + 15 дней. Подробнее см. Отложенный заказ на покупку


resourcesformobjectОпциональныйПеречень ресурсов в заказе на покупку. Обязательный, если хотя бы для одного ресурса указано ненулевое минимальное количество в тарифном плане или заказывается дополнительное количество (см. Ресурсы тарифного плана)



dataformarrayОпциональныйИнформация о ресурсах. Обязательно для ресурсов с ненулевым минимальным или дополнительным количеством




plan_resource_idformintegerОпциональныйID ресурса тарифного плана




additionalformintegerОпциональныйДополнительное количество ресурса сверх включенного в тарифный план


account_product_managersformobjectОпциональныйОтветственные сотрудники для клиента (см. Управление ответственными сотрудниками)



dataformarrayОпциональныйИнформация об ответственных сотрудниках для клиента в рамках продукта, связанного с указанным тарифным планом




manager_product_role_idformintegerОпциональныйID роли сотрудника в рамках продукта




responsible_product_manager_idformintegerОпциональныйID ответственного сотрудника в рамках продукта


promo_codeformstringОпциональныйКод для получения скидки

task_idformstringОпциональныйID асинхронной задачи, в рамках которой была проведена валидация дополнительных параметров (см. Валидация дополнительных параметров услуг для тарифного плана) — если для заказа подписки требуется указать дополнительные параметры (например, услуги Microsoft, Google)

Модель ответа

  • В случае отсутствия ошибок метод возвращает данные о созданном заказе на покупку (см. модель ответа в Получение информации о заказе). Статус ответа: 201 Created.
  • При заказе подписки по модели Постоплата, когда требуется ручное подтверждение менеджера для клиента (см. Управление разрешением на работу клиента по модели Постоплата) в случае отсутствия ошибок метод возвращает данные о созданной ручной операции.

    Название

    Тип данных

    Описание

    postpay_verificationobjectДанные о разрешении на работу клиента по модели Постоплата


    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 не входит в допустимый диапазон
Указанная роль не настроена в продукте

Если требуется задать ответственных сотрудников для клиента, необходимо следующие данные:

  1. ID роли сотрудника, существующей в рамках продукта, к которому относится указанный тарифный план (см. Управление ролями сотрудников).
  2. ID сотрудника реселлера, назначенного ответственным сотрудником в рамках продукта, к которому относится указанный тарифный план, и имеющего указанную роль сотрудника (см. Управление ответственными сотрудниками).
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"
                    }
                ]
            }
        }
    }
}