← Вернуться в блог

Криптоплатежи для маркетплейсов: один аккаунт, кошелёк каждого продавца

· 4 min read
маркетплейс каналы api руководство

Если вы управляете маркетплейсом — или любой платформой, где несколько продавцов получают платежи — крипта создаёт специфическую головную боль: каждому продавцу нужен свой адрес для выплат. Большинство платёжных процессоров заставляют создавать отдельный аккаунт мерчанта на каждого продавца, управлять отдельными 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-кошелёк. Каждый канал независим.

Автоматизация регистрации продавцов

Типичный флоу:

  1. Продавец регистрируется на вашей платформе, вводит адрес кошелька и предпочтительную сеть
  2. Ваш бэкенд вызывает POST /api/merchant/channels для создания канала
  3. Ваш бэкенд вызывает PUT /api/merchant/channels/:id/settlement с данными кошелька
  4. Вы сохраняете ID канала и API-ключ в своей базе данных, привязав к этому продавцу
  5. При создании заказов для этого продавца используете 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), где у каждого продавца свой кошелёк
  • Фриланс-платформы, где каждый фрилансер получает выплаты напрямую

Начало работы

  1. Войдите в панель MutoPay
  2. Перейдите в Настройки и создайте мастер-ключ API
  3. Используйте документацию API для программного создания каналов

Полный API управления каналами — создание, обновление расчётов, смена ключей, отзыв, тест вебхуков — задокументирован на mutopay.com/api/docs.