Documentação para desenvolvedores

Integração de pagamentos em stablecoins na Base

Confira identidade do token, parâmetros e confirmação na Base. 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
BASE network logoBASEUSDT0xfde4c96c8593536e31f229ea8f37b2ada2699bb26
BASE network logoBASEUSDC0x833589fcd6edb6e08f4c7c32d4f71b54bda029136

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

  • Base mainnet tem chain ID 8453, não Base Sepolia. O comerciante configura a carteira; o administrador mantém RPC e ativação. USDC é nativo da Circle e USDT é a versão em ponte configurada; USDbC não está incluído. A varredura usa altura segura L1-finalized: pague antes do fim do contador; a confirmação pode chegar depois, sem prazo fixo. No WooCommerce, confira a versão instalada e redes e moedas suportadas.

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":"BASE","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.