# CRM deliveries

Reading 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](./shipments.md) section.

Bitrix24 API: `crm.item.delivery.*`
Scope: `crm`

## Operations

- [List CRM deliveries](./crm-deliveries/list.md) — `GET /v1/crm-deliveries`
- [Get a CRM delivery](./crm-deliveries/get.md) — `GET /v1/crm-deliveries/:id`

## Key fields

| Field | Type | Description |
|------|-----|---------|
| `id` | number | Delivery ID. The shipment in the [Shipments](./shipments.md) section has the same ID |
| `accountNumber` | string | Delivery number: the order number and the sequence number separated by `/`, for example `1041/2` |
| `deliveryId` | number | Delivery service ID. List: [`GET /v1/delivery-services`](/docs/entities/delivery-services/list) |
| `deliveryName` | string | Delivery service name |
| `priceDelivery` | number | Delivery cost |
| `deducted` | string | "Shipped" mark: `Y` — shipped, `N` — not shipped |
| `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 /v1/deals`](/docs/entities/deals/list) |

A delivery has eight fields, and there is no separate field schema method. The full set is in [`GET /v1/crm-deliveries/:id`](./crm-deliveries/get.md).

## Before you start

1. **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](./shipments.md) with the `sale` scope. Shipment contents: [Shipment items](./shipment-items.md).
2. **The same ID appears in shipments, but in a different format.** Delivery `1223` from this section is also returned by [`GET /v1/shipments/1223`](./shipments/get.md): there it has more fields, and `deducted` is `true` or `false` instead of `Y` and `N`.
3. **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`.

## Typical scenario

1. Find the deal: [`GET /v1/deals`](/docs/entities/deals/list).
2. Get its deliveries: [`GET /v1/crm-deliveries?entityTypeId=2&entityId=:dealId`](./crm-deliveries/list.md).
3. Read a single delivery: [`GET /v1/crm-deliveries/:id`](./crm-deliveries/get.md).
4. Set the "shipped" mark or change the delivery status: [Shipments](./shipments.md) with the same ID.

## Limits

| Limit | Value |
|-------|----------|
| List pagination | none — all of the item's deliveries arrive in one call |
| Filtering and sorting | none — the list is scoped to the CRM item only, and other query parameters are ignored |
| Batch calls | not supported: [`POST /v1/batch`](/docs/batch) returns `UNKNOWN_ENTITY` for `crm-deliveries`, so call the section's endpoints one at a time |
| Request rate | shared across the Vibecode API — see [Limits and optimization](/docs/optimization) |

## See also

- [Shipments](./shipments.md)
- [Shipment items](./shipment-items.md)
- [CRM payments](./crm-payments.md)
- [Deals](./deals.md)
- [Entity reference](/docs/entity-api)
