Circle émet l'USDC, le deuxième plus grand stablecoin par capitalisation boursière, et expose une série d'API qui vous permettent de déplacer des dollars on-chain sans avoir à construire de A à Z une infrastructure de garde, de conformité ou bancaire. Si vous avez déjà souhaité régler un paiement de marketplace en quelques minutes, permettre à un utilisateur de déposer par carte et de retirer en USDC, ou de déplacer des stablecoins sur huit blockchains avec un seul appel, l'API Circle est le chemin le plus court. La documentation officielle se trouve sur developers.circle.com, et le guide d'introduction à l'USDC sur circle.com/en/usdc vaut la peine d'être lu avant de commencer à coder.
Ce guide explore l'ensemble de la surface développeur : création de compte, sandbox vs production, authentification par token Bearer, endpoints de paiements et de virements, Circle Wallets (Services Web3), le protocole de transfert inter-chaînes (CCTP), le texte chiffré du secret d'entité pour les portefeuilles contrôlés par le développeur, les webhooks, l'idempotence et la conformité KYB. Attendez-vous à des extraits curl et Node que vous pourrez coller dans votre terminal. Lecture connexe : notre guide sur la meilleure API fiat on-ramp off-ramp compare Circle à ses concurrents les plus proches.
En bref
- L'API Circle est une famille de services : Circle Payments (cartes, ACH, virements), Circle Mint (émission institutionnelle d'USDC), Circle Wallets / W3S (portefeuilles programmables) et CCTP (gravure et frappe d'USDC natif inter-chaînes).
- Authentifiez-vous avec un token Bearer ; les clés de sandbox commencent par
TEST_API_KEY:et les clés de production parLIVE_API_KEY:. - Les portefeuilles contrôlés par le développeur nécessitent un texte chiffré du secret d'entité (chiffré RSA, régénéré par requête) pour toutes les opérations d'écriture.
- Le CCTP déplace l'USDC natif sur Ethereum, Arbitrum, Base, Optimism, Polygon PoS, Avalanche, Solana, et d'autres via une gravure-frappe attestée.
- L'approbation KYB est requise pour la production. Le sandbox est ouvert à tout développeur.
- Utilisez des clés d'idempotence sur chaque requête mutante et vérifiez les signatures des webhooks avec la clé publique de
/notifications/publicKey/get.
Qu'est-ce que l'API Circle ?
Circle est une société de paiement réglementée qui émet l'USDC et opère les infrastructures qui le maintiennent indexé sur le dollar américain. L'API Circle expose quatre gammes de produits que vous pouvez combiner :
- L'API Circle Payments accepte les cartes, les virements ACH, SEPA et bancaires, puis règle le résultat en USDC dans votre portefeuille marchand.
- L'API Circle Payouts envoie des virements bancaires ou ACH depuis votre solde USDC vers n'importe quel compte bancaire que vous avez enregistré comme bénéficiaire.
- Circle Wallets (W3S) crée des portefeuilles sous garde ou contrôlés par le développeur sur plusieurs chaînes, signe les transactions et gère les frais de gaz.
- Le CCTP grave l'USDC sur une chaîne source et frappe un USDC équivalent sur une chaîne de destination, de sorte que vous obtenez des actifs natifs, et non un wrapper ponté.
Si vous comparez Circle à une infrastructure Web3 à usage général, lisez notre analyse de la meilleure API de portefeuille crypto et le guide comment utiliser l'API Alchemy pour voir où chaque outil s'intègre.
Authentification et configuration
Créez un compte sur console.circle.com. La console vous offre deux environnements : sandbox et production. Le sandbox est gratuit et en libre-service ; la production nécessite l'approbation Know Your Business (KYB), ce qui prend quelques jours ouvrables et requiert des documents d'incorporation, des informations sur les propriétaires effectifs et un compte de financement.
Générez une clé API sous Développeurs → Clés API. Le format de la clé est TEST_API_KEY:<id>:<secret> pour le sandbox ou LIVE_API_KEY:<id>:<secret> pour la production. Transmettez-la comme un token Bearer :
curl https://api-sandbox.circle.com/v1/ping \
-H "Authorization: Bearer TEST_API_KEY:abc123:xyz789"
URLs de base :
- Sandbox :
https://api-sandbox.circle.com - Production :
https://api.circle.com
Pour les portefeuilles contrôlés par le développeur dans W3S, vous avez également besoin d'un secret d'entité : une chaîne hexadécimale de 32 octets que vous générez une fois et enregistrez via le tableau de bord. Chaque appel d'écriture doit inclure un entitySecretCiphertext frais, qui est le secret d'entité chiffré avec la clé publique RSA de Circle. Le SDK Node le régénère automatiquement ; si vous implémentez le vôtre, faites pivoter le texte chiffré à chaque requête car Circle rejette les valeurs réutilisées.
Installez le SDK Node :
npm install @circle-fin/developer-controlled-wallets
Endpoints principaux
Créer un ensemble de portefeuilles et un portefeuille
Les portefeuilles dans W3S résident à l'intérieur d'un ensemble de portefeuilles (un groupe partageant une seule graine HD). Créez d'abord l'ensemble, puis générez des portefeuilles à l'intérieur.
import { initiateDeveloperControlledWalletsClient } from "@circle-fin/developer-controlled-wallets";
const client = initiateDeveloperControlledWalletsClient({
apiKey: process.env.CIRCLE_API_KEY,
entitySecret: process.env.CIRCLE_ENTITY_SECRET,
});
const walletSet = await client.createWalletSet({ name: "payout-set-prod" });
const wallets = await client.createWallets({
walletSetId: walletSet.data.walletSet.id,
blockchains: ["ETH-SEPOLIA", "MATIC-AMOY"],
count: 2,
});
console.log(wallets.data.wallets);
Chaque portefeuille renvoie un id, une adresse et la blockchain sur laquelle il se trouve. Financez-le avec de l'USDC de testnet depuis le faucet Circle pour continuer.
Transférer de l'USDC depuis un portefeuille contrôlé par le développeur
const transfer = await client.createTransaction({
walletId: wallets.data.wallets[0].id,
tokenId: "5797fbd6-3795-519d-84ca-ec4c5f80c3b1", // USDC on ETH-SEPOLIA
destinationAddress: "0xRecipient...",
amount: ["10.00"],
fee: { type: "level", config: { feeLevel: "MEDIUM" } },
});
La réponse renvoie un id de transaction que vous pouvez interroger via GET /v1/w3s/transactions/{id} ou écouter via webhook.
Accepter un paiement par carte et le régler en USDC
curl -X POST https://api-sandbox.circle.com/v1/payments \
-H "Authorization: Bearer $CIRCLE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"source": { "id": "card_4f1c...", "type": "card" },
"amount": { "amount": "50.00", "currency": "USD" },
"verification": "cvv",
"description": "Order 1093",
"encryptedData": "<PGP-encrypted card data>",
"metadata": { "email": "buyer@example.com", "sessionId": "..." }
}'
Les données de carte doivent être chiffrées PGP avec la clé publique de Circle (récupérez-la depuis /v1/encryption/public). La réponse renvoie un id de paiement qui passe par les états pending → confirmed → paid (en attente → confirmé → payé).
Envoyer un virement par virement bancaire ou ACH
curl -X POST https://api-sandbox.circle.com/v1/payouts \
-H "Authorization: Bearer $CIRCLE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"destination": { "type": "wire", "id": "beneficiary_abc" },
"amount": { "amount": "500.00", "currency": "USD" },
"metadata": { "beneficiaryEmail": "vendor@example.com" }
}'
Déplacer l'USDC inter-chaînes avec CCTP
Le CCTP est un protocole de smart contract, et non un endpoint REST, vous combinez donc une gravure on-chain avec le service d'attestation de Circle :
- Appelez
depositForBurnsur le contratTokenMessengerde la chaîne source. - Interrogez
https://iris-api-sandbox.circle.com/v1/messages/{sourceDomain}/{txHash}jusqu'à ce questatus: "complete"et que vous receviez un blob hexadécimal d'attestation. - Appelez
receiveMessagesur le contratMessageTransmitterde la chaîne de destination avec les octets du message et l'attestation.
Vous obtenez de l'USDC natif sur la chaîne de destination, frappé de toutes pièces contre une gravure vérifiable. Pas de tokens enveloppés, pas de risque de liquidité de pont.
Webhooks et idempotence
Circle envoie des événements (payments, payouts, transfers, chargebacks) à tout endpoint HTTPS auquel vous vous abonnez via /v1/notifications/subscriptions. Chaque webhook est signé avec une clé ECDSA ; récupérez la clé publique de /v1/notifications/publicKey/get et vérifiez l'en-tête X-Circle-Signature avant de faire confiance à la charge utile.
Chaque endpoint mutatif nécessite un en-tête Idempotency-Key (un UUID v4 est standard). Réessayer une requête avec la même clé renvoie la réponse originale au lieu de créer un paiement en double. C'est important : les cartes et les virements ne pardonnent pas les doubles envois.
Erreurs courantes et limites de débit
401 Unauthorized: Token Bearer manquant, malformé ou environnement incorrect.400 invalid_entity_secret_ciphertext: vous avez réutilisé un texte chiffré ou chiffré avec une clé publique périmée. Régénérez et réessayez.429 Too Many Requests: le sandbox est plafonné à environ 10 requêtes par seconde par endpoint ; les limites de production augmentent avec le volume. Réessayez avec un délai exponentiel.insufficient_funds: le portefeuille source n'a pas assez d'USDC, ou la carte source a échoué la vérification AVS/CVV.
Pour une vue d'ensemble de l'infrastructure de cartes, notre tour d'horizon de la meilleure API d'émission de cartes couvre les émetteurs qui s'associent bien aux paiements Circle.
Tarification de l'API Circle
Le sandbox est gratuit. En production, Circle Mint ne facture rien pour frapper ou échanger de l'USDC pour les clients institutionnels approuvés avec un volume éligible. Circle Payments prend un pourcentage plus des frais fixes par transaction par carte (généralement 2,9 % + 30 cents, négociés à l'échelle). Les virements vers les États-Unis coûtent quelques dollars par transaction. Les portefeuilles W3S sont tarifés par portefeuille et par transaction ; contactez le service commercial pour un devis de production. Le CCTP lui-même est gratuit ; vous payez les frais de gaz de la chaîne source et de destination.
Tester l'API Circle avec Apidog
La surface de Circle s'étend sur REST, les webhooks signés et les contrats on-chain, de sorte qu'une seule collection Postman capture rarement le flux complet. Apidog importe directement la spécification OpenAPI de Circle, stocke les tokens Bearer du sandbox et de la production comme environnements distincts, et vous permet d'écrire un script de test qui enchaîne un paiement par carte, un virement et une vérification de webhook en une seule exécution.
Téléchargez Apidog et chargez la spécification Circle depuis leur portail développeur. Utilisez le serveur de simulation pour simuler les livraisons de webhooks pendant que vous construisez le gestionnaire de vérification, puis passez à un endpoint réel une fois que vous êtes prêt. Pour les équipes, l'espace de travail partagé protège votre secret d'entité des conversations et versionne votre collection à côté de votre code backend.
FAQ
- Ai-je besoin du KYB pour tester l'API Circle ?Non. Les comptes sandbox sont ouverts à toute personne disposant d'une adresse e-mail. Vous n'avez besoin du KYB que pour déplacer de l'argent réel en production. Le sandbox est livré avec des faucets pour l'USDC sur chaque chaîne supportée.
- Quelle est la différence entre Circle Mint et Circle Wallets ?Circle Mint est la passerelle institutionnelle : vous virez des USD, vous obtenez de l'USDC (et vice versa). Circle Wallets / W3S est l'infrastructure de garde et de transaction pour vos utilisateurs finaux. La plupart des applications grand public utilisent Wallets en plus ; les applications de trésorerie utilisent Mint directement. Notre guide comment utiliser l'API MoonPay couvre une alternative uniquement pour le détail si vous n'avez pas besoin d'une émission de niveau Mint.
- Comment le CCTP évite-t-il le risque lié aux ponts ?L'USDC natif est gravé sur la chaîne source et fraîchement frappé sur la chaîne de destination contre une attestation signée de Circle. Il n'y a pas de pool de liquidité verrouillé qu'un exploit de pont pourrait vider. Vous faites toujours confiance au service d'attestation de Circle, mais vous ne faites pas confiance à un ensemble de validateurs de pont tiers.
- Puis-je utiliser les Circle Wallets sans détenir de clés ?Oui. Les portefeuilles contrôlés par l'utilisateur dans W3S utilisent l'authentification MPC et basée sur PIN, de sorte que les utilisateurs finaux autorisent les transactions via le SDK de Circle et vous ne touchez jamais une clé privée. Les portefeuilles contrôlés par le développeur placent l'autorité de signature sur votre backend via le secret d'entité.
- Circle prend-il en charge Solana et les chaînes non-EVM ?Oui. W3S couvre Solana, Aptos, NEAR et plusieurs L2 EVM. Le CCTP v2 a étendu le support de Solana en 2024, de sorte que l'USDC natif circule désormais librement entre Solana et l'écosystème EVM.
- Comment puis-je faire pivoter le secret d'entité en toute sécurité ?Circle prend en charge la rotation du secret d'entité via le tableau de bord. Générez un nouveau secret, enregistrez-le et exécutez les anciens et nouveaux textes chiffrés en parallèle pendant une courte période de transition. Le SDK lit le secret qui se trouve dans votre variable d'environnement, de sorte qu'un déploiement progressif le gère proprement.
