Règlement non dépositaire
Les USDT / USDC vont directement au portefeuille marchand ; BoltUtil ne conserve ni fonds ni clés privées.
Intégration des paiements
Créez des commandes, consultez leur paiement et vérifiez les webhooks signés depuis votre serveur. Intégrez les paiements par portefeuille ou les virements manuels en USDT et USDC.
USDC n’est pas pris en charge sur TRON. Chaque route doit être activée avec une adresse de réception active. USDbC, USDC.e et les autres contrats ne remplacent pas les actifs indiqués.
USDC émis par Circle sur Ethereum, Polygon, Solana et Base. BNB Smart Chain utilise Binance-Peg USDC, avec 18 décimales. Ce n’est pas de l’USDC natif émis par Circle. USDC natif et USDT bridgé sur Base. La disponibilité dépend des routes activées et d’une adresse de réception active.
Étapes
API de paiement Crypto conçue pour le paiement stablecoin
Créez la commande depuis votre serveur avec le montant, le réseau et votre identifiant externe.
Affichez au client l’URL de paiement, le réseau, l’adresse, le QR code et le montant USDT / USDC exact.
BoltUtil vérifie le réseau, le contrat du token, l’adresse, le montant, l’expiration et les confirmations.
Après confirmation, vérifiez la signature du webhook et exécutez la commande de façon idempotente.
BoltUtil vérifie les paiements et envoie des callbacks signés. Votre serveur vérifie la signature et le statut, évite les doublons puis livre, active ou crédite.
Notes d'intégration
Les USDT / USDC vont directement au portefeuille marchand ; BoltUtil ne conserve ni fonds ni clés privées.
TRON, Ethereum, BNB Smart Chain, Polygon, Solana et Base. TRON accepte uniquement USDT / USDC ; les autres canaux USDT / USDC nécessitent un actif activé et un portefeuille valide.
La signature HMAC, l’horodatage et les journaux de renvoi sécurisent l’automatisation après paiement.
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
}Exemples d’intégration et de diagnostic. Aucune requête n’est envoyée. Consultez vos commandes, la configuration réseau et la documentation API.
Lire la documentation sur l'APIN’exposez jamais la clé API dans le navigateur et enregistrez l’identifiant externe avant le checkout.
Indiquez TRC20, ERC20, BEP20, Polygon ou Solana avec l’adresse afin d’éviter les erreurs de réseau.
L’URL de retour ne prouve pas le paiement ; utilisez le webhook signé ou une requête de statut serveur.
Intégration des paiements
Non. Les fonds vont directement au portefeuille marchand et BoltUtil surveille les transferts.
Le système vérifie le réseau, le token, l’adresse, le montant exact, l’état et l’expiration de la commande.
TRON prend uniquement en charge USDT. Ethereum, BNB Smart Chain, Polygon, Solana et Base utilisent les versions configurées de USDT / USDC. La disponibilité dépend des canaux actifs et des portefeuilles du marchand.
Créez des commandes, surveillez les transferts et informez votre backend sans demander aux clients d'envoyer des captures d'écran.