# Завершить задание

`POST /v1/bizproc-tasks/:id/complete`

Это реальное согласование, а не проба. `approve`, `reject`, `ok`, `cancel` передаются как 1, 2, 3, 4. Допустимые решения зависят от типа задания и проверяются Битрикс24. После таймаута перечитайте список: повтор может получить отказ «задание уже выполнено».

Bitrix24 API: `bizproc.task.complete`
Скоуп: `bizproc`

## Параметры

| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| `id` | integer | Да | Положительный ID задания из [списка](./list.md) |
| `status` | string | Да | approve / reject / ok / cancel |
| `comment` | string | Нет | Комментарий к решению. Обязателен, если этого требует форма задания |
| `fields` | object | Нет | Значения по коду поля из parameters.Fields[].Id. Файл — [имя, base64]. Лимит тела запроса — 1 МиБ |

## Поля ответа

| Поле | Тип | Описание |
|---|---|---|
| `success` | boolean | true |
| `data` | boolean | true, только если Битрикс24 вернул true |

## Примеры

### cURL API key

```bash
curl -X POST "https://vibecode.bitrix24.tech/v1/bizproc-tasks/42/complete" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status":"approve","comment":"VIBE-PROBE"}'
```

### cURL OAuth

```bash
curl -X POST "https://vibecode.bitrix24.tech/v1/bizproc-tasks/42/complete" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer YOUR_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"status":"approve","comment":"VIBE-PROBE"}'
```

### JavaScript API key

```javascript
const response = await fetch("https://vibecode.bitrix24.tech/v1/bizproc-tasks/42/complete", {
  method: "POST",
  headers: { "X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({"status":"approve","comment":"VIBE-PROBE"})
});
console.log(await response.json());
```

### JavaScript OAuth

```javascript
const response = await fetch("https://vibecode.bitrix24.tech/v1/bizproc-tasks/42/complete", {
  method: "POST",
  headers: { "X-Api-Key": "YOUR_APP_KEY", "Authorization": "Bearer YOUR_SESSION_TOKEN", "Content-Type": "application/json" },
  body: JSON.stringify({"status":"approve","comment":"VIBE-PROBE"})
});
console.log(await response.json());
```

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

Пример формы ответа из поведенческого теста. Живое согласование не выполнялось.

```json
{"success":true,"data":true}
```

Неверные параметры отклоняются до вызова Битрикс24:

```json
{"success":false,"error":{"code":"INVALID_PARAMS","message":"Invalid request parameters"}}
```

## Ошибки

| HTTP | Code | Условие |
|---|---|---|
| 400 | `INVALID_PARAMS` | Неверные или отсутствующие параметры |
| 401 | `TOKEN_MISSING` | Нет реквизитов авторизации Битрикс24 |
| 403 | `SCOPE_DENIED` | Нет скоупа bizproc |
| 403 | `BITRIX_ACCESS_DENIED` | Битрикс24 отказал в доступе |
| 403 | `WRITE_BLOCKED_READONLY_KEY` | Ключ запрещает запись |
| 404 | `ENTITY_NOT_FOUND` | Задание текущего пользователя не найдено |
| 422 | `BITRIX_ERROR` | Бизнес-отказ Битрикс24. Текст сохранён с удалением секретов |
| 502 | `BITRIX_RESPONSE_INVALID` | Неожиданная форма ответа или результат действия |

Общие отказы и лимиты: [Ошибки API](/docs/errors).

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

- [Задания бизнес-процессов](/docs/automation/bizproc-tasks)
- [Экземпляры процессов](/docs/automation/workflows)
