Для 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 — личный ключ
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-приложение
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 — личный ключ
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-приложение
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 | Созданный отчёт. Все поля — Поля отчёта |
Пример ответа
Показаны основные поля отчёта. Полный список — Поля отчёта:
{
"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:
{
"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. Проверяются только права владельца учётных данных.