Как принимать оплату биткоином на сайте: руководство для бизнеса

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

Обновлено: 5 мин чтения
Покупатель сканирует QR-код Bitcoin на странице оплаты

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

В этом руководстве разберём варианты, как устроена оплата биткоином на практике, сколько подтверждений ждать и как справляться с колебаниями курса и комиссиями. Текст написан для интернет-магазинов, SaaS, хостинга и продавцов цифровых товаров.

Зачем вообще принимать биткоин?

  • Покупатели, у которых уже есть BTC: биткоин по-прежнему первая криптовалюта, о которой думает большинство. Если он есть среди способов оплаты, у клиента на одну причину меньше уйти.
  • Нет чарджбэков: банк плательщика не может отменить подтверждённую транзакцию в сети Bitcoin. Возврат возможен только по вашему решению.
  • Покупатели из любой страны: оплата проходит без отказов по зарубежным картам.
  • Второй канал приёма платежей: если эквайер заморозит аккаунт, заказы продолжат приходить в крипте.

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

Три способа принимать платежи в биткоинах

Личный кошелёкСвой платёжный серверПлатёжный шлюз для биткоина
ЗапускМинутыДни: сервер, нода или индексатор, обновленияЗаявка мерчанта, затем вызов API или платёжные ссылки
Привязка платежа к заказуВручную через обозреватель блоковАвтоматическиАвтоматически, отдельный адрес на каждый счёт
Курс при оплатеСчитаете самиАвтоматическиФиксируется на время жизни счёта
Уведомления о заказеНетЗависит от настройкиПодписанные вебхуки на ваш сервер
ОбслуживаниеНе нужноПостоянно, на васНа стороне шлюза
Кому подходитДля редких ручных продажКомандам с ресурсами на поддержкуБизнесу, которому нужно, чтобы всё просто работало

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

Как работает оплата биткоином через платёжный шлюз

В mistKET биткоин проходит тот же путь, что и остальные активы платформы:

  1. Ваш бэкенд создаёт счёт: один подписанный запрос к API с суммой, валютой цены (USD, EUR, GBP, TRY, RUB или AED) и номером заказа. В ответ приходит ссылка на страницу оплаты. Счёт можно создать и в панели мерчанта, а ссылку отправить в чат или по почте.
  2. Покупатель открывает страницу оплаты: видит точную сумму в BTC, адрес native SegWit и QR-код. QR использует стандартный URI bitcoin:, поэтому большинство кошельков сами подставляют адрес и сумму.
  3. Курс зафиксирован: сумма в BTC не меняется, пока счёт действителен.
  4. Шлюз видит транзакцию: неподтверждённые транзакции замечаются уже в мемпуле, и покупатель сразу видит сообщение «платёж получен».
  5. Подтверждения отслеживаются: когда их набирается достаточно, ваш сервер получает подписанные вебхуки invoice.paid и invoice.confirmed (HMAC-SHA256). Как их проверять, мы рассказали в статье о вебхуках криптоплатежей.
  6. Баланс пополняется: платёж за вычетом согласованной комиссии зачисляется на ваш баланс в BTC, а вывод на свой адрес вы запрашиваете когда угодно.
Важно: в mistKET биткоин (и лайткоин) подключается для каждого мерчанта отдельно. Укажите это в заявке вместе с ожидаемым объёмом, и команда включит его в вашем аккаунте.

Подтверждения: когда можно отдавать заказ?

Транзакция в мемпуле уже отправлена в сеть, но ещё не попала в блок. До подтверждения её в редких случаях могут заменить или она может выпасть. Каждый следующий блок сверху делает отмену намного менее вероятной. В сети Bitcoin блок появляется в среднем раз в десять минут, но интервалы сильно плавают.

Сейчас mistKET ждёт два подтверждения в сети Bitcoin, прежде чем отметить счёт подтверждённым. Разумная политика выдачи:

Что вы продаётеКогда выдавать
Мгновенные цифровые товары, лицензии, пополненияПосле invoice.confirmed
Физические товары с отправкой через несколько днейСобирать по invoice.paid, отправлять после invoice.confirmed
Подписки и хостингАктивировать после invoice.confirmed; предупредить, что обычно это занимает 10–30 минут

Сразу предупредите покупателей, что подтверждение биткоина идёт дольше, чем оплата картой. Одна фраза на странице заказа снимает большинство вопросов «где мой заказ?».

Волатильность, комиссии и неверные суммы

Колебания курса

Вы указываете цену в фиате, например 49 USD, и счёт пересчитывает её в BTC по зафиксированному курсу. Дальше у вас биткоины, и их стоимость продолжает меняться. Балансы в mistKET ведутся по каждому активу отдельно: платёж в BTC остаётся в BTC, пока вы его не выведете. Если курсовой риск не нужен, выводите средства регулярно и конвертируйте на своей бирже, либо направляйте в USDT тех покупателей, которым всё равно, чем платить.

Комиссия сети

Комиссию сети Bitcoin при отправке платит покупатель. Важна сумма, которая дошла до адреса. Те, кто выводит с биржи, иногда забывают, что биржа удерживает собственную комиссию за вывод, и приходит меньше. Страница оплаты об этом предупреждает, но стоит повторить это и в ваших инструкциях.

Недоплата и переплата

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

Пошаговая настройка приёма биткоина

  1. Подайте заявку мерчанта: сайт, тип бизнеса, ожидаемый объём и нужные активы, включая биткоин. Команда проверяет каждую заявку перед выдачей API-ключей.
  2. Определите правило выдачи: запишите, когда заказ выдаётся, по таблице подтверждений выше.
  3. Интегрируйте: создавайте счета одним подписанным POST-запросом и обрабатывайте вебхук. Подойдёт любой язык, который умеет отправлять HTTPS-запросы и считать HMAC; эндпоинты описаны в документации API. Без API можно работать через платёжные ссылки из панели.
  4. Проверьте на небольшой сумме: оплатите реальный счёт сами, проследите статусы «ожидание», «оплачен», «подтверждён» и убедитесь, что система заказов реагирует правильно.
  5. Напишите понятную инструкцию: «Оплатите в BTC в сети Bitcoin. Отправьте точную сумму; при оплате с биржи добавьте её комиссию за вывод».
  6. Наладьте регулярный вывод: запрашивайте выплаты на свой кошелёк по расписанию. Каждая выплата сразу резервируется, отправляется после одобрения и фиксируется с хэшем транзакции.

Частые ошибки

  • Один адрес для всех покупателей: сверка становится невозможной.
  • Выдача цифрового товара по неподтверждённой транзакции.
  • Крипта спрятана в самом низу страницы оплаты.
  • Приём платежа не в той сети. Биткоин, отправленный на адрес другого блокчейна, шлюз сопоставить не сможет.
  • Игнорирование ошибок вебхуков. Логируйте каждую доставку и делайте обработчик идемпотентным по номеру заказа, ведь вебхуки могут приходить повторно.

Налоги, учёт и законодательство

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

Больше общей информации в нашем руководстве о том, как принимать криптовалюту на сайте.

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

Как принимать оплату биткоином на сайте?
Через платёжный шлюз: сайт создаёт счёт, покупатель платит на странице оплаты по QR-коду, а ваш сервер получает подписанный вебхук после подтверждения платежа. Один адрес кошелька подходит лишь для нескольких ручных продаж.
Сколько подтверждений нужно ждать?
Для мгновенных цифровых товаров ждите, пока шлюз отметит платёж подтверждённым. Сейчас mistKET использует два подтверждения для биткоина, обычно это 10–30 минут, но время блока бывает разным.
Поддерживает ли mistKET биткоин?
Да. Bitcoin и Litecoin поддерживаются и подключаются для мерчанта по запросу. Также доступны USDT в сетях TRON, BNB Smart Chain, Ethereum и Arbitrum, а ещё TRX, BNB и ETH.
Что будет, если покупатель отправит меньше BTC?
Счёт помечается как недоплаченный, и покупатель может доплатить остаток до продлённого срока. Вы получаете вебхук с ожидаемой и полученной суммой.
Конвертируется ли биткоин в доллары автоматически?
Нет. Балансы ведутся по активам, поэтому BTC остаётся в BTC, пока вы не запросите вывод на свой адрес. Чтобы снизить курсовой риск, выводите чаще или предлагайте также USDT.

Похожие статьи