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

Метод Create a Sales Order позволяет создать Заказ на покупку новой Подписки для Клиента текущего Реселлера или любого из его нижестоящих Реселлеров по ценам, указанным в Тарифном плане (см. Заказ подписки по ценам, указанным в тарифном плане).

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

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

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

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

Доступ к текущему Реселлеру, относительно которого формируется список нижестоящих Реселлеров, определяется по токену Сотрудника, указанному в заголовке запроса.

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

Аргументы

Название

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

Тип данных

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

Описание

X-Api-TokenheaderstringОбязательныйAPI токен Сотрудника, выполняющего операцию (см. Просмотр и обновление информации о сотруднике)
Content-TypeheaderstringОбязательныйПредназначен для идентификации формата и способа представления сущности
AcceptheaderstringОбязательныйПредназначен для информирования сервера о типах данных, которые поддерживаются клиентом (браузером)
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_limitformfloatОпциональныйВеличина Кредитного лимита по подписке на уровне Заказа, если не используется системное значение значение Кредитного лимита по подписке (subscription_credit_limit_use_system = false). Параметр используется только для Заказов по Постоплате (payment_model = postpay)


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
Пробный период не может быть заказан: минимальное количество ресурса больше включенногоЗаказ на покупку пробной Подписки с такой конфигурацией Ресурсов недоступен
Заказ услуги на выбранный аккаунт недоступен из-за ограничений, наложенных на аккаунт или реселлераВалидационный сервис (см. Управление валидационным сервисом) определил, что Клиент или Реселлер находятся в санкционных списках. Заказ новых Подписок недоступен для Продукта, с которым связан указанный Тарифный план (см. Получение информации о Тарифном плане Реселлера)
Заказ услуги недоступен. Сервис по проверке ограничений, наложенных на аккаунт или реселлера, не отвечает. Попробуйте разместить заказ позжеВалидационный сервис (см. Управление валидационным сервисом) не смог получить информацию для проверки Клиента и Реселлера. Чтобы создать Заказ, обратитесь в службу технической поддержки или повторите попытку позже
Заказ услуги недоступен. В аккаунте или у реселлера отсутствует атрибут ИННЧтобы создать Заказ, необходимо сначала создать и заполнить Дополнительный параметр для ИНН Реселлера или Клиента (см. Настройка дополнительных параметров), а затем повторить попытку
Указанная роль не настроена в продукте

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

  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",
            "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": "2020-11-12",
            "provisioning_date": null,
            "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": 20865,
                    "target_id": "Subscription",
                    "target_type": "Subscription",
                    "type": "ProvisioningItem::New",
                    "status": "waiting_for_payment",
                    "description": "Clean CSPmonthly",
                    "quantity": 1
                },
                {
                    "id": 20866,
                    "target_id": "SubscriptionResource",
                    "target_type": "SubscriptionResource",
                    "type": "ProvisioningItem::Upgrade",
                    "status": "waiting_for_payment",
                    "description": "HDD",
                    "quantity": 2
                }
            ]
        },
        "relationships": {
            "charges": {
                "data": [
                    {
                        "id": "312660",
                        "type": "charges"
                    }
                ]
            }
        }
    }
}