## Список доставок CRM

`GET /v1/crm-deliveries`

Возвращает все доставки объекта CRM, например сделки, одним вызовом.

## Параметры

| Параметр | Тип | Обяз. | Описание |
|----------|-----|:-----:|---------|
| `entityTypeId` (query) | number | да | Тип объекта CRM, положительное целое. Для сделки — `2` |
| `entityId` (query) | number | да | ID объекта CRM, положительное целое. Для сделки — ID из [`GET /v1/deals`](/docs/entities/deals/list) |

Пагинации, фильтра и сортировки нет: приходят все доставки объекта, остальные параметры запроса игнорируются.

## Примеры

### curl — личный ключ

```bash
curl "https://vibecode.bitrix24.tech/v1/crm-deliveries?entityTypeId=2&entityId=8847" \
  -H "X-Api-Key: YOUR_API_KEY"
```

### curl — OAuth-приложение

```bash
curl "https://vibecode.bitrix24.tech/v1/crm-deliveries?entityTypeId=2&entityId=8847" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"
```

### JavaScript — личный ключ

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/crm-deliveries?entityTypeId=2&entityId=8847', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

const { data, meta } = await res.json()
console.log(`Доставок: ${meta.total}`)
```

### JavaScript — OAuth-приложение

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/crm-deliveries?entityTypeId=2&entityId=8847', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

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

## Поля ответа

| Поле | Тип | Описание |
|------|-----|---------|
| `success` | boolean | `true` при успехе |
| `data` | array | Доставки объекта. У существующего объекта без доставок — пустой массив |
| `data[].id` | number | ID доставки. Тот же ID у отгрузки в [`GET /v1/shipments/:id`](/docs/entities/shipments/get) |
| `data[].accountNumber` | string | Номер доставки: номер заказа и порядковый номер через `/` |
| `data[].deducted` | string | Отметка об отгрузке: `Y` — отгружено, `N` — нет |
| `data[].dateDeducted` | string \| null | Время отгрузки или `null`, пока не отгружено |
| `data[].deliveryId` | number | ID службы доставки. Список: [`GET /v1/delivery-services`](/docs/entities/delivery-services/list) |
| `data[].priceDelivery` | number | Стоимость доставки |
| `data[].currency` | string | Код валюты стоимости |
| `data[].deliveryName` | string | Название службы доставки |
| `meta.total` | number | Число доставок в `data` |

## Пример ответа

```json
{
  "success": true,
  "data": [
    {
      "id": 1223,
      "accountNumber": "1041/2",
      "deducted": "N",
      "dateDeducted": null,
      "deliveryId": 1,
      "priceDelivery": 500,
      "currency": "RUB",
      "deliveryName": "Доставка курьером"
    }
  ],
  "meta": {
    "total": 1
  }
}
```

## Пример ответа при ошибке

400 — не передан `entityId`:

```json
{
  "success": false,
  "error": {
    "code": "MISSING_REQUIRED_FIELDS",
    "message": "entityTypeId and entityId are required positive integers."
  }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|----------|
| 400 | `MISSING_REQUIRED_FIELDS` | Не передан `entityTypeId` или `entityId`, или значение не положительное целое |
| 404 | `ENTITY_NOT_FOUND` | Объекта CRM с такими `entityTypeId` и `entityId` нет |
| 403 | `SCOPE_DENIED` | У ключа нет скоупа `crm` |
| 401 | `TOKEN_MISSING` | У ключа нет подключения к Битрикс24 |

Полный список общих ошибок API — [Ошибки](/docs/errors).

## Известные особенности

**`deducted` здесь строка.** Та же доставка в [`GET /v1/shipments/:id`](/docs/entities/shipments/get) отдаёт `deducted` как `true` или `false`. Сравнивайте с `"Y"`, а не с `true`.

## Смотрите также

- [Получить доставку CRM](./get.md)
- [Отгрузки](/docs/entities/shipments)
- [Оплаты CRM](/docs/entities/crm-payments)
- [Доставки CRM](../crm-deliveries.md)
