Руководство по интеграции

Принимайте криптовалюту на своём сайте

Практическое руководство: выберите способ интеграции, создайте заказ одним API-запросом и подтвердите оплату вебхуком. Подходит для любого стека — от статического сайта до собственной корзины.

Коротко

Самая простая интеграция — один запрос с сервера: создайте заказ на сумму корзины, отправьте покупателя на полученный checkout_url и отметьте заказ оплаченным, когда вебхук получит payment.succeeded. Крипта уходит прямо на ваш кошелёк; UTOPAY удерживает 1,5%.

Время интеграции
Около часа
Языки
Любые (REST + JSON)
Страница оплаты
Наша или ваша
Подтверждение
Вебхуки с подписью
Тестовый режим
Есть, с тестовыми ключами

Выберите, как будет платить покупатель

ВариантКому подходитСложность
Готовая страница оплаты — перенаправление на checkout_urlЛюбой сайт, самый быстрый запуск. Показывает сумму, сеть, адрес, QR и живой статусОдин API-запрос
Своя страница оплаты — показываете crypto.address и crypto.amount_coinСвой UX, покупатель не уходит с вашего доменаAPI-запрос + ваш интерфейс
CMS — WooCommerce, ShopifyМагазины на платформахСм. разделы ниже

Шаг 1 — создайте заказ на сервере

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

curl -X POST https://api.utopay.app/v1/crypto/payments \
  -H "Authorization: Bearer utopay_sk_live_..." \
  -H "content-type: application/json" \
  -d '{ "coin": "bep20/usdt", "amount": 49.90, "currency": "EUR",
        "description": "Order #1042",
        "success_url": "https://shop.example/thanks",
        "cancel_url": "https://shop.example/cart" }'

С аккаунтом кошелёк для выплат берётся из настроек проекта. Без аккаунта используйте POST /v1/crypto/pay и передайте payout_address. Список монет и сетей с минимальными суммами — в GET /v1/crypto/coins.

Шаг 2 — отправьте покупателя на оплату

  • Перенаправьте на checkout_url: страница показывает точную сумму, сеть, QR-код и живой статус, а затем возвращает покупателя на ваш success_url.
  • Или выведите crypto.address и crypto.amount_coin сами и опрашивайте GET /v1/payments/:id, пока покупатель на странице.

Шаг 3 — подтвердите оплату вебхуком

Не доверяйте одному лишь возврату на сайт. Отмечайте заказ оплаченным, когда ваш эндпоинт получит подписанное событие payment.succeeded; обрабатывайте payment.underpaid, если пришло меньше запрошенного. Проверяйте заголовок x-utopay-signature своим секретом whsec_… — примеры на Node.js, PHP и Python есть в документации по вебхукам.

<?php // PHP: проверка вебхука UTOPAY
$raw = file_get_contents("php://input");
parse_str(str_replace(",", "&", $_SERVER["HTTP_X_UTOPAY_SIGNATURE"]), $sig);
$expected = hash_hmac("sha256", $sig["t"] . "." . $raw, getenv("UTOPAY_WHSEC"));
if (!hash_equals($expected, $sig["v1"] ?? "") || abs(time() - (int)$sig["t"]) > 300) {
  http_response_code(400); exit;
}
$event = json_decode($raw, true);
if ($event["event"] === "payment.succeeded") { /* отметить $event["data"]["id"] оплаченным */ }
http_response_code(200);

WordPress и WooCommerce

Для WooCommerce есть готовый плагин UTOPAY — см. раздел плагины. Без плагина магазин на WooCommerce подключается через API: создайте заказ в хуке woocommerce_checkout_order_processed, отправьте покупателя на checkout_url и завершите заказ из обработчика вебхука.

Shopify

Shopify показывает как платёжный шлюз только одобренные платёжные приложения. Рабочая схема — ручной способ оплаты (например, «Оплата криптой») плюс страница оплаты UTOPAY: при оформлении заказа ваше приложение или автоматизация создаёт заказ UTOPAY на сумму покупки и отправляет покупателю письмо с checkout_url. Затем вебхук отмечает заказ в Shopify оплаченным.

Чек-лист перед запуском

  • Проверьте весь сценарий с тестовыми ключами (utopay_sk_test_…) — тестовые заказы не уходят в блокчейн.
  • Убедитесь, что кошелёк для выплат поддерживает все сети, которые вы предлагаете.
  • Показывайте название сети рядом с суммой — переводы не в ту сеть самая частая причина обращений в поддержку.
  • Храните id заказа UTOPAY вместе со своим заказом и дедуплицируйте вебхуки по нему.
  • Решите заранее, что делать с заказами в статусе underpaid.

Обновлено · Команда UTOPAY

FAQ

Приём криптовалюты на сайте — вопросы и ответы

Можно ли принимать крипту без разработчика?

Нужны один запрос к API с сервера и обработчик вебхука — несколько десятков строк на любом языке. Совсем без кода можно создать заказ одной командой curl и отправить покупателю checkout_url.

Какими монетами смогут платить клиенты?

Сейчас: USDT, ETH, BNB, POL, DAI и другие токены в EVM-сетях (Ethereum, BNB Smart Chain, Polygon, Base, Optimism, Arbitrum, Avalanche, Linea). Bitcoin, Tron, Solana и TON подключаются. Актуальный список — GET /v1/crypto/coins.

Куда приходят деньги?

Сразу на ваш кошелёк. Каждый платёж пересылается ончейн, как только поступает; UTOPAY удерживает 1,5% и никогда не хранит деньги.

Можно ли принимать и карты?

Да. Карточный шлюз работает из того же аккаунта: покупатели платят картой, Apple Pay и другими способами, а вы получаете крипту.

Есть ли плагин для WooCommerce?

Да, он доступен в разделе плагины. Без плагина используйте описанный выше сценарий через API.

Читайте также

Добавьте оплату криптой на свой сайт

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