Liquidación no custodial
Los fondos llegan directamente a la billetera del comercio. BoltUtil solo monitorea la cadena y envía notificaciones.
Guía de integración
Un pago USDT / USDC de producción necesita más que una dirección de billetera. Cree un pedido desde Node.js, devuelva los datos de pago al navegador y luego complete solo después de un webhook de pago en cadena verificado.
Pasos
Cómo aceptar pagos USDT / USDC en un sitio web con Node.js
Cree una orden de pago con importe, red, ID de pedido y URL de retorno.
Muestre al comprador la dirección, el código QR, la página de checkout y el importe exacto en USDT / USDC.
BoltUtil escanea transferencias TRC20, ERC20, BEP20, Polygon o Solana y compara red, dirección e importe.
Tras la confirmación on-chain, BoltUtil envía un webhook firmado con el hash de transacción y el estado.
BoltUtil verifica pagos y envía callbacks firmados. Tu servidor valida la firma y el estado, evita duplicados y luego entrega, activa o acredita.
Notas de integración
Los fondos llegan directamente a la billetera del comercio. BoltUtil solo monitorea la cadena y envía notificaciones.
TRON, Ethereum, BNB Smart Chain, Polygon, Solana y Base. TRON solo admite USDT / USDC; las demás rutas USDT / USDC requieren activos habilitados y una cartera válida.
Cuando el pago se detecta y confirma, su backend recibe una devolución firmada para activar, entregar o acreditar.
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
}Ejemplos de integración y diagnóstico. No se envían solicitudes. Use sus pedidos, configuración de red y documentación de la API.
Leer documentación APILos fondos llegan directamente a la billetera del comercio. BoltUtil solo monitorea la cadena y envía notificaciones.
Integre TRC20, ERC20, BEP20, Polygon y Solana con una sola API de órdenes y un payload de webhook unificado.
Cuando el pago se detecta y confirma, su backend recibe una devolución firmada para activar, entregar o acreditar.
Guía de integración
No. BoltUtil funciona como una capa no custodial de monitoreo y notificación. El comercio configura su propia billetera de cobro.
El sistema valida red, dirección de destino, importe exacto en USDT / USDC, estado de la orden y ventana de expiración.
TRON admite solo USDT. Ethereum, BNB Smart Chain, Polygon, Solana y Base usan las versiones configuradas de USDT / USDC. La disponibilidad depende de los canales activos y las billeteras del comerciante.
Cree órdenes, monitoree transferencias y notifique a su backend sin pedir capturas de pago.