Два из трёх шлюзов, которые в 2026 называют некостодиальными, всё-таки держат твои средства несколько минут — и только один из трёх не касается их вообще. Лейбл «non-custodial» прячет trade-off, который и решает этот пост: где именно лежат BTC покупателя в момент, когда инвойс закрывается? Этот roundup проходит путь BTC-платежа в SwapZilla Pay, self-hosted BTCPay Server и процессинге NOWPayments, цифры зафиксированы на snapshot от 2026-05-15. Если ты мерчант или разработчик, выбирающий стек, ответ зависит не столько от строчки с комиссией, сколько от того, сколько custody ты готов отдать ради удобства.
Три варианта «non-custodial» — и почему лейбл прячет настоящий tradeoff
Все три провайдера называют себя некостодиальными, и на поверхности это так: ни один из них не биржа, куда ты заводишь средства и доверяешь balance sheet. Но «non-custodial» — это спектр, не выключатель. Разница важна для любого мерчанта, у которого в threat model есть замороженная выплата, регуляторный subpoena или многочасовой outage посреди инвойса на $4,000.
| Модель | Где BTC лежит во время платежа | Окно custody |
|---|---|---|
| SwapZilla Pay | Адрес ликвидности провайдера → кошелёк мерчанта | Ноль на стороне SwapZilla; провайдер держит только во время swap |
| BTCPay Server | Покупатель → адрес мерчанта от xpub | Ноль; единственный signer — сам мерчант |
| NOWPayments | Покупатель → адрес NOWPayments → кошелёк мерчанта | Короткое — NOWPayments держит во время forward |
BTCPay сидит на жёстком конце: покупатель платит на адрес, который может потратить только xpub мерчанта. SwapZilla Pay посередине — средства касаются адреса ликвидности провайдера в рамках routing’а, но ни разу не кошелька SwapZilla, а сконвертированный output уходит прямо мерчанту. NOWPayments ближе всех к классическому процессингу: адрес депозита принадлежит NOWPayments, а средства форвардятся мерчанту вторым on-chain хопом. Их собственная документация описывает эту двухшаговую модель.
«Non-custodial» — это спектр, не выключатель. Правильный вопрос к любому шлюзу: какого кошелька средства покупателя касаются первым — и сколько хопов до твоего.
Setup и операционка: сколько реально надо, чтобы начать принимать платежи
Самый быстрый путь до рабочего инвойса — главный фильтр между тремя.
SwapZilla Pay. Открываешь /pay/, вставляешь адрес назначения, выбираешь актив, ставишь сумму, генеришь ссылку. Никакого dashboard, никакого API key, никакого DNS, никакой ноды. Отправляешь ссылку в Telegram, на email или через QR. Сама ссылка несёт quote и refund_address, который можно задать при создании. От «хочу принимать BTC» до «у покупателя есть ссылка» — меньше минуты.
BTCPay Server. Поднимаешь VPS, ставишь BTCPay (Docker compose или one-click LunaNode), синхронизируешь Bitcoin-ноду (~600 GB pruned по желанию), настраиваешь store, направляешь домен на инстанс, включаешь Lightning при необходимости. Один вечер sysadmin-работы для компетентного оператора. Опционально — арендовать hosted BTCPay у LunaNode или Voltage, если не хочешь возиться с lifecycle ноды, но это снова возвращает третью сторону в схему.
NOWPayments. Регистрация по email, прохождение dashboard, генерация API key, опционально KYB-документы для зарегистрированного бизнеса. Конфиг webhook’ов добавляет ещё шаг для разработчиков. Время до первого инвойса — обычно 15–30 минут, если всё гладко.
Если цель — потестить приём крипты до того, как вкладываться в инфраструктуру, payment-link модель SwapZilla Pay даёт самый низкий порог входа. BTCPay оправдывается, когда ты точно знаешь, что нужен суверенитет, и есть ресурс на ops.
Custody, refund flow и «кто держит мои BTC прямо сейчас?»
Если пройти путь BTC-платежа в каждом шлюзе пошагово, разница становится резче.
SwapZilla Pay (платят в BTC, получают BTC). Покупатель сканит QR или открывает ссылку → его кошелёк отправляет BTC на адрес депозита из нашего routing → провайдер выполняет операцию (фактически same-coin перевод с тонким спредом за routing) → кошелёк мерчанта получает BTC. SwapZilla средства не держит; провайдер удерживает их только на шаге confirm-and-forward — обычно меньше 15 минут end-to-end.
SwapZilla Pay (платят в BTC, получают USDT). Тот же flow, но провайдер делает реальный swap BTC → USDT до выплаты. Мерчант получает USDT в сети, которую сам выбрал. Покупатель конвертации не видит вообще.
BTCPay Server. Кошелёк покупателя отправляет BTC на receive-адрес, выведенный из xpub мерчанта. Тратить может только мерчант. Никакого forward, никакого провайдера, никаких посредников. Окно custody — ноль: средства приходят сразу на кошелёк, которым владеет мерчант.
NOWPayments. Кошелёк покупателя отправляет BTC на адрес под контролем NOWPayments. NOWPayments подтверждает депозит, потом форвардит на адрес мерчанта вторым on-chain хопом. Окно custody короткое, но реальное, и второй хоп добавляет время confirmations.
История с refund’ами повторяет историю с custody. У SwapZilla Pay refund_address, который ты задаёшь при создании ссылки, — это адрес, куда провайдер вернёт переплату или средства протухшего депозита. Точный паттерн — в pay docs. Возвраты BTCPay идут с ноды мерчанта, полностью суверенно. Возвраты NOWPayments идут через их dashboard, support-команда в цикле.
Комиссии и rate spread на инвойсе $200
Apples-to-apples на BTC-платеже в $200 с выплатой в BTC:
| Шлюз | Base fee | Rate spread | Hosting/ops | Время на оседание |
|---|---|---|---|---|
| SwapZilla Pay | Нет на ссылке | ~0.95% медианный спред (BTC, данные агрегатора 2026-05-07) | Нет | ~12 мин медиана |
| BTCPay Server | 0% протокол-fee | 0% (прямой платёж) | ~$8–15/мес VPS + нода | ~10 мин на 1-conf |
| NOWPayments | 0.5% base | Плюс conversion fee при auto-конверсии | Нет | ~15 мин (включая forward) |
Пара честных замечаний. 0% у BTCPay — это реальная цифра для самого протокола, но она не включает стоимость hosting’а: VPS, электричество если self-host дома, твоё время. Для большинства мерчантов это всё равно дешевле, чем 0.5% от выручки, но линия проходит не на нуле. Спред SwapZilla Pay зашит в quote, который покупатель видит, поэтому мерчант всегда точно знает, сколько придёт. Base fee NOWPayments относится к mono-currency расчёту; если хочешь USDT вместо BTC, который отправил покупатель, сверху накручивается отдельная conversion fee.
Для фрилансера с инвойсами до $1,000 в месяц абсолютная разница в комиссиях между тремя — это доллары, не десятки долларов. Доминирует стоимость setup’а.
Идентификация, лимиты и требования к аккаунту
Вопрос регистрации — место, где шлюзы расходятся сильнее всего.
SwapZilla Pay. Никакого аккаунта мерчанта. Никакого dashboard. Никакого API key. Создание ссылки — разовая операция, состояние несёт сама ссылка. Идентификация на стороне SwapZilla не собирается. Отдельные провайдеры в нашем routing могут применять усиленные проверки на больших суммах (обычно выше $5,000–$10,000 эквивалента), но для инвойсов нормального размера никакой верификации.
BTCPay Server. Не применимо. Никакой третьей стороны для регистрации не существует — ты сам та третья сторона. Модель регистрации звучит как «установи софт».
NOWPayments. Регистрация по email обязательна. Dashboard требует onboarding. Пороги верификации личности применяются на больших объёмах; их документация ссылается на усиленные проверки флагнутых аккаунтов. Средне-крупные мерчанты обычно проходят без ручной проверки, но политика — их.
Если требование «вообще без регистрации мерчанта», выбор сужается до SwapZilla Pay и BTCPay. Между ними — это удобство против суверенности.
Покрытие монет, сетей и developer experience
Покрытие монет — место, где видно поверхность NOWPayments.
SwapZilla Pay. BTC и Lightning нативно. Адрес назначения может быть в любом активе, который поддерживает swap-агрегатор — включая XMR через private-quote pipeline. Developer surface: одна payment link с опциональным refund_address. Webhook-интеграция через тот же бэкенд, что и у swap-виджета.
BTCPay Server. BTC и Lightning из коробки. XMR через Monero-плагин (требует Monero-ноду рядом с BTC). Прочие активы — через плагины разной степени поддержки. Developer surface: Greenfield API, зрелый и хорошо задокументированный; де-факто reference implementation для индустрии.
NOWPayments. Самый широкий список монет — BTC и Lightning, ERC-20 (USDT, USDC), TRC-20, BEP-20, Solana, Polygon и десятки альткоинов. XMR удалили из публичного списка в волне делистинга 2024-го и пока не вернули. Developer surface: REST API, webhooks, плагины для основных commerce-платформ (WooCommerce, Shopify, Magento). Самая большая off-the-shelf интеграционная история из трёх.
Для single-coin мерчанта с упором на BTC все три конкурентны по покрытию. Для multi-chain мерчанта, принимающего стейблы в пяти сетях, покрытие NOWPayments имеет значение. Для privacy-ориентированного мерчанта, которому нужен XMR-settlement, чисто сегодня сработают только SwapZilla Pay и BTCPay-с-плагином.
Отдельно про webhooks: все три шлюза дают webhook на переходы статуса платежа, но семантика ошибок разная. У SwapZilla Pay статусы матчатся со state machine swap-движка — NEW, WAIT_DEPOSIT, CONFIRMING, EXCHANGING, SENDING, DONE, TIME_EXPIRED, FAILED, REFUNDED. У BTCPay события инвойса проще — invoice-paid / invoice-expired, с дополнительной детализацией через Greenfield. NOWPayments шлёт payment-status события со своими процессинг-специфичными лейблами. Если интегрируешь в существующую order-систему, закладывай label-translation в webhook handler независимо от выбора шлюза.
Какой шлюз для какого мерчанта
Честный ответ — правильный шлюз зависит от того, что ты оптимизируешь. По категориям:
- Самый быстрый setup → SwapZilla Pay. Zero-setup payment link. От «хочу принимать BTC» до «у покупателя есть ссылка» — меньше минуты.
- Дешевле всего на масштабе → BTCPay Server. 0% протокол-fee, платишь только за hosting. Окупается выше ~$5k оборота в месяц, где спред у других шлюзов превышает счёт за VPS.
- Меньше всего трения для покупателя → SwapZilla Pay или BTCPay. Оба держат покупателя в одном шаге «отправь BTC на этот адрес»; NOWPayments добавляет confirmation-хоп, который иногда чувствуется.
- Самый широкий список монет и сетей → NOWPayments. Multi-chain приём стейблов из коробки. Если на вторник нужен BEP-20 USDT, а на среду — Solana USDC, это путь наименьшего сопротивления.
- Вообще без регистрации мерчанта → SwapZilla Pay. Никакого dashboard, никакого API key, никакого аккаунта.
- Максимальная суверенность → BTCPay Server. Единственная модель, где никакая третья сторона не касается средств и не может быть subpoena’ена.
Если стартуешь с нуля и сегодня надо отправить один BTC-инвойс — заходи на /pay/. Это самый дешёвый способ узнать, подходит ли тебе приём крипты, до того, как заводить ноду или аккаунт у процессинга.
Ещё один недооценённый фактор — стоимость переезда. Payment-link несёт состояние в самом URL, поэтому уйти от SwapZilla Pay — это просто начать генерировать ссылки в другом месте со следующего месяца, мигрировать нечего. BTCPay держит store data, историю инвойсов, refund-записи и derivation paths внутри инстанса — миграция превращается в реальный engineering-проект. NOWPayments привязывает к аккаунту с историческими данными; уход означает перезаведение клиентов на новый payment flow. Если не уверен, где осядет твой оборот, начни с варианта, который дешевле всего покинуть.
Methodology
Цифры в этом сравнении собраны 2026-05-15 и отражают публично доступную информацию на эту дату.
Данные SwapZilla Pay взяты из нашего внутреннего датасета агрегатора (src/data/provider-stats.ts, последний refresh 2026-05-07). avgTimeMin для BTC-платежей — медиана по поддержанным провайдерам в нашем routing для BTC-свапов; rateSpread — медианный спред в процентах от mid-market по тому же набору. Min/max swap amounts — самые либеральные цифры в нашем enabled-наборе провайдеров на эту дату. Это наши собственные продуктовые данные.
Данные BTCPay Server взяты из официальной документации BTCPay Server и опубликованного FAQ проекта (btcpayserver.org/docs). BTCPay — open-source и self-hosted; 0% rate spread отражает отсутствие протокол-fee, а не отсутствие стоимости — hosting (VPS, полная Bitcoin-нода, опционально Lightning-нода) лежит на мерчанте и обходится примерно в $8–15/месяц для типичного небольшого деплоя. Время confirmations — для mainnet Bitcoin при 1-conf settlement.
Данные NOWPayments взяты из опубликованного fee schedule NOWPayments и документации для мерчантов, перепроверены по сторонним обзорам 2026 года. Base fee 0.5% применяется к mono-currency расчёту; auto-конверсия накручивает отдельный conversion fee. Двухшаговая модель forward’а описана в их собственной merchant-документации.
Disclosure. SwapZilla публикует этот пост и конкурирует в той же категории, что и BTCPay и NOWPayments. Мы не связывались с этими проектами для подготовки сравнения. Где цифра допускала несколько прочтений, мы выбирали самое выгодное для конкурента. Methodology выше — это твой инструмент проверки нас: если какая-то цифра расходится с актуальными данными, корректный способ оспорить — прислать нам источник.
| Провайдер | Время | Спред | Мин | Макс | Аккаунт | Сети |
|---|---|---|---|---|---|---|
| swapzilla-pay | 12 мин | 0.95% | $30 | $1M | Не нужен | bitcoin, lightning |
| btcpay | 10 мин | 0.00% | $0 | $0 | Не нужен | bitcoin, lightning |
| nowpayments | 15 мин | 0.50% | $0 | $0 | Нужен | bitcoin, lightning, erc20, trc20, bep20, solana, polygon |
Минимальное среднее время выполнения свапа
Минимальный спред курса от mid-market
Лучший курс среди провайдеров без аккаунта
Максимальный лимит на одну транзакцию