Гайды

Три типовых сценария интеграции. Все примеры работают с ключом rk_live_… после того, как вы выбрали нужные области доступа.

Как подключить UDS

UDS нужны продажи и меню, чтобы считать бонусы и акции. Достаточно двух областей: read:dishes и read:checks.

# 1. Меню: что продаём и по какой цене
curl -s -H "Authorization: Bearer $KEY" \
  "https://rkdash.com/api/v1/dishes?limit=200&sort=-revenue" > dishes.json

# 2. Чеки с 1 сентября — по ним видно состав и суммы
curl -s -H "Authorization: Bearer $KEY" \
  "https://rkdash.com/api/v1/checks?date_from=2026-09-01&date_to=2026-09-15&limit=200" > checks.json

# 3. Пагинация: пока meta.hasMore = true, идём по meta.nextCursor
curl -s -H "Authorization: Bearer $KEY" \
  "https://rkdash.com/api/v1/checks?cursor=c_eyJvIjoyMDB9"

Если по позиции фудкост не рассчитан, в ответе будет foodcostPct: null — это не ноль, а «себестоимости в учётной системе нет». Подставлять его как 0 нельзя.

Как выгрузить продажи в 1С

Самый дешёвый способ — забирать чеки раз в сутки и складывать в документ. Область доступа: read:checks и read:restaurants.

# заведение и его идентификатор
curl -s -H "Authorization: Bearer $KEY" https://rkdash.com/api/v1/restaurants

# чеки за прошедший день
curl -s -H "Authorization: Bearer $KEY" \
  "https://rkdash.com/api/v1/checks?date_from=2026-09-15&date_to=2026-09-15&limit=200"

# состав конкретного чека
curl -s -H "Authorization: Bearer $KEY" "https://rkdash.com/api/v1/checks/chk_..."

# движения склада (приходы/списания) за тот же день
curl -s -H "Authorization: Bearer $KEY" \
  "https://rkdash.com/api/v1/stock?date_from=2026-09-15&date_to=2026-09-15"

В ответе /stock поле balanceAvailable всегда false: в витрину выгружаются движения, а не остатки StoreHouse. Остаток считайте в учётной системе.

Как повесить вебхук на новый чек

Область доступа — write:webhooks. Подписка создаётся один раз, секрет подписи показывается при создании.

# подписка
curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/hook","events":["check.created"],"description":"Выгрузка в 1С"}' \
  https://rkdash.com/api/v1/webhooks

# проверка руками из панели: «Настройки → API → Проверить» (тестовое событие + доставка)

# журнал: что ушло и с каким результатом
curl -s -H "Authorization: Bearer $KEY" https://rkdash.com/api/v1/webhooks/wh_.../deliveries

Проверка подписи на стороне получателя:

const [t, v1] = header.split(',').map((part) => part.split('=')[1]);
const expected = crypto
  .createHmac('sha256', secret)
  .update(`${t}.${rawBody}`)
  .digest('hex');
if (expected !== v1) throw new Error('подпись не совпала');

Событие приходит после обмена с учётной системой, а не в момент закрытия чека: витрина обновляется по расписанию. Если получатель не ответил, попытка повторяется трижды — сразу, через минуту и через пять, — и это видно в журнале доставок.

Postman

Импортируйте /api/v1/openapi в Postman («Import → Link») — коллекция соберётся из спецификации. Переменную baseUrl поставьте на https://rkdash.com/api/v1, а token — на свой ключ.