Метод используется для подтверждения заказа через ранее созданную корзину покупок (см. Создание корзины покупок) для аккаунта, к которому есть доступ у текущего пользователя. Если подтверждается заказ для подписки по модели Постоплата, проверяются требования к непревышению кредитного лимита по подписке и доступности модели Постоплата для аккаунта (см. и ). Если подтверждается заказ с новым количеством ресурса, проверяется доступность его изменения с учетом правила предоставления (см. Параметры изменения ресурсов в ).
В результате вызова метода создаются заказ и связанные сущности по стандартной логике платформы или создается ручная операция Разрешать работу клиента по постоплате.
Метод возвращает информацию о созданном заказе или ручной операции, а также инструкции для Панели управления Клиента, на какую страницу нужно перенаправить пользователя. Код ответа 200 OK.
PATCH {reseller_domain}/internal_api/shopping_carts/{shopping_cart_id}/submit
В этой статье:
Авторизация
Требуется авторизация с помощью access token пользователя.
Аргументы
|
Название |
Тип параметра |
Тип данных |
Обязательный/
|
Описание |
|
|---|---|---|---|---|---|
|
Content-Type |
header |
string |
Обязательный |
Тип данных, передаваемых в запросе. Укажите application/vnd.api+json |
|
|
Accept |
header |
string |
Обязательный |
Поддерживаемые типы данных в ответе. Укажите application/vnd.api+json |
|
|
X-Api-Locale |
header |
string |
Опциональный |
Двухбуквенный код языка данных в ответе и созданной асинхронной задачи |
|
|
Authorization |
header |
string |
Обязательный |
Действующий access token пользователя. Формат: |
|
|
reseller_domain |
path |
string |
Обязательный |
Доменное имя реселлера |
|
|
shopping_cart_id |
path |
integer |
Обязательный |
ID корзины покупок, созданной в результате вызова метода Создание корзины покупок |
|
|
order_type |
form |
string |
Обязательный |
Тип заказа. Доступные значения:
|
|
Модель ответа
Информация о заказе
|
Название |
Тип данных |
Описание |
||||||
|---|---|---|---|---|---|---|---|---|
|
data |
object |
Данные ответа |
||||||
|
|
id |
string |
ID заказа |
|||||
|
|
type |
string |
Тип данных |
|||||
|
|
attributes |
object |
Информация о заказе |
|||||
|
|
|
account_id |
integer |
ID аккаунта |
||||
|
|
|
total |
number |
Стоимость заказа |
||||
|
|
|
created_at |
string |
Дата и время создания заказа |
||||
|
|
|
updated_at |
string |
Дата и время последнего обновления заказа |
||||
|
|
|
payment_id |
integer |
ID платежа по заказу |
||||
|
|
|
status |
string |
Статус заказа:
|
||||
|
|
|
type |
string |
Тип заказа:
|
||||
|
|
|
expiration_date |
string |
Дата истечения заказа (ГГГГ-ММ-ДД) |
||||
|
|
|
owner_id |
integer |
ID Владельца аккаунта |
||||
|
|
|
promo_code |
string |
Промокод, указанный при оформлении заказа |
||||
|
|
|
document_id |
string |
Номер заказа |
||||
|
|
|
requester_ip |
string |
IP-адрес менеджера или пользователя аккаунта, создавшего заказ |
||||
|
|
|
params |
object |
Период, покрываемый заказом |
||||
|
|
|
|
operate_from |
string |
Дата начала периода (ГГГГ-ММ-ДД) |
|||
|
|
|
|
operate_to |
string |
Дата конца периода (ГГГГ-ММ-ДД) |
|||
|
|
|
denominated |
bool |
Не используется |
||||
|
|
|
closed_at |
string |
Дата завершения заказа |
||||
|
|
|
manager_id |
integer |
ID ответственного менеджера |
||||
|
|
|
custom_price |
bool |
Признак индивидуальной цены:
|
||||
|
|
|
net_cost |
string |
Стоимость заказа в валюте тарифного плана |
||||
|
|
|
renew_prices |
object |
Маппинг ресурсов и цен для продления |
||||
|
|
|
|
period |
integer |
ID периода тарифного плана |
|||
|
|
|
|
resources |
object |
Список пар "ID ресурса подписки ID ресурса тарифного плана" |
|||
|
|
|
discount_amount |
number |
Сумма скидки по заказу |
||||
|
|
|
payment_model |
string |
Модель оплаты подписки, для которой создан заказ:
|
||||
|
|
|
details |
object |
Детальная информация о заказе |
||||
|
|
|
|
common |
object |
Общая информация о заказе |
|||
|
|
|
|
|
currency |
object |
Информация о валюте тарифного плана |
||
|
|
|
|
|
|
iso_code |
string |
Код валюты тарифного плана |
|
|
|
|
|
|
reseller_currency |
object |
Информация о валюте реселлера |
||
|
|
|
|
|
|
iso_code |
string |
Код валюты реселлера |
|
|
|
|
|
|
subscription_id |
integer |
ID подписки |
||
|
|
|
|
|
from_date |
string |
Дата начала периода, оплачиваемого заказом (ГГГГ-ММ-ДД) |
||
|
|
|
|
|
to_date |
string |
Дата конца периода, оплачиваемого заказом (ГГГГ-ММ-ДД) |
||
|
|
|
|
|
subscription_name |
string |
Название подписки |
||
|
|
|
|
|
plan_id |
integer |
ID текущего тарифного плана подписки |
||
|
|
|
|
|
plan_name |
string |
Название текущего тарифного плана подписки |
||
|
|
|
|
|
new_plan_id |
integer |
ID нового тарифного плана подписки |
||
|
|
|
|
|
new_plan_name |
string |
Название нового тарифного плана подписки |
||
|
|
|
|
|
product_id |
integer |
ID продукта, связанного с тарифным планом, на который заказана подписка |
||
|
|
|
|
|
product_name |
string |
Название продукта, связанного с тарифным планом, на который заказана подписка |
||
|
|
|
|
|
product_category_id |
integer |
ID категории продуктов, связанной с тарифным планом, на который заказана подписка |
||
|
|
|
|
|
product_category_name |
string |
Название категории продуктов, связанной с тарифным планом, на который заказана подписка |
||
|
|
|
|
items |
array of objects |
Позиции заказа |
|||
|
|
|
|
|
type |
string |
Тип позиции |
||
|
|
|
|
|
fees |
object |
Информация о типах стоимости |
||
|
|
|
|
|
|
setup |
number |
Стоимость установки |
|
|
|
|
|
|
|
recurring |
number |
Абонентская плата |
|
|
|
|
|
|
|
renewal |
number |
Стоимость продления |
|
|
|
|
|
|
|
overuse |
number |
Стоимость перерасхода |
|
|
|
|
|
|
|
transfer |
number |
Стоимость переноса |
|
|
|
|
|
|
totals |
object |
Суммы стоимостей по типу |
||
|
|
|
|
|
|
setup |
number |
Сумма стоимостей установки |
|
|
|
|
|
|
|
recurring |
number |
Сумма абонентской платы |
|
|
|
|
|
|
|
renewal |
number |
Сумма стоимостей продления |
|
|
|
|
|
|
|
overuse |
number |
Сумма стоимостей перерасхода |
|
|
|
|
|
|
|
transfer |
number |
Сумма стоимостей переноса |
|
|
|
|
|
|
discounts |
object |
Суммы скидок по типу |
||
|
|
|
|
|
|
setup |
number |
Сумма скидок для стоимости установки |
|
|
|
|
|
|
|
recurring |
number |
Сумма скидок для абонентской платы |
|
|
|
|
|
|
|
renewal |
number |
Сумма скидок для стоимости продления |
|
|
|
|
|
|
|
overuse |
number |
Сумма скидок для стоимости перерасхода |
|
|
|
|
|
|
|
transfer |
number |
Сумма скидок для стоимости переноса |
|
|
|
|
|
|
discount_ids |
array |
Список ID скидок |
||
|
|
|
|
|
raw_durations |
object |
Информация о периоде для каждого типа стоимости (в месяцах) |
||
|
|
|
|
|
|
setup |
number |
Период для стоимости установки |
|
|
|
|
|
|
|
recurring |
number |
Период для абонентской платы |
|
|
|
|
|
|
|
renewal |
number |
Период для стоимости продления |
|
|
|
|
|
|
|
overuse |
number |
Период для стоимости перерасхода |
|
|
|
|
|
|
|
transfer |
number |
Период для стоимости переноса |
|
|
|
|
|
|
raw_paid_durations |
object |
Информация об оплачиваемом периоде для каждого типа стоимости (в месяцах) |
||
|
|
|
|
|
|
setup |
number |
Оплачиваемый период для стоимости установки |
|
|
|
|
|
|
|
recurring |
number |
Оплачиваемый период для абонентской платы |
|
|
|
|
|
|
|
renewal |
number |
Оплачиваемый период для стоимости продления |
|
|
|
|
|
|
|
overuse |
number |
Оплачиваемый период для стоимости перерасхода |
|
|
|
|
|
|
|
transfer |
number |
Оплачиваемый период для стоимости переноса |
|
|
|
|
|
|
raw_quantities |
object |
Количество единиц для каждого типа стоимости |
||
|
|
|
|
|
|
setup |
number |
Количество единиц для стоимости установки |
|
|
|
|
|
|
|
recurring |
number |
Количество единиц для абонентской платы |
|
|
|
|
|
|
|
renewal |
number |
Количество единиц для стоимости продления |
|
|
|
|
|
|
|
overuse |
number |
Количество единиц для стоимости перерасхода |
|
|
|
|
|
|
|
transfer |
number |
Количество единиц для стоимости переноса |
|
|
|
|
|
|
raw_paid_from_dates |
object |
Дата начала оплачиваемого периода для каждого типа стоимости (ГГГГ-ММ-ДД) |
||
|
|
|
|
|
|
setup |
string |
Дата начала оплачиваемого периода для стоимости установки |
|
|
|
|
|
|
|
recurring |
string |
Дата начала оплачиваемого периода для абонентской платы |
|
|
|
|
|
|
|
renewal |
string |
Дата начала оплачиваемого периода для стоимости продления |
|
|
|
|
|
|
|
overuse |
string |
Дата начала оплачиваемого периода для стоимости перерасхода |
|
|
|
|
|
|
|
transfer |
string |
Дата начала оплачиваемого периода для стоимости переноса |
|
|
|
|
|
|
raw_paid_to_dates |
object |
Дата конца оплачиваемого периода для каждого типа стоимости (ГГГГ-ММ-ДД) |
||
|
|
|
|
|
|
setup |
string |
Дата конца оплачиваемого периода для стоимости установки |
|
|
|
|
|
|
|
recurring |
string |
Дата конца оплачиваемого периода для абонентской платы |
|
|
|
|
|
|
|
renewal |
string |
Дата конца оплачиваемого периода для стоимости продления |
|
|
|
|
|
|
|
overuse |
string |
Дата конца оплачиваемого периода для стоимости перерасхода |
|
|
|
|
|
|
|
transfer |
string |
Дата конца оплачиваемого периода для стоимости переноса |
|
|
|
|
|
|
currency_rate_id |
integer |
ID курса валюты |
||
|
|
|
|
|
first_charge_ids |
object |
Список ID списаний для генерации виртуальных списаний для каждого типа стоимости |
||
|
|
|
|
|
|
setup |
integer |
ID списания для стоимости установки |
|
|
|
|
|
|
|
recurring |
integer |
ID списания для абонентской платы |
|
|
|
|
|
|
|
renewal |
integer |
ID списания для стоимости продления |
|
|
|
|
|
|
|
overuse |
integer |
ID списания для стоимости перерасхода |
|
|
|
|
|
|
|
transfer |
integer |
ID списания для стоимости переноса |
|
|
|
|
|
|
first_charge_discount_ids |
object |
Список ID скидок для генерации виртуальных списаний для каждого типа стоимости |
||
|
|
|
|
|
|
setup |
number |
ID скидки для стоимости установки |
|
|
|
|
|
|
|
recurring |
number |
ID скидки для абонентской платы |
|
|
|
|
|
|
|
renewal |
number |
ID скидки для стоимости продления |
|
|
|
|
|
|
|
overuse |
number |
ID скидки для стоимости перерасхода |
|
|
|
|
|
|
|
transfer |
number |
ID скидки для стоимости переноса |
|
|
|
|
|
|
first_charge_types |
object |
Тип списания для генерации виртуальных списаний для каждого типа стоимости |
||
|
|
|
|
|
|
setup |
string |
Тип списания для стоимости установки |
|
|
|
|
|
|
|
recurring |
string |
Тип списания для абонентской платы |
|
|
|
|
|
|
|
renewal |
string |
Тип списания для стоимости продления |
|
|
|
|
|
|
|
overuse |
string |
Тип списания для стоимости перерасхода |
|
|
|
|
|
|
|
transfer |
string |
Тип списания для стоимости переноса |
|
|
|
|
|
|
quantity |
integer |
Заказанное количество |
||
|
|
|
|
|
subscription_resource_id |
integer |
ID ресурса подписки |
||
|
|
|
|
|
plan_resource_id |
integer |
ID ресурса тарифного плана |
||
|
|
|
|
|
resource_name |
string |
Название ресурса |
||
|
|
|
|
|
priority |
integer |
Приоритет ресурса |
||
|
|
|
|
provisioning_items |
array of objects |
Информация о позициях заказа |
|||
|
|
|
|
|
type |
string |
Внутренний класс позиции заказа |
||
|
|
|
|
|
target_type |
string |
Тип сущности, к которой относится позиция заказа |
||
|
|
|
|
|
target_id |
integer |
ID сущности, к которой относится позиция заказа |
||
|
|
|
|
|
operation_value |
string |
Значение операции |
||
|
|
|
net_cost_discount_percent |
number |
Процент скидки к стоимости заказа |
||||
|
|
|
delayed |
bool |
Признак отложенного заказа:
|
||||
|
|
|
provisioning_date |
string |
Дата предоставления отложенного заказа |
||||
|
|
|
requester_type |
string |
Информация о том, кто создал заказ:
|
||||
|
|
|
requester_id |
integer |
ID менеджера или пользователя аккаунта, создавшего заказ |
||||
|
|
|
prolong_prices |
object |
Маппинг ресурсов и цен для пролонгации |
||||
|
|
|
|
period |
integer |
ID периода тарифного плана |
|||
|
|
|
|
resources |
object |
Список пар "ID ресурса подписки ID ресурса тарифного плана" |
|||
|
|
|
switch_plan_prices |
object |
Маппинг ресурсов и цен для переключения тарифного плана |
||||
|
|
|
|
period |
integer |
ID периода тарифного плана |
|||
|
|
|
|
resources |
object |
Список пар "ID ресурса подписки ID ресурса тарифного плана" |
|||
|
|
|
individual_currency_rate |
bool |
Признак индивидуального курса валюты:
|
||||
|
|
|
currency_rate_id |
integer |
ID курса валюты |
||||
|
|
|
start_plan_prices |
object |
Маппинг ресурсов и цен для покупки |
||||
|
|
|
|
period |
integer |
ID периода тарифного плана |
|||
|
|
|
|
resources |
object |
Список пар "ID ресурса подписки ID ресурса тарифного плана" |
|||
|
|
|
redirect_to |
string |
Инструкции для Панели управления Клиента о том, на какую страницу нужно переадресовать пользователя после подтверждения заказа:
|
||||
|
|
|
po_number |
string |
Номер заказа в системе закупок клиента (Purchase Order, PO) (см. Обновление информации о PO в корзине покупок) |
||||
|
|
|
po_document |
object |
Информация о файле заказа из системе закупок клиента |
||||
|
|
|
|
name |
string |
Имя файла |
|||
|
|
|
|
url |
string |
Ссылка на файл |
|||
|
|
|
|
size |
integer |
Размер файла в байтах |
|||
|
meta |
object |
Дополнительная информация |
||||||
|
|
server_current_time |
string |
Текущие дата и время сервера |
|||||
Информация о ручной операции
|
Название |
Тип данных |
Описание |
||||||
|---|---|---|---|---|---|---|---|---|
|
data |
object |
Данные ответа |
||||||
|
|
attributes |
object |
Информация о ручной операции |
|||||
|
|
|
id |
integer |
ID ручной операции |
||||
|
|
|
reseller_id |
integer |
ID реселлера |
||||
|
|
|
target_id |
integer |
ID корзины покупок |
||||
|
|
|
target_type |
string |
Тип данных |
||||
|
|
|
operation |
string |
Тип ручной операции:
|
||||
|
|
|
status |
string |
Статус ручной операции:
|
||||
|
|
|
created_at |
string |
Дата и время создания ручной операции |
||||
|
|
|
updated_at |
string |
Дата и время последнего обновления ручной операции |
||||
|
|
|
params |
object |
Не используется |
||||
|
|
|
closer_id |
integer |
Не используется |
||||
|
|
|
redirect_to |
string |
Инструкции для Панели управления Клиента о том, на какую страницу нужно переадресовать пользователя после подтверждения заказа:
|
||||
|
meta |
object |
Дополнительная информация |
||||||
|
|
server_current_time |
string |
Текущие дата и время сервера |
|||||
Пример запроса
curl --location --request PATCH 'https://test.activeplatform.com/internal_api/shopping_carts/18946/submit' \
--header 'Content-Type: application/vnd.api+json' \
--header 'Accept: application/vnd.api+json' \
--header 'X-Api-Locale: en' \
--header 'Authorization: Bearer AccessTokenExample' \
--data-raw '{
"data": {
"attributes": {
"order_type": "ProlongOrder"
}
}
}'
Пример ответа
Информация о заказе
{
"data": {
"id": "18595",
"type": "order",
"attributes": {
"account_id": 1938,
"total": 14.0,
"created_at": "2023-02-07T16:38:22.340+03:00",
"updated_at": "2023-02-07T16:38:22.523+03:00",
"payment_id": 13355,
"status": "waiting_for_payment",
"type": "ProlongOrder",
"expiration_date": "2023-04-01",
"owner_id": null,
"promo_code": "",
"document_id": "PO0000768",
"requester_ip": null,
"params": {
"operate_from": "2023-03-01",
"operate_to": "2023-04-01"
},
"denominated": false,
"closed_at": null,
"manager_id": null,
"custom_price": false,
"net_cost": null,
"renew_prices": {},
"discount_amount": 0.0,
"payment_model": "prepay",
"details": {
"common": {
"currency": {
"iso_code": "USD"
},
"reseller_currency": {
"iso_code": "USD"
},
"subscription_id": 3010828,
"from_date": "2023-02-07",
"to_date": "2024-02-07",
"subscription_name": "Office",
"plan_id": 5851,
"plan_name": "Office",
"new_plan_id": null,
"new_plan_name": null,
"product_id": 2100,
"product_name": "Office",
"product_category_id": 1306,
"product_category_name": "Office"
},
"items": [
{
"type": "purchase",
"fees": {
"setup": 0.0,
"recurring": 2.0,
"renewal": 0.0,
"overuse": 0.0,
"transfer": 0.0
},
"totals": {
"recurring": 10.0
},
"discounts": {
"recurring": 0.0
},
"discount_ids": [],
"raw_durations": {
"recurring": 1.0
},
"raw_paid_durations": {
"recurring": 1.0
},
"raw_quantities": {
"recurring": "5.0"
},
"raw_paid_from_dates": {
"recurring": "2023-03-01"
},
"raw_paid_to_dates": {
"recurring": "2023-04-01"
},
"currency_rate_id": 120,
"first_charge_ids": {
"recurring": 108917
},
"first_charge_discount_ids": {
"recurring": null
},
"first_charge_types": {
"recurring": "Charge::Recurring"
},
"quantity": 5,
"subscription_resource_id": 120615,
"plan_resource_id": 23047,
"resource_name": "Licenses",
"priority": 3
},
{
"type": "purchase",
"fees": {
"setup": 0.0,
"recurring": 4.0,
"renewal": 0.0,
"overuse": 0.0,
"transfer": 0.0
},
"totals": {
"recurring": 4.0
},
"discounts": {
"recurring": 0.0
},
"discount_ids": [],
"raw_durations": {
"recurring": 1.0
},
"raw_paid_durations": {
"recurring": 1.0
},
"raw_quantities": {
"recurring": "1.0"
},
"raw_paid_from_dates": {
"recurring": "2023-03-01"
},
"raw_paid_to_dates": {
"recurring": "2023-04-01"
},
"currency_rate_id": 120,
"first_charge_ids": {
"recurring": 108918
},
"first_charge_discount_ids": {
"recurring": null
},
"first_charge_types": {
"recurring": "Charge::Recurring"
},
"quantity": 1,
"subscription_resource_id": 120617,
"plan_resource_id": 23045,
"resource_name": "Users",
"priority": 0
}
],
"provisioning_items": [
{
"type": "prolong",
"target_type": "Subscription",
"target_id": 3010828,
"operation_value": "2023-03-01"
}
]
},
"net_cost_discount_percent": 0.0,
"delayed": false,
"provisioning_date": null,
"requester_type": "User",
"requester_id": 1650,
"prolong_prices": {
"period": 142725,
"resources": {
"120614": 143591,
"120615": 142719,
"120616": 142717,
"120617": 142715,
"120618": 142713,
"120619": 143786,
"120620": 142709
}
},
"switch_plan_prices": {},
"individual_currency_rate": false,
"currency_rate_id": null,
"start_plan_prices": {},
"redirect_to": "payment",
"po_number": null,
"po_document": null
}
},
"meta": {
"server_current_time": "2023-06-30 T12:34:56.199973+0300"
}
}
Информация о ручной операции
{
"data": {
"attributes": {
"id": 23,
"reseller_id": 1,
"target_id": 18946,
"target_type": "ShoppingCart",
"operation": "postpay_subscription_verify",
"status": "approval_required",
"created_at": "2023-02-07T16:38:22.340+03:00",
"updated_at": "2023-02-07T16:38:22.523+03:00",
"params": {},
"closer_id": null,
"redirect_to": "main"
}
},
"meta": {
"server_current_time": "2023-06-30 T12:34:56.199973+0300"
}
}