#Закрыть рабочий день

POST /v1/workday/close

Завершает текущий рабочий день и фиксирует его длительность. Вызов поддерживает отчёт за день и точку завершения.

#Поля запроса (body)

Все параметры опциональны. Тело может быть пустым: {}.

Поле Тип Обяз. Описание
userId number нет Идентификатор сотрудника. По умолчанию — пользователь, которому принадлежат токены ключа
time string нет Дата и время завершения в формате ISO 8601 (например 2026-05-05T18:00:00+03:00). Дата должна совпадать с текущей. При указании этого поля становится обязательным report
report string нет Итоговый отчёт за день. Обязательно при заданном time и для сотрудников с фиксированным графиком работы
lat number нет Географическая широта точки завершения
lon number нет Географическая долгота точки завершения

#Примеры

#curl — личный ключ

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/workday/close \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "report": "Закрыл 5 сделок, обработал 12 лидов" }'

#curl — OAuth-приложение

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/workday/close \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "report": "Закрыл 5 сделок, обработал 12 лидов" }'

#JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/workday/close', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    report: 'Закрыл 5 сделок, обработал 12 лидов',
  }),
})
const { data } = await res.json()
console.log('Длительность дня:', data.duration)
console.log('Перерывы:', data.timeLeaks)

#JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/workday/close', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    report: 'Закрыл 5 сделок, обработал 12 лидов',
  }),
})
const { data } = await res.json()

#Поля ответа

Поле Тип Описание
success boolean true при успешном закрытии
data.status string Статус после закрытия — CLOSED
data.timeStart string Дата и время начала дня (ISO 8601)
data.timeFinish string Дата и время завершения дня (ISO 8601)
data.duration string Длительность дня в формате HH:MM:SS без учёта пауз
data.timeLeaks string Суммарная длительность пауз за день в формате HH:MM:SS
data.active boolean Признак активной записи рабочего дня
data.ipOpen string IP-адрес начала дня
data.ipClose string IP-адрес завершения дня
data.latOpen number Географическая широта точки начала. 0 — координаты не переданы
data.lonOpen number Географическая долгота точки начала
data.latClose number Географическая широта точки завершения
data.lonClose number Географическая долгота точки завершения
data.tzOffset number Смещение часового пояса сотрудника в секундах (зависит от настроек сотрудника на портале; пример 10800 соответствует UTC+3)

#Пример ответа

JSON
{
  "success": true,
  "data": {
    "status": "CLOSED",
    "timeStart": "2026-05-05T09:00:00+03:00",
    "timeFinish": "2026-05-05T18:00:00+03:00",
    "duration": "08:00:00",
    "timeLeaks": "00:30:00",
    "active": true,
    "ipOpen": "203.0.113.10",
    "ipClose": "203.0.113.10",
    "latOpen": 0,
    "lonOpen": 0,
    "latClose": 0,
    "lonClose": 0,
    "tzOffset": 10800
  }
}

#Пример ответа при ошибке

422 — попытка закрыть уже закрытый день:

JSON
{
  "success": false,
  "error": {
    "code": "BITRIX_ERROR",
    "message": "Невозможно выполнить действие"
  }
}

#Ошибки

HTTP Код Описание
400 INVALID_PARAMS Битрикс24 вернул INVALID_PARAMS — нарушена валидация поля запроса
401 MISSING_API_KEY Не передан заголовок X-Api-Key
401 INVALID_API_KEY Неверный API-ключ
401 KEY_EXPIRED Срок действия API-ключа истёк
401 TOKEN_MISSING Ключу не настроены OAuth-токены для портала
402 ACCOUNT_FROZEN Баланс портала заморожен
403 SCOPE_DENIED У ключа нет скоупа timeman
422 BITRIX_ERROR Битрикс24 отклонил запрос — текст в message. Возможные причины: день уже закрыт, дата time не совпадает с текущей, отсутствует report при заданном time
429 RATE_LIMITED Превышен лимит запросов к Битрикс24
502 BITRIX_UNAVAILABLE Портал Битрикс24 недоступен

Полный список общих ошибок API — Ошибки.

#Известные особенности

  • Закрытие в паузе. Если день в статусе PAUSED, вызов закрывает день, фиксируя timeFinish на момент закрытия. Длительность пауз попадёт в timeLeaks.
  • Сумма duration и timeLeaks равна разнице между timeFinish и timeStart — то есть общее время с момента открытия дня раскладывается на отработанное и перерывы без потерь.

#Смотрите также