Бесплатная песочница для интеграций

Проверьте интеграцию до работы с реальными средствами

Отправляйте настоящие HTTP-запросы в отдельный API с синтетическими данными. Проверяйте статусы заказов, повторы и подписанные образцы webhook без рабочего ключа и аккаунта.

Базовый URL: https://ludovex.org/api/sandbox/v1. Используйте ludovex.org; домен api.ludovex.org не обслуживает эту песочницу.

Попробуйте HTTP-сессию

Начните временную сессию со 100.00 TEST_USDT. Страница использует те же HTTP-маршруты, что и скачиваемые примеры.

Только тестовая среда. Нет денег, настоящих заказов, данных клиентов, писем или запросов провайдерам. Не вводите рабочие ключи и данные игроков.

HTTP-ответ

Начните сессию, чтобы увидеть ответы синтетического API.

Предсказуемые сценарии

Мгновенное выполнение

201 COMPLETED; списывается 3.25 TEST_USDT и создаётся order.completed.

success

Отложенное выполнение

201 PROCESSING; после пяти секунд первый запрос статуса, списка, баланса или событий переводит заказ в COMPLETED.

delayed

Ошибка с возвратом

201 PROCESSING; чтение после пяти секунд создаёт order.failed, затем order.refunded. Статус — REFUNDED, а 3.25 TEST_USDT возвращается один раз.

failed_refund

Недостаточный тестовый баланс

Тестовый товар стоит 1000.00 TEST_USDT. Ответ 402 INSUFFICIENT_BALANCE без создания заказа и списания.

low_balance

Повтор / идемпотентность

Повторите одинаковый запрос с тем же ключом: вернётся тот же заказ без второго списания. Тот же ключ с другим сценарием: 409 IDEMPOTENCY_CONFLICT.

idempotency_key

Быстрый старт через HTTP

Отправьте {} в POST /sessions с Content-Type: application/json. Храните api_key и webhook_secret в памяти. В следующих запросах передавайте X-Sandbox-Key. Рабочие заголовки Authorization и X-API-Key отклоняются.

curl --fail-with-body https://ludovex.org/api/sandbox/v1/sessions \
  -H 'Content-Type: application/json' -d '{}'

curl --fail-with-body https://ludovex.org/api/sandbox/v1/order \
  -H 'Content-Type: application/json' \
  -H 'X-Sandbox-Key: REPLACE_WITH_TEST_SESSION_KEY' \
  -d '{"game_key":"sandbox_game","variation_id":"sandbox_pack","scenario":"delayed","idempotency_key":"example-order-001"}'

Заказ принимает только game_key, variation_id, scenario и idempotency_key. Используйте два тестовых идентификатора ниже; поля player_id и данные аккаунта не нужны. Ключ в теле имеет приоритет над необязательным заголовком Idempotency-Key.

Доступные маршруты
POST /sessionsСоздать анонимную тестовую сессию.
GET /catalogПрочитать единственный синтетический товар.
GET /balanceПолучить тестовый баланс и завершить готовые сценарии.
POST /orderСоздать заказ со сценарием и ключом идемпотентности длиной 8–80 символов (буквы, цифры, _ или -).
GET /order/{id}Прочитать статус заказа этой сессии.
GET /ordersСписок заказов сессии (не более 20; без пагинации).
GET /eventsСписок идентификаторов событий сессии; завершает готовые сценарии.
POST /events/{id}/replayПолучить точное raw_body и подписанные заголовки; webhook не отправляется.
DELETE /sessionНемедленно удалить сессию.

Проверяйте и повторяйте без отправки

Повтор возвращает новую временную метку и подпись для того же тела и неизменного X-Ludovex-Delivery-Id. Проверьте HMAC-SHA256 от timestamp + "." + raw_body, отклоняйте метки старше 300 секунд или из будущего и сравнивайте подписи за постоянное время. Проверяйте подпись до разбора тела и выполнения действий.

Примеры используют временную базу SQLite для надёжной атомарной дедупликации проверенной доставки и её синтетического результата. Повторная доставка не должна выполнять действие дважды. Настоящему получателю нужна постоянная база и транзакция или outbox для реальных бизнес-действий.

URL не принимается, webhook не отправляется. Образцы повторов позволяют локально проверить верификатор; они не проверяют доставку по сети, повторы worker или ваш рабочий адрес webhook.

Запустите полную проверку интеграции

Без зависимостей: Node.js 24+ или Python 3.10+. Каждый скрипт создаёт свою сессию, проверяет все сценарии, подпись и дедупликацию, затем закрывает сессию. Результаты выводятся без ключей. Настоящие webhook не отправляются.

Запустите скачанный файл: node ludovex-sandbox.mjs или python3 ludovex-sandbox.py. По умолчанию используется песочница основного домена. SANDBOX_BASE_URL может указывать только на эту песочницу или локальную HTTP-песочницу для разработки.

Ограничения и отличия от рабочего API

Сессии истекают через 30 минут и пропадают при перезапуске процесса. На сессию: 20 заказов, до 40 событий и 60 запросов в минуту. Создание: 5 сессий по признаку IP за 10 минут; общая ёмкость — 250 сессий и 2000 запросов в минуту. JSON ограничен 2048 байтами и пятью секундами. При лимите возвращается 429 и, где доступно, Retry-After.

Это отдельный контракт с заданными сценариями и временной памятью одного процесса. Он не эмулирует рабочий API и не гарантирует доступность. Завершение происходит при чтении, а не в фоновом worker. Реальные каталог, квоты, проверка провайдера, платежи и рабочие ключи не используются.

Читать контракт рабочего API