---
title: Страница оплаты
description: Как работает страница оплаты Coinetic, как открывать её на сайте и в мобильном приложении и как вернуть покупателя.
url: https://coinetic.money/ru/docs/checkout/
lang: ru
---

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

Страницу оплаты делаем мы. Ваш сервер только перенаправляет на неё покупателя — по `checkout_url` из ответа на создание счёта.

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

- Сумму заказа и таймер срока счёта.
- Выбор валюты — только активы счёта, доступные сейчас.
- После выбора: QR-код, точную сумму с кнопкой «Копировать», адрес, предупреждение о сети и ссылку «Открыть в кошельке» (BIP21, EIP-681, Solana Pay, TRON).
- Статус обновляется сам: «Платёж найден» → «Подтверждения 7/20» → «Оплата получена».
- Кнопку «Вернуться в магазин» — ваш `return_url`.

Пока ничего не оплачено, покупатель может сменить валюту. После первого платежа валюта закрепляется. Для волатильного актива идёт таймер курса (20 минут); когда он истёк, сумма и адрес скрываются.

Страница на русском и английском, светлая и тёмная тема — по настройкам устройства.

## Как открывать

| Где | Как |
| --- | --- |
| Сайт | Переход в той же вкладке: `303 See Other` с вашего сервера или `location.href` |
| iOS | `ASWebAuthenticationSession` или `SFSafariViewController` |
| Android | Chrome Custom Tabs (`androidx.browser`) |
| Telegram-бот | Inline-кнопка со ссылкой на `checkout_url` |
| **Не использовать** | `iframe`, `WKWebView`, `WebView`: нет адресной строки (фишинг неотличим), ссылки в кошельки работают ненадёжно. Встраивание страница запрещает (`frame-ancestors 'none'`) |

> **Мобильные приложения.** Приложение не обращается к API Coinetic напрямую и не хранит секрет ключа — его извлекают из сборки за минуты. Счёт создаёт ваш сервер по запросу приложения, а приложению отдаёт только `checkout_url`.

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

- Покупатель может вернуться до оплаты, во время подтверждений или не вернуться вовсе. Страница заказа не должна на это полагаться.
- В `return_url` можно передать номер заказа, но **статус берите из своей базы** — её обновляет вебхук. Если заказ ещё не оплачен — перепроверьте `GET /v1/invoices/{id}`.
- Для приложений передайте универсальную ссылку (Universal Links / App Links): `https://shop.example/app/orders/ORDER-1001`. Собственные схемы (`myapp://`) не принимаются.

## Типичные ситуации

| Ситуация | Что сделать |
| --- | --- |
| Покупатель закрыл вкладку | Дайте в заказе ссылку «Перейти к оплате» на `checkout_url` — счёт действует до `expires_at` |
| Счёт истёк | Новый счёт с новым `order_id` (например, `ORDER-1001-2`) и новым `Idempotency-Key` |
| Недоплата | «Доплатите остаток на тот же адрес» — страница оплаты показывает остаток |
| Оплата после срока | Деньги получены, решение за вами: выдать заказ или оформить возврат |
| Проверка AML | Сообщите, что платёж проверяется; дождитесь `invoice.paid` |
