Криптоплатежи для маркетплейсов: один аккаунт, кошелёк каждого продавца
Если вы управляете маркетплейсом — или любой платформой, где несколько продавцов получают платежи — крипта создаёт специфическую головную боль: каждому продавцу нужен свой адрес для выплат. Большинство платёжных процессоров заставляют создавать отдельный аккаунт мерчанта на каждого продавца, управлять отдельными API-ключами и вести сверку по всем из них.
MutoPay использует другой подход. Один аккаунт мерчанта, один API-ключ и канал на каждого продавца. Каждый канал маршрутизирует платежи на кошелёк этого продавца, в предпочтительной сети с предпочтительным токеном. Вы управляете всем через единый API.
Не запускаете маркетплейс? Для одного приложения или сайта, принимающего платежи для себя, мастер-ключ не нужен. Создайте один канал в дашборде (Настройки → Каналы), скопируйте его API-ключ
ep_…и webhook-секрет — готово. Минимальная настройка описана в статье Как принимать крипто-платежи. Мастер-ключ ниже нужен только тогда, когда ваш бэкенд программно создаёт каналы для третьих сторон.
Модель
Канал — изолированная платёжная полоса в рамках вашего аккаунта. У каждого есть:
- API-ключ (для создания платежей, привязанных к этому продавцу)
- Расчётное назначение (сеть, токен, адрес кошелька)
- URL вебхука (чтобы бэкенд каждого продавца получал независимые уведомления)
Мастер-ключ API позволяет создавать и настраивать каналы программно — без входа через браузер. Ваш бэкенд автоматически регистрирует продавцов.
Результат: когда покупатель платит в магазине Продавца A, средства идут прямо на кошелёк Продавца A. Платежи Продавца B — на кошелёк Продавца B. Вы никогда не касаетесь средств.
Настройка: три вызова API на продавца
Когда новый продавец регистрируется на вашей платформе и предоставляет адрес кошелька, ваш бэкенд делает три вызова:
1. Создание канала
curl -X POST https://mutopay.com/api/merchant/channels \
-H "Authorization: Bearer msk_<your_master_key>" \
-H "Content-Type: application/json" \
-d '{
"name": "Vendor: Acme Widgets",
"webhook_url": "https://acme-widgets.com/webhooks/mutopay"
}'
Ответ содержит ID канала и API-ключ канала (ep_...). Сохраните оба — ключ отображается один раз.
2. Установка расчётного назначения продавца
curl -X PUT https://mutopay.com/api/merchant/channels/ch_abc123/settlement \
-H "Authorization: Bearer msk_<your_master_key>" \
-H "Content-Type: application/json" \
-d '{
"preferred_token": "USDC",
"preferred_chain_id": "137",
"wallet_address": "0xVendorWalletAddress..."
}'
Теперь любой платёж, созданный через этот канал, расчитывается на кошелёк продавца в Polygon в USDC.
3. Создание платежей с использованием API-ключа канала
curl -X POST https://mutopay.com/api/payments \
-H "X-API-Key: ep_<channel_api_key>" \
-H "Content-Type: application/json" \
-d '{
"amount": 49.99,
"currency": "USD",
"external_id": "order_5821",
"description": "Acme Widgets — Order #5821"
}'
Платёж автоматически привязывается к каналу. Покупатель видит страницу оплаты, платит любым токеном, которым владеет, и средства поступают на кошелёк продавца в USDC.
Что это даёт
Нет отдельных аккаунтов на продавца. Вы не регистрируете каждого продавца как отдельного мерчанта. Один аккаунт, N каналов.
Нет кастодии. Средства идут прямо на кошелёк продавца. Вы никогда не держите, не эскроуируете и не пересылаете крипту. Это обходит большинство регуляторных сложностей в области перемещения денег.
Независимые ключи. Если интеграция продавца скомпрометирована, вы отзываете ключ этого одного канала. Остальное не затрагивается.
Вебхуки на продавца. Каждый канал может иметь собственный URL вебхука. Бэкенд Продавца A получает уведомления о платежах Продавца A. Или направьте все вебхуки на единый эндпоинт вашей платформы и маршрутизируйте по channel_id в пэйлоаде.
Смешанные сети и токены. Продавец A расчитывается в USDC на Polygon. Продавец B хочет USDT в Arbitrum. Продавец C предпочитает TON-кошелёк. Каждый канал независим.
Автоматизация регистрации продавцов
Типичный флоу:
- Продавец регистрируется на вашей платформе, вводит адрес кошелька и предпочтительную сеть
- Ваш бэкенд вызывает
POST /api/merchant/channelsдля создания канала - Ваш бэкенд вызывает
PUT /api/merchant/channels/:id/settlementс данными кошелька - Вы сохраняете ID канала и API-ключ в своей базе данных, привязав к этому продавцу
- При создании заказов для этого продавца используете API-ключ его канала в
X-API-Key
Для офбординга продавца:
curl -X POST https://mutopay.com/api/merchant/channels/ch_abc123/revoke \
-H "Authorization: Bearer msk_<your_master_key>"
Их API-ключ перестаёт работать немедленно. Завершённые платежи не затрагиваются.
Чего MutoPay не делает
Для правильного понимания: MutoPay маршрутизирует платежи на целевой кошелёк. Он не делит один платёж между несколькими кошельками, не хранит средства в эскроу и не применяет структуру комиссий. Если ваш маркетплейс берёт процент, вы обрабатываете это в логике своего приложения — либо корректируя сумму перед созданием платежа, либо расчитываясь на свой кошелёк и распределяя отдельно.
Для кого это
- Маркетплейсы с несколькими продавцами (ручная работа, цифровые товары, услуги)
- SaaS-платформы, регистрирующие суб-мерчантов (Shopify-стиль, white-label витрины)
- Агентства, управляющие платежами для нескольких клиентов
- Мультивендорные WooCommerce-сборки (Dokan, WCFM), где у каждого продавца свой кошелёк
- Фриланс-платформы, где каждый фрилансер получает выплаты напрямую
Начало работы
- Войдите в панель MutoPay
- Перейдите в Настройки и создайте мастер-ключ API
- Используйте документацию API для программного создания каналов
Полный API управления каналами — создание, обновление расчётов, смена ключей, отзыв, тест вебхуков — задокументирован на mutopay.com/api/docs.