Приём оплаты криптовалютой

Приём оплаты криптовалютой: как это устроено и что учесть

Криптоплатёж — это уведомление постфактум, а не диалог с банком: разбираем сети, курс, комиссии и сценарии недоплаты.

Приём криптовалюты выглядит просто ровно до первого реального платежа. Покупатель нажимает «оплатить», видит адрес, отправляет перевод — и дальше начинается то, чего нет в картах: своя комиссия сети, свой курс на момент отправки, свои подтверждения блока и полная невозможность отменить транзакцию. Магазин, который включил крипту как «ещё одну кнопку», обычно узнаёт об этих отличиях уже на разборе спорного заказа.

Ниже — как устроен путь криптоплатежа от кнопки до зачисления, какие сети имеет смысл включать, в какой момент фиксируется курс, кто платит за перевод и что делать с недоплатой. Материал рассчитан на digital-проекты: подписки, доступы, цифровые товары и услуги для покупателей из разных стран.

Путь криптоплатежа от счёта до подтверждения в сети
Схема. Счёт создаётся на вашей стороне, перевод идёт в блокчейне, а статус возвращается отдельным серверным уведомлением.

Что происходит, когда покупатель платит криптой

Карточный платёж — это диалог: банк отвечает на запрос за секунды и говорит «да» или «нет». Криптоплатёж — это уведомление постфактум. Покупатель отправляет перевод сам, из своего кошелька или с биржи, а система оплаты лишь наблюдает за адресом и ждёт, когда деньги придут.

Практически путь выглядит так. Ваш сервер создаёт счёт с суммой в рублях или долларах. Платёжный сервис пересчитывает её в выбранную монету по текущему курсу и выдаёт адрес и точную сумму перевода. Покупатель копирует адрес либо сканирует QR-код, отправляет средства и возвращается на страницу заказа. Сеть подтверждает транзакцию, сервис ловит её и отправляет вам серверное уведомление о смене статуса.

01
Счёт на вашей сторонеСумма, валюта, идентификатор заказа. Сумма в монете считается сервисом, а не вручную.
02
Перевод покупателемАдрес и точная сумма. Кошелёк выдаётся под конкретный счёт, а не один общий на весь магазин.
03
Уведомление серверуСтатус приходит на ваш webhook. Браузер покупателя ничего не подтверждает.

Ключевое отличие от карт — источник правды. В карточной оплате можно опереться на редирект: покупатель вернулся с успешной страницы, значит платёж, скорее всего, прошёл. В крипте редиректа может не быть вовсе: человек отправляет перевод из мобильного кошелька, закрывает вкладку и ждёт письма. Единственный надёжный сигнал — серверное уведомление, и выдачу товара нужно вешать только на него.

Какие сети и монеты имеет смысл включать

Соблазн включить два десятка монет понятен, но каждая добавленная сеть — это отдельные правила комиссий, отдельная скорость подтверждений и отдельный источник ошибок покупателя. Практика показывает, что подавляющая часть оборота digital-проектов приходится на стейблкоины, и в первую очередь на USDT.

  • USDT в сети TRON (TRC-20) — самый частый выбор для платежей до нескольких сотен долларов: комиссия сети мала, подтверждение занимает секунды.
  • USDT в сети Ethereum (ERC-20) — привычен пользователям бирж и крупных кошельков, но комиссия зависит от загрузки сети и на мелких чеках способна съесть заметную долю суммы.
  • USDC — вторая по распространённости стабильная монета, часто встречается у покупателей из Европы и США.
  • BTC и ETH — их платят реже и обычно на крупные чеки; курс за время подтверждения успевает сдвинуться, и это надо учитывать в допуске.

Разумный старт — стейблкоин в двух-трёх сетях. Добавлять экзотику стоит тогда, когда покупатели о ней спрашивают, а не «на всякий случай»: длинный список монет на странице оплаты не повышает конверсию, а увеличивает число людей, которые выберут не то и отправят перевод не в ту сеть.

Курс: в какой момент он фиксируется

Цена товара живёт в рублях или долларах, а перевод приходит в монете. Между этими двумя величинами стоит курс, и главный вопрос — когда именно он зафиксирован.

Обычная схема: курс фиксируется в момент создания счёта и держится ограниченное время — как правило, от пятнадцати минут до часа. Внутри этого окна покупатель платит ровно ту сумму монеты, которую увидел. Если он ушёл думать и вернулся через два часа, счёт истёк, и сумму нужно пересчитывать заново. Это не придирка: за два часа биткойн спокойно двигается на несколько процентов, и оплаченный по старому курсу заказ окажется недоплаченным.

Со стейблкоинами колебание меньше, но оно есть. USDT — не константа: его цена относительно доллара ходит в пределах долей процента, а относительно рубля меняется вместе с рынком. Поэтому даже в стейблкоинах курс всё равно фиксируется на конкретный момент, а не берётся «примерно».

Отдельно посмотрите на наценку к курсу. У любого сервиса есть спред между биржевым курсом и тем, по которому он считает ваш счёт, — это и есть его заработок помимо явной комиссии. Спрашивайте не «сколько процентов комиссия», а «какая итоговая сумма зачислится при переводе на сто долларов»: этот вопрос закрывает и комиссию, и спред одним числом.

Комиссия сети: кто за неё платит

В карточном мире комиссию платит магазин, и покупатель о ней не думает. В крипте комиссий две, и их часто путают. Первая — комиссия сети за сам перевод: её платит отправитель, то есть покупатель, из своего кошелька. Вторая — комиссия сервиса за приём и конвертацию: её платит магазин, и она вычитается из зачисления.

Практический вывод: покупателю нужно показывать сумму, которую он должен отправить, отдельно от того, что спишет его кошелёк сверху за газ. Если этого не сделать, человек искренне отправит ровно указанную сумму минус комиссию своего кошелька — и получится недоплата на ровном месте. Формулировка «отправьте ровно 25,00 USDT, комиссия сети оплачивается вашим кошельком дополнительно» снимает половину обращений в поддержку.

Второй частый источник недоплаты — вывод с биржи. Многие биржи вычитают свою комиссию из суммы перевода, а не берут её сверху. Покупатель ставит «вывести 25 USDT», а на адрес приходит 24 USDT. Для магазина это выглядит как недоплата, для покупателя — как оплаченный заказ.

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

Три ситуации, которых в картах не бывает, и правила для них лучше написать заранее, а не придумывать в момент спора.

  • Недоплата. Пришло меньше, чем в счёте. Разумно задать допуск: расхождение в пределах, скажем, одного процента считать оплатой, крупную недоплату отправлять на ручной разбор с возможностью доплатить на тот же адрес.
  • Переплата. Пришло больше. Заказ выдаётся, а разница либо возвращается, либо остаётся авансом на следующий платёж — но выбранное правило должно быть написано в условиях, иначе спор гарантирован.
  • Опоздавший перевод. Счёт истёк, а деньги пришли через час. Средства никуда не делись, но привязать их к заказу автоматически уже нельзя. Нужен процесс: адрес по-прежнему принадлежит этому счёту, поэтому платёж находится по идентификатору и зачисляется вручную.

Уточните у сервиса, что происходит с такими платежами по умолчанию. Ответ «мы вернём отправителю» и ответ «мы зачислим по факту получения» ведут к совершенно разным сценариям поддержки.

Подтверждения сети и момент выдачи товара

Транзакция, попавшая в сеть, ещё не окончательна. Сеть подтверждает её блоками, и до определённого числа подтверждений теоретически возможна перестройка цепочки. Отсюда правило: доступ выдаётся не по факту появления транзакции, а по статусу, который присылает сервис после нужного числа подтверждений.

Для стейблкоина в быстрой сети это единицы секунд, для биткойна — десятки минут. Разница напрямую влияет на продукт: если вы продаёте мгновенный доступ, медленная сеть означает, что покупатель будет ждать у экрана. В этом случае честнее показать ожидаемое время прямо на странице оплаты, чем оставить человека гадать, дошёл ли перевод.

Как сверять криптоплатежи с заказами

Учёт криптоплатежей отличается от карточного тем, что у вас есть две независимые записи об одном событии: транзакция в блокчейне и строка в личном кабинете сервиса. Сверять нужно обе, и связывать их следует по идентификатору транзакции — хэшу, а не по сумме и времени. Совпадение по сумме обманчиво: два покупателя с одинаковым тарифом создают две неразличимые строки.

Практичный минимум — выгружать реестр платежей за период и сверять его с зачислениями на баланс. Расхождения обычно объясняются тремя вещами: комиссия сервиса, которую забыли учесть; платежи, попавшие в следующий период; и опоздавшие переводы, зачисленные вручную. Если расхождение не объясняется ни одной из трёх причин, это повод писать в поддержку с хэшем транзакции, а не пересчитывать таблицу ещё раз.

Возвраты работают не так, как в картах

Возврат криптоплатежа — это новый перевод, а не отмена старого. Отсюда следствия, которые стоит заложить в правила магазина: возврат идёт на адрес, который называет покупатель, и ответственность за правильность адреса лежит на нём; комиссию сети за обратный перевод кто-то должен оплатить; курс на момент возврата отличается от курса покупки, и вернуть «те же рубли» и «те же монеты» — это два разных обещания.

Зато у криптоплатежа нет чарджбэка: покупатель не может отозвать перевод через свой банк спустя месяц. Для проектов, которые страдают от карточных возвратов, это заметный аргумент — но он не отменяет обычных обязанностей продавца перед покупателем.

На что смотреть при выборе сервиса

Сравнивать криптоприём по одной цифре комиссии бессмысленно: итог складывается из спреда к курсу, комиссии за приём и условий вывода. Полезнее задавать сервису конкретные вопросы. Какая сумма окажется на балансе при переводе на сто долларов. Выдаётся ли под каждый счёт отдельный адрес или всем платят на один общий. Как обрабатываются недоплата и опоздавший перевод. Есть ли тестовый режим, в котором можно прогнать сценарии до запуска.

Отдельно спросите про вывод: в какой валюте он доступен, за какое время проходит и какая комиссия удерживается. Приём без внятного вывода — половина решения: деньги видно на балансе, но забрать их получается дольше и дороже, чем ожидалось при выборе.

Что подготовить перед подключением

Технически подключение занимает немного, если заранее собрать ответы на несколько вопросов. Какие монеты и сети вы включаете и почему именно их. Сколько живёт счёт и что показывать после истечения. Какой допуск по недоплате вы считаете приемлемым. Кто и как обрабатывает опоздавшие переводы. Где в интерфейсе покупатель видит, что комиссия сети оплачивается сверху. На какой адрес приходят серверные уведомления и как вы проверяете их подпись.

Последний пункт часто откладывают, и зря: уведомление о статусе — это команда «выдать товар», и принять её, не проверив подпись, означает раздать доступ любому, кто узнал адрес вашего обработчика. Проверка подписи и защита от повторной доставки — обязательная часть интеграции, а не улучшение на потом.

Дальше остаётся обычная работа: тестовый платёж на маленькую сумму в каждой включённой сети, проверка того, что заказ закрывается автоматически, и отдельный прогон сценария недоплаты — именно он чаще всего оказывается непроверенным до первого реального спора.

Частые вопросы

Какие монеты стоит включить в первую очередь?

Стейблкоин в двух-трёх сетях закрывает большую часть оборота digital-проектов: чаще всего это USDT в TRON и Ethereum плюс USDC. Длинный список монет конверсию не поднимает, зато увеличивает число переводов, отправленных не в ту сеть.

Кто платит комиссию сети — магазин или покупатель?

Комиссию за сам перевод платит отправитель, то есть покупатель, из своего кошелька. Магазин платит только комиссию сервиса за приём и конвертацию. На странице оплаты это нужно писать явно, иначе человек отправит сумму за вычетом газа и получится недоплата.

Сколько времени действует курс в счёте?

Обычно от пятнадцати минут до часа. Внутри окна покупатель платит ту сумму монеты, которую увидел; после истечения счёт нужно пересчитывать. Даже в стейблкоинах курс фиксируется на конкретный момент, а не берётся приблизительно.

Что делать, если пришло меньше, чем в счёте?

Заранее задать допуск: небольшое расхождение считать оплатой, крупную недоплату отправлять на ручной разбор с возможностью доплатить на тот же адрес. Чаще всего причина — биржа, которая вычла свою комиссию из суммы вывода, а не взяла её сверху.

Можно ли вернуть криптоплатёж?

Возврат — это новый перевод на адрес, который называет покупатель, а не отмена старого. Курс к моменту возврата уже другой, поэтому «вернуть те же рубли» и «вернуть те же монеты» — разные обещания, и правило лучше описать в условиях магазина заранее.

Источники и документация