# СДЭК API v2: Напечатать квитанцию и вызвать курьера

Сценарий из mcp-everything. Актуально на 2026-10-24.

Подготовить отправление к передаче: напечатать документы и заказать забор посылки со склада.

1. Закажи квитанцию: POST /v2/print/orders со списком заказов. Квитанция формируется асинхронно — сначала придёт uuid задания.
2. Когда задание готово, скачай PDF по адресу /v2/print/orders/{uuid}.pdf с тем же токеном. Штрихкоды мест печатаются отдельно через /v2/print/barcodes.
3. Вызови курьера: POST /v2/intakes с датой и интервалом забора, адресом и контактами отправителя. Свободные даты можно заранее узнать через /v2/intakes/availableDays.
4. Чтобы не опрашивать готовность квитанции, подпишись на событие PRINT_FORM через POST /v2/webhooks.

```bash
# Квитанция для двух заказов
curl -X POST https://api.cdek.ru/v2/print/orders \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"orders": [{"order_uuid": "<uuid заказа 1>"}, {"order_uuid": "<uuid заказа 2>"}], "copy_count": 2}'

# Готовый PDF
curl -o receipt.pdf https://api.cdek.ru/v2/print/orders/<uuid задания>.pdf -H "Authorization: Bearer $TOKEN"
```

## Базовые URL

- Боевой: `https://api.cdek.ru`
- Тестовый: `https://api.edu.cdek.ru`

## Авторизация

Тип: OAuth 2.0

OAuth 2.0 (client credentials). Токен получают запросом `POST /v2/oauth/token` с `grant_type=client_credentials`, `client_id` (Account) и `client_secret` (Secure password) из личного кабинета СДЭК (раздел интеграции) и передают в заголовке `Authorization: Bearer <token>` (JWT). Для интеграции нужен договор со СДЭК.

Тестовая учётная запись для `api.edu.cdek.ru` (из документации):

## Методы сценария

### POST /v2/intakes — Вызов курьера

Регистрация заявки на вызов курьера за посылкой. Доступные даты — `POST /v2/intakes/availableDays`, статус — `GET /v2/intakes/{uuid}`.

### POST /v2/print/orders — Формирование квитанции к заказу

Асинхронно формирует квитанцию; готовый PDF — `GET /v2/print/orders/{uuid}.pdf`. Штрихкод места — `POST /v2/print/barcodes`.

### POST /v2/webhooks — Подписка на вебхуки

Список подписок — `GET /v2/webhooks`, удаление — `DELETE /v2/webhooks/{uuid}`.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `type` | body | string | да | ORDER_STATUS, ORDER_MODIFIED, PRINT_FORM, RECEIPT, DOWNLOAD_PHOTO, PREALERT_CLOSED, ACCOMPANYING_WAYBILL, OFFICE_AVAILABILITY, DELIV_PROBLEM, DELIV_AGREEMENT |
| `url` | body | string | да | URL для событий |

## Нюансы

- Создание сущностей асинхронное: статус запроса `ACCEPTED` означает только первичную валидацию, итог — `SUCCESSFUL` или `INVALID`. Обычно 200–500 мс, при пиковой нагрузке до 30–60 секунд; опрашивайте с паузой 2–3 секунды.
- В `POST /v2/orders` нельзя одновременно передавать `shipment_point` и `from_location`, а также `delivery_point` и `to_location`.
- Вес в граммах, габариты в сантиметрах.
- Изменять заказ можно только в статусах `CREATED` и `ACCEPTED`.
- Вебхуки: таймаут подключения 15 секунд, при ошибках — до 12 повторов за 75 минут, потом доставка прекращается.
- Данные о сущностях, созданных через API, хранятся 1 год.
- Сообщения — в UTF-8; обязательные поля не могут быть пустыми.

## Другие сценарии

- [Рассчитать стоимость и сроки доставки](https://mcp-everything.ru/integrations/cdek/scenarios/rasschitat-stoimost-i-sroki-dostavki.md)
- [Показать пункты выдачи в городе покупателя](https://mcp-everything.ru/integrations/cdek/scenarios/pokazat-punkty-vydachi-v-gorode.md)
- [Создать заказ и дождаться его регистрации](https://mcp-everything.ru/integrations/cdek/scenarios/sozdat-zakaz-i-dozhdatsya-ego.md)
- [Получать статусы заказов вебхуком](https://mcp-everything.ru/integrations/cdek/scenarios/poluchat-statusy-zakazov-vebhukom.md)

---

Если этого недостаточно — официальная документация: https://apidoc.cdek.ru/
Вся интеграция одним документом: https://mcp-everything.ru/integrations/cdek.md
