Pour les agents IA

Construisez des agents qui émettent des cartes de paiement

Une surface d'API REST + MCP conçue pour les agents autonomes. Inscription, rechargement crypto et émission de carte en 4 appels — sans aucun humain dans la boucle, sans KYC, avec des scopes et des limites de débit par clé.

REST + MCP Auth Bearer No KYC
Visa
Agent-issued
4719 38•• •••• ••••
Issued byctk_live_…
CreatedJust now
~5sDélai d'émission de carte
$1.50Par carte, unique
20 / accountCartes actives par compte
Zéro KYCInscription par seed uniquement
Ce que vous pouvez construire

Six patterns pour lesquels cette API a été conçue

Les endpoints ci-dessous forment la fondation — les patterns sont ce que les concepteurs d'agents livrent réellement en production.

Agents de dépense autonomes

Des agents qui décident quoi acheter et exécutent l'achat sans approbation humaine. L'API émet une carte fraîche pour chaque transaction, la débite, puis la supprime — sans laisser de surface de paiement réutilisable dans la nature.

Automatisation de campagnes publicitaires

Émission programmatique d'une carte BIN-471938 (Visa Business) par compte publicitaire Meta / Google / TikTok. Faites tourner les cartes tous les 30 à 60 jours pour garder vos comptes propres.

Cartes jetables par utilisateur

Places de marché ou plateformes qui ont besoin d'une carte unique par transaction utilisateur final. Émission, débit, suppression en moins de 10 secondes — pas de scope PCI, pas de fardeau de stockage de carte.

Collecteurs d'essais gratuits

Inscrivez-vous aux essais gratuits à grande échelle. Chaque essai reçoit une carte avec la recharge minimum ; sa suppression avant renouvellement bloque le prélèvement automatique proprement.

Facturation SaaS par workspace

Agents multi-tenant qui facturent les SaaS amont (AWS, OpenAI, Cloudflare, GitHub) sur une carte par workspace. Les coûts deviennent attribuables au client sans exposer votre identité de facturation principale.

Workers de scraping / signup

Chaque worker demande une carte via l'API au moment où il a besoin d'une surface de paiement, l'utilise pour l'action prévue, puis la ferme. Le coût unitaire de 1,50 $ est une fraction de toute approche alternative.

Démarrage rapide

De zéro à carte émise en 4 appels

Quatre appels API font passer un agent de « pas de compte » à « carte prête à être débitée ». Remplacez TOKEN par votre bearer, CARD_ID par l'entier retourné à l'étape 3.

1. Inscription (crée un compte anonyme + bearer token)

# Create an anonymous account. Returns seed + Bearer token (ONE TIME).
curl -X POST https://cryptotopcard.com/api/v1/auth/signup \
  -H "Content-Type: application/json" \
  -d '{"name":"my-agent"}'
import requests
r = requests.post(
    "https://cryptotopcard.com/api/v1/auth/signup",
    json={"name": "my-agent"},
).json()
TOKEN = r["data"]["token"]
SEED  = r["data"]["seed"]    # persist both!
auth  = {"Authorization": f"Bearer {TOKEN}"}
const r = await fetch("https://cryptotopcard.com/api/v1/auth/signup", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ name: "my-agent" }),
}).then(r => r.json());
const TOKEN = r.data.token;       // persist!
const SEED  = r.data.seed;
const auth  = { "Authorization": `Bearer ${TOKEN}` };

2. Création d'un rechargement (retourne l'adresse de dépôt + le montant crypto exact)

# Create a top-up: request $100 net in USDT (TRC-20).
# Returns the deposit address + exact crypto amount (gross, includes 2% fee).
curl -X POST https://cryptotopcard.com/api/v1/topups \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"coin":"USDTTRC","amount":100}'
# {... "deposit_address":"T...", "crypto_amount":"102.92", "net_credit_usd":100}
t = requests.post(
    "https://cryptotopcard.com/api/v1/topups",
    json={"coin": "USDTTRC", "amount": 100},
    headers=auth,
).json()["data"]
# Send t["crypto_amount"] USDT-TRC20 to t["deposit_address"].
# When confirmed (poll GET /topups/<id>), $100 lands on the balance.
const t = (await fetch("https://cryptotopcard.com/api/v1/topups", {
  method: "POST",
  headers: { ...auth, "Content-Type": "application/json" },
  body: JSON.stringify({ coin: "USDTTRC", amount: 100 }),
}).then(r => r.json())).data;
// Send t.crypto_amount USDT-TRC20 to t.deposit_address.

3. Émission d'une carte (retourne numéro, exp, CVV)

# Once the balance shows the credited amount, issue a card.
curl -X POST https://cryptotopcard.com/api/v1/cards \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"bin_id":"471938","amount":150,"label":"meta-acct-7"}'
# {... "card_number":"4719 ...", "card_exp":"02/29", "card_cvv":"136"}
c = requests.post(
    "https://cryptotopcard.com/api/v1/cards",
    json={"bin_id": "471938", "amount": 150, "label": "meta-acct-7"},
    headers=auth,
).json()["data"]
print(c["card_number"], c["card_exp"], c["card_cvv"])
const c = (await fetch("https://cryptotopcard.com/api/v1/cards", {
  method: "POST",
  headers: { ...auth, "Content-Type": "application/json" },
  body: JSON.stringify({ bin_id: "471938", amount: 150, label: "meta-acct-7" }),
}).then(r => r.json())).data;
console.log(c.card_number, c.card_exp, c.card_cvv);

4. Utilisez la carte. Une fois terminée, supprimez-la (rembourse le solde restant instantanément)

# When the card has served its purpose, delete it. Remaining balance refunds instantly.
curl -X DELETE https://cryptotopcard.com/api/v1/cards/$CARD_ID \
  -H "Authorization: Bearer $TOKEN"
requests.delete(
    f"https://cryptotopcard.com/api/v1/cards/{c['card_id']}",
    headers=auth,
).json()  # {"ok":true,"data":{"deleted":true,"refunded_usd":150.0}}
await fetch(`https://cryptotopcard.com/api/v1/cards/${c.card_id}`, {
  method: "DELETE", headers: auth,
}).then(r => r.json());
Intégration MCP

Tool calling natif dans Claude, ChatGPT, Cursor

Les mêmes tokens Bearer fonctionnent sur l'endpoint MCP à /api/v1/mcp. Une fois configuré, le LLM appelle `list_bins`, `create_topup`, `issue_card`, `freeze_card` comme outils natifs — aucun wrapping de code requis.

Claude Desktop / Claude Code

Ajoutez à ~/Library/Application Support/Claude/claude_desktop_config.json sous mcpServers :

"cryptotopcard": { "command": "npx", "args": ["-y", "mcp-remote", "https://cryptotopcard.com/api/v1/mcp", "--header", "Authorization:Bearer ctk_live_..."] }

ChatGPT Custom GPT

Dans les paramètres de votre GPT personnalisé, ajoutez une Action et importez la spec OpenAPI :

Import OpenAPI from: https://cryptotopcard.com/.well-known/openapi.json Auth: API Key (Bearer)

Cursor / Continue / Cline

Dans les paramètres Cursor → Features → Model Context Protocol, ajoutez un nouveau serveur avec transport HTTP :

HTTP transport: url: https://cryptotopcard.com/api/v1/mcp authorization: Bearer ctk_live_...

Une fois connecté, demandez au modèle « émets une carte Visa Business à 200 $ financée en USDT » et il chaînera `list_bins → list_coins → create_topup → issue_card` automatiquement, en affichant l'adresse de dépôt et en attendant votre confirmation.

Surface d'API

Tous les endpoints en un coup d'œil

Dix-neuf routes au total. Publiques (sans auth) pour la découverte + l'inscription ; tout le reste nécessite un token Bearer avec le scope adapté à son opération.

MethodPathDescription
GET/api/v1/coinsListe les 20 cryptomonnaies prises en charge (public).
GET/api/v1/binsListe les 7 gammes de BIN + frais (public).
POST/api/v1/auth/signupCrée un compte anonyme. Retourne la seed + le premier token API (unique).
POST/api/v1/auth/loginÉchange une phrase seed contre un nouveau token API.
GET/api/v1/meInfos du compte courant : solde, nombre de cartes, scopes.
POST/api/v1/topupsCrée une facture de dépôt crypto. Le client paie le brut (frais 2 % inclus), le net est crédité.
GET/api/v1/topups/:idRécupère le statut courant d'un rechargement.
POST/api/v1/topups/:id/cancelAnnule un rechargement en attente (sans effet une fois payé).
GET/api/v1/cardsListe les cartes actives + gelées (4 derniers chiffres seulement).
POST/api/v1/cardsÉmet une nouvelle carte. Débite 1,50 $ + le montant du solde.
GET/api/v1/cards/:idDétails complets de la carte (PAN, exp, CVV) pour une carte.
POST/api/v1/cards/:id/freezeBloque tous les débits sur la carte. Réversible.
POST/api/v1/cards/:id/unfreezeRéactive une carte gelée.
POST/api/v1/cards/:id/topupTransfère des fonds du solde du compte vers le solde de la carte.
DELETE/api/v1/cards/:idFerme une carte. Rembourse le solde restant sur le compte instantanément.
GET/api/v1/keysListe les clés API de l'appelant (métadonnées uniquement, pas de token).
POST/api/v1/keysGénère une nouvelle clé API. Le token est retourné une seule fois.
DELETE/api/v1/keys/:idRévoque une clé API.
POST/api/v1/mcpServeur MCP (JSON-RPC 2.0). Même auth Bearer.
Modèle de sécurité

Scopes par clé, limites de débit glissantes, aucun secret récupérable

Chaque requête est authentifiée avec un token Bearer par utilisateur (ctk_live_…). Les tokens sont hashés en sha256 au repos ; nous ne stockons jamais la valeur brute. Chaque token porte une liste de scopes séparés par des virgules (read, topups, cards) — un token sans « cards » ne peut pas émettre de carte.

Limites de débit

Scopes

Trois scopes disponibles. Par défaut pour les nouveaux tokens : read,topups,cards — retirez des scopes à la création d'un token (POST /keys avec scopes: "read") pour limiter le rayon d'impact.

Modèle de récupération

Il n'y a pas de récupération par email. La phrase seed retournée à l'inscription est l'unique identifiant — si elle est perdue, le compte et son solde sont irrécupérables. Conservez-la dans un gestionnaire de secrets. Faites tourner les tokens API librement via POST /keys.

Connectez votre premier agent en moins de 5 minutes

Les endpoints publics fonctionnent sans compte. L'inscription tient en un POST. Essayez le démarrage rapide de bout en bout avant d'intégrer.

Lire le démarrage rapide