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 |
|---|---|---|---|---|
Parameterid (path) |
Typeinteger | Requiredyes | Default— | DescriptionReport 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 |
|---|---|---|
Fieldsuccess |
Typeboolean | Descriptiontrue when the report is sent |
Fielddata |
Typeobject | DescriptionThe 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 |
|---|---|---|
| HTTP400 | CodeINVALID_PARAMS |
Descriptionid is not a positive integer, the request body is not a JSON object, or the body contains a field |
| HTTP404 | CodeENTITY_NOT_FOUND |
DescriptionNo report with this id exists |
| HTTP403 | CodeBITRIX_ACCESS_DENIED |
DescriptionThe report belongs to another employee, and the credential owner lacks Bitrix24 permissions to change that employee's reports |
| HTTP409 | CodeTIMEMAN_MODULE_NOT_ENABLED |
DescriptionTime Management is not available on this portal |
| HTTP422 | CodeBITRIX_ERROR |
DescriptionBitrix24 refused the operation |
| HTTP502 | CodeBITRIX_UNAVAILABLE |
DescriptionBitrix24 is unavailable or returned a response of an unexpected shape |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header was not passed |
| HTTP401 | CodeTOKEN_MISSING |
DescriptionAn app key was sent without a session token in Authorization: Bearer |
| HTTP401 | CodeINVALID_SESSION |
DescriptionThe session token is invalid or has expired |
| HTTP403 | CodeWRITE_BLOCKED_READONLY_KEY |
DescriptionThe key is READONLY and cannot send reports |
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe key lacks the timeman scope |
| HTTP429 | CodeRATE_LIMITED |
DescriptionThe 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.