Перейти к основному содержимому
Altcraft Docs LogoAltcraft Docs Logo
Для пользователяДля разработчикаДля администратора
Веб-сайтБаза знаний
Русский
  • Русский
  • English
v75
Войти
  • API пользователя
  • Взаимодействие с API
  • Матчинг
  • Профили
  • Базы данных
  • Ресурсы
  • Сегменты
  • Стоп-списки
  • Шаблоны
  • Рассылки
  • Кампании
  • Сценарии (цепочки)
  • Промокоды
  • Программы лояльности
    • Получить уровень профиля в программе лояльности
    • Экспорт транзакций баллов
    • Сгораемые баллы за период
    • Получение транзакций по счёту профиля
    • Получение списка триггерных промоакций
    • Начисление баллов участнику
    • Списание баллов участника
    • Подтверждение временной транзакции
    • Предварительный расчет заказа
    • Подтверждение заказа
    • Отмена временной транзакции
    • Отмена балльной транзакции
    • Получение баланса балльного счёта
    • Регистрация участника в программе лояльности
    • Удаление участника из программы лояльности
  • Цели
  • Пуши приложений
  • Маркет
  • Отчеты и статистика
  • Сендеры
  • Объекты
  • Запросы к внешним базам данных
  • Прочее
  • Список API-методов
  • Импорт и настройка коллекции API-методов в Postman
  • SDK
  • Программы лояльности
  • Подтверждение заказа
Документация для версии v75

Подтверждение заказа

Описание​

Метод preorder_commit выполняет финальное подтверждение заказа после успешного предварительного расчета через метод preorder. Метод создает заказ в системе, применяет все рассчитанные скидки, начисляет и списывает баллы, активирует промокоды.

URL-адрес​

Метод: POST

https://example.com/api/v1.1/market/orders/preorder_commit

Параметры запроса​

ПараметрТипПримерОбязательныйОписание
tokenstring"abcdefghijklmnqrstuvwxyz"ДаAPI-токен
external_idstring"order_12345"ДаВнешний идентификатор заказа в системе клиента
profile_idstring"696e304f547840a7286619e0"Да*Идентификатор профиля. Поле, используемое для матчинга
emailstring"user@example.com"Да*Email участника. Поле, используемое для матчинга
phonestring"+79991234567"Да*Телефон участника. Поле, используемое для матчинга
skip_triggersbooleanfalseНетОтключить выполнение триггеров при создании заказа. По умолчанию — false
dataobject
"data": {
"endpoint": "bot",
"status": "confirmed",
"currency": "RUB",
"total_price": "2500.00",
"final_total_price": "2150.00",
"delivery_cost": "300.00",
"lines": [...],
"promocodes": [...],
"redeem_points": [...],
"region": "region_moscow",
"custom_fields": ,
"tags": ["tag1", "tag2"]
}
ДаОбъект с данными заказа

* — для идентификации профиля необходимо передать один из параметров: profile_id, email или phone

Объект data​

ПараметрТипПримерОбязательныйОписание
endpointstring"bot", "website"ДаИсточник заказа (точка контакта). Должен быть настроен в Маркете
statusstring"new", "confirmed", "paid"ДаСтатус заказа. Используются статусы, настроенные в платформе
currencystring"RUB", "USD", "EUR"ДаВалюта заказа (трехбуквенный код ISO)
total_pricestring"2500.00"ДаОбщая стоимость заказа до применения скидок
final_total_pricestring"2150.00"ДаИтоговая стоимость заказа после применения всех скидок
delivery_coststring"300.00"НетСтоимость доставки
create_timestring (ISO 8601)"2026-02-18T13:01:05.141Z"НетДата и время создания заказа. Если не передано, используется текущее время сервера
regionstring"region_moscow"НетИдентификатор региона для применения региональных цен и акций
linesarrayСм. ниже раздел "Массив lines"ДаМассив позиций заказа. Должен содержать минимум 1 элемент
promocodesarrayСм. ниже раздел "Массив promocodes"НетМассив промокодов, примененных к заказу
requested_promotionsarrayСм. ниже раздел "Массив requested_promotions"НетПромоакции, примененные к данному заказу.

В это поле передается структура из поля applied_promotions ответа метода /preorder
redeem_pointsarrayСм. ниже раздел "Массив redeem_points"Да, если указано type="redeem_points" в requested_promotionsМассив списаний баллов по типам валют
custom_fieldsobject
{
"field1": "value1",
"field2": "value2"
}
НетДополнительные поля заказа
tagsarray
[
"summer_sale",
"first_order"
]
НетТеги для маркировки заказа

Массив lines​

Массив содержит информацию о позициях заказа. Должен содержать минимум 1 позицию.

Каждая позиция вынесена в отдельный объект внутри массива со следующими параметрами:

ПараметрТипПримерОбязательныйОписание
external_idstring"line_1"ДаВнешний идентификатор позиции в системе клиента
productstring"iphone17pmb256"Да*Идентификатор продукта
skustring"IPHONE17-256-BLACK"Да*Идентификатор SKU
line_numberinteger1НетПорядковый номер линии в заказе
countinteger1ДаКоличество единиц товара
base_price_per_itemstring"139999.00"ДаБазовая цена за единицу товара
min_price_per_itemstring"130000.00"НетМинимально допустимая цена за единицу товара
final_price_per_itemstring"139500.00"ДаФинальная цена за единицу после применения всех скидок
statusstring"new"НетСтатус позиции заказа
custom_fieldsobject{"color": "black", "size": "XL"}НетДополнительные поля позиции
requested_promotionsarrayСм. ниже раздел "Массив requested_promotions"НетПромоакции, примененные к данной позиции.

В это поле передается структура из поля applied_promotions ответа метода /preorder для соответствующей линии заказа.

* — обязателен один из параметров: product или sku

Массив promocodes​

Массив содержит объекты с информацией о промокодах.

Полное описание структуры промокода можно найти в этой статье.

ПараметрТипПримерОбязательныйОписание
codestring"SUMMER20"ДаКод промокода
pool_idinteger42ДаИдентификатор пула промокодов

Массив redeem_points​

Массив с инфомацией о списании баллов лояльности. Каждый объект описывает отдельное списание.

Полное описание структуры списания баллов можно найти в этой статье.

ПараметрТипПримерОбязательныйОписание
points_currency_iidinteger1Да*Внутренний идентификатор типа баллов
points_currency_eidstring"bonus1"Да*Внешний идентификатор типа баллов
namestring"Бонусные баллы"НетНазвание типа баллов
amountinteger499ДаКоличество баллов для списания

* — обязателен один из параметров: points_currency_iid или points_currency_eid

Массив requested_promotions​

подсказка

Массив requested_promotions может содержаться как в объекте data, так и в массиве lines внутри этого объекта. В первом случае в массиве будут переданы промоакции, применяемые к продуктам, во втором — акции, применяемые к заказу.

Массив применяемых к заказу промоакций. Каждый объект массива описывает отдельную промоакцию.

ПараметрТипПримерОбязательныйОписание
typestring"discount", "accrue_points", "redeem_points", "code_issue", "message"ДаТип промоакции
promotionobject
"promotion": {
"external_id": "promo_1",
"name": "Summer Sale"
}
ДаОбъект с идентификатором и названием промоакции
amountstring"150.00"Да, если type равен discount,accrue_points или redeem_pointsРазмер скидки или количество баллов
points_infoobject
"points_info": {
"points_currency_iid": 1,
"points_currency_eid": "bonus1",
"name": "Бонусные баллы",
"amount": "50"
}
Да, если type равен accrue_points или redeem_pointsОбъект с информацией о баллах

Структура объекта points_info выглядит следующим образом:

ПараметрТипПримерОбязательныйОписание
points_currency_iidinteger1Да*Внутренний идентификатор типа баллов
points_currency_eidstring"bonus1"Да*Внешний идентификатор типа баллов
namestring"Бонусные баллы"НетНазвание типа баллов
amountstring"6999"ДаКоличество баллов
expiration_datestring (ISO 8601)"2027-02-18T00:00:00.000Z"НетДата сгорания начисленных баллов

* — обязателен один из параметров: points_currency_iid или points_currency_eid

Пример запроса​

  • JSON
  • XML
{
"token": "abcdefghijklmnqrstuvwxyz",
"external_id": "order_12345",
"profile_id": "696e304f547840a7286619e0",
"skip_triggers": false,
"data": {
"endpoint": "bot",
"status": "confirmed",
"currency": "RUB",
"total_price": "2500.00",
"final_total_price": "2150.00",
"delivery_cost": "300.00",
"create_time": "2026-02-18T13:01:05.141Z",
"region": "region_moscow",
"lines": [
{
"external_id": "line_1",
"product": "popit",
"base_price_per_item": "1500.00",
"final_price_per_item": "1350.00",
"count": 1,
"requested_promotions": [
{
"type": "discount",
"promotion": {
"external_id": "promo_1",
"name": "Summer Sale"
},
"amount": "150.00"
},
{
"type": "accrue_points",
"promotion": {
"external_id": "bonus_promo",
"name": "Начисление баллов"
},
"points_info": {
"points_currency_iid": 1,
"points_currency_eid": "bonus1",
"name": "Бонусные баллы",
"amount": "75"
}
}
]
},
{
"external_id": "line_2",
"sku": "skuf",
"base_price_per_item": "700.00",
"min_price_per_item": "650.00",
"final_price_per_item": "650.00",
"count": 2,
"requested_promotions": [
{
"type": "redeem_points",
"promotion": {
"external_id": "redeem_promo",
"name": "Списание баллов"
},
"points_info": {
"points_currency_iid": 1,
"points_currency_eid": "bonus1",
"name": "Бонусные баллы",
"amount": "50"
}
}
]
}
],
"promocodes": [
{
"code": "HYDO-4728-DZGU",
"pool_id": 42
}
],
"redeem_points": [
{
"points_currency_eid": "bonus1",
"amount": 100
}
],
"requested_promotions": [
{
"type": "code_issue",
"promotion": {
"external_id": "welcome_promo",
"name": "Welcome Gift"
}
}
],
"custom_fields": {
"source": "telegram_bot",
"campaign": "spring_sale"
},
"tags": ["premium", "first_order"]
}
}
<xml>
<token>abcdefghijklmnqrstuvwxyz</token>
<external_id>order_12345</external_id>
<profile_id>696e304f547840a7286619e0</profile_id>
<skip_triggers>false</skip_triggers>
<data>
<endpoint>bot</endpoint>
<status>confirmed</status>
<currency>RUB</currency>
<total_price>2500.00</total_price>
<final_total_price>2150.00</final_total_price>
<delivery_cost>300.00</delivery_cost>
<create_time>2026-02-18T13:01:05.141Z</create_time>
<region>region_moscow</region>
<lines>
<external_id>line_1</external_id>
<product>popit</product>
<base_price_per_item>1500.00</base_price_per_item>
<final_price_per_item>1350.00</final_price_per_item>
<count>1</count>
<requested_promotions>
<type>discount</type>
<promotion>
<external_id>promo_1</external_id>
<name>Summer Sale</name>
</promotion>
<amount>150.00</amount>
</requested_promotions>
<requested_promotions>
<type>accrue_points</type>
<promotion>
<external_id>bonus_promo</external_id>
<name>Начисление баллов</name>
</promotion>
<points_info>
<points_currency_iid>1</points_currency_iid>
<points_currency_eid>bonus1</points_currency_eid>
<name>Бонусные баллы</name>
<amount>75</amount>
</points_info>
</requested_promotions>
</lines>
<lines>
<external_id>line_2</external_id>
<sku>skuf</sku>
<base_price_per_item>700.00</base_price_per_item>
<min_price_per_item>650.00</min_price_per_item>
<final_price_per_item>650.00</final_price_per_item>
<count>2</count>
<requested_promotions>
<type>redeem_points</type>
<promotion>
<external_id>redeem_promo</external_id>
<name>Списание баллов</name>
</promotion>
<points_info>
<points_currency_iid>1</points_currency_iid>
<points_currency_eid>bonus1</points_currency_eid>
<name>Бонусные баллы</name>
<amount>50</amount>
</points_info>
</requested_promotions>
</lines>
<promocodes>
<code>HYDO-4728-DZGU</code>
<pool_id>42</pool_id>
</promocodes>
<redeem_points>
<points_currency_eid>bonus1</points_currency_eid>
<amount>100</amount>
</redeem_points>
<requested_promotions>
<type>code_issue</type>
<promotion>
<external_id>welcome_promo</external_id>
<name>Welcome Gift</name>
</promotion>
</requested_promotions>
</data>
</xml>

Пример ответа​

  • JSON
  • XML
{
"data": {
"status": "success",
"processing_target": "immediate",
"external_id": "order_12345",
"issued_promocodes": [
{
"codes": ["HYDO-4728-DZGU"],
"pool": {
"pool_id": 100,
"name": "Welcome Promocodes"
},
"promotion": {
"external_id": "welcome_promo",
"name": "Welcome Gift"
}
}
],
"points_changes": [
{
"points_info": {
"points_currency_iid": 1,
"points_currency_eid": "bonus1",
"name": "Бонусные баллы",
"amount": "21500"
},
"accrue_points": 75,
"redeem_points": 150
}
],
"contents": [
{
"promotion": {
"external_id": "message_promo",
"name": "Информационное сообщение"
},
"contents": [
{
"type": "text",
"message": "Спасибо за покупку! Вы получили 75 бонусов."
}
]
}
]
},
"error": 0,
"error_text": "Successful operation"
}
<xml>
<data>
<status>success</status>
<processing_target>immediate</processing_target>
<external_id>order_12345</external_id>
<issued_promocodes>
<codes>HYDO-4728-DZGU</codes>
<pool>
<pool_id>100</pool_id>
<name>Welcome Promocodes</name>
</pool>
<promotion>
<external_id>welcome_promo</external_id>
<name>Welcome Gift</name>
</promotion>
</issued_promocodes>
<points_changes>
<points_info>
<points_currency_iid>1</points_currency_iid>
<points_currency_eid>bonus1</points_currency_eid>
<name>Бонусные баллы</name>
<amount>21500</amount>
</points_info>
<accrue_points>75</accrue_points>
<redeem_points>150</redeem_points>
</points_changes>
<contents>
<promotion>
<external_id>message_promo</external_id>
<name>Информационное сообщение</name>
</promotion>
<contents>
<type>text</type>
<message>Спасибо за покупку! Вы получили 75 бонусов.</message>
</contents>
</contents>
</data>
<error>0</error>
<error_text>Successful operation</error_text>
</xml>

Возвращаемые параметры​

ПараметрТипОписание
dataobjectДанные результата подтверждения
errorintКод ошибки (0 при успехе)
error_textstringТекст ошибки

Параметры, возвращаемые в объекте data:

ПараметрТипОписание
statusstringСтатус обработки:
• success — заказ успешно создан
• outdated — цена изменилась с момента предварительного расчета (нужно повторить /preorder)
processing_targetstringТолько для статуса success. Значение: immediate или processed
external_idstringВнешний идентификатор заказа (из запроса)
issued_promocodesarrayМассив выданных промокодов (для акций типа code_issue)
points_changesarrayМассив изменений баланса баллов по типам валют
contentsarrayМассив контента для отображения (текстовые сообщения из промоакций)

Массив issued_promocodes состоит из объектов с информацией о примененных промокодах:

ПараметрТипОписание
codesarrayМассив выданных кодов промокодов
poolobjectИнформация о пуле промокодов
pool.pool_idintegerИдентификатор пула
pool.namestringНазвание пула
promotionobjectОбъект с информацией о промоакции
promotion.external_idstringВнешний идентификатор промоакции
promotion.namestringНазвание промоакции

Массив points_changes состоит из объектов с информацией об изменении баланса баллов:

ПараметрТипОписание
points_infoobjectОбъект с информацией о типе баллов
points_info.points_currency_iidintegerВнутренний идентификатор типа баллов
points_info.points_currency_eidstringВнешний идентификатор типа баллов
points_info.namestringНазвание типа баллов
points_info.amountstringТекущий баланс после операции
accrue_pointsintegerКоличество начисленных баллов
redeem_pointsintegerКоличество списанных баллов
Последнее обновление 27 февр. 2026 г.
Предыдущая страница
Предварительный расчет заказа
Следующая страница
Отмена временной транзакции
  • Описание
  • URL-адрес
  • Параметры запроса
    • Объект data
      • Массив lines
      • Массив promocodes
      • Массив redeem_points
      • Массив requested_promotions
  • Пример запроса
  • Пример ответа
  • Возвращаемые параметры
© 2015 - 2026 Altcraft. Все права защищены.