Для AI-агентов: markdown этой страницы — /docs-content/workday/work-reports/submit.md индекс документации — /llms.txt
Сдать рабочий отчёт
POST /v1/workday/work-reports/submit
Сдаёт существующий рабочий отчёт или создаёт новый и сразу сдаёт его.
Требуется скоуп timeman. Битрикс24 проверяет права владельца учётных данных. Ключ READONLY может читать отчёты, запись запрещена.
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
reportText |
string | да | Текст отчёта. С reportId заменяет текст отчёта, пустая строка его очищает |
reportId |
integer | нет | ID отчёта. Список: GET /v1/workday/work-reports. Без reportId создаётся и сдаётся новый отчёт владельца учётных данных |
Примеры
curl — личный ключ
curl -X POST https://vibecode.bitrix24.tech/v1/workday/work-reports/submit \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "reportId": 143, "reportText": "Weekly report" }'
curl — OAuth-приложение
curl -X POST https://vibecode.bitrix24.tech/v1/workday/work-reports/submit \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "reportId": 143, "reportText": "Weekly report" }'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/workday/work-reports/submit', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
reportId: 143,
reportText: 'Weekly report',
}),
})
const { data } = await res.json()
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/workday/work-reports/submit', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
reportId: 143,
reportText: 'Weekly report',
}),
})
const { data } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | true при успешной сдаче |
data |
object | Сданный отчёт. Все поля — Поля отчёта |
Пример ответа
Показаны основные поля отчёта. Полный список — Поля отчёта:
{
"success": true,
"data": {
"id": 143,
"userId": 101,
"active": true,
"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": "Y"
}
}
Пример ответа при ошибке
400 — не передан reportText:
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "reportText is required and must be a string"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | INVALID_PARAMS |
Не передан reportText, в reportId не положительное целое число или в теле есть неизвестное поле |
| 404 | ENTITY_NOT_FOUND |
Отчёта с таким reportId нет |
| 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 — Ошибки.
Известные особенности
- Период нового отчёта — как при создании. Без
reportIdпериод выбирается так же, как при создании безdateFromиdateTo: Создать рабочий отчёт. - Подтверждение зависит от руководителей сотрудника. Если у сотрудника есть руководители, сданный отчёт ждёт их оценки:
approveравен"N". Если руководителей нет, отчёт подтверждается сразу:approveравен"Y". - Сданный отчёт можно сдать снова. Текст заменяется, отчёт остаётся сданным,
markиapproveне меняются.