Documentation développeur

Guide d’intégration des paiements USDC

Vérifiez versions, contrats ou Mint et décimales USDC sur cinq réseaux. Support ne garantit pas disponibilité actuelle.

Identités des tokens du réseau principal

Les contrats et Mint sont des valeurs préconfigurées, pas un état en temps réel. La création exige un réseau et un actif activés et un portefeuille valide. Payez toujours à payment.address renvoyé par l’API, jamais au contrat ou au Mint.

Identités des tokens du réseau principal
RéseauDeviseContrat / MintDécimales du token
ERC20 network logoERC20USDC0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB486
BEP20 network logoBEP20USDC0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d18
POLYGON network logoPOLYGONUSDC0x3c499c542cEF5E3811e1192ce70d8cC03d5c33596
SOLANA network logoSOLANAUSDCEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v6
BASE network logoBASEUSDC0x833589fcd6edb6e08f4c7c32d4f71b54bda029136

Configuration du marchand

  1. Configurez un portefeuille de réception pour le réseau et un Webhook activé avec URL et clé. Conservez API Key et clé HMAC uniquement sur le serveur.
  2. Vérifiez la disponibilité de network / currency. Les administrateurs gèrent RPC, réseaux et actifs ; le marchand ne déploie pas de scanner.
  3. Affichez payment.amount, payment.address, currency, network et expiration de la réponse. Les données QR ne sont pas une image.
  4. Vérifiez la signature, dédupliquez et enregistrez durablement l’événement avant de répondre HTTP 2xx. Exécutez la livraison de façon idempotente.

Notes sur les réseaux et actifs

Ethereum, Polygon, Solana et Base utilisent USDC natif. BNB Smart Chain utilise Binance-Peg USDC à 18 décimales. TRC20 ne prend pas en charge USDC. USDbC, USDC.e et les autres contrats ne remplacent pas les identités indiquées.

  • ERC20 désigne ici Ethereum mainnet, pas tous les réseaux de ce standard. Une adresse 0x peut exister sur plusieurs réseaux EVM ; utilisez le réseau et la version de la commande. USDC est natif Circle ; les versions bridgées ne le remplacent pas.

Exemples de requête signée et de réponse

25.00 est un montant d’exemple. Utilisez le montant réel et respectez le minimum de l’actif. Adresses, commandes et hashes sont fictifs. Le cURL ou programme Java copié envoie une requête : configurez vos propres clés avant exécution.

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"

Les adresses, les hachages de transactions et les commandes en sont des exemples. Remplacez-les par votre propre test data.

Base URL

PROD
https://api.boltutil.com
Paramètres complets de la commande →

Confirmation et notifications

Détection ne signifie pas confirmation. Utilisez le statut et les callbacks vérifiés : PAID attend confirmation. CONFIRMED / COMPLETED peuvent aussi suivre une acceptation manuelle ; vérifiez paidAmount, shortfallAmount et settlementType. COMPLETED ne prouve pas la livraison.

Questions d’intégration

Une devise prise en charge est-elle disponible maintenant ?

Pas nécessairement. Le réseau et l’actif doivent être activés avec un portefeuille et un Webhook valides. La table statique ne donne pas la disponibilité en temps réel.

Le client peut-il arrondir le montant ?

Payez payment.amount en entier. Le système peut arrondir vers le haut et ajouter un petit ajustement pour distinguer les commandes du même portefeuille. Ne tronquez ni n’arrondissez vous-même.

Puis-je livrer dès que le solde augmente ?

Vérifiez le résultat confirmé et l’authenticité de la notification. Réseaux, versions ou montants erronés et doublons doivent être traités. Le solde seul ne remplace pas le résultat du paiement.