BTCPay сервер — для чего он нужен? Руководство по установке и интеграции.

Все новости про Zcash в социальной сети «X» (бывший Twitter)  |  Интересные видео про Zcash на YouTube

Автор: ruzcash (01.08.2025)

⚠️ ВАЖНО! Прочитайте информацию внизу текста данной статьи!

Для чего нужна связка BTCPay сервер + Zcash?

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

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

  • проследить, когда и сколько средств было отправлено,
  • узнать, откуда они пришли и куда ушли после,
  • при наличии хотя бы одной точки сопоставления (например, утекший email, имя получателя или адрес доставки) — связать криптовалютный адрес с конкретным человеком.

Это означает, что одна единственная покупка может раскрыть всю финансовую историю пользователя. И наоборот: если адрес продавца где-либо засветился, он тоже становится уязвимым. Конкуренты, посредники и сторонние наблюдатели получают возможность отслеживать объёмы продаж, активность поставок и структуру бизнес-потоков.

Решением этой проблемы может стать связка BTCPayServer и Zcash

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

Zcash — криптовалюта, построенная на доказательствах с нулевым разглашением (zero-knowledge proofs). В ней реализована полноценная модель конфиденциальных транзакций: при использовании приватных адресов (далее для краткости будем называть их адресами, подразумевая, что они приватные), который ни отправитель, ни получатель, ни сумма не раскрываются в блокчейне. Для интернет-магазинов это значит, что:

  • Покупатель может оплатить заказ, не раскрывая свою финансовую историю.
  • Продавец получает оплату, не раскрывая свой адрес, объёмы продаж или структуру транзакций.
  • Никакой сторонний наблюдатель не сможет связать факт оплаты с содержимым заказа или персональными данными клиента.

Пример из практики

Допустим, пользователь заказывает товар и выбирает оплату в биткоине или USDT. Сайт генерирует адрес, отображает сумму, и после оплаты этот адрес фиксируется в блокчейне. Он становится публичным. Злоумышленнику достаточно один раз сопоставить заказ с адресом, чтобы получить постоянный доступ ко всей истории движения средств.

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

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

Что делает BTCPayServer — пошагово

BTCPayServer обрабатывает криптовалютные платежи в интернет-магазине, связывая заказы с поступающими транзакциями. Вот как это работает:

  1. Покупатель оформляет заказ в интернет-магазине. Это может быть WooCommerce, Magento или любой другой движок с интеграцией BTCPay.
  2. Магазин запрашивает у BTCPayServer платёжную ссылку. Сервер создаёт уникальный счёт (invoice) с суммой, таймером и адресом для оплаты.
  3. Покупатель видит платёжную страницу и отправляет ZEC на указанный Zcash-адрес (например, shielded zs..).
  4. Сервер отслеживает блокчейн, сверяя сумму, адрес и метку времени. Как только нужная транзакция найдена и подтверждена, BTCPay уведомляет магазин.
  5. Клиент получает подтверждение об оплате. При необходимости сервер отправляет чек или квитанцию по e-mail.

Весь процесс происходит автоматически, без посредников и сторонних сервисов. BTCPayServer не управляет средствами и остаётся логическим мостом между заказом и блокчейном.

Где хранятся средства и кто контролирует приватные ключи

BTCPayServer не является кошельком и не требует приватных ключей. Все средства поступают напрямую в кошелёк продавца, а безопасность обеспечивается за счёт архитектуры на основе viewing key.

Как это устроено:

  1. Кошелёк создаётся заранее. Продавец использует совместимый с viewing key Zcash-кошелёк — например, YWallet или Zingo! Wallet. Полный список можно найти на ZecHub.wiki. Для организаций возможна интеграция с аппаратными кошельками или — в будущем, с мультиподписью на базе технологии FROST.
  2. BTCPayServer подключается к кошельку через viewing key. Это односторонний ключ, который позволяет видеть входящие транзакции и генерировать новые адреса, но не даёт доступа к средствам. Сервер не требует ни seed-фразы, ни приватных ключей.
  3. Взаимодействие с сетью происходит через lightwalletd. Можно использовать публичный сервер zec.rocks или развернуть собственный узел Zebra + lightwalletd для полной автономии.
  4. Каждому заказу соответствует уникальный адрес. Криптографические свойства viewing key позволяют генерировать новый адрес под каждый invoice, обеспечивая привязку к заказу и защиту от повторного использования.
  5. Контроль над средствами остаётся у продавца. Даже в случае компрометации сервера, атакующий не получит доступ к деньгам — только к информации о заказах.

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

Как настроить BTCPayServer для приёма Zcash

В предыдущих разделах мы рассказали, как BTCPayServer работает с Zcash и почему это важно для сохранения конфиденциальности пользователей. Теперь пора перейти к практике.

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

Мы шаг за шагом разберём:

1. Развёртывание BTCPay Server

Теперь перейдём к практике. В этом разделе настроим BTCPay Server с поддержкой Zcash — как на новом VPS, так и на уже работающем сервере. Если у вас BTCPay уже установлен (например, для приёма BTC или Lightning), достаточно просто подключить плагин ZEC, не переустанавливая систему.

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

Актуальная англоязычная документация по плагину доступна в этом репозитории.

Рекомендуемая конфигурация на VPS

Перед установкой убедитесь, что у вас:

  • VPS с Ubuntu 22.04+
  • домен, настроенный через DNS на IP вашего сервера
  • установлен git и docker с docker-compose
  • открыт SSH-доступ к серверу

Подробнее об этих шагах

1. VPS с Ubuntu 22.04 или новее
Рекомендуется использовать минимальную установку Ubuntu Server 22.04 LTS. Подойдёт любой VPS-провайдер с возможностью выделенного IP-адреса. Минимальные ресурсы — 2 ядра, 4 ГБ ОЗУ и 40 ГБ диска. Этого будет достаточно, если вы не планируете использовать полную ноду Zcash. В противном случае потребуется как минимум 300 ГБ свободного места на диске.

2. Доменное имя, указывающее на ваш сервер
В панели управления вашим DNS-провайдером создайте A-запись для поддомена (например, btcpay.example.com) и укажите IP-адрес вашего VPS. Этот домен будет использоваться для доступа к BTCPayServer через браузер и для автоматического получения SSL-сертификата (это важно для безопасной работы сервиса).

3. Подключение к серверу по SSH
Чтобы выполнить установку, подключитесь к вашему серверу по SSH с локального компьютера. В терминале выполните команду:

ssh root@IP_АДРЕС_СЕРВЕРА

Если вы используете macOS, Linux или WSL на Windows — терминал уже поддерживает SSH. Если у вас Windows без WSL, можно использовать PuTTY или другой SSH-клиент.

4. Установка git, Docker и docker-compose
После подключения обновите пакеты и установите необходимые компоненты:

sudo apt update && sudo apt upgrade -y sudo apt install git curl docker.io docker-compose -y sudo systemctl enable docker

Этого достаточно для подготовки окружения к установке BTCPayServer.

Шаг 1. Клонируем репозиторий

Создайте рабочую директорию и загрузите туда проект BTCPayServer:

mkdir BTCPayServer
cd BTCPayServer
git clone https://github.com/btcpayserver/btcpayserver-docker
cd btcpayserver-docker

Шаг 2. Экспортируем переменные окружения

Убедитесь, что вы указываете свой домен:

export BTCPAY_HOST="btcpay.example.com"  # замените на ваш домен
export NBITCOIN_NETWORK="mainnet"
export BTCPAYGEN_CRYPTO1="btc"
export BTCPAYGEN_CRYPTO2="zec"
export BTCPAYGEN_REVERSEPROXY="nginx"
export BTCPAYGEN_LIGHTNING="none"

Если вы планируете добавить Monero, Litecoin (в текущее время есть плагины только для этих 3-х альткоинов) — укажите их через дополнительные строки экспорта:

export BTCPAYGEN_CRYPTO3="ltc"
export BTCPAYGEN_CRYPTO4="xmr"

Новые монеты подключаются таким образом и в уже работающем BTCPayServer — просто добавьте нужные строки командой export, затем перезапустите инсталляцию:

. ./btcpay-setup.sh -i

А в этом гайде мы сосредоточимся только на Zcash.

Шаг 3. Установка

Команда-скрипт, по которой вся система собирается:

. ./btcpay-setup.sh -i

Скрипт установит все необходимые зависимости, сгенерирует docker-compose, поднимет сервисы и настроит systemd. Это займёт около 5 минут. Если всё прошло успешно, BTCPay Server будет доступен по вашему адресу:

btcpay.example.com.

💡 Если вы ранее уже запускали BTCPay и меняете конфигурацию (например, добавляете монеты), не забудьте перезапустить сервер с новыми настройками:

cd ~/BTCPayServer/btcpayserver-docker
btcpay-down.sh
. ./btcpay-setup.sh -i

далее переходите к пункту настроек Zcash в интерфейсе BTCPay Server.

Подключение собственной полной ноды Zcash

Если вы не хотите полагаться на общедоступные узлы lightwalletd, вы можете развернуть собственную полную ноду Zcash и Lightwalletd на том же сервере. Это обеспечит полную автономию, без зависимости от внешней инфраструктуры.

Для этого нужно:

Шаг 1. Дисковое пространство

Полная нода Zcash (на базе Zebra) вместе с Lightwalletd занимает более 300 ГБ и продолжает расти. Убедитесь, что на сервере достаточно свободного места, желательно с запасом в 500+ ГБ, а если на этом сервере есть и другие сервисы то все 800+ ГБ (проверено практикой).

Полная нода Zcash на базе Zebra вместе с Lightwalletd требует не менее 300 ГБ свободного пространства.
Это связано с тем, что:

  • Сама база данных zebrad весит ≈ 260–270 ГБ.
  • Индексация lightwalletd занимает ещё ≈ 15–20 ГБ.

На практике рекомендуется:

  • минимум 400 ГБ — если сервер используется только для приёма ZEC;
  • 800+ ГБ — если на сервере работают вместе BTCPayServer, PostgreSQL, Nginx и другие сервисы.

💡 Идеально подойдёт SSD/NVMe-диск с запасом (1 ТБ) — особенно если вы не планируете регулярно чистить старые данные.

Шаг 2. Установите переменные окружения

Дополните конфигурацию дополнительной строками:

export BTCPAYGEN_EXCLUDE_FRAGMENTS="$BTCPAYGEN_EXCLUDE_FRAGMENTS;zcash"
export BTCPAYGEN_ADDITIONAL_FRAGMENTS="$BTCPAYGEN_ADDITIONAL_FRAGMENTS;zcash-fullnode"

Это подключит фрагмент zcash-fullnode, который запускает как zebrad, так и lightwalletd внутри BTCPay Server.

Шаг 3. Повторно выполните установку

. ./btcpay-setup.sh -i

Скрипт скачает Docker-образы Zebra и Lightwalletd, создаст сервисы в составе BTCPayServer и подключит плагин к локальному lightwalletd на этом же сервере.

💡 Полная синхронизация может занять до нескольких суток — особенно на VPS с ограниченными ресурсами. Пока синхронизация не завершена, приём shielded-платежей будет недоступен.

Подключение к внешнему lightwalletd (кастомные настройки)

В большинстве случаев полная автономия не требуется и мерчант может не захотеть тратить время и ресурсы на установку полной ноды Zcash. Поэтому по умолчанию BTCPayServer разворачивается с подключением к общедоступному узлу lightwalletd. Это позволяет принимать shielded-платежи без загрузки всего блокчейна, а все настройки занимают менее получаса.

По умолчанию используется узел https://zec.rocks, но вы можете указать любой другой — например, https://lightwalletd.example:443. В этом пункте мы рассмотрим настройку подключения к внешнему узлу через конфигурационный файл.

💡 Полный пример с переменными окружения опубликован в репозитории плагина. Для нашей задачи достаточно минимальной версии:

Шаг 1. Создаём пользовательский фрагмент

Перейдите в директорию btcpayserver-docker и создайте файл конфигурации:

cd ~/BTCPayServer/btcpayserver-docker
mkdir -p docker-compose-generator/docker-fragments
nano docker-compose-generator/docker-fragments/zcash-lightwalletd.custom.yml

Вставьте в файл минимальный фрагмент, отключающий встроенные контейнеры Zcash:

exclusive:
- zcash

Этот параметр сообщает BTCPay Server не запускать встроенные сервисы zcash-fullnode и lightwalletd, чтобы вы могли использовать внешний узел.

Шаг 2. Указываем переменные окружения

В терминале выполните:

export BTCPAYGEN_EXCLUDE_FRAGMENTS="$BTCPAYGEN_EXCLUDE_FRAGMENTS;zcash"
export BTCPAYGEN_ADDITIONAL_FRAGMENTS="$BTCPAYGEN_ADDITIONAL_FRAGMENTS;zcash-lightwalletd.custom"

Шаг 3. Указываем адрес внешнего узла

Откройте файл .env:

nano .env

Добавьте строку:

ZCASH_LIGHTWALLETD=https://lightwalletd.example:443

Вы можете использовать любой внешний lightwalletd‑сервер, например:

  • общедоступный, такой как https://lightwalletd.zcash-infra.com;
  • или собственный узел, развернутый отдельно от BTCPay Server.

💡 Если внешний lightwalletd будет недоступен или перегружен, приём shielded-платежей не сработает. Для критичных сервисов рекомендуется использовать проверенные временем узлы (по умолчанию выбран именно такой).

💡 Если вы хотите поднять свой собственный lightwalletd, один из возможных способов — использовать файл docker-compose.lwd.yml из репозитория Zebra. Обратите внимание, что этот файл не является частью официальной документации. Он создан для локальной разработки и требует ручной настройки TLS, проброса портов и фаервола. Подходит только для опытных пользователей.

Шаг 4. Повторно запускаем установку

. ./btcpay-setup.sh -i

BTCPay Server применит кастомную конфигурацию и подключится к указанному узлу.

С этого момента плагин будет использовать внешний lightwalletd для обработки shielded‑транзакций.

2. Запуск BTCPay Server с помощью Cloudflare Tunnel

Если вы хотите принимать платежи в Zcash, размещая BTCPay Server на домашнем ПК — например, на Raspberry Pi 5 или сервере без выделенного IP, то можно использовать Cloudflare Tunnel. Это безопасный и удобный способ опубликовать ваш сервер в интернете, не раскрывая реальный IP-адрес и не пробрасывая порты на роутере.

Такой вариант имеет ряд плюсов, и самый очевидный из них является экономия на аренде VPS. Особенно это актуально, если приём криптоплатежей — это скорее опциональный энтузиазм, а не основа бизнес-модели.

Шаг 1. Установите Cloudflare Tunnel

Сначала создайте учётную запись на Cloudflare.com и добавьте туда ваш домен. Это необходимо для последующей публикации BTCPay Server через защищённый туннель.

На вашем (домашнем) сервере выполните установку:

sudo apt update
sudo apt install cloudflared

Затем авторизуйтесь в Cloudflare:

cloudflared tunnel login

Команда откроет окно в браузере, где нужно выбрать аккаунт и подтвердить доступ. После этого на сервер будет автоматически загружен credentials‑файл с токеном подключения.

Создайте туннель с произвольным именем (например, btcpay):

cloudflared tunnel create btcpay

После выполнения этой команды будет создан туннель и сгенерирован файл btcpay.json, который содержит идентификатор и ключи — они понадобятся при настройке конфига.

Шаг 2. Создайте конфигурационный файл для туннеля

Создайте директорию (если она ещё не существует) и откройте файл конфигурации:

sudo mkdir -p /etc/cloudflared
sudo nano /etc/cloudflared/config.yml

Вставьте следующий шаблон:

tunnel: btcpay    #ваш туннель

credentials-file: /root/.cloudflared/btcpay.json ingress: - hostname: btcpay.example.com #ваш домен service: http://127.0.0.1:80 - service: http_status:404

💡 Пояснения:

  • btcpay — это имя туннеля, которое вы указали на предыдущем шаге.
  • credentials-file — путь к файлу с ключами, который был автоматически создан после авторизации.
  • hostname — домен, который вы привязали к Cloudflare и хотите использовать для доступа к BTCPay (мы использовали btcpay.example.com).
  • service — локальный адрес, на который Cloudflare будет проксировать трафик (в данном случае http://127.0.0.1:80 — стандартный порт nginx внутри BTCPay Server).

Шаг 3. Добавьте запись в DNS

После создания туннеля Cloudflare обычно автоматически добавляет CNAME-запись в разделе DNS для вашего домена. Она будет выглядеть так:

btcpay.example.com → <UUID>.cfargotunnel.com

Если запись не появилась автоматически, добавьте её вручную:

  1. Перейдите в панель управления Cloudflare.
  2. Откройте раздел DNS.
  3. Добавьте новую CNAME-запись:
    • Name: btcpay
    • Target: <UUID>.cfargotunnel.com (точное значение можно найти в btcpay.json или в output команды cloudflared tunnel list)
    • Proxy status: включите (оранжевое облако)

💡 Эта запись указывает, что все запросы к btcpay.example.com должны перенаправляться через Cloudflare Tunnel, что позволяет скрыть реальный IP сервера.

Шаг 4. Добавьте туннель в автозапуск

Чтобы туннель автоматически запускался при старте системы, установите его как системный сервис:

sudo cloudflared service install

Затем активируйте автозапуск и сразу запустите:

sudo systemctl enable cloudflared
sudo systemctl start cloudflared

Проверьте статус:

sudo systemctl status cloudflared

Если всё настроено верно, вы увидите сообщение вроде Active: active (running) и строчку с btcpay.example.com.

💡 С этого момента туннель будет подниматься автоматически при каждой перезагрузке, а ваш BTCPay Server будет доступен извне по домену btcpay.example.com — без проброса портов и без раскрытия реального IP.

Шаг 5. Настройка BTCPay Server

Если вы только готовитесь к установке BTCPay Server, перед запуском скрипта установки укажите ваш домен, через который будет доступен сервер:

export BTCPAY_HOST="btcpay.example.com"

Это важно — именно этот домен будет использоваться при генерации конфигурации nginx и сертификатов.

Если BTCPay уже установлен и настроен — вы только добавляете Cloudflare Tunnel, то просто перезапустите установку, чтобы конфигурация обновилась:

cd ~/BTCPayServer/btcpayserver-docker
. ./btcpay-setup.sh -i

BTCPay применит новую конфигурацию и будет доступен по адресу:

https://btcpay.example.com

💡 Если вы используете внешний lightwalletd или собственную ноду Zcash — это никак не влияет на работу туннеля. Главное, чтобы сервис слушал на 127.0.0.1:80 внутри машины.

Настройка Zcash-плагина в интерфейсе BTCPay Server

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

Шаг 1. Вход в интерфейс BTCPay

Перейдите по адресу https://btcpay.example.com.

Введите логин и пароль от вашей учётной записи администратора.

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

Шаг 2. Установка плагина Zcash

  • В главном меню перейдите в PluginsBrowse Plugins.
  • Найдите в списке плагин Zcash (ZEC). При необходимости воспользуйтесь строкой поиска.
  • Нажмите кнопку Install и подтвердите установку.

💡 Повторите эти действия со всеми со всеми альткоинами, которые ранее указали в настройках сервера.

После установки появится кнопка Restart Server — нажмите её, чтобы перезапустить интерфейс с активными плагинами.

Шаг 3. Настройка подключения к кошельку

После установки плагина в меню настроек появится раздел Zcash.

Перейдите в Zcash → Settings.

  1. Введите ключ просмотра (viewing key), чтобы BTCPay мог отслеживать входящие shielded-платежи. Пример:
  2. Введите номер текущего блока Zcash — именно с него начнётся синхронизация кошелька. Это позволяет ускорить начальную загрузку и избежать лишней обработки старых транзакций.
zxviewtestsapling1q0hl2... (начинается с zxview)

💡 Не все кошельки Zcash сегодня поддерживают экспорт ключей просмотра. Рекомендуемые варианты: YWallet и Zingo! — в любой из версий этих кошельков ключи просмотра доступны в разделе резервных копий. В Zingo! используйте ключ просмотра Sapling — именно он поддерживается в BTCPay. Такие ключи автоматически поддерживают ротацию адресов, что означает: каждый покупатель будет видеть уникальный адрес для оплаты, а продавец — единый баланс. Полный список кошельков вы можете найти в разделе Wallets на портале ZecHub.

После ввода всех данных нажмите Save.

Готово! Проверьте работу платежей

Поздравляю — ваш Zcash-кошелёк успешно подключён к BTCPay Server.

Самое время протестировать приём платежей:

  1. Перейдите в раздел Invoices.
  2. Создайте тестовый счёт на небольшую сумму в ZEC.
  3. Отправьте средства на указанный адрес с любого кошелька, отличного от подключённого в магазине.
  4. Как только сервер обнаружит поступление платежа, на экране счёта появится небольшой визуальный салют 🎉 — это означает, что всё работает корректно.
  5. Убедитесь, что статус счёта обновился на Paid.

Если всё прошло успешно, можно переходить к интеграции ZEC-платежей на сайте интернет-магазина с помощью API или плагина для вашей CMS.

Интеграция BTCPay Server с сайтом

После настройки Zcash-кошелька в BTCPay Server можно переходить к следующему этапу — подключению платёжной системы к вашему сайту.

Вариантов интеграции несколько: от прямой работы с API до использования готовых плагинов для популярных CMS.

  • Подключение через API — подходит для сайтов на кастомных движках, позволяет полностью контролировать процесс генерации счетов и получения уведомлений о платежах. API позволяет максимально адаптировать работу BTCPay под ваш стиль и логику сайта, но требует базовых навыков программирования. Поручите это вашему веб-мастеру.
  • Готовые плагины — доступны для систем вроде WooCommerce, Prestashop и других популярных CMS. Позволяют подключить BTCPay буквально за пару минут без написания кода.
  • Кнопка или iframe-счёт — самый простой способ. Подходит для лендингов, сайтов-визиток или тех случаев, когда нужно просто вставить ссылку или виджет оплаты.

Подключение через API

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

API также потребуется при использовании некоторых CMS-плагинов, поэтому создание ключа — универсальный первый шаг.

Получение API-ключа

  1. Войдите в BTCPay и откройте меню пользователя (в правом верхнем углу).
  2. Перейдите в раздел API Keys.
  3. Нажмите Create a new API key.
  4. Укажите название ключа.
  5. В разделе Permissions отметьте:
    • Can create invoice
    • Can view invoice
    • Can modify store settings (необязательно, только если потребуется управление магазином)
  6. Нажмите Generate — появится ваш персональный API-ключ. Скопируйте его и сохраните в безопасном месте.

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

Пример запроса на создание счёта через API

POST /api/v1/stores/{storeId}/invoices
Authorization: token {apiKey}
Content-Type: application/json

Тело запроса:

{
  "amount": 5,
  "currency": "ZEC",
  "checkout": {
    "speedPolicy": "HighSpeed",
    "paymentMethods": ["Zcash"]
  }
}

В ответ вы получите invoiceId и ссылку на страницу оплаты, которую можно встроить на сайт или отправить клиенту.

Подробности доступны в официальной документации BTCPay API.

Подключение webhook

Чтобы получать уведомления о смене статуса счёта (например, когда платёж завершён):

  1. Перейдите в настройки магазина → Webhooks.
  2. Укажите URL вашего сервера, который будет принимать POST-запросы от BTCPay.
  3. BTCPay будет автоматически отправлять уведомления при изменении состояния счёта.

В официальной документации BTCPayServer описаны множество примеров работы с API для различных языков программирования.

Интеграция через CMS

BTCPay Server поддерживает плагины для популярных систем управления контентом. Наиболее зрелая и широко используемая интеграция — с WordPress на базе WooCommerce. Это удобный способ подключить приём ZEC без программирования.

WooCommerce (WordPress)

BTCPay Server официально поддерживает плагин для WooCommerce.

  1. Установите плагин BTCPay for WooCommerce через каталог WordPress или из репозитория GitHub.
  2. В панели WordPress перейдите в WooCommerce → Settings → Payments, найдите BTCPay и нажмите Set up.
  3. Укажите адрес вашего BTCPay-сервера и следуйте инструкции для авторизации плагина (рекомендуется использовать автоматическую генерацию API-ключа).
  4. Включите метод оплаты и сохраните настройки.

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

В том же разделе вы найдёте другие инструкции для всех существующих вариантов интеграций.

Интеграция через кнопку или iframe

Если вы не используете CMS и не хотите работать с API, самый простой способ приёма ZEC — встроить ссылку на счёт или платёжный виджет прямо на страницу сайта.

Это удобно для лендингов, сайтов-визиток, блогов и других решений без серверной логики.

Кнопка со ссылкой на оплату

  1. В BTCPay Server вручную создайте счёт в разделе Invoices.
  2. Скопируйте ссылку на оплату (она будет вида https://btcpay.example.com/i/abc123).
  3. Вставьте эту ссылку в HTML-код сайта, например:
<a href="https://btcpay.example.com/i/abc123" target="_blank">
  Оплатить ZEC
</a>

Встроенный iframe-счёт

Если вы хотите, чтобы форма оплаты отображалась прямо на странице, используйте iframe:

<iframe src="https://btcpay.example.com/i/abc123" width="600" height="350" frameborder="0"></iframe>

💡 Вы можете стилизовать кнопку или обёртку iframe в соответствии с дизайном сайта — BTCPay позволяет гибко адаптировать внешний вид страницы счёта.

Завершение

Эта статья получилась объёмной, но охватывает лишь базовые аспекты интеграции платежей Zcash с помощью BTCPay Server.

Интерфейс BTCPay предлагает гораздо больше возможностей, и вам, скорее всего, будет интересно изучить дополнительные настройки самостоятельно. К счастью, интерфейс доступен на русском языке, что делает освоение значительно проще.

BTCPay — гибкий инструмент:

  • можно создать несколько независимых магазинов в рамках одного сервера;
  • настроить различные роли и права для сотрудников — от просмотра заказов до полного администрирования;
  • использовать собственные домены и логотипы;
  • подключить уведомления, webhooks, резервные кошельки и даже Tor-доступ.

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

BTCPay создавался как независимая альтернатива централизованным платёжным провайдерам. И он действительно заслуживает внимания, если вы хотите принимать приватные ZEC-платежи без посредников.

Желаем вам успехов в самостоятельном исследовании интерфейса и новых открытий в работе с BTCPay.

Ссылки и используемые материалы

⚠️ Информация в данной статье носит исключительно ознакомительный характер. Использование цифровых активов в качестве средства оплаты регулируется законодательством страны проживания.
В Российской Федерации использование криптовалюты для оплаты товаров и услуг запрещено законом № 259-ФЗ «О цифровых финансовых активах».
📌 Настоящий материал не является призывом к совершению финансовых операций. Пример приведён исключительно в образовательных целях и ориентирован на международную аудиторию.

Если появятся вопросы, то пишите на ruzcash@proton.me и мы совместно сделаем лучшую инструкцию.


Arborist Call DEX Halo NU5 Orchard PoS PoW Trezor z2z zcashd Zcon ZconVI Zebra ZecWallet ZSA Гранты Доказательства с нулевым разглашением Дорожная карта Инвесторы Конференции Кошельки Кошельки для Zcash Нода Релизы аппаратные кошельки без KYC биржи и обмены биткоин будущее криптовалют внедрение интеграции интервью конфиденциальность криптовалюта криптография Zcash новости Zcash обновление сети объяснения обёрнутые токены оплата ZEC платежи регулирование транзакции унифицированные адреса эмиссия

Метки: ,

Все новости про Zcash в социальной сети «X» (бывший Twitter)  |  Интересные видео про Zcash на YouTube

Вы можете поддержать автора проекта pro.zcash:
(для отправки доната на данный адрес требуется кошелёк с функционалом экранированных транзакций)

автоматическая ссылка

Комментировать статью: