# Dodo IS API: Проверить складские остатки

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

Заказ сырья у поставщиков по фактическим остаткам, а не на глаз.

1. Получи scopes accounting:read и user.role:read.
2. Запроси остатки: GET /accounting/inventory-stocks с units, при необходимости stockItems или categories.
3. По умолчанию приходят только позиции, подтверждённые ревизией. Расчётные остатки между ревизиями — includeUnconfirmed = true.
4. Продукты, списанные на отменённые заказы, — GET /accounting/cancelled-sales с units, from и to.

```bash
curl -G "https://api.dodois.io/dodopizza/ru/accounting/inventory-stocks" \
  -H "Authorization: Bearer $DODO_TOKEN" \
  -d units=<unit_uuid> -d includeUnconfirmed=true -d take=1000
```

## Базовые URL

- Боевой (Россия, Додо Пицца): `https://api.dodois.io/dodopizza/ru`
- Боевой (Россия, Drinkit): `https://api.dodois.io/drinkit/ru`
- Тестовый (mock-сервер): `https://stoplight.io/mocks/dodo-brands/dodo-is/51665679`
- Для других стран: `https://api.dodois.io/dodopizza/{kz,by,kg,uz,tj}`

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

Тип: OAuth 2.0

OAuth 2.0 Authorization Code. Приложение создаётся в личном кабинете разработчика; токен передаётся в заголовке `Authorization: Bearer <token>`.

- Авторизация: `https://auth.dodois.io/connect/authorize`
- Токен и обновление: `https://auth.dodois.io/connect/token`

Основные scopes: `shared`, `orders`, `accounting:read`, `deliverystatistics`, `sales`, `stopsales`, `staffmembers:read`, `staffshifts:read`, `unit:read`, `user.role:read`, `offline_access` (получение `refresh_token`).

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

### GET /accounting/cancelled-sales — Отмены заказов

Продукты, израсходованные на отменённые заказы. Scopes: `accounting:read`, `user.role:read`.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `units` | query | string | да | Заведения (UUID) |
| `from` | query | string | да | Начало периода, ISO 8601 |
| `to` | query | string | да | Конец периода, ISO 8601 |
| `skip` | query | integer | нет | Смещение |
| `take` | query | integer | нет | По умолчанию 100, максимум 1000 |

### GET /accounting/inventory-stocks — Складские остатки

По умолчанию — только позиции, подтверждённые ревизией (`isConfirmed = true`). Scopes: `accounting:read`, `user.role:read`.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `units` | query | string | да | Заведения (UUID) |
| `stockItems` | query | string | нет | Сырьё (UUID) |
| `categories` | query | string | нет | Категории сырья |
| `includeUnconfirmed` | query | boolean | нет | Включать расчётные остатки, по умолчанию false |
| `skip` | query | integer | нет | Смещение |
| `take` | query | integer | нет | Максимум 1000 |

## Нюансы

- Постраничные методы: увеличивайте `skip` на число полученных записей, пока в ответе не придёт `isEndOfListReached = true`.
- Списки UUID (`units` и др.) — через запятую без пробелов; во многих методах не больше 30 заведений за запрос.
- Доступ к данным ограничен ролями пользователя и его заведениями — scope `user.role:read` нужен почти везде.
- Также есть Auth API (заведения и роли пользователя по токену) и Marketplace API (доступ пользователя к платным функциям приложения).
- Статус работы API: `https://status.dodois.io/`.

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

- [Собрать ежедневный отчёт по выручке пиццерий](https://mcp-everything.ru/integrations/dodo-is/scenarios/sobrat-ezhednevnyy-otchet-po-vyruchke.md)
- [Следить за скоростью доставки](https://mcp-everything.ru/integrations/dodo-is/scenarios/sledit-za-skorostyu-dostavki.md)
- [Получать уведомления о стоп-продажах](https://mcp-everything.ru/integrations/dodo-is/scenarios/poluchat-uvedomleniya-o-stop-prodazhah.md)
- [Выгрузить смены сотрудников для расчёта зарплаты](https://mcp-everything.ru/integrations/dodo-is/scenarios/vygruzit-smeny-sotrudnikov-dlya-rascheta.md)

---

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