Documentación para desarrolladores

Guía de integración de pagos USDC

Comprueba las versiones, contratos o Mint y decimales de USDC en cinco redes. El soporte no garantiza disponibilidad actual.

Identidades de tokens de la red principal

Los contratos y Mint son valores preconfigurados, no el estado actual del servicio. Crear pedidos requiere una red y un activo habilitados y una cartera válida. Envía siempre a payment.address devuelto por la API, nunca al contrato o Mint.

Identidades de tokens de la red principal
RedMonedaContrato / MintDecimales del token
ERC20 network logoERC20USDC0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB486
BEP20 network logoBEP20USDC0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d18
POLYGON network logoPOLYGONUSDC0x3c499c542cEF5E3811e1192ce70d8cC03d5c33596
SOLANA network logoSOLANAUSDCEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v6
BASE network logoBASEUSDC0x833589fcd6edb6e08f4c7c32d4f71b54bda029136

Configuración del comerciante

  1. Configura una cartera receptora para la red y un Webhook habilitado con URL y clave. Guarda la API Key y la clave HMAC solo en el servidor.
  2. Comprueba la disponibilidad de network / currency. El administrador gestiona RPC, redes y activos; el comerciante no necesita desplegar escáneres.
  3. Muestra payment.amount, payment.address, currency, network y vencimiento de la respuesta. Los datos QR no son una imagen.
  4. Verifica la firma, elimina duplicados y guarda el evento de forma duradera antes de responder HTTP 2xx. Entrega el pedido de forma idempotente.

Notas sobre redes y activos

Ethereum, Polygon, Solana y Base usan USDC nativo. BNB Smart Chain usa Binance-Peg USDC con 18 decimales. TRC20 no admite USDC. USDbC, USDC.e y otros contratos no sustituyen a los indicados.

  • ERC20 aquí significa Ethereum mainnet, no todas las redes que usan ese estándar. Una dirección 0x puede existir en varias redes EVM; usa la red y versión del pedido. USDC es nativo de Circle; las versiones puente no lo sustituyen.

Ejemplos de solicitud firmada y respuesta

25.00 es un importe de ejemplo. Usa el importe real del pedido y respeta el mínimo del activo. Direcciones, pedidos y hashes son ficticios. El cURL o programa Java copiado envía una solicitud: configura tus propias claves antes de ejecutarlo.

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":"USDC","network":"ERC20","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"

Direcciones, hashes de transacciones y pedidos son ejemplos. Reemplácelos con su propia prueba data.

Base URL

PROD
https://api.boltutil.com
Parámetros completos del pedido →

Confirmación y notificaciones

Detectar no es confirmar. Usa el estado y los callbacks verificados: PAID espera confirmación. CONFIRMED / COMPLETED también pueden resultar de aceptación manual; revisa paidAmount, shortfallAmount y settlementType. COMPLETED no demuestra la entrega del pedido.

Preguntas de integración

¿Una moneda admitida está disponible ahora?

No necesariamente. Deben estar habilitados la red y el activo, con cartera y Webhook válidos. La tabla estática no muestra disponibilidad actual.

¿Puede el cliente redondear el importe?

Paga payment.amount completo. El sistema puede redondear hacia arriba y añadir un pequeño ajuste para distinguir pedidos de la misma cartera. No trunques ni redondees por tu cuenta.

¿Puedo entregar al aumentar el saldo?

Verifica el resultado confirmado y la autenticidad de la notificación. Redes, versiones o importes incorrectos y eventos duplicados requieren tratamiento. El saldo no sustituye al resultado del pedido.