Documentação para desenvolvedores

Integração de pagamentos em stablecoins na Solana

Confira identidade do token, parâmetros e confirmação na Solana. Pague o valor completo retornado pela API.

Identidades de tokens da rede principal

Contratos e Mint são valores predefinidos, não o estado atual do serviço. Criar pedidos exige rede e ativo habilitados e carteira válida. Pague sempre a payment.address da API, nunca ao contrato ou Mint.

Identidades de tokens da rede principal
RedeMoedaContrato / MintDecimais do token
SOLANA network logoSOLANAUSDT6
SOLANA network logoSOLANAUSDC6

Configuração do comerciante

  1. Configure uma carteira receptora da rede e um Webhook habilitado com URL e chave. Guarde API Key e chave HMAC apenas no servidor.
  2. Confira a disponibilidade de network / currency. Administradores mantêm RPC, redes e ativos; comerciantes não precisam implantar scanners.
  3. Mostre payment.amount, payment.address, currency, network e validade da resposta. Os dados QR não são uma imagem.
  4. Verifique a assinatura, elimine duplicatas e salve o evento de forma durável antes de responder HTTP 2xx. Faça a entrega de forma idempotente.

Notas sobre redes e ativos

  • Mint de USDT / USDC identifica tokens; pague à carteira retornada pela API. O scanner usa slots finalized; detectar transação não conclui o pedido imediatamente. Mint diferencia maiúsculas; não use contratos EVM ou tokens de teste.

Exemplos de solicitação assinada e resposta

25.00 é um valor de exemplo. Use o valor real do pedido e respeite o mínimo do ativo. Endereços, pedidos e hashes são fictícios. O cURL ou programa Java copiado envia uma solicitação: configure suas próprias chaves antes de executar.

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"

Endereços, hashes de transações e pedidos são exemplos. Substitua-os pelo seu próprio teste data.

Base URL

PROD
https://api.boltutil.com
Parâmetros completos do pedido →

Confirmação e notificações

Detectar não é confirmar. Use o status e callbacks verificados: PAID aguarda confirmação. CONFIRMED / COMPLETED também podem vir de aceitação manual; confira paidAmount, shortfallAmount e settlementType. COMPLETED não comprova a entrega.

Perguntas sobre integração

Uma moeda suportada está disponível agora?

Não necessariamente. Rede e ativo devem estar habilitados, com carteira e Webhook válidos. A tabela estática não mostra disponibilidade atual.

O cliente pode arredondar o valor?

Pague payment.amount completo. O sistema pode arredondar para cima e acrescentar um pequeno ajuste para distinguir pedidos da mesma carteira. Não trunque nem arredonde por conta própria.

Posso entregar quando o saldo aumentar?

Verifique o resultado confirmado e a autenticidade da notificação. Redes, versões ou valores incorretos e eventos duplicados exigem tratamento. O saldo não substitui o resultado do pedido.