Skip to main content
Разберём полный поток приёма платежа: от создания счёта до финального статуса, с объяснением, что происходит на каждом шаге и как на это реагировать. Если нужен просто «завести за 5 минут» — см. Быстрый старт. Здесь — подробнее.

Как это работает


1

Создать счёт

Про два механизма защиты от дублей (Idempotency-Key + order_id) — Устойчивый клиент. Про авточек на payer_emailСчёт и чек на почту.Из ответа вам нужны:
  • address — адрес, на который платит покупатель;
  • payer_amount + payer_currency — сколько и в какой крипте нужно отправить;
  • url — ссылка на hosted‑страницу оплаты (можно просто отправить покупателя туда);
  • uuid — сохраните его в связке с вашим заказом;
  • payer_addressпоявляется после оплаты: адрес, с которого реально пришли деньги. Это дефолтный адрес возврата, поэтому возврат можно делать, не спрашивая адрес у покупателя.
Полное описание полей — Объект платежа.
2

Показать адрес покупателю

Два варианта:
  1. Отправить на hosted‑страницу по url — там уже есть адрес, QR, таймер и статус. Ничего рисовать не нужно.
  2. Показать у себя — возьмите address и address_qr_code (готовый data:‑URI QR) из ответа.
Страница может отслеживать статус без секрета мерчанта — через публичный GET /v1/pay/{id}.
3

Дождаться оплаты

Счёт проходит по статусам (payment_status):Терминальные статусы (is_final: true): paid, paid_over, wrong_amount, истёкшие/отменённые.
4

Реагировать на вебхук, а не опрашивать

Правильный способ узнать об оплате — вебхук invoice.paid, а не постоянный опрос /info. Настройте приёмник по инструкции Настройка вебхуков. Опрос POST /v1/payment/info держите как резервный механизм.Ключевое правило обработки: дедуплицируйте по uuid + status и выдавайте товар только один раз — вебхук может прийти повторно.

Важные нюансы

  • Курс фиксируется при создании и действует до rate_expires_at. Для долгоживущих ссылок курс лениво перезапрашивается при открытии страницы, пока счёт не оплачен и не истёк. После начала оплаты адрес и сумма не меняются.
  • Минимум сети. На дорогих сетях (Ethereum, Bitcoin) есть минимальная сумма; платёж ниже вернёт payment.below_minimum уже при создании.
  • Подтверждения зависят от суммы. Крупный платёж требует больше подтверждений (reorg‑безопасность), мелкий — меньше.
  • Идемпотентность — два механизма. HTTP‑заголовок Idempotency-Key (одинаковый во всех попытках одного действия; повтор вернёт тот же ответ и Idempotent-Replayed: true) и order_id (ваш бизнес‑ключ: повтор создания с тем же order_id вернёт существующий живой счёт, а не создаст второй). См. Идемпотентность.

Связанные страницы

Три режима создания счёта

а что, если не фиксировать валюту заранее?

Недоплата, переплата и автовозврат

как настроить допуски.

Статические кошельки

постоянный адрес вместо разовых счетов.

Платёжные ссылки

принять платёж вообще без бэкенда.

Счёт и чек на почту

автоматический чек плательщику.

Массовые операции

создать до 5000 счетов одним запросом.