Страница оплаты
Размещённая (hosted) страница /pay/{id} — единственное место, где покупатель вводит платёжные данные. Вам не нужно ни верстать форму, ни проходить сертификацию: перенаправьте покупателя на url счёта и ждите вебхук.
API v1 · обновлено 2026-09-12
Что видит покупатель
- Шапка: логотип и название вашего проекта, таймер до истечения счёта.
- Сумма и описание счёта. При
feePayer=customer— пометка о комиссии и итоговая сумма. - Выбор способа: «СБП» и «Банковская карта» (только доступные проекту сейчас). Если счёт создан с
method, шаг пропускается. - Оплата:
- СБП на компьютере — QR-код, который сканируется приложением банка; на телефоне — кнопка «Оплатить через СБП» открывает приложение банка со списком;
- карта — защищённая форма ввода номера, срока и CVC с подтверждением 3-D Secure в банке.
- Ожидание: страница сама опрашивает статус и переключается на результат — обычно за секунды.
- Результат: «Оплачено» с кнопкой «Вернуться в магазин» (→
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_, вместо банковских форм показываются кнопки «Успех», «Отказ», «Истёк» — см. Тестирование.