
## Update Open Channel configuration

`PATCH /v1/openline-configs/:id`

Updates fields of an existing Open Channel configuration. Pass only the fields you change — the rest are left untouched. Full field list — [Configuration fields](/docs/openlines/config/fields).

## Parameters

| Parameter | Type | Req. | Description |
|----------|-----|:-----:|---------|
| `id` (path) | number | yes | Numeric configuration identifier |

## Request fields (body)

The request body must not be empty — at least one field is required. Pass only the fields you want to change.

**Field names.** Pass every field in camelCase (`name`, `active`, `queueType`, `queueTime`, `workTimeFrom`, etc.) — the canonical case. B24-native UPPER_SNAKE_CASE names are also accepted for backward compatibility.

**Boolean fields** (`active`, …) accept `true` / `false` — the value is coerced to `"Y"`/`"N"` automatically. For example, `{ "active": false }` (or `{ "ACTIVE": false }`) turns the line off.

| Field | Type | Description |
|------|-----|---------|
| `name` | string | Open Channel name |
| `active` | boolean | Whether the channel is active (`true` / `false`) |
| `queueTime` | number | Operator response wait time (seconds) |
| `noAnswerTime` | number | Time until the "No answer" rule triggers (seconds) |
| `welcomeMessageText` | string | Welcome message text |
| `workTimeFrom` | string | Start of working hours, for example `"9"` or `"9.30"` |
| `workTimeTo` | string | End of working hours, for example `"18"` or `"17.30"` |
| `workTimeTimezone` | string | Working-hours time zone |

Full list of available fields — [Configuration fields](/docs/openlines/config/fields).

## Examples

### curl — personal key

```bash
curl -X PATCH "https://vibecode.bitrix24.com/v1/openline-configs/29" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "queueTime": 120,
    "welcomeMessageText": "Hello! How can we help?"
  }'
```

### curl — OAuth application

```bash
curl -X PATCH "https://vibecode.bitrix24.com/v1/openline-configs/29" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "queueTime": 120,
    "welcomeMessageText": "Hello! How can we help?"
  }'
```

### JavaScript — personal key

```javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/openline-configs/29', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    queueTime: 120,
    welcomeMessageText: 'Hello! How can we help?',
  }),
})

const { success, data } = await res.json()
```

### JavaScript — OAuth application

```javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/openline-configs/29', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    queueTime: 120,
    welcomeMessageText: 'Hello! How can we help?',
  }),
})

const { success, data } = await res.json()
```

## Response fields

| Field | Type | Description |
|------|-----|---------|
| `success` | boolean | Always `true` on success |
| `data` | object | Operation result |
| `data.id` | number | Identifier of the updated configuration |
| `data.updated` | boolean | `true` — the update was applied |
| `meta.warnings` | string[] | Optional. Present when some passed fields are unrecognised — lists the keys Bitrix24 ignored |

## Response example

```json
{
  "success": true,
  "data": {
    "id": 29,
    "updated": true
  }
}
```

## Error response example

404 — configuration not found:

```json
{
  "success": false,
  "error": {
    "code": "ENTITY_NOT_FOUND",
    "message": "openlineConfig 99999 not found"
  }
}
```

## Errors

| HTTP | Code | Description |
|------|-----|---------|
| 400 | `INVALID_ID` | The `id` parameter is not a positive integer |
| 400 | `VALIDATION_ERROR` | The request body is empty — at least one field must be passed |
| 400 | `VALIDATION_ERROR` | The body has no recognised field (all keys are unknown) — the message lists the unrecognised fields |
| 400 | `READONLY_FIELD` | A read-only field (`id`, `queue`, `dateCreate`, and others) was passed in the body |
| 401 | `TOKEN_MISSING` | The API key has no configured tokens |
| 403 | `SCOPE_DENIED` | The API key lacks the `imopenlines` scope |
| 404 | `ENTITY_NOT_FOUND` | A configuration with the given `id` does not exist |

Full list of common API errors — [Errors](/docs/errors).

## Known specifics

The response contains only `id` and `data.updated: true` — there are no configuration fields in the response. To get the current values of all fields after the update, run `GET /v1/openline-configs/:id`.

**Unrecognised fields.** Bitrix24 silently ignores unknown keys of the `imopenlines.config.update` method. The wrapper checks the body against the full field schema ([Configuration fields](/docs/openlines/config/fields)) and reacts as follows:

- no field is recognised — the request is rejected with `400 VALIDATION_ERROR` before the Bitrix24 call, and the message lists the unrecognised fields.
- at least one field is recognised but some keys are unknown — the update is applied, and the response carries `meta.warnings` with the list of ignored keys.
- a read-only field (`id`, `queue`, `dateCreate`, and others) is passed in the body — the request is rejected with `400 READONLY_FIELD`.

## See also

- [Get configuration](/docs/openlines/config/get) — current field values
- [Configuration fields](/docs/openlines/config/fields) — full list of editable fields
- [List configurations](/docs/openlines/config/list) — all configurations in your Bitrix24 account
- [Batch](/docs/batch) — bulk record update
