Guia de integração

Como aceitar pagamentos USDT / USDC em um site com Node.js

Um checkout de produção do USDT / USDC precisa de mais do que um endereço de carteira. Crie um pedido no Node.js, retorne os dados de checkout ao navegador e atenda somente após um webhook de pagamento na rede verificado.

Passos

Um checkout de produção do USDT / USDC precisa de mais do que um endereço de carteira. Crie um pedido no Node.js, retorne os dados de checkout ao navegador e atenda somente após um webhook de pagamento na rede verificado.

Como aceitar pagamentos USDT / USDC em um site com Node.js

  1. 01

    Crie uma ordem de pagamento com valor, rede, ID do pedido e URL de retorno.

  2. 02

    Mostre ao comprador o endereço, QR code, página de checkout e valor exato em USDT / USDC.

  3. 03

    A BoltUtil monitora transferências TRC20, ERC20, BEP20, Polygon ou Solana e compara rede, endereço e valor.

  4. 04

    Após a confirmação on-chain, a BoltUtil envia um webhook assinado com hash da transação e status.

BoltUtil verifica pagamentos e envia callbacks assinados. Seu servidor valida assinatura e estado, elimina duplicados e depois entrega, ativa ou credita.

Notas de integração

O que importa antes da produção

Liquidação não custodial

Os fundos vão direto para a carteira do comerciante. A BoltUtil monitora a blockchain e envia notificações.

Seis redes de pagamento

TRON, Ethereum, BNB Smart Chain, Polygon, Solana e Base. TRON aceita apenas USDT / USDC; as outras rotas USDT / USDC exigem ativos habilitados e uma carteira válida.

Automação por webhook

Quando o pagamento é detectado e confirmado, seu backend recebe uma chamada assinada para cumprir o pedido.

Node.js 22+ · USDC / Base checkout
import crypto from 'node:crypto'

// Node.js 20+ server module. Call only after authenticating the buyer.
// order must come from your database, with ownership and price checked.
// Never pass req.body directly; persist externalOrderId before calling.
export async function createStablecoinCheckout(order) {
  const key = process.env.BOLTUTIL_API_KEY
  const secret = process.env.BOLTUTIL_API_SECRET
  if (!key || !secret) throw new Error('Missing server credentials')

  const payload = JSON.stringify({
    externalOrderId: order.externalOrderId,
    amount: order.amount,
    currency: 'USDC',
    network: 'BASE',
    notifyUrl: 'https://merchant.com/webhooks/boltutil',
    returnUrl: 'https://merchant.com/orders/complete'
  })
  const timestamp = Date.now().toString()
  const signature = crypto.createHmac('sha256', secret)
    .update(`${timestamp}.${payload}`).digest('hex')

  // A timeout does not prove creation failed. Query order/status using
  // the SAME externalOrderId before deciding whether to retry.
  const response = await fetch('https://api.boltutil.com/api/v1/order/create', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-Bolt-Key': key,
      'X-Bolt-Timestamp': timestamp,
      'X-Bolt-Signature': signature
    },
    body: payload,
    signal: AbortSignal.timeout(10000)
  })
  const result = await response.json()
  if (!response.ok || result.code !== 200 || !result.data?.checkoutUrl) {
    throw new Error('Create order failed; reconcile the saved order')
  }
  // Save result.data on the server. Return only checkout data to the buyer.
  return result.data
}

Exemplos de integração e diagnóstico. Nenhuma solicitação é enviada. Use seus pedidos, configuração de rede e documentação da API.

Ler documentação da API

Liquidação não custodial

Os fundos vão direto para a carteira do comerciante. A BoltUtil monitora a blockchain e envia notificações.

Cinco redes USDT / USDC

Aceite TRC20, ERC20, BEP20, Polygon e Solana com uma única API de pedidos e payload de webhook unificado.

Automação por webhook

Quando o pagamento é detectado e confirmado, seu backend recebe uma chamada assinada para cumprir o pedido.

Guia de integração

Perguntas antes de ir para produção

A BoltUtil custodia fundos do comerciante?

Não. A BoltUtil é uma camada não custodial de monitoramento e notificação. O comerciante usa sua própria carteira.

Como a BoltUtil vincula um pagamento a uma ordem?

O sistema valida rede, endereço de destino, valor exato em USDT / USDC, status da ordem e janela de expiração.

Quais redes aceitam USDT e USDC?

TRON aceita apenas USDT. Ethereum, BNB Smart Chain, Polygon, Solana e Base usam as versões configuradas de USDT / USDC. A disponibilidade depende dos canais ativos e das carteiras do comerciante.

Lance um fluxo de pagamento USDT / USDC mais limpo

Crie ordens, monitore transferências e notifique seu backend sem pedir comprovantes manuais.