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

Подключение платежей стейблкоинами в Solana

Проверьте идентичность токена, параметры и подтверждение в Solana. Оплатите полную сумму из API.

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

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

Идентификаторы токенов основной сети
СетьВалютаКонтракт / MintРазрядность токена
SOLANA network logoSOLANAUSDT6
SOLANA network logoSOLANAUSDC6

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

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

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

  • Mint USDT / USDC идентифицирует токен; платите на кошелёк из API. Сканер использует finalized slots; обнаружение не завершает заказ немедленно. Mint чувствителен к регистру; не используйте EVM-контракты и тестовые токены.

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

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":"USDT","network":"SOLANA","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. Система может округлить вверх и добавить небольшое смещение для различения заказов одного кошелька. Не обрезайте и не округляйте самостоятельно.

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

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