Песочница для интеграторов

Компания с ключом, программой и гостями — на неделю и без регистрации. Тот же API, что у боевых клиентов.

Песочница — настоящая компания на нашей платформе, заведённая на неделю, на тарифе «Про»: открытый API и вебхуки включены. Тот же API и те же коды ошибок, что у боевых клиентов. Регистрироваться, вводить почту и ждать ответа не нужно: ключ выдаётся сразу, вместе с программой, точкой продаж и тремя гостями с картами.

Без регистрации. Компания с ключом, программой и тремя гостями заводится за пару секунд и живёт неделю.

Перед выдачей может появиться проверка «я не робот» — пройдите её, и песочница заведётся. Всё выданное показывается один раз и нигде не хранится: ключ, как и боевой, в базе лежит только отпечатком. Потеряли — возьмите новую песочницу.

Что внутри

  1. Ключ API со всеми областями доступа

    Чеки, возвраты, поиск карты, купоны, заведение гостя и подтверждение номера — всё, что умеет открытый API. Ключ начинается с wlk_test_, чтобы его нельзя было перепутать с боевым в конфиге кассы.

  2. Точка продаж и программа

    «Демо-точка» в московском часовом поясе и программа с приветственным бонусом в 100 баллов. Идентификатор точки для locationId отдаёт GET /program.

  3. Три гостя с картами

    Телефоны, штрихкоды и балансы приходят в ответе. У двоих уже есть покупки, у третьей — только приветственный бонус. Проводить чек есть по кому с первой минуты — искать в пустой базе некого.

  4. Кабинет с паролем

    Чтобы посмотреть глазами, что чек дошёл: сводка, карточка гостя, история начислений. Там же настраиваются вебхуки. Вход — почта и пароль из ответа.

  5. Страница выдачи карты

    Публичный адрес программы: можно пройти путь гостя целиком и поставить карту в свой телефон. Анкета спрашивает только имя.

Выдача отвечает одним JSON — форма выше показывает его целиком:

ПолеЧто в нём
apiKeyКлюч для заголовка X-API-Key
apiBaseUrlАдрес API — тот же, что у боевых клиентов
expiresAtКогда песочница удалится
joinUrlСтраница выдачи карты гостю
adminАдрес кабинета, почта и пароль владельца
guestsГости: телефон, имя, штрихкод карты и баланс

Как проверить, что всё работает

Проведите чек по любому из выданных штрихкодов. Заголовок Idempotency-Key обязателен — он защищает от двойного начисления при повторной отправке. Готовую команду с вашим ключом и первым из выданных гостей печатает сама выдача — поле «Первый запрос», её достаточно скопировать.

POST /transactions

curl -X POST https://api.snovacard.ru/api/v1/transactions \
  -H "x-api-key: ВАШ_КЛЮЧ" \
  -H "content-type: application/json" \
  -H "Idempotency-Key: demo-$(date +%s)" \
  -d '{"cardBarcode":"ШТРИХКОД_ГОСТЯ","amount":1000,"redeemPoints":0}'

Idempotency-Key — любая строка, уникальная для чека: номер чека из кассы, UUID, что угодно. В примере это секунды текущего времени, чтобы команда работала в любой оболочке без дополнительных утилит; повторная отправка с тем же ключом вернёт прежний ответ и баллы второй раз не начислит.

В ответе — начисленные баллы, новый баланс и сработавшие правила. Дальше стоит проверить списание: спросите карту по телефону (POST /cards/lookup), посмотрите maxRedeemPercent и проведите чек с redeemPoints. Подробно о методах — в описании API.

Чем песочница отличается от боевой компании

  1. Живёт неделю

    Потом ночная уборка удаляет её целиком — с гостями, картами, историей и учётной записью владельца. Продлить нельзя — берите новую, это одна кнопка.

  2. Код показывается, а не отправляется

    Никаких сообщений наружу: ни письма, ни SMS, ни звонка. На странице выдачи код виден прямо на форме, а POST /customers/phone-code возвращает его полем shownCode. На боевой компании код уходит гостю, и каналы выбирает владелец.

  3. Ключ знает, что он песочный

    GET /program отвечает company.sandbox: true — по нему интеграция может показать разработчику код подтверждения, не нарушая правила для боевых ключей.

  4. Оператор персональных данных — мы

    Заведения за песочницей нет, поэтому в согласии названы наши реквизиты. У настоящего клиента там его юридическое лицо и его ИНН.

  5. Не больше трёх в сутки с одного адреса

    Выдача открыта без авторизации, и предел защищает её от перебора. Считается и выдача, сорвавшаяся на середине. Нужно больше — напишите нам, договоримся.

Кроме предела по адресу есть два общих: не больше 30 песочниц в час на всю платформу и не больше 500 живых одновременно. Упрётесь в них — выдача ответит RATE_LIMITED с просьбой повторить позже; в details.retryAfterSec — через сколько секунд.

Частые вопросы

Нужно ли регистрироваться, чтобы получить песочницу?

Нет. Кнопка на этой странице выдаёт компанию с ключом сразу: ни почты, ни пароля, ни подтверждения. Регистрация нужна, когда дело дойдёт до настоящих гостей.

Сколько живёт песочница?

Неделю. Потом она удаляется целиком — компания, гости, карты и история. Продления нет: новая заводится одной кнопкой.

Отличается ли API песочницы от боевого?

Нет, это та же платформа и тот же адрес api.snovacard.ru. Отличается только компания: у неё стоит срок жизни, код подтверждения показывается вместо отправки гостю, а оператором персональных данных названы мы, а не заведение.

Можно ли проверить в песочнице вебхуки?

Да. Песочница на тарифе «Про», и вкладка «Интеграции» → «Вебхуки» в её кабинете работает как у боевой компании: укажите https-адрес своего приёмника и проведите чек через API.

Можно ли перенести данные из песочницы в боевую компанию?

Нет, и это намеренно: в песочнице придуманные гости, которым место в базе заведения не полагается. Настройки программы переносятся руками за пару минут в кабинете.

Первые 20 карт — бесплатно. Программа настраивается за вечер.

Создать программу