[{"data":1,"prerenderedAt":9},["ShallowReactive",2],{"docs-entities\u002Fcrm-deliveries":3,"docs-tabs-entities\u002Fcrm-deliveries":6},{"content":4,"lastmod":5},"# CRM deliveries\n\nReading the deliveries of a CRM item, such as a deal: delivery service, cost and the \"shipped\" mark. Creating deliveries and acting on them is covered in the [Shipments](.\u002Fshipments.md) section.\n\nBitrix24 API: `crm.item.delivery.*`\nScope: `crm`\n\n## Operations\n\n- [List CRM deliveries](.\u002Fcrm-deliveries\u002Flist.md) — `GET \u002Fv1\u002Fcrm-deliveries`\n- [Get a CRM delivery](.\u002Fcrm-deliveries\u002Fget.md) — `GET \u002Fv1\u002Fcrm-deliveries\u002F:id`\n\n## Key fields\n\n| Field | Type | Description |\n|------|-----|---------|\n| `id` | number | Delivery ID. The shipment in the [Shipments](.\u002Fshipments.md) section has the same ID |\n| `accountNumber` | string | Delivery number: the order number and the sequence number separated by `\u002F`, for example `1041\u002F2` |\n| `deliveryId` | number | Delivery service ID. List: [`GET \u002Fv1\u002Fdelivery-services`](\u002Fdocs\u002Fentities\u002Fdelivery-services\u002Flist) |\n| `deliveryName` | string | Delivery service name |\n| `priceDelivery` | number | Delivery cost |\n| `deducted` | string | \"Shipped\" mark: `Y` — shipped, `N` — not shipped |\n| `entityTypeId`, `entityId` | number | List parameters: the CRM item whose deliveries are read. For a deal, `entityTypeId` is `2` and `entityId` is the ID from [`GET \u002Fv1\u002Fdeals`](\u002Fdocs\u002Fentities\u002Fdeals\u002Flist) |\n\nA delivery has eight fields, and there is no separate field schema method. The full set is in [`GET \u002Fv1\u002Fcrm-deliveries\u002F:id`](.\u002Fcrm-deliveries\u002Fget.md).\n\n## Before you start\n\n1. **The section is read-only.** Deliveries appear on a CRM item when a shipment is created in the order linked to it. Creating, updating, shipping and cancelling a shipment is done through [Shipments](.\u002Fshipments.md) with the `sale` scope. Shipment contents: [Shipment items](.\u002Fshipment-items.md).\n2. **The same ID appears in shipments, but in a different format.** Delivery `1223` from this section is also returned by [`GET \u002Fv1\u002Fshipments\u002F1223`](.\u002Fshipments\u002Fget.md): there it has more fields, and `deducted` is `true` or `false` instead of `Y` and `N`.\n3. **The list requires a CRM item.** Without `entityTypeId` and `entityId`, the list returns `400 MISSING_REQUIRED_FIELDS`. An existing item with no deliveries returns an empty list, and a nonexistent one returns `404 ENTITY_NOT_FOUND`.\n\n## Typical scenario\n\n1. Find the deal: [`GET \u002Fv1\u002Fdeals`](\u002Fdocs\u002Fentities\u002Fdeals\u002Flist).\n2. Get its deliveries: [`GET \u002Fv1\u002Fcrm-deliveries?entityTypeId=2&entityId=:dealId`](.\u002Fcrm-deliveries\u002Flist.md).\n3. Read a single delivery: [`GET \u002Fv1\u002Fcrm-deliveries\u002F:id`](.\u002Fcrm-deliveries\u002Fget.md).\n4. Set the \"shipped\" mark or change the delivery status: [Shipments](.\u002Fshipments.md) with the same ID.\n\n## Limits\n\n| Limit | Value |\n|-------|----------|\n| List pagination | none — all of the item's deliveries arrive in one call |\n| Filtering and sorting | none — the list is scoped to the CRM item only, and other query parameters are ignored |\n| Batch calls | not supported: [`POST \u002Fv1\u002Fbatch`](\u002Fdocs\u002Fbatch) returns `UNKNOWN_ENTITY` for `crm-deliveries`, so call the section's endpoints one at a time |\n| Request rate | shared across the Vibecode API — see [Limits and optimization](\u002Fdocs\u002Foptimization) |\n\n## See also\n\n- [Shipments](.\u002Fshipments.md)\n- [Shipment items](.\u002Fshipment-items.md)\n- [CRM payments](.\u002Fcrm-payments.md)\n- [Deals](.\u002Fdeals.md)\n- [Entity reference](\u002Fdocs\u002Fentity-api)\n","2026-10-15",{"crm-deliveries\u002Flist.md":7,"crm-deliveries\u002Fget.md":8},"## List CRM deliveries\n\n`GET \u002Fv1\u002Fcrm-deliveries`\n\nReturns all deliveries of a CRM item, such as a deal, in one call.\n\n## Parameters\n\n| Parameter | Type | Required | Description |\n|----------|-----|:-----:|---------|\n| `entityTypeId` (query) | number | yes | CRM item type, a positive integer. For a deal — `2` |\n| `entityId` (query) | number | yes | CRM item ID, a positive integer. For a deal — the ID from [`GET \u002Fv1\u002Fdeals`](\u002Fdocs\u002Fentities\u002Fdeals\u002Flist) |\n\nThere is no pagination or sorting: all deliveries of the item are returned.\n\nThe generic `filter` parameter is not applied by this endpoint. By default, the API preserves the previous HTTP 200 response and data, adds `Warning: 299 - \"filter is not supported on this endpoint and was ignored\"`, and records unsupported-filter use in the server log.\n\n## Examples\n\n### curl — personal key\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fcrm-deliveries?entityTypeId=2&entityId=8847\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth application\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fcrm-deliveries?entityTypeId=2&entityId=8847\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — personal key\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fcrm-deliveries?entityTypeId=2&entityId=8847', {\n  headers: { 'X-Api-Key': 'YOUR_API_KEY' },\n})\n\nconst { data, meta } = await res.json()\nconsole.log(`Deliveries: ${meta.total}`)\n```\n\n### JavaScript — OAuth application\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fcrm-deliveries?entityTypeId=2&entityId=8847', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { data, meta } = await res.json()\n```\n\n## Response fields\n\n| Field | Type | Description |\n|------|-----|---------|\n| `success` | boolean | `true` on success |\n| `data` | array | The item's deliveries. An empty array for an existing item with no deliveries |\n| `data[].id` | number | Delivery ID. The shipment in [`GET \u002Fv1\u002Fshipments\u002F:id`](\u002Fdocs\u002Fentities\u002Fshipments\u002Fget) has the same ID |\n| `data[].accountNumber` | string | Delivery number: the order number and a sequence number separated by `\u002F` |\n| `data[].deducted` | string | Shipped flag: `Y` — shipped, `N` — not shipped |\n| `data[].dateDeducted` | string \\| null | Shipping time, or `null` until shipped |\n| `data[].deliveryId` | number | Delivery service ID. List: [`GET \u002Fv1\u002Fdelivery-services`](\u002Fdocs\u002Fentities\u002Fdelivery-services\u002Flist) |\n| `data[].priceDelivery` | number | Delivery cost |\n| `data[].currency` | string | Currency code of the cost |\n| `data[].deliveryName` | string | Delivery service name |\n| `meta.total` | number | Number of deliveries in `data` |\n\n## Response example\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 1223,\n      \"accountNumber\": \"1041\u002F2\",\n      \"deducted\": \"N\",\n      \"dateDeducted\": null,\n      \"deliveryId\": 1,\n      \"priceDelivery\": 500,\n      \"currency\": \"USD\",\n      \"deliveryName\": \"Courier delivery\"\n    }\n  ],\n  \"meta\": {\n    \"total\": 1\n  }\n}\n```\n\n## Error response example\n\n400 — `entityId` not provided:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"MISSING_REQUIRED_FIELDS\",\n    \"message\": \"entityTypeId and entityId are required positive integers.\"\n  }\n}\n```\n\n## Errors\n\n| HTTP | Code | Description |\n|------|-----|----------|\n| 200 | `Warning: 299` | The filter is ignored by default; previous data is preserved and the warning is sent in the `Warning` header. |\n| 400 (strict mode only) | `UNSUPPORTED_FILTER` | The server mode is disabled by default; until it is enabled, the endpoint preserves HTTP 200 and the previous data. |\n| 400 | `MISSING_REQUIRED_FIELDS` | `entityTypeId` or `entityId` not provided, or the value is not a positive integer |\n| 404 | `ENTITY_NOT_FOUND` | No CRM item with these `entityTypeId` and `entityId` |\n| 403 | `SCOPE_DENIED` | The key lacks the `crm` scope |\n| 401 | `TOKEN_MISSING` | The key has no Bitrix24 connection |\n\nFull list of common API errors — [Errors](\u002Fdocs\u002Ferrors).\n\n## Known specifics\n\n**`deducted` is a string here.** The same delivery in [`GET \u002Fv1\u002Fshipments\u002F:id`](\u002Fdocs\u002Fentities\u002Fshipments\u002Fget) returns `deducted` as `true` or `false`. Compare with `\"Y\"`, not with `true`.\n\n## See also\n\n- [Get a CRM delivery](.\u002Fget.md)\n- [Shipments](\u002Fdocs\u002Fentities\u002Fshipments)\n- [CRM payments](\u002Fdocs\u002Fentities\u002Fcrm-payments)\n- [CRM deliveries](..\u002Fcrm-deliveries.md)\n","## Get a CRM delivery\n\n`GET \u002Fv1\u002Fcrm-deliveries\u002F:id`\n\nReturns a single delivery of a CRM object by ID, for example a deal delivery from its list of deliveries.\n\n## Parameters\n\n| Parameter | Type | Required | Description |\n|----------|-----|:-----:|---------|\n| `id` (path) | number | yes | Delivery ID. List of an object's deliveries: [`GET \u002Fv1\u002Fcrm-deliveries`](.\u002Flist.md). The matching shipment in [`GET \u002Fv1\u002Fshipments`](\u002Fdocs\u002Fentities\u002Fshipments\u002Flist) has the same ID |\n\n## Examples\n\n### curl — personal key\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fcrm-deliveries\u002F1223\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth application\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fcrm-deliveries\u002F1223\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — personal key\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fcrm-deliveries\u002F1223', {\n  headers: { 'X-Api-Key': 'YOUR_API_KEY' },\n})\n\nconst { data } = await res.json()\nconsole.log(data.deliveryName, data.priceDelivery)\n```\n\n### JavaScript — OAuth application\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fcrm-deliveries\u002F1223', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { data } = await res.json()\n```\n\n## Response fields\n\n| Field | Type | Description |\n|------|-----|---------|\n| `success` | boolean | `true` on success |\n| `data.id` | number | Delivery ID |\n| `data.accountNumber` | string | Delivery number: the order number and the sequence number separated by `\u002F` |\n| `data.priceDelivery` | number | Delivery cost |\n| `data.currency` | string | Currency code of the delivery cost |\n| `data.deducted` | string | Shipped flag: `Y` — shipped, `N` — not shipped |\n| `data.dateDeducted` | string \\| null | Shipping time, or `null` until shipped |\n| `data.deliveryId` | number | Delivery service ID. List: [`GET \u002Fv1\u002Fdelivery-services`](\u002Fdocs\u002Fentities\u002Fdelivery-services\u002Flist) |\n| `data.deliveryName` | string | Delivery service name |\n\n## Response example\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 1223,\n    \"accountNumber\": \"1041\u002F2\",\n    \"priceDelivery\": 500,\n    \"currency\": \"USD\",\n    \"deducted\": \"N\",\n    \"dateDeducted\": null,\n    \"deliveryId\": 1,\n    \"deliveryName\": \"Courier delivery\"\n  }\n}\n```\n\n## Error response example\n\n404 — no delivery with this ID:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"ENTITY_NOT_FOUND\",\n    \"message\": \"Delivery has not been found\"\n  }\n}\n```\n\n## Errors\n\n| HTTP | Code | Description |\n|------|-----|----------|\n| 400 | `INVALID_ID` | `id` is not a positive integer |\n| 404 | `ENTITY_NOT_FOUND` | No delivery with this `id` |\n| 403 | `SCOPE_DENIED` | The key lacks the `crm` scope |\n| 401 | `TOKEN_MISSING` | The key has no Bitrix24 connection |\n\nFull list of common API errors — [Errors](\u002Fdocs\u002Ferrors).\n\n## See also\n\n- [List CRM deliveries](.\u002Flist.md)\n- [Get a shipment](\u002Fdocs\u002Fentities\u002Fshipments\u002Fget)\n- [CRM deliveries](..\u002Fcrm-deliveries.md)\n",1794739349312]