#Создать счёт

POST /v1/invoices

Создаёт новый счёт в CRM.

#Поля запроса (body)

Параметр Тип Описание
title string Название счёта
stageId string Стадия. Формат: DT31_{categoryId}:{stage}. Список стадий: GET /v1/statuses?filter[entityId]=SMART_INVOICE_STAGE_{categoryId} — categoryId зависит от портала. Узнать: GET /v1/invoices?limit=1&select=categoryId или запросить у администратора
categoryId number ID воронки
contactId number ID контакта-плательщика. Поиск: GET /v1/contacts
companyId number ID компании-плательщика. Поиск: GET /v1/companies
mycompanyId number ID своей компании
opportunity number Сумма счёта
currencyId string Валюта. Список: GET /v1/currencies
assignedById number Ответственный. Список: GET /v1/users
comments string Комментарий

Полный список полей: GET /v1/invoices/fields. Пользовательские поля (ufCrm_*) также принимаются.

#Примеры

#curl — личный ключ

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/invoices \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Счёт за услуги",
    "stageId": "DT31_5:N",
    "contactId": 42,
    "companyId": 15,
    "opportunity": 150000,
    "currencyId": "RUB",
    "assignedById": 1
  }'

#curl — OAuth-приложение

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/invoices \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Счёт за услуги",
    "stageId": "DT31_5:N",
    "contactId": 42,
    "companyId": 15,
    "opportunity": 150000,
    "currencyId": "RUB",
    "assignedById": 1
  }'

#JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/invoices', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    title: 'Счёт за услуги',
    stageId: 'DT31_5:N',
    contactId: 42,
    companyId: 15,
    opportunity: 150000,
    currencyId: 'RUB',
    assignedById: 1,
  }),
})

const { success, data } = await res.json()
console.log('Invoice ID:', data.id)

#JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/invoices', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    title: 'Счёт за услуги',
    stageId: 'DT31_5:N',
    contactId: 42,
    companyId: 15,
    opportunity: 150000,
    currencyId: 'RUB',
    assignedById: 1,
  }),
})

const { success, data } = await res.json()

#Поля ответа

Поле Тип Описание
id number ID созданного счёта
title string Название
stageId string Стадия
contactId number ID контакта
companyId number ID компании
opportunity number Сумма
currencyId string Валюта
assignedById number Ответственный
createdBy number Создатель
createdTime datetime Дата создания
updatedTime datetime Дата изменения

Ответ содержит все поля счёта, включая пользовательские (ufCrm_*).

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

JSON
{
  "success": true,
  "data": {
    "id": 891,
    "title": "Счёт за услуги",
    "stageId": "DT31_5:N",
    "categoryId": 5,
    "contactId": 42,
    "companyId": 15,
    "opportunity": 150000,
    "currencyId": "RUB",
    "assignedById": 1,
    "createdBy": 1,
    "createdTime": "2026-04-15T14:30:00+03:00",
    "updatedTime": "2026-04-15T14:30:00+03:00"
  }
}

#Пример ответа при ошибке

403 — нет скоупа:

JSON
{
  "success": false,
  "error": {
    "code": "SCOPE_DENIED",
    "message": "This endpoint requires 'crm' scope"
  }
}

#Ошибки

HTTP Код Описание
403 SCOPE_DENIED API-ключ не имеет скоупа crm
401 TOKEN_MISSING API-ключ не имеет настроенных токенов
400 INVALID_REQUEST Невалидные поля

Полный список общих ошибок API — Ошибки.

#Смотрите также