Para agentes de IA: markdown de esta página — /docs-content-en/voximplant-sip/update.md índice de la documentación — /llms.txt
Los artículos de la documentación están disponibles actualmente en inglés.
Update connection
PATCH /v1/voximplant-sip/:configId
Changes the name, SIP server address, login or password of a SIP connection. The body is a flat JSON object with only the fields to change.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
configId (path) |
number | yes | Connection ID. List: GET /v1/voximplant-sip |
Request fields (body)
| Field | Type | Required | Description |
|---|---|---|---|
title |
string | no | New connection name |
server |
string | no | New SIP server address |
login |
string | no | New login on the SIP server |
password |
string | no | New password. It is not returned in responses — the hasPassword flag is returned instead |
type |
string | no | Current connection type: office or cloud. A different type is not accepted — the type cannot be changed after creation |
Pass at least one field other than type. Fields missing from the body stay unchanged. All values are strings; the body accepts no other fields.
Examples
curl — personal key
curl -X PATCH "https://vibecode.bitrix24.com/v1/voximplant-sip/17" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "Office PBX, second floor"}'
curl — OAuth application
curl -X PATCH "https://vibecode.bitrix24.com/v1/voximplant-sip/17" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title": "Office PBX, second floor"}'
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/voximplant-sip/17', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({ title: 'Office PBX, second floor' }),
})
const { success, data } = await res.json()
if (success) {
console.log('New name:', data.title)
}
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/voximplant-sip/17', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({ title: 'Office PBX, second floor' }),
})
const { success, data } = await res.json()
if (success) {
console.log('New name:', data.title)
}
Response fields
The response contains the whole connection with the changes already applied. Passwords are not included in the response — the hasPassword and hasIncomingPassword flags are returned instead.
| Field | Type | Description |
|---|---|---|
success |
boolean | true on success |
data.configId |
string | Connection ID |
data.type |
string | PBX type: office — office PBX, cloud — cloud PBX |
data.title |
string | Connection name |
data.server |
string | SIP server address |
data.login |
string | Login on the SIP server |
data.hasPassword |
boolean | Whether the connection password is set |
data.authUser |
string | null | User name for authentication on the SIP server. null if not set |
data.outboundProxy |
string | null | Proxy server address for outgoing calls. null if not set |
data.detectLineNumber |
string | Whether to detect the line number from the SIP headers of an incoming call: N — do not detect |
data.lineDetectHeaderOrder |
string | SIP headers used to detect the line number, in the order they are checked, for example diversion;to |
data.registrationStatusCode |
string | null | Result code of registration on the SIP server, for example 502 when the server is not found |
data.registrationErrorMessage |
string | null | Registration error text. null if there is no error |
data.regId |
string | Cloud PBX only: registration ID on the SIP server |
data.incomingServer |
string | Office PBX only: server address for incoming calls, issued by Bitrix24 |
data.incomingLogin |
string | Office PBX only: login for incoming calls, issued by Bitrix24 |
data.hasIncomingPassword |
boolean | Office PBX only: whether the password for incoming calls is set |
Response example
{
"success": true,
"data": {
"type": "office",
"configId": "17",
"server": "sip.example.com",
"login": "office-line",
"hasPassword": true,
"incomingServer": "ip.b24-1234-1234567890.bitrixphone.com",
"incomingLogin": "sip17",
"hasIncomingPassword": true,
"authUser": null,
"outboundProxy": null,
"detectLineNumber": "N",
"lineDetectHeaderOrder": "diversion;to",
"registrationStatusCode": "0",
"registrationErrorMessage": null,
"title": "Office PBX, second floor"
}
}
Error response example
400 — an attempt to change the connection type:
{
"success": false,
"error": {
"code": "READONLY_FIELD",
"message": "Connection type cannot be changed"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 400 | INVALID_PARAMS |
The request body is not a JSON object |
| 400 | INVALID_PARAMS |
The body has no field to change other than type: the body is empty or contains only type |
| 400 | INVALID_PARAMS |
type is neither office nor cloud |
| 400 | INVALID_PARAMS |
A field value is not a string |
| 400 | INVALID_PARAMS |
configId is not a positive integer |
| 400 | READONLY_FIELD |
type differs from the current connection type |
| 400 | READONLY_FIELD |
The body contains a field other than type, title, server, login, password |
| 404 | ENTITY_NOT_FOUND |
There is no connection with this configId among the connections available to the key |
| 422 | BITRIX_ERROR |
Bitrix24 did not confirm the update; the message is Bitrix24 did not confirm the update |
| 422 | BITRIX_ERROR |
Bitrix24 rejected the update; the reason is in error.message |
| 401 | MISSING_API_KEY |
The X-Api-Key header was not sent |
| 401 | INVALID_API_KEY |
The platform does not recognize the key string: a typo, a truncated value or a deleted key |
| 401 | TOKEN_MISSING |
The key has no access to the portal: a personal key has no portal webhook, or an app key was sent without a session token in Authorization: Bearer |
| 403 | SCOPE_DENIED |
The key does not have the telephony scope |
| 403 | WRITE_BLOCKED_READONLY_KEY |
The key is read-only — see access rights |
| 403 | BITRIX_ACCESS_DENIED |
Bitrix24 denied access — causes explained |
| 429 | RATE_LIMITED |
Request rate exceeded |
| 429 | QUEUE_OVERFLOW |
The account request queue is full, so the request is rejected without waiting. The Retry-After header suggests the delay |
| 429 | QUEUE_TIMEOUT |
The request did not get through the account queue in time and was not sent to Bitrix24. The Retry-After header suggests the delay |
| 502 | BITRIX_UNAVAILABLE |
Bitrix24 is unavailable |
| 503 | BITRIX_TIMEOUT |
Bitrix24 did not respond in time |
Full list of common API errors — Errors.
Known specifics
- Only a connection of your own application can be updated. The method finds a connection only if it was created by the same Bitrix24 application as the key: an app key sees the connections of its own application, a personal key sees connections created through Bitrix24 account webhooks. For the
configIdof another application's connection, the method responds with404 ENTITY_NOT_FOUND.