# Dodo IS API: Собрать ежедневный отчёт по выручке пиццерий

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

Отчёт для партнёра-франчайзи: выручка каждой пиццерии по дням и каналам продаж — в таблицу, BI или чат.

1. Создай приложение в кабинете разработчика Dodo IS и получи токен по OAuth 2.0 Authorization Code: https://auth.dodois.io/connect/authorize, затем https://auth.dodois.io/connect/token. Запроси scopes shared, user.role:read и offline_access, чтобы получать refresh_token и не просить вход каждый день.
2. Узнай ID своих заведений: GET /units с countryId (например, RU) и businessId. Пагинация — skip и take.
3. Запроси продажи: GET /finances/sales/units/daily с units (UUID через запятую без пробелов), fromDate и toDate. Данные агрегированы по дням, каналам продаж (Delivery, Dine-in, Takeaway), источникам заказа и способам оплаты.
4. Базовый URL зависит от страны и бренда: для Додо Пиццы в России — https://api.dodois.io/dodopizza/ru, для Drinkit — https://api.dodois.io/drinkit/ru.

```bash
API=https://api.dodois.io/dodopizza/ru

curl -G "$API/units" -H "Authorization: Bearer $DODO_TOKEN" \
  -d countryId=RU -d businessId=<businessId> -d take=100

curl -G "$API/finances/sales/units/daily" -H "Authorization: Bearer $DODO_TOKEN" \
  -d units=<unit_uuid_1>,<unit_uuid_2> -d fromDate=2026-10-01 -d toDate=2026-10-23
```

## Базовые 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 /units — Информация о заведениях

Scope: `shared`.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `countryId` | query | string | да | Страна в формате ISO 3166-1 alpha-2 |
| `businessId` | query | string | да | ID бизнеса (UUID) |
| `unitTypes` | query | string | нет | Типы заведений |
| `unitStates` | query | string | нет | Состояние заведения |
| `units` | query | string | нет | Заведения (UUID) |
| `organizations` | query | string | нет | Организации (UUID) |
| `skip` | query | integer | нет | Сколько записей пропустить, по умолчанию 0 |
| `take` | query | integer | нет | Сколько записей выбрать, по умолчанию 100, максимум 1000 |

### GET /finances/sales/units/daily — Дневные продажи по заведениям

Агрегировано по дням, каналам продаж (Delivery, Dine-in, Takeaway), источникам заказа и методам оплаты. Scope: `shared`.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `units` | query | string | да | Заведения (UUID) |
| `fromDate` | query | string | да | Дата начала, ISO 8601 |
| `toDate` | query | string | да | Дата конца, ISO 8601 |

## Нюансы

- Постраничные методы: увеличивайте `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/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://mcp-everything.ru/integrations/dodo-is/scenarios/proverit-skladskie-ostatki.md)

---

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