Документация разработчика

Руководство по подключению платежей USDC

Проверьте версии, контракты или Mint и разрядность USDC пяти сетей. Поддержка не гарантирует текущую доступность.

Идентификаторы токенов основной сети

Контракты и Mint — предустановленные значения, а не текущий статус каналов. Для заказа нужны включённые сеть и актив и действительный кошелёк. Платите на payment.address из API, никогда на контракт или Mint.

Идентификаторы токенов основной сети
СетьВалютаКонтракт / MintРазрядность токена
ERC20 network logoERC20USDC0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB486
BEP20 network logoBEP20USDC0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d18
POLYGON network logoPOLYGONUSDC0x3c499c542cEF5E3811e1192ce70d8cC03d5c33596
SOLANA network logoSOLANAUSDCEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v6
BASE network logoBASEUSDC0x833589fcd6edb6e08f4c7c32d4f71b54bda029136

Настройка продавца

  1. Настройте кошелёк сети и включённый Webhook с URL и ключом. Храните API Key и ключ HMAC только на сервере.
  2. Проверьте доступность network / currency. Администратор управляет RPC, сетями и активами; продавцу не нужно развёртывать сканеры.
  3. Покажите payment.amount, payment.address, currency, network и срок действия из ответа. Данные QR — не изображение.
  4. Проверьте подпись, устраните дубликаты и надёжно сохраните событие до ответа HTTP 2xx. Выдавайте заказ идемпотентно.

Примечания о сетях и активах

Ethereum, Polygon, Solana и Base используют нативный USDC. BNB Smart Chain использует Binance-Peg USDC с 18 знаками. TRC20 не поддерживает USDC. USDbC, USDC.e и другие контракты не заменяют указанные активы.

  • ERC20 здесь означает Ethereum mainnet, не все сети этого стандарта. Адрес 0x может существовать в разных EVM-сетях; используйте сеть и версию заказа. USDC нативный Circle; мостовые версии его не заменяют.

Примеры подписанного запроса и ответа

25.00 — сумма для примера. Используйте реальную сумму заказа с учётом минимума актива. Адреса, заказы и хеши вымышлены. Скопированный cURL или Java отправляет запрос: настройте собственные ключи перед запуском.

create / cURL
# Run against your account only when ready; this sends an API request.
: "${BOLTUTIL_API_KEY:?Set your complete API Key}"
: "${BOLTUTIL_WEBHOOK_SECRET:?Set your Webhook secret}"
timestamp=$(python3 -c 'import time; print(int(time.time()*1000))')
body='{"amount":"25.00","currency":"USDC","network":"ERC20","externalOrderId":"INV-20260209-99281"}'
signature=$(printf '%s.%s' "$timestamp" "$body" | openssl dgst -sha256 -hmac "$BOLTUTIL_WEBHOOK_SECRET" | awk '{print $NF}')

curl --request POST "https://api.boltutil.com/api/v1/order/create" \
  --header 'Content-Type: application/json' \
  --header "X-Bolt-Key: $BOLTUTIL_API_KEY" \
  --header "X-Bolt-Timestamp: $timestamp" \
  --header "X-Bolt-Signature: $signature" \
  --data-binary "$body"

Примерами являются адреса, хеши транзакций и заказы. Замените их собственным тестом data.

Base URL

PROD
https://api.boltutil.com
Все параметры заказа →

Подтверждение и уведомления

Обнаружение не равно подтверждению. Используйте статус и проверенные callbacks: PAID ждёт подтверждения. CONFIRMED / COMPLETED возможны и после ручного принятия; проверьте paidAmount, shortfallAmount и settlementType. COMPLETED не доказывает выдачу товара.

Вопросы интеграции

Поддерживаемая валюта доступна прямо сейчас?

Не обязательно. Сеть и актив должны быть включены, кошелёк и Webhook — действительны. Статическая таблица не показывает текущую доступность.

Может ли клиент округлить сумму?

Оплатите полную payment.amount. Система может округлить вверх и добавить небольшое смещение для различения заказов одного кошелька. Не обрезайте и не округляйте самостоятельно.

Можно выдать товар при росте баланса?

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