For AI agents: markdown of this page — /docs-content-en/workday/work-reports/send.md documentation index — /llms.txt
Send a work report
POST /v1/workday/work-reports/:id/send
Sends a previously created work report by its ID and marks it as submitted without changing the text.
Requires the timeman scope. Bitrix24 checks the credential owner’s permissions. READONLY keys can read reports and cannot write them.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
id (path) |
integer | yes | — | Report ID. List: GET /v1/workday/work-reports |
No request body is needed. An empty object {} is accepted, and any field in the body returns 400 INVALID_PARAMS.
Examples
curl — personal key
curl -X POST "https://vibecode.bitrix24.com/v1/workday/work-reports/159/send" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl -X POST "https://vibecode.bitrix24.com/v1/workday/work-reports/159/send" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/workday/work-reports/159/send', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { data } = await res.json()
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/workday/work-reports/159/send', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
success |
boolean | true when the report is sent |
data |
object | The submitted report. All fields — Report fields |
Response example
The main report fields are shown. For the full list, see Report fields:
{
"success": true,
"data": {
"id": 159,
"userId": 101,
"active": true,
"reportType": "day",
"reportDate": "2026-10-06T19:09:31.000Z",
"dateFrom": "2026-10-06T21:00:00.000Z",
"dateTo": "2026-10-06T21:00:00.000Z",
"report": "Weekly report",
"type": "REPORT",
"mark": "N",
"approve": "Y"
}
}
Error response example
404 — no report with this id exists:
{
"success": false,
"error": {
"code": "ENTITY_NOT_FOUND",
"message": "Report not found."
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 400 | INVALID_PARAMS |
id is not a positive integer, the request body is not a JSON object, or the body contains a field |
| 404 | ENTITY_NOT_FOUND |
No report with this id exists |
| 403 | BITRIX_ACCESS_DENIED |
The report belongs to another employee, and the credential owner lacks Bitrix24 permissions to change that employee's reports |
| 409 | TIMEMAN_MODULE_NOT_ENABLED |
Time Management is not available on this portal |
| 422 | BITRIX_ERROR |
Bitrix24 refused the operation |
| 502 | BITRIX_UNAVAILABLE |
Bitrix24 is unavailable or returned a response of an unexpected shape |
| 401 | MISSING_API_KEY |
The X-Api-Key header was not passed |
| 401 | TOKEN_MISSING |
An app key was sent without a session token in Authorization: Bearer |
| 401 | INVALID_SESSION |
The session token is invalid or has expired |
| 403 | WRITE_BLOCKED_READONLY_KEY |
The key is READONLY and cannot send reports |
| 403 | SCOPE_DENIED |
The key lacks the timeman scope |
| 429 | RATE_LIMITED |
The general request limit was exceeded |
The full list of common API errors — Errors.
Known specifics
- Confirmation depends on the employee's managers. If the employee has managers, the report waits for their mark:
approveis"N". If the employee has no managers, the report is confirmed immediately:approveis"Y". - Sending again changes nothing. A report that is already submitted is returned unchanged.