Перейти к содержимому
Разделы документации

Документация / Рецепты

Тестовый режим

Магазин-песочница: платежи без провайдера и симуляция исхода

Тестовый режим позволяет проверить интеграцию из конца в конец - создание платежа, платёжную страницу и доставку вебхука - без реальных денег и без участия банка. Для этого в кабинете создаётся отдельный магазин-песочница.

Тестовые платежи не влияют на баланс и выплаты, а исход каждого платежа вы задаёте сами кнопкой на платёжной странице. В аналитике кабинета они видны (иначе по магазину-песочнице была бы пустая сводка), но помечены отдельно и не считаются реальной выручкой.

Шаг 1. Создайте тестовый магазин

В кабинете откройте раздел Магазины, нажмите «Добавить магазин» и выберите вкладку «Тестовый». Магазин активируется сразу, без заявки и модерации - у пользователя он один. Выпустите его API-ключ на вкладке Webhook и сохраните Webhook URL, как у боевого магазина. Ненужный тестовый магазин удаляется в его настройках - после этого можно создать новый.

Шаг 2. Создайте платёж

Запрос ничем не отличается от боевого - меняется только ключ. В ответе платёж помечен isTest: true.

curl https://tabpay.org/api/v1/payments \
  -H "X-Api-Key: tp_ключ_тестового_магазина" \
  -H "Content-Type: application/json" \
  -d '{
    "amountKopecks": 19900,
    "orderId": "test-1",
    "description": "Проверка интеграции"
  }'
Ответ
{
  "id": "6b9d2c88-4f1a-4c0e-9b7d-2f8e5a1c3d90",
  "orderId": "test-1",
  "status": "CREATED",
  "amountKopecks": 19900,
  "isTest": true,
  "payUrl": "https://tabpay.org/pay/6b9d2c88-4f1a-4c0e-9b7d-2f8e5a1c3d90"
}

Шаг 3. Задайте исход на платёжной странице

Откройте payUrl в браузере. Вместо выбора СБП или карты страница покажет три кнопки:

  • Оплатить - платёж переходит в SUCCESS, уходит вебхук.
  • Отклонить - платёж переходит в FAILED.
  • Просрочить - платёж переходит в EXPIRED.

Провайдер в тестовом режиме не участвует - деньги не двигаются. Полный список статусов - в разделе Статусы платежа.

Шаг 4. Примите вебхук

После выбора «Оплатить» (или другого исхода) TabPay отправит вебхук на URL магазина. Тело идентично боевому, но содержит test: true - боевой обработчик может по нему отличать симуляцию:

Тело вебхука
{
  "id": "6b9d2c88-4f1a-4c0e-9b7d-2f8e5a1c3d90",
  "orderId": "test-1",
  "status": "SUCCESS",
  "amountKopecks": 19900,
  "telegramId": null,
  "metadata": null,
  "test": true
}

Подпись X-Signature считается тем же алгоритмом, что и в бою (раздел Проверка подписи), так что тестовый режим проверяет и её.

На что обратить внимание

  • Тестовые платежи не попадают в баланс и не участвуют в выплатах. В сводке аналитики кабинета они отображаются с пометкой «тестовые» (в реальную выручку не входят).
  • Один и тот же исход нельзя применить дважды - после перехода в финальный статус платёж закрыт (повтор вернёт ошибку).
  • Для боевого приёма платежей заведите обычный магазин: он проходит модерацию, и его платежи уходят провайдеру.