Страница оплаты

Размещённая (hosted) страница /pay/{id} — единственное место, где покупатель вводит платёжные данные. Вам не нужно ни верстать форму, ни проходить сертификацию: перенаправьте покупателя на url счёта и ждите вебхук.

API v1 · обновлено 2026-09-12

Что видит покупатель

  1. Шапка: логотип и название вашего проекта, таймер до истечения счёта.
  2. Сумма и описание счёта. При feePayer=customer — пометка о комиссии и итоговая сумма.
  3. Выбор способа: «СБП» и «Банковская карта» (только доступные проекту сейчас). Если счёт создан с method, шаг пропускается.
  4. Оплата:
    • СБП на компьютере — QR-код, который сканируется приложением банка; на телефоне — кнопка «Оплатить через СБП» открывает приложение банка со списком;
    • карта — защищённая форма ввода номера, срока и CVC с подтверждением 3-D Secure в банке.
  5. Ожидание: страница сама опрашивает статус и переключается на результат — обычно за секунды.
  6. Результат: «Оплачено» с кнопкой «Вернуться в магазин» (→ successUrl) или «Не удалось оплатить» с повтором и возвратом (→ failUrl). Автопереход через 5 секунд.

Страница адаптивная, работает в WebView Telegram и других мессенджеров, тёмная и светлая темы подбираются по системным настройкам. Реквизиты карты вводятся в защищённой форме банковской инфраструктуры и на серверы Paydex не попадают.

Чем управляете вы

Параметр счётаВлияние на страницу
methodНе передан — покупатель выбирает СБП или карту сам. Передан — показывается только этот способ, шаг выбора пропускается.
descriptionСтрока под суммой. Пишите то, что покупатель узнает: «Заказ №1042», «Подписка Pro на месяц».
feePayerПри customer под суммой появляется строка «включая комиссию сервиса» и итог к оплате = amount + fee. При merchant покупатель видит ровно amount.
expireТаймер обратного отсчёта в шапке. По нулю — экран «Срок оплаты истёк» и кнопка возврата на failUrl.
successUrl / failUrlКуда ведёт кнопка «Вернуться в магазин» после успеха / отказа. Автопереход через 5 секунд, если адрес задан.
payerEmail / customer.emailПредзаполняет поле email для чека об оплате; покупатель может изменить.
Логотип и название проектаИз настроек проекта. Показываются в шапке, чтобы покупатель понимал, кому платит.

Состояния страницы

Статус счётаЧто показывается
createdВыбор способа / форма оплаты.
pending«Ожидаем подтверждение банка» с индикатором; QR остаётся на экране.
paid«Оплачено», сумма, кнопка возврата в магазин.
failed«Не удалось оплатить», кнопка «Попробовать снова» (тот же счёт, пока он не истёк).
expired«Срок оплаты истёк». Нужен новый счёт.
refunded«Возврат выполнен».

Как открывать страницу

  • Редирект 302 на url — самый надёжный способ на сайте.
  • Новая вкладка (target="_blank") — если не хотите терять состояние своей страницы; после оплаты покупатель вернётся по successUrl в этой же вкладке.
  • Ссылка в мессенджере — для ботов и продаж в чатах; страница корректно открывается во встроенном браузере.
  • Встраивать страницу в <iframe> нельзя — банковские формы запрещают это политиками безопасности.

Возврат покупателя

Включайте номер заказа в сами адреса возврата (например, https://shop.example/orders/1042?paid=1), чтобы показать покупателю нужный заказ. Не используйте сам факт возврата как подтверждение оплаты: покупатель может открыть successUrl руками. Источник правды — вебхук invoice.paid или статус из GET /invoices/{id}.

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

Для счетов, созданных ключом sk_test_, вместо банковских форм показываются кнопки «Успех», «Отказ», «Истёк» — см. Тестирование.