Документация / Интеграция

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

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

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

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

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

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

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

ГдеКак
СайтПереход в той же вкладке: 303 See Other с вашего сервера или location.href
iOSASWebAuthenticationSession или SFSafariViewController
AndroidChrome 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