Интеграция Mercuryo: on/off-ramp для криптопроектов

Интеграция Mercuryo: on/off-ramp для криптопроектов Отметим: когда ваш dApp или биржа упирается в отсутствие фиатного шлюза для СНГ — Mercuryo остаётся одним из немногих провайдеров с реальным покрытием локальных методов оплаты. Мы интегрируем Mercuryo под ключ: от встраивания Widget SDK до настр

Направления блокчейн-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1452
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1310
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1005
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1270
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    719
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1012

Интеграция Mercuryo: on/off-ramp для криптопроектов

Отметим: когда ваш dApp или биржа упирается в отсутствие фиатного шлюза для СНГ — Mercuryo остаётся одним из немногих провайдеров с реальным покрытием локальных методов оплаты. Мы интегрируем Mercuryo под ключ: от встраивания Widget SDK до настройки серверных callback-уведомлений и мониторинга транзакций. За 5 лет работы мы реализовали более 50 проектов с Mercuryo, что дало нам понимание всех подводных камней интеграции. Mercuryo поддерживает Visa/Mastercard, SEPA, а также локальные способы оплаты для стран СНГ, включая карты и переводы. Благодаря прямому партнёрству с провайдером, мы обеспечиваем минимальные задержки и конкурентоспособные курсы.

Как Mercuryo решает проблему фиатного шлюза?

Mercuryo предоставляет два способа интеграции: виджет для браузера и REST API. Виджет подходит для быстрого запуска покупки/продажи криптовалюты прямо в интерфейсе. API — для кастомизации воронки и обработки платежей на серверной стороне. Оба подхода требуют валидации подписи адреса и проверки callback-запросов. Виджет встраивается за один день, а полноценная интеграция через API занимает до 10 дней.

Проблемы, которые мы решаем

  • Некорректная подпись адреса — Mercuryo требует HMAC-SHA512 подпись адреса кошелька. Ошибка в алгоритме приводит к отклонению транзакции. Мы встречали проекты, где использовали SHA256 вместо SHA512 — все такие запросы отклонялись.
  • Потеря callback-уведомлений — если не настроить проверку подписи и повторные попытки, платежи могут потеряться. В одном кейсе из нашей практики мы фиксировали до 15% потерянных уведомлений до внедрения ретраев с exponential backoff.
  • Ограничения CORS — при встраивании виджета в iframe нужно правильно настроить домены в панели Mercuryo. Частая ошибка — забыть добавить продакшен-домен после тестирования.

Как мы это делаем: стек и кейс

Используем Python + FastAPI для callback-сервера, TypeScript для виджета. Пример кода:

// Mercuryo Widget v4 const mercuryoWidget = { widgetId: process.env.MERCURYO_WIDGET_ID, type: 'buy', // 'buy' или 'sell' currency: 'BTC', fiatCurrency: 'EUR', fiatAmount: '100', address: walletAddress, signature: await getSignedAddress(walletAddress), // серверная подпись onStatusChange: (data) => { if (data.status === 'paid') { handlePaymentComplete(data.transactionId); } }, }; // Встройка через URL const params = new URLSearchParams(mercuryoWidget); const widgetUrl = `https://exchange.mercuryo.io/?${params}`; window.open(widgetUrl, '_blank'); 
import hmac, hashlib def sign_wallet_address(address: str, secret: str) -> str: """Mercuryo требует подпись адреса для защиты от подмены""" return hmac.new( secret.encode(), address.encode(), hashlib.sha512 ).hexdigest() 
import httpx class MercuryoClient: BASE_URL = "https://api.mercuryo.io/v1.6" def __init__(self, api_key: str, secret: str): self.api_key = api_key self.secret = secret async def get_rates(self, from_currency: str, to_currency: str, amount: float) -> dict: async with httpx.AsyncClient() as client: resp = await client.get( f"{self.BASE_URL}/public/rates", params={ "from": from_currency, "to": to_currency, "amount": amount, } ) return resp.json() async def get_transaction(self, tx_id: str) -> dict: async with httpx.AsyncClient() as client: resp = await client.get( f"{self.BASE_URL}/sdk-partner/transactions/{tx_id}", headers={"Sdk-Partner-Token": self.api_key} ) return resp.json()["data"] 
@app.post("/callbacks/mercuryo") async def mercuryo_callback(request: Request): data = await request.json() # Проверка подписи signature = request.headers.get("X-Mercuryo-Signature") body = await request.body() expected = hashlib.sha512(body + MERCURYO_SECRET.encode()).hexdigest() if signature != expected: raise HTTPException(403) status = data["status"] if status == "paid": await process_crypto_delivery(data["id"], data["amount"], data["currency"]) elif status == "failed": await handle_failed_transaction(data["id"]) 

Официальная документация Mercuryo (Mercuryo API).

Какие комиссии у Mercuryo и как на них сэкономить?

Mercuryo взимает комиссию в зависимости от метода оплаты. Для карт она составляет около 3.95%, для банковских переводов SEPA — 2.95%, для локальных методов СНГ — примерно 3.5%. Дополнительно может применяться конвертация валюты. Выбор метода SEPA вместо карт позволяет сэкономить 1% на каждой транзакции. Наша команда помогает оптимизировать маршрут оплаты под вашу аудиторию, что приводит к существенной экономии на комиссиях. Свяжитесь с нами, чтобы получить индивидуальную оценку вашего профиля транзакций.

Процесс работы

  1. Аналитика — разбираем вашу воронку: где нужен on-ramp, какие валюты, какой объём.
  2. Проектирование — выбираем виджет или API, проектируем схему callback-обработки.
  3. Интеграция — встраиваем SDK, настраиваем подпись, пишем обработчики.
  4. Тестирование — проводим тестовые транзакции, проверяем callback-уведомления.
  5. Деплой — выкатываем в продакшен, настраиваем мониторинг.

Что входит в интеграцию

  • Настройка Widget SDK (покупка/продажа криптовалюты).
  • REST API для получения курсов и статусов транзакций.
  • Серверная подпись адресов и валидация callback-запросов.
  • Обработка ошибок и повторные попытки.
  • Документация по интеграции для вашей команды.

Сравнение способов интеграции

Способ Сложность Скорость запуска Кастомизация
Widget SDK Низкая 1-2 дня Ограниченная
REST API Высокая 5-10 дней Полная

Widget SDK быстрее в развёртывании примерно в 3 раза, но REST API даёт полный контроль над воронкой.

Сравнение комиссий по методам оплаты

Метод Комиссия Конвертация
Карты ~3.95% Встроенная
SEPA ~2.95% Отсутствует
Локальные (СНГ) ~3.5% Встроенная

Выбор метода может снизить затраты на 1-2% на транзакцию.

Типичные ошибки при интеграции

  • Неверный алгоритм подписи: используйте SHA512, не SHA256.
  • Отсутствие проверки статуса транзакции в callback: всегда обрабатывайте статус paid.
  • Неправильная обработка ошибок: Mercuryo возвращает ошибки с кодом 4xx/5xx — нужно логировать и повторять.
  • Забывают настроить webhook retries: Mercuryo шлёт callback один раз, без подтверждения — потеря необратима.
Опыт интеграции Mercuryo для криптобиржи Из нашей практики: подключали Mercuryo для биржи с аудиторией 50k пользователей. Виджет — за 2 дня, API-кастомный флоу — ещё 5 дней. После запуска конверсия в покупку выросла на 30%. За счёт выбора SEPA вместо карт клиент экономит существенные средства на комиссиях. Закажите интеграцию Mercuryo, чтобы повысить конверсию вашего проекта.

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