Перейти к содержимому

Начало работы

На странице

Тестирование

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

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

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

Параметр Тестовый режим Рабочий режим
Base URL api.paymos.io/v1 api.paymos.io/v1
API-ключи pk_test_ / rk_test_ ID + sk_test_ секреты pk_live_ / rk_live_ ID + sk_live_ секреты
Транзакции Симулированные Реальный блокчейн
Вебхуки Отправляются Отправляются
Средства Без реальной стоимости Реальные токены

Симуляция платежей

Тестовые платежи не подтверждаются автоматически — запускайте симуляцию явно:

POST/v1/sandbox/invoices/:invoice_id/simulate-payment

Тело: { "stage": "paid" }, где stage — одно из paid, overpaid, underpay, cancel. Подпишите запрос как любой вызов /v1. Метод работает только для тестовых инвойсов; ключ рабочего режима получает 403 not_sandbox. Жизненный цикл и события вебхука совпадают с реальным платежом в блокчейне, поэтому обработчик остаётся единым для обоих режимов.

Симуляция выводов

Тестовые выводы не отправляют транзакцию в сеть. Пометьте ожидающий тестовый вывод как завершённый, чтобы проверить процесс целиком:

POST/v1/sandbox/withdrawals/:withdrawal_id/simulate-completion

Тело запроса не требуется. Подпишите вызов ключом для вывода; метод работает только для тестовых операций. Он переводит вывод в completed и отправляет тот же вебхук withdrawal.completed, что и реальная транзакция, поэтому код сверки остаётся единым.

Симуляция депозитов канала

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

POST/v1/sandbox/payment-channels/:payment_channel_id/simulate-deposit

Тело: { "amount": "100", "currency": "USDT", "network": "TRC20", "stage": "confirmed" }stage принимает значения confirming, reorged или confirmed, по умолчанию confirmed. Подписывайте ключом Payment из песочницы; ключ рабочей среды отклоняется до того, как что-либо будет создано. Каждый вызов сначала отправляет payment_channel.deposit.confirming, затем терминальное событие запрошенной стадии, поэтому обработчик вебхуков одинаков в песочнице и в рабочей среде. Полный контракт — в Симуляции депозита канала.

Тестирование вебхуков локально

Откройте доступ к локальному серверу через туннель:

ngrok http 3000

Укажите URL вебхука в Дашборд → Разработчик → Вебхуки:

https://abc123.ngrok.io/api/paymos-webhook

Песочница вебхуков

У документации в дашборде есть вкладка Консоль. Она работает только в тестовом режиме: создаёт тестовый инвойс через Merchant API, доводит его до выбранного исхода и отправляет полностью подписанное событие на ваш зарегистрированный URL. Проверку подписи так можно отладить, не отправляя ни одного реального перевода.

  • 01В тестовом режиме перейдите в Дашборд → Разработчик → Документация
  • 02Откройте раздел Вебхуки → Тестирование, затем вкладку Консоль
  • 03В поле Тип события выберите исход — точная оплата, переплата, недоплата или отмена, — укажите сумму и валюту и нажмите Симулировать
  • 04Проверьте логи сервера на полученное событие и заголовок X-Webhook-Signature

Чек-лист перед запуском

  • Проверка подписи вебхуков работает
  • Создание инвойсов возвращает корректные данные
  • Платёжный процесс корректно перенаправляет
  • Обработка ошибок покрывает ответы со статусом не 2xx (валидация 4xx, конфликты 409)
  • Идемпотентность с external_order_id работает
  • Идентификаторы ключей заменены с pk_test_ / rk_test_ на pk_live_ / rk_live_, а секреты — с sk_test_ на sk_live_