API & Agenti

Un API che ragiona
come un wallet.

REST v1 per gli esseri umani. MCP nativo per Claude, ChatGPT, Cursor e qualsiasi agente AI. Registrati, ricarica, emetti carte, spendi, monitora le transazioni, presenta contestazioni — completamente autonomo, senza intervento umano.

REST v1 · 50+ endpoint MCP v0.4 · 40+ tool OAuth 2.1 + DCR Webhook HMAC
Due superfici

Un programma. Due modi di integrarsi.

REST per le integrazioni che controlli dall'inizio alla fine. MCP per gli agenti che gestiscono l'integrazione autonomamente.

REST API v1 Per i tuoi server, script e SDK
  • 50+ endpoint, ogni azione account coperta
  • Tipizzato con JSON Schema · specifica OpenAPI 3.1
  • Idempotente, paginato, basato su cursor
  • Chiavi generate nel pannello → Impostazioni API
  • Webhook firmati con HMAC con protezione dal replay
  • Limite di frequenza per chiave · burst 60 req/s, 1000 req/min sostenuto
  • Retrocompatibile, versionato (v1 LTS per sempre)
Catalogo endpoint
MCP Server Per Claude, ChatGPT, Cursor, Continue, qualsiasi agente
  • Server nativo Model Context Protocol, ospitato da noi
  • Oltre 40 tool mappati 1:1 dagli endpoint REST, con nomi adatti agli agenti
  • Trasporto HTTP streamable · stateless o con sessione
  • OAuth 2.1 + DCR — gli agenti si registrano autonomamente a runtime
  • Drop-in per Claude Desktop, Cursor, Continue, mcp-cli
  • Concessione di permessi per singolo strumento — limita un agente alla sola lettura o a una carta specifica
  • Stesso SLA, stessi limiti di frequenza, stesso registro di audit
Integrazione MCP
Avvio rapido

Da zero a carta attiva in tre chiamate.

Registrati, ricarica, emetti una carta. L'intero flusso si esegue in una singola sessione shell — per esseri umani e agenti.

Le chiavi API vengono generate nel pannello su /api-settings. Il bearer token qui sotto è un bearer di sessione a breve durata restituito dalla risposta di registrazione — adatto ai test, ma in produzione sostituiscilo con una chiave ccm_live_… persistente.

1 · registrati & ottieni una chiave API
# Create an account — no KYC, no documents
curl https://api.cryptocardium.com/v1/accounts \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "password": "long-random-string"
  }'

# → 201 Created · session bearer in the response
{
  "id": "acc_8f3a91b7c4d2",
  "email": "[email protected]",
  "bearer": "sess_94d72b6c..."
}
2 · ricarica il tuo treasury
# Create a USDT-TRC20 deposit address
curl https://api.cryptocardium.com/v1/topups \
  -H "Authorization: Bearer $CCM_KEY" \
  -H "Idempotency-Key: top_97eeeefa6cdd179a" \
  -d '{
    "amount_usd": 500,
    "asset": "USDT",
    "chain": "tron"
  }'

{
  "id": "top_4e21a99c7b",
  "status": "pending",
  "amount_usd": 500,
  "deposit_address": "T9zFR...kQp",
  "qr_data_uri": "data:image/png;base64,...",
  "expires_at": "2026-05-19T08:00:00Z"
}
3 · emetti una carta & spendi
# Once your top-up confirms, issue a Visa Platinum
# loaded with $300, Apple/Google Pay-ready.
curl https://api.cryptocardium.com/v1/cards \
  -H "Authorization: Bearer $CCM_KEY" \
  -d '{
    "type": "virtual",
    "bin": "489517",
    "load_usd": 300,
    "wallet_provision": ["apple_pay", "google_pay"]
  }'

{
  "id": "card_8f3a91b7c4d2",
  "bin": "489517",
  "last4": "4218",
  "status": "active",
  "balance_usd": 300,
  "wallet": {"apple_pay": "ready", "google_pay": "ready"}
}
Catalogo endpoint

Ogni azione, programmabile.

Account, ricariche, carte, transazioni, log, prelievi, contestazioni, webhook — l'intera superficie del pannello, esposta come endpoint REST e strumenti MCP.

Account & profilo

7 endpoint
  • POST /v1/accounts Crea un nuovo account (senza KYC, senza documenti). create_account
  • POST /v1/sessions Accedi con email + password (restituisce il bearer). sign_in
  • DELETE /v1/sessions Chiudi la sessione corrente. sign_out
  • GET /v1/accounts/me Restituisce l'account corrente, il saldo e lo stato 2FA. get_account
  • PATCH /v1/accounts/me Aggiorna email, password e notifiche dell'account. update_account
  • POST /v1/accounts/me/totp Registra un'app di autenticazione (restituisce secret + URI). enable_2fa
  • DELETE /v1/accounts/me/totp Disabilita il 2FA (richiede password + codice valido). disable_2fa

Chiavi API

3 endpoint
  • GET /v1/api_keys Elenca le tue chiavi API (solo prefisso, mai il secret). list_api_keys
  • POST /v1/api_keys Crea una nuova chiave. Il testo in chiaro viene restituito UNA SOLA VOLTA. create_api_key
  • DELETE /v1/api_keys/:id Revoca immediatamente una chiave. revoke_api_key

Saldo & treasury

2 endpoint
  • GET /v1/balance Saldo USDT corrente. get_balance
  • GET /v1/balance/history Serie temporale delle variazioni di saldo. get_balance_history

Ricariche

4 endpoint
  • POST /v1/topups Crea una ricarica: restituisce indirizzo di deposito + QR. create_topup
  • GET /v1/topups Elenca le tue ricariche (filtra per stato, data). list_topups
  • GET /v1/topups/:id Recupera una ricarica (stato, conferme, txid). get_topup
  • POST /v1/topups/:id/cancel Annulla una ricarica in sospeso. cancel_topup

Carte · emissione

5 endpoint
  • GET /v1/cards Elenca le tue carte (filtra per stato, tipo, BIN). list_cards
  • POST /v1/cards Emetti una nuova carta (virtuale o fisica). issue_card
  • GET /v1/cards/:id Metadati della carta (stato, BIN, last4, saldo). get_card
  • GET /v1/cards/:id/pan PAN completo + CVV (sensibile, uso singolo, soggetto ad audit). reveal_pan
  • POST /v1/cards/:id/replace Sostituisci una carta (nuovo PAN, riemissione virtuale). replace_card

Carte · operazioni

8 endpoint
  • POST /v1/cards/:id/load Carica USDT dal saldo sulla carta. load_card
  • POST /v1/cards/:id/unload Sposta il saldo non speso nel tuo treasury. unload_card
  • POST /v1/cards/:id/freeze Blocca la carta (autorizzazioni rifiutate). freeze_card
  • POST /v1/cards/:id/unfreeze Riattiva una carta bloccata. unfreeze_card
  • POST /v1/cards/:id/cancel Cancella definitivamente la carta. cancel_card
  • PATCH /v1/cards/:id/limits Imposta massimali per transazione / giornalieri / mensili per carta. set_card_limits
  • PATCH /v1/cards/:id/mcc Consenti o nega categorie MCC (liste). set_mcc_rules
  • PATCH /v1/cards/:id/geo Limita geograficamente la carta a Paesi specifici. set_card_geo

Transazioni

4 endpoint
  • GET /v1/transactions Elenca tutte le transazioni con carta (paginate). list_transactions
  • GET /v1/transactions/:id Singolo evento di autorizzazione/addebito/rimborso. get_transaction
  • GET /v1/cards/:id/transactions Storico transazioni per singola carta. list_card_transactions
  • GET /v1/transactions/:id/auth Messaggio di autorizzazione grezzo (campi ISO 8583). get_auth_details

Attività & log di audit

3 endpoint
  • GET /v1/activity Flusso unificato di eventi (ricariche + carte + spese). get_activity
  • GET /v1/activity?type=error Filtra per tipo di evento (topup/card/spend/error). filter_activity
  • GET /v1/audit_log Registro di audit a livello account (accessi, utilizzi chiavi). get_audit_log

Prelievi

3 endpoint
  • POST /v1/withdrawals Preleva USDT su un wallet esterno. withdraw
  • GET /v1/withdrawals Elenca le tue richieste di prelievo. list_withdrawals
  • GET /v1/withdrawals/:id Recupera un prelievo (stato, txid on-chain). get_withdrawal

Contestazioni & chargeback

4 endpoint
  • POST /v1/disputes Apri un chargeback su una transazione. file_dispute
  • GET /v1/disputes Elenca le tue contestazioni (aperte / con risposta / chiuse). list_disputes
  • GET /v1/disputes/:id Singola contestazione (stato, risposta, prove). get_dispute
  • POST /v1/disputes/:id/evidence Allega prove (ricevute, screenshot, note). add_dispute_evidence

Webhook

5 endpoint
  • GET /v1/webhooks Elenca le tue sottoscrizioni webhook. list_webhooks
  • POST /v1/webhooks Sottoscrivi eventi (URL + tipi di evento). create_webhook
  • PATCH /v1/webhooks/:id Aggiorna URL, eventi o ruota la chiave di firma. update_webhook
  • DELETE /v1/webhooks/:id Annulla la sottoscrizione. delete_webhook
  • POST /v1/webhooks/:id/replay/:eid Ripeti l'invio di un evento al tuo endpoint. replay_webhook

Supporto & sistema

4 endpoint
  • POST /v1/tickets Apri un ticket di supporto (richiede carta attiva). open_ticket
  • GET /v1/tickets Elenca i tuoi ticket. list_tickets
  • GET /v1/system/health Health check (stato emittente, circuiti, rete). get_system_health
  • GET /v1/system/limits I tuoi limiti di frequenza correnti + massimali di spesa. get_limits
Autonomia degli agenti

Cosa fa un agente Claude o ChatGPT in modo autonomo.

Dato un compito come "acquista 100 crediti cloud con crypto", un agente concatena le chiamate seguenti senza intervento umano. Ogni passaggio è una singola chiamata a uno strumento.

  1. 01

    POST /v1/accounts · create_account

    L'agente genera una coppia email-password, la invia. Nessun KYC, nessun documento. Riceve un bearer token in ~200ms.

  2. 02

    POST /v1/topups · create_topup

    L'agente richiede una ricarica in qualsiasi crypto supportata (USDT-TRC20 è la più economica). Riceve un indirizzo di deposito. Invia crypto dal proprio wallet. Il webhook si attiva alla conferma dei fondi.

  3. 03

    POST /v1/cards · issue_card

    L'agente sceglie il BIN adatto al commerciante (Visa Business per la pubblicità, Visa Platinum per i wallet mobile, Visa Corporate per il SaaS), carica $X e ottiene una carta attiva.

  4. 04

    GET /v1/cards/:id/pan · reveal_pan

    L'agente acquisisce PAN + CVV + scadenza (uso singolo, soggetto ad audit). Li utilizza al checkout del commerciante. Le sfide 3-D Secure vengono approvate tramite callback webhook.

  5. 05

    GET /v1/activity · get_activity

    L'agente effettua polling (o si iscrive via webhook) per gli eventi di autorizzazione. Conferma che la spesa è andata a buon fine. Legge nome del commerciante, MCC, importo, valuta.

  6. 06

    POST /v1/cards/:id/freeze · freeze_card

    Lavoro completato. L'agente blocca (o cancella) la carta. Il saldo non speso può essere trasferito nuovamente al treasury. L'intero flusso ha richiesto meno di un minuto.

Integrazione MCP

Drop-in per Claude, ChatGPT, Cursor.

Aggiungi il nostro server MCP hosted alla configurazione del tuo agente. L'agente acquisisce automaticamente oltre 40 strumenti — ogni endpoint REST, mappato su un nome di strumento comprensibile dagli agenti.

Claude Desktop / Claude Code Il runtime di riferimento per agenti di Anthropic
~/.config/claude/claude_desktop_config.json
{
  "mcpServers": {
    "cryptocardium": {
      "url": "https://mcp.cryptocardium.com/v1",
      "transport": "http"
    }
  }
}
Cursor / Continue / mcp-cli Qualsiasi client compatibile MCP
# Streamable HTTP transport, OAuth 2.1 DCR
mcp-cli add cryptocardium \
  --url https://mcp.cryptocardium.com/v1 \
  --auth oauth

# The agent enrols itself on first connection,
# no API key needs to be pasted.
40+ strumenti

Ogni endpoint REST ha un corrispondente strumento MCP, denominato per la comprensione degli agenti. Un piccolo campione:

create_account sign_in create_topup get_topup issue_card load_card reveal_pan freeze_card unfreeze_card set_card_limits set_mcc_rules list_transactions get_activity withdraw file_dispute create_webhook get_audit_log get_balance get_system_health … altri 21
Autenticazione & sicurezza

Tre modi per autenticarsi.

Bearer token per script semplici. Chiavi API per server in produzione. OAuth 2.1 con DCR per agenti che si registrano autonomamente.

Sessione bearer

Da POST /v1/sessions. A breve durata (30 giorni). Adatto per test e script interattivi.

Authorization: Bearer sess_94d72b6c…

Chiave API

Da Impostazioni API. Persistente (fino alla revoca). Porta i permessi a livello account. Ideale per integrazioni backend.

Authorization: Bearer ccm_live_a1b2c3d4…

OAuth 2.1 + DCR

Gli agenti si registrano autonomamente a runtime tramite Dynamic Client Registration. Concessione di permessi per singolo strumento — limita un agente alla sola lettura o a una carta specifica.

POST /oauth/register
  → client_id, client_secret
POST /oauth/token
  → access_token (scoped)
Webhook

Sottoscrivi ogni evento.

Payload firmati con HMAC-SHA256. Consegna at-least-once con tentativi di ripetizione. Ripeti l'invio di qualsiasi evento dalla dashboard o tramite API.

Tipi di evento

  • account.created · nuova registrazione
  • account.signed_in · inizio sessione
  • topup.created · indirizzo di deposito emesso
  • topup.confirmed · finalità on-chain raggiunta
  • topup.expired · finestra indirizzo chiusa
  • topup.error · liquidazione fallita (kill-switch, rimborso)
  • card.issued · nuova carta attiva
  • card.loaded · fondi aggiunti a una carta
  • card.frozen · bloccata da agente o amministratore
  • card.cancelled · permanentemente disattivata
  • transaction.authorized · pre-spesa
  • transaction.captured · regolata dal commerciante
  • transaction.refunded · rimborso ricevuto
  • transaction.declined · con codice di rifiuto
  • dispute.opened · chargeback presentato
  • dispute.resolved · vinta / persa
  • withdrawal.broadcasted · transazione on-chain inviata
  • system.maintenance · manutenzione programmata
verifica un webhook
# Headers we set on every webhook
Cryptocardium-Signature: t=1718999999,
  v1=4a8b2f...
Cryptocardium-Event-Id: evt_a1b2c3d4

# Verify (Node example)
const sig = req.headers['cryptocardium-signature'];
const [t, v1] = parseSig(sig);
const expected = hmac(
  'sha256',
  SIGNING_SECRET,
  `${t}.${rawBody}`
);
if (!timingSafeEqual(v1, expected)) reject();
60 req/s Burst

Per chiave API. Brevi picchi sopra la frequenza sostenuta sono tollerati in finestre sub-secondo.

1k req/min Sostenuto

Per chiave API. Le richieste in eccesso ricevono 429 Too Many Requests con un header Retry-After.

25 MB Dimensione massima payload

Corpo di richiesta e risposta. Le prove di contestazione supportano upload in streaming fino a 100 MB.

99.99% Uptime · 90g

Multi-regione active-active. Pagina di stato su status.cryptocardium.com.

Apri le API

Costruisci, automatizza, agentizza.
Tutto ciò che le carte possono fare, può farlo il tuo codice.

Registrati, vai al pannello, genera una chiave, collegala al tuo agente. Sessanta secondi da zero alla spesa autonoma.

FAQ

API e server MCP, con risposta.

Everything people actually ask. Last updated .

Dove si trova la specifica OpenAPI?

La specifica OpenAPI 3.1 leggibile da macchina per la superficie REST v1 è pubblicata su https://cryptocardium.com/openapi.json (e il file YAML su /openapi.yaml). Importala in Postman, Insomnia, Stoplight o qualsiasi strumento AI che consuma OpenAPI.

Come funziona il discovery del server MCP?

La scheda server è pubblicata su https://cryptocardium.com/.well-known/mcp/server-card.json (formato MCP SEP-1649). I metadati di autorizzazione si trovano su /.well-known/oauth-authorization-server (RFC 8414) e /.well-known/oauth-protected-resource (RFC 9728). I client MCP rilevano il server end-to-end senza configurazione manuale.

Quali trasporti MCP sono supportati?

Solo HTTP streamable (specifica MCP 2025-06-18), con upgrade SSE opzionale per operazioni di lunga durata. Il trasporto HTTP+SSE deprecato non è supportato.

Un agente AI può registrarsi senza onboarding manuale?

Sì. La Dynamic Client Registration (RFC 7591) è supportata sul server di autorizzazione OAuth 2.1. Un agente esegue un POST dei propri metadati su /oauth/register e riceve immediatamente client_id e client_secret. Gli scope iniziali sono limitati; l'agente può richiedere scope elevati tramite il flusso standard di consenso OAuth.

L'API supporta i micropagamenti x402?

Sì. Gli endpoint a pagamento possono restituire HTTP 402 con un header strutturato PAYMENT-REQUIRED (scheme=exact, network=base, asset=USDC). L'agente ritenta con PAYMENT-SIGNATURE. Allineamento nativo con Visa TAP e Mastercard Agent Pay.

Come vengono autenticati i webhook?

Ogni evento webhook è firmato con HMAC-SHA256. La chiave di firma viene generata una volta alla sottoscrizione, ruotabile su richiesta. Le chiavi di idempotenza consentono il replay sicuro. Eventi del ciclo di vita coperti: transizioni di stato della ricarica, emissione carta, autorizzazione, cattura, rimborso, contestazione, regolamento.

Gli scope sono per tool o per chiamata?

Gli scope sono per tool. Puoi concedere a un agente accesso in sola lettura alle carte (card:read), o solo emissione senza rivelazione (card:issue senza card:reveal_pan), oppure limitarlo a una singola carta tramite policy di accesso granulari. I grant di scope sono revocabili in qualsiasi momento.

Qual è il limite di frequenza?

600 richieste al minuto per chiave API, con un burst di 100 richieste. Limiti più elevati disponibili su richiesta tramite /contact. I limiti sono esposti su /v1/system/limits.