For AI agents: markdown of this page — /docs-content-en/workday/work-reports/update.md documentation index — /llms.txt

Update a work report

PATCH /v1/workday/work-reports/:id

Updates the specified fields of an employee's work report and leaves the rest unchanged.

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

Request fields (body)

Field Type Required Description
FieldreportText Typestring | null Requiredno DescriptionReport text. Returned as report and reportPlain. An empty string clears the text
FieldreportExtended Typestring | null Requiredno DescriptionAdditional report text. Returned as reportExtended. An empty string clears the text
FieldplansText Typestring | null Requiredno DescriptionPlans. Returned as plans. An empty string clears the plans
Fieldtype Typestring | null Requiredno DescriptionReport type: REPORT, AI_REPORT, ROBOT_REPORT, AI_DAY_PLAN, or ROBOT_DAY_PLAN. Any other value is stored as REPORT
FielddateFrom Typestring | null Requiredno DescriptionStart of the report period in ISO 8601 format with a time zone. The time is dropped; only the date is stored
FielddateTo Typestring | null Requiredno DescriptionEnd of the report period in the same format. The time is dropped; only the date is stored
Fieldtasks Typearray | null Requiredno DescriptionTasks in the report. A new array replaces the whole list, and an empty array clears it
Fieldtasks[].id Typeinteger Requiredyes DescriptionTask ID. List: GET /v1/tasks
Fieldtasks[].time Typenumber Requiredno DescriptionTime spent on the task, in seconds. The fractional part is dropped
Fieldtasks[].title Typestring Requiredno DescriptionTask title in the report
Fieldevents Typearray | null Requiredno DescriptionCalendar events in the report. A new array replaces the whole list, and an empty array clears it
Fieldevents[].id Typeinteger Requiredyes DescriptionEvent ID. List: GET /v1/calendar-events
Fieldevents[].ownerId Typeinteger Requiredno DescriptionID of the event owner. List: GET /v1/users
Fieldevents[].title Typestring Requiredno DescriptionEvent title in the report

Fields omitted from the body or set to null keep their current values. At least one field with a value is required: an empty body or a body with only null values returns 400 INVALID_PARAMS.

Examples

curl — personal key

Terminal
curl -X PATCH https://vibecode.bitrix24.com/v1/workday/work-reports/169 \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "reportText": "Updated report" }'

curl — OAuth application

Terminal
curl -X PATCH https://vibecode.bitrix24.com/v1/workday/work-reports/169 \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "reportText": "Updated report" }'

JavaScript — personal key

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

JavaScript — OAuth application

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

Response fields

Field Type Description
Fieldsuccess Typeboolean Descriptiontrue when the report is updated
Fielddata Typeobject DescriptionThe updated report. All fields — Report fields

Response example

The main report fields are shown. For the full list, see Report fields:

JSON
{
  "success": true,
  "data": {
    "id": 169,
    "userId": 101,
    "active": false,
    "reportType": "day",
    "reportDate": "2026-10-06T20:25:34.000Z",
    "dateFrom": "2026-10-06T21:00:00.000Z",
    "dateTo": "2026-10-06T21:00:00.000Z",
    "report": "Updated report",
    "type": "REPORT",
    "mark": "N",
    "approve": "N"
  }
}

Error response example

422 — the new period overlaps another of the employee's reports:

JSON
{
  "success": false,
  "error": {
    "code": "BITRIX_ERROR",
    "message": "Period overlaps with another report",
    "b24Code": "PERIOD_OVERLAP"
  }
}

Errors

HTTP Code Description
HTTP400 CodeINVALID_PARAMS Descriptionid is not a positive integer, the body has no field with a value, a field has the wrong type, a date has no time zone, or the body contains an unknown field such as userId or files
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
HTTP422 CodeBITRIX_ERROR DescriptionThe new period overlaps another of the employee's reports; b24Code in the response is PERIOD_OVERLAP
HTTP422 CodeBITRIX_ERROR DescriptionBitrix24 refused the operation for another reason
HTTP409 CodeTIMEMAN_MODULE_NOT_ENABLED DescriptionTime Management is not available on this portal
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 change 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

  • Employees can change their own reports. Manager permissions are not required for that.
  • A submitted report can be changed too. It stays submitted, and mark and approve do not change.
  • An overlapping period is not shifted. When a report is created, the start of such a period moves to the day after the overlapping report; when a report is updated, the request is refused.
  • Task and event keys in the response are uppercase. In the tasks and events arrays of the response, id comes back as ID, title as TITLE, and the task time as TIME.

See also