Документация / Интеграция
Страница оплаты
Страницу оплаты делаем мы. Ваш сервер только перенаправляет на неё покупателя — по 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 |