Для AI-агентов: markdown этой страницы — /docs-content/workday/work-reports/create.md индекс документации — /llms.txt

Создать рабочий отчёт

POST /v1/workday/work-reports

Создаёт рабочий отчёт сотрудника за период. Созданный отчёт не сдан, сдать его можно отдельным вызовом.

Требуется скоуп timeman. Битрикс24 проверяет права владельца учётных данных. Ключ READONLY может читать отчёты, запись запрещена.

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

Поле Тип Обяз. Описание
userId integer да ID сотрудника, чей это отчёт. Список: GET /v1/users
reportText string | null нет Текст отчёта. В ответе — report и reportPlain
reportExtended string | null нет Дополнительный текст отчёта. В ответе — reportExtended
plansText string | null нет Планы. В ответе — plans
type string | null нет Тип отчёта: REPORT, AI_REPORT, ROBOT_REPORT, AI_DAY_PLAN или ROBOT_DAY_PLAN. Без поля или с другим значением — REPORT
dateFrom string | null нет Начало периода отчёта в формате ISO 8601 с часовым поясом. Время отбрасывается, хранится дата
dateTo string | null нет Конец периода отчёта в том же формате. Время отбрасывается, хранится дата
tasks array | null нет Задачи в отчёте
tasks[].id integer да ID задачи. Список: GET /v1/tasks
tasks[].time number нет Время по задаче в секундах. Дробная часть отбрасывается
tasks[].title string нет Название задачи в отчёте
events array | null нет События календаря в отчёте
events[].id integer да ID события. Список: GET /v1/calendar-events
events[].ownerId integer нет ID владельца события. Список: GET /v1/users
events[].title string нет Название события в отчёте
autoFillDailyReports boolean нет По умолчанию false

Примеры

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

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/workday/work-reports \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "userId": 101, "reportText": "Weekly report" }'

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

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/workday/work-reports \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "userId": 101, "reportText": "Weekly report" }'

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/workday/work-reports', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    userId: 101,
    reportText: 'Weekly report',
  }),
})
const { data } = await res.json()

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/workday/work-reports', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    userId: 101,
    reportText: 'Weekly report',
  }),
})
const { data } = await res.json()

Поля ответа

Поле Тип Описание
success boolean true при успешном создании
data object Созданный отчёт. Все поля — Поля отчёта

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

Показаны основные поля отчёта. Полный список — Поля отчёта:

JSON
{
  "success": true,
  "data": {
    "id": 143,
    "userId": 101,
    "active": false,
    "reportType": "day",
    "reportDate": "2026-10-06T18:22:40.000Z",
    "dateFrom": "2026-10-05T21:00:00.000Z",
    "dateTo": "2026-10-05T21:00:00.000Z",
    "report": "Weekly report",
    "type": "REPORT",
    "mark": "N",
    "approve": "N"
  }
}

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

400 — не передан userId:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "Expected a positive integer"
  }
}

Ошибки

HTTP Код Описание
400 INVALID_PARAMS Не передан userId, у поля неверный тип, дата без часового пояса или в теле есть неизвестное поле, например files
403 BITRIX_ACCESS_DENIED У владельца учётных данных нет прав в Битрикс24
409 TIMEMAN_MODULE_NOT_ENABLED Учёт рабочего времени недоступен на портале
422 BITRIX_ERROR Битрикс24 отказал в операции
502 BITRIX_UNAVAILABLE Битрикс24 недоступен или вернул ответ неожиданной формы
401 MISSING_API_KEY Не передан заголовок X-Api-Key
401 TOKEN_MISSING Ключ приложения передан без токена сессии в Authorization: Bearer
401 INVALID_SESSION Токен сессии неверный или истёк
403 WRITE_BLOCKED_READONLY_KEY Ключ READONLY, создавать отчёты нельзя
403 SCOPE_DENIED У ключа нет скоупа timeman
429 RATE_LIMITED Превышен общий лимит запросов

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

Известные особенности

  • Период может сдвинуться. Если период пересекается с отчётом, который у сотрудника уже есть, начало периода переносится на следующий день после этого отчёта. Так же сдвигается и период, выбранный без dateFrom и dateTo. Итоговый период — в dateFrom и dateTo ответа.
  • Сотрудник и задачи не проверяются на существование. Отчёт создаётся и с несуществующим userId, и с несуществующим tasks[].id. Проверяются только права владельца учётных данных.

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