#Создать заказ
POST /v1/orders
Создаёт новый заказ интернет-магазина. Тело запроса плоское — без обёртки fields.
#Поля запроса (body)
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
lid |
string | да | Идентификатор сайта-источника. Для облачных порталов всегда "s1" |
personTypeId |
number | да | Идентификатор типа плательщика. На каждом портале свой набор типов (юр. лицо, физ. лицо и т. п.). REST API не выставляет эндпоинт для перечисления типов; ID можно увидеть в существующих заказах через `GET /v1/orders` или `POST /v1/orders/aggregate` с groupBy: "personTypeId" |
currency |
string | да | Валюта заказа. Список: `GET /v1/currencies` |
price |
number | нет | Общая сумма заказа |
statusId |
string | нет | Статус заказа. По умолчанию — "N" (новый). Список: `GET /v1/order-statuses?filter[type]=O` |
userId |
number | нет | Идентификатор пользователя Битрикс24 — покупателя в интернет-магазине. Источник: `GET /v1/users`. Если не передать — Битрикс24 проставит пользователя по умолчанию |
companyId |
number | нет | Идентификатор CRM-компании, связанной с заказом. Источник: `GET /v1/companies` |
responsibleId |
number | нет | Ответственный сотрудник. Источник: `GET /v1/users` |
comments |
string | нет | Комментарий менеджера к заказу |
userDescription |
string | нет | Комментарий покупателя к заказу |
xmlId |
string | нет | Внешний идентификатор для синхронизации с внешними системами |
payed |
boolean | нет | Оплачен ли заказ |
canceled |
boolean | нет | Отменён ли заказ |
reasonCanceled |
string | нет | Причина отмены |
discountValue |
number | нет | Значение скидки |
Полный список полей — `GET /v1/orders/fields`.
#Примеры
#curl — личный ключ
curl -X POST "https://vibecode.bitrix24.tech/v1/orders" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"lid": "s1",
"personTypeId": 5,
"currency": "RUB",
"price": 12500,
"statusId": "N",
"userId": 1,
"comments": "Заказ из мобильного приложения"
}'
#curl — OAuth-приложение
curl -X POST "https://vibecode.bitrix24.tech/v1/orders" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"lid": "s1",
"personTypeId": 5,
"currency": "RUB",
"price": 12500,
"statusId": "N",
"userId": 1,
"comments": "Заказ из мобильного приложения"
}'
#JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/orders', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
lid: 's1',
personTypeId: 5,
currency: 'RUB',
price: 12500,
statusId: 'N',
userId: 1,
comments: 'Заказ из мобильного приложения',
}),
})
const { success, data } = await res.json()
console.log('Order ID:', data.id)
#JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/orders', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
lid: 's1',
personTypeId: 5,
currency: 'RUB',
price: 12500,
statusId: 'N',
userId: 1,
comments: 'Заказ из мобильного приложения',
}),
})
const { success, data } = await res.json()
#Поля ответа
Возвращается полный объект созданного заказа со всеми полями.
| Поле | Тип | Описание |
|---|---|---|
id |
number | Идентификатор созданного заказа |
accountNumber |
string | Порядковый номер заказа на портале (генерируется автоматически) |
dateInsert |
datetime | Дата создания |
dateStatus |
datetime | Дата установки текущего статуса |
Остальные поля — см. Поля заказа.
#Пример ответа
{
"success": true,
"data": {
"id": 859,
"accountNumber": "450",
"lid": "s1",
"personTypeId": 5,
"currency": "RUB",
"price": 12500,
"discountValue": 0,
"taxValue": 0,
"sumPaid": 0,
"statusId": "N",
"dateInsert": "2026-05-13T11:42:18.000Z",
"dateUpdate": "2026-05-13T11:42:18.000Z",
"dateStatus": "2026-05-13T11:42:18.000Z",
"payed": false,
"canceled": false,
"marked": false,
"responsibleId": 1,
"userId": 1,
"companyId": null,
"clients": [
{ "entityTypeId": 3, "entityId": 2471, "isPrimary": "Y", "roleId": 0, "sort": 0 }
],
"comments": "Заказ из мобильного приложения",
"xmlId": "",
"externalOrder": false
}
}
#Пример ответа при ошибке
400 — не переданы обязательные поля:
{
"success": false,
"error": {
"code": "BITRIX_ERROR",
"message": "Required fields: personTypeId, currency, lid"
}
}
#Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | BITRIX_ERROR |
Не переданы обязательные поля — сообщение содержит их список (Required fields: ...) |
| 400 | BITRIX_ERROR |
Некорректное значение поля — например, ссылка на несуществующий statusId или userId |
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа sale |
| 401 | TOKEN_MISSING |
API-ключ не имеет настроенных токенов |
Полный список общих ошибок API — Ошибки.
#Известные особенности
Номер счёта генерируется автоматически. Поле accountNumber присваивается Битрикс24 при создании и не может быть передано в запросе — даже если передать, оно будет проигнорировано.
Позиции корзины и оплаты добавляются отдельно. Заказ — это контейнер. После POST /v1/orders для добавления товаров вызовите `POST /v1/basket-items` с orderId, для регистрации оплаты — `POST /v1/payments`.
#Смотрите также
- Список заказов — посмотреть существующие заказы перед созданием
- Получить заказ — полные данные после создания
- Обновить заказ — изменить параметры созданного заказа
- Добавить позицию корзины — следующий шаг после создания заказа
- Создать оплату — зарегистрировать платёж
- Batch — массовое создание
- Лимиты и оптимизация — rate limits