For AI agents: markdown of this page — /docs-content-en/entities/delivery-services/update.md documentation index — /llms.txt

PATCH /v1/delivery-services/:id

PATCH /v1/delivery-services/:id

Bitrix24: sale.delivery.update. Scope: delivery.

Only your own REST records; Bitrix24 refuses built-in records with 403. A READONLY key receives 403 before dispatch.

Parameters

id is a required positive integer from the list.

Field Type Required
name string no
currency string no
description string no
sort integer no
active string no
logo [filename, base64] no

logo carries a base64 file up to 2 MiB. name must not be empty; PATCH body must not be empty. Fields outside the table are refused rather than dropped.

restCode is a code from handlers; currency is a currency code such as USD.

Examples

cURL personal key

Terminal
curl -X PATCH "https://vibecode.bitrix24.com/v1/delivery-services/10" -H "X-Api-Key: $VIBE_API_KEY" -H 'Content-Type: application/json' -d '{"name": "VIBE-PROBE updated"}'

cURL OAuth

Terminal
curl -X PATCH "https://vibecode.bitrix24.com/v1/delivery-services/10" -H "X-Api-Key: $VIBE_API_KEY" -H "Authorization: Bearer $APP_SESSION" -H 'Content-Type: application/json' -d '{"name": "VIBE-PROBE updated"}'

JavaScript personal key

javascript
const response = await fetch("https://vibecode.bitrix24.com/v1/delivery-services/10", {
  method: "PATCH",
  headers: {"X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
  body: JSON.stringify({"name": "VIBE-PROBE updated"}),
});
console.log(await response.json());

JavaScript OAuth

javascript
const response = await fetch("https://vibecode.bitrix24.com/v1/delivery-services/10", {
  method: "PATCH",
  headers: {"X-Api-Key": "YOUR_API_KEY", "Authorization": "Bearer YOUR_APP_SESSION", "Content-Type": "application/json"},
  body: JSON.stringify({"name": "VIBE-PROBE updated"}),
});
console.log(await response.json());

Response fields

success is true. data is a record or an array of fields; DELETE returns true. Delivery creation returns parent and profiles. For lists, meta.total equals the length of data. This example illustrates the shape; record IDs depend on the account.

JSON
{
  "success": true,
  "data": {
    "id": 10,
    "name": "VIBE-PROBE example",
    "active": "N"
  }
}

Errors

HTTP Code Condition
400 INVALID_PARAMS Invalid ID, query or body shape
400 MISSING_REQUIRED_FIELDS Missing required write fields
400 READONLY_FIELD Unsupported write field
400 UNKNOWN_FILTER_FIELD Unknown filter field
400 UNKNOWN_SELECT_FIELD Unknown select field
400 UNKNOWN_SORT_FIELD Unknown sort field
401 TOKEN_MISSING Missing Bitrix24 credentials
403 SCOPE_DENIED Missing delivery scope
403 WRITE_BLOCKED_READONLY_KEY Writing with a readonly key
403 BITRIX_ACCESS_DENIED Bitrix24 refuses access or service ownership
404 ENTITY_NOT_FOUND Missing service
413 PAYLOAD_TOO_LARGE Logo or body size exceeds limit
422 BITRIX_ERROR Bitrix24 business refusal; original text is preserved
502 BITRIX_RESPONSE_INVALID Malformed platform success response

422 for an unknown handler (error shape example):

JSON
{
  "success": false,
  "error": {
    "code": "BITRIX_ERROR",
    "message": "Handler not found"
  }
}

Errors

See also