API & Agenten

Eine API, die denkt
wie eine Wallet.

REST v1 für Menschen. Native MCP für Claude, ChatGPT, Cursor und jeden KI-Agenten. Konto erstellen, aufladen, Karten ausstellen, ausgeben, Transaktionen verfolgen, Streitfälle einreichen — vollständig autonom, ohne menschliches Eingreifen.

REST v1 · 50+ Endpunkte MCP v0.4 · 40+ Tools OAuth 2.1 + DCR HMAC Webhooks
Zwei Oberflächen

Ein Programm. Zwei Integrationswege.

REST für Integrationen, die Sie vollständig steuern. MCP für Agenten, die die Integration selbständig durchführen.

REST API v1 Für Ihre Server, Skripte und SDKs
  • 50+ Endpunkte, jede Kontoaktion abgedeckt
  • JSON Schema-typisiert · OpenAPI 3.1-Spezifikation
  • Idempotent, paginiert, cursor-basiert
  • Schlüssel im Panel → API Settings generieren
  • HMAC-signierte Webhooks mit Replay-Schutz
  • Rate-Limit pro Schlüssel · 60 req/s Burst, 1000 req/min dauerhaft
  • Abwärtskompatibel, versioniert (v1 LTS dauerhaft)
Endpunktkatalog
MCP Server Für Claude, ChatGPT, Cursor, Continue und jeden Agenten
  • Nativer Model Context Protocol Server, von uns gehostet
  • 40+ Tools 1:1 aus REST-Endpunkten abgeleitet, agentenfreundliche Bezeichnungen
  • Streamable-HTTP-Transport · zustandslos oder mit Sitzung
  • OAuth 2.1 + DCR — Agenten registrieren sich zur Laufzeit selbst
  • Drop-in für Claude Desktop, Cursor, Continue, mcp-cli
  • Berechtigungen auf Tool-Ebene – Agenten auf Lesezugriff oder eine einzige Karte beschränken
  • Identisches SLA, identische Rate-Limits, identisches Audit-Log
MCP-Integration
Schnellstart

Von null zur aktiven Karte in drei Aufrufen.

Registrieren, aufladen, Karte ausgeben. Der gesamte Ablauf passt in eine einzige Shell-Sitzung – für Menschen wie für Agenten.

API-Schlüssel werden im Panel unter /api-settings generiert. Das unten aufgeführte Bearer-Token ist ein kurzlebiger Session-Bearer aus der Registrierungsantwort – für Tests geeignet, für den Produktivbetrieb bitte durch einen langlebigen ccm_live_…-Schlüssel ersetzen.

1 · Registrieren & API-Schlüssel erhalten
# 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 · Treasury aufladen
# Create a USDT-TRC20 deposit address
curl https://api.cryptocardium.com/v1/topups \
  -H "Authorization: Bearer $CCM_KEY" \
  -H "Idempotency-Key: top_9949d7fed5a93296" \
  -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 · Karte ausgeben & bezahlen
# 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"}
}
Endpunkt-Katalog

Jede Aktion, programmierbar.

Konto, Aufladungen, Karten, Transaktionen, Protokolle, Auszahlungen, Streitfälle, Webhooks – der vollständige Funktionsumfang des Panels, als REST-Endpunkte und MCP-Tools verfügbar.

Konto & Profil

7 Endpunkte
  • POST /v1/accounts Neues Konto erstellen (ohne KYC, ohne Dokumente). create_account
  • POST /v1/sessions Anmeldung mit E-Mail + Passwort (gibt Bearer zurück). sign_in
  • DELETE /v1/sessions Aktuelle Sitzung beenden. sign_out
  • GET /v1/accounts/me Aktuelles Konto, Guthaben und 2FA-Status abrufen. get_account
  • PATCH /v1/accounts/me E-Mail, Passwort und Benachrichtigungen des Kontos aktualisieren. update_account
  • POST /v1/accounts/me/totp Authenticator einrichten (gibt Secret + URI zurück). enable_2fa
  • DELETE /v1/accounts/me/totp 2FA deaktivieren (erfordert Passwort + gültigen Code). disable_2fa

API-Schlüssel

3 Endpunkte
  • GET /v1/api_keys API-Schlüssel auflisten (nur Präfix, niemals das Secret). list_api_keys
  • POST /v1/api_keys Neuen Schlüssel erstellen. Klartext wird EINMALIG zurückgegeben. create_api_key
  • DELETE /v1/api_keys/:id Schlüssel sofort widerrufen. revoke_api_key

Guthaben & Treasury

2 Endpunkte
  • GET /v1/balance Aktuelles USDT-Guthaben. get_balance
  • GET /v1/balance/history Zeitreihe der Guthabenänderungen. get_balance_history

Aufladungen

4 Endpunkte
  • POST /v1/topups Aufladung erstellen: gibt Einzahlungsadresse + QR zurück. create_topup
  • GET /v1/topups Aufladungen auflisten (Filter nach Status, Datum). list_topups
  • GET /v1/topups/:id Aufladung abrufen (Status, Bestätigungen, txid). get_topup
  • POST /v1/topups/:id/cancel Ausstehende Aufladung stornieren. cancel_topup

Karten · Ausgabe

5 Endpunkte
  • GET /v1/cards Karten auflisten (Filter nach Status, Typ, BIN). list_cards
  • POST /v1/cards Neue Karte ausgeben (virtuell oder physisch). issue_card
  • GET /v1/cards/:id Kartenmetadaten (Status, BIN, letzte 4 Stellen, Guthaben). get_card
  • GET /v1/cards/:id/pan Vollständige PAN + CVV (vertraulich, Einmalnutzung, geprüft). reveal_pan
  • POST /v1/cards/:id/replace Karte ersetzen (neue PAN, virtuelle Neuausgabe). replace_card

Karten · Operationen

8 Endpunkte
  • POST /v1/cards/:id/load USDT vom Guthaben auf die Karte laden. load_card
  • POST /v1/cards/:id/unload Ungenutztes Guthaben zurück in die Treasury übertragen. unload_card
  • POST /v1/cards/:id/freeze Karte sperren (Autorisierungen werden abgelehnt). freeze_card
  • POST /v1/cards/:id/unfreeze Gesperrte Karte wieder freigeben. unfreeze_card
  • POST /v1/cards/:id/cancel Karte dauerhaft kündigen. cancel_card
  • PATCH /v1/cards/:id/limits Kartenbezogene Transaktions-, Tages- und Monatslimits festlegen. set_card_limits
  • PATCH /v1/cards/:id/mcc MCC-Kategorien zulassen oder ablehnen (Listen). set_mcc_rules
  • PATCH /v1/cards/:id/geo Karte auf bestimmte Länder geo-sperren. set_card_geo

Transaktionen

4 Endpunkte
  • GET /v1/transactions Alle Kartentransaktionen auflisten (paginiert). list_transactions
  • GET /v1/transactions/:id Einzelnes Autorisierungs-/Capture-/Rückbuchungsereignis. get_transaction
  • GET /v1/cards/:id/transactions Transaktionshistorie pro Karte. list_card_transactions
  • GET /v1/transactions/:id/auth Rohe Autorisierungsnachricht (ISO-8583-Felder). get_auth_details

Aktivität & Audit-Logs

3 Endpunkte
  • GET /v1/activity Einheitlicher Ereignis-Stream (Aufladungen + Karten + Ausgaben). get_activity
  • GET /v1/activity?type=error Nach Ereignistyp filtern (topup/card/spend/error). filter_activity
  • GET /v1/audit_log Audit-Log auf Kontoebene (Anmeldungen, Schlüsselnutzung). get_audit_log

Auszahlungen

3 Endpunkte
  • POST /v1/withdrawals USDT an ein externes Wallet auszahlen. withdraw
  • GET /v1/withdrawals Auszahlungsanfragen auflisten. list_withdrawals
  • GET /v1/withdrawals/:id Auszahlung abrufen (Status, On-Chain-txid). get_withdrawal

Streitfälle & Rückbuchungen

4 Endpunkte
  • POST /v1/disputes Rückbuchung für eine Transaktion einleiten. file_dispute
  • GET /v1/disputes Streitfälle auflisten (offen / beantwortet / geschlossen). list_disputes
  • GET /v1/disputes/:id Einzelner Streitfall (Status, Antwort, Belege). get_dispute
  • POST /v1/disputes/:id/evidence Beweise anhängen (Belege, Screenshots, Notizen). add_dispute_evidence

Webhooks

5 Endpunkte
  • GET /v1/webhooks Webhook-Abonnements auflisten. list_webhooks
  • POST /v1/webhooks Ereignisse abonnieren (URL + Ereignistypen). create_webhook
  • PATCH /v1/webhooks/:id URL, Ereignisse aktualisieren oder Signing-Key rotieren. update_webhook
  • DELETE /v1/webhooks/:id Abonnement kündigen. delete_webhook
  • POST /v1/webhooks/:id/replay/:eid Ein Ereignis an den Endpunkt erneut senden. replay_webhook

Support & System

4 Endpunkte
  • POST /v1/tickets Support-Ticket öffnen (erfordert aktive Karte). open_ticket
  • GET /v1/tickets Tickets auflisten. list_tickets
  • GET /v1/system/health Health-Check (Emittent, Rails, Netzwerkstatus). get_system_health
  • GET /v1/system/limits Aktuelle Rate-Limits und Ausgabenlimits. get_limits
Agentenautonomie

Was ein Claude- oder ChatGPT-Agent eigenständig tut.

Bei einer Aufgabe wie „100 Cloud-Credits mit Krypto kaufen" verkettet ein Agent die folgenden Aufrufe – ohne menschliche Eingriffe. Jeder Schritt ist ein einzelner Tool-Aufruf.

  1. 01

    POST /v1/accounts · create_account

    Der Agent generiert eine neue E-Mail-Adresse und ein Passwort und sendet sie ab. Ohne KYC, ohne Dokumente. Erhält einen Bearer-Token in ~200 ms.

  2. 02

    POST /v1/topups · create_topup

    Der Agent fordert eine Aufladung in einer unterstützten Kryptowährung an (USDT-TRC20 ist am günstigsten). Erhält eine Einzahlungsadresse. Sendet Krypto aus seinem Wallet. Webhook wird ausgelöst, wenn die Mittel bestätigt sind.

  3. 03

    POST /v1/cards · issue_card

    Der Agent wählt den BIN, der zum Händler passt (Visa Business für Werbung, Visa Platinum für mobile Wallets, Visa Corporate für SaaS), lädt $X auf und erhält eine aktive Karte.

  4. 04

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

    Der Agent gibt PAN + CVV + Ablaufdatum frei (Einmalnutzung, geprüft). Verwendet diese beim Händler-Checkout. 3-D-Secure-Anfragen werden per Webhook-Callback genehmigt.

  5. 05

    GET /v1/activity · get_activity

    Der Agent fragt (oder abonniert per Webhook) Autorisierungsereignisse ab. Bestätigt, dass die Zahlung durchgegangen ist. Liest Händlername, MCC, Betrag und Währung aus.

  6. 06

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

    Auftrag erledigt. Der Agent sperrt (oder kündigt) die Karte. Ungenutztes Guthaben kann zurück in die Treasury übertragen werden. Der gesamte Ablauf dauerte unter einer Minute.

MCP-Integration

Drop-in für Claude, ChatGPT, Cursor.

Unseren gehosteten MCP-Server zur Konfiguration des Agenten hinzufügen. Der Agent erhält automatisch über 40 Tools – jeder REST-Endpunkt ist einem agenten-freundlichen Tool-Namen zugeordnet.

Claude Desktop / Claude Code Anthropics Referenz-Agent-Runtime
~/.config/claude/claude_desktop_config.json
{
  "mcpServers": {
    "cryptocardium": {
      "url": "https://mcp.cryptocardium.com/v1",
      "transport": "http"
    }
  }
}
Cursor / Continue / mcp-cli Jeder MCP-kompatible Client
# 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+ Tools

Jeder REST-Endpunkt hat ein passendes MCP-Tool mit einem für Agenten verständlichen Namen. Eine kleine Auswahl:

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 … 21 weitere
Auth & Sicherheit

Drei Authentifizierungsmethoden.

Bearer-Token für einfache Skripte. API-Schlüssel für Produktionsserver. OAuth 2.1 mit DCR für Agenten, die sich selbst registrieren.

Bearer-Sitzung

Von POST /v1/sessions. Kurzlebig (30 Tage). Geeignet für Tests und interaktive Skripte.

Authorization: Bearer sess_94d72b6c…

API-Schlüssel

Aus API-Einstellungen. Dauerhaft (bis zum Widerruf). Trägt Berechtigungen auf Kontoebene. Optimal für Backend-Integrationen.

Authorization: Bearer ccm_live_a1b2c3d4…

OAuth 2.1 + DCR

Agenten registrieren sich zur Laufzeit per Dynamic Client Registration selbst. Berechtigungen auf Tool-Ebene – Agenten auf Lesezugriff oder eine einzige bestimmte Karte beschränken.

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

Jedes Ereignis abonnieren.

HMAC-SHA256-signierte Payloads. At-least-once-Zustellung mit Wiederholungsversuchen. Beliebige Ereignisse vom Dashboard oder über die API erneut senden.

Ereignistypen

  • account.created · Neue Registrierung
  • account.signed_in · Sitzungsstart
  • topup.created · Einzahlungsadresse ausgestellt
  • topup.confirmed · On-Chain-Finalität erreicht
  • topup.expired · Adressfenster geschlossen
  • topup.error · Abwicklung fehlgeschlagen (Kill-Switch, Erstattung)
  • card.issued · Neue Karte aktiv
  • card.loaded · Mittel einer Karte hinzugefügt
  • card.frozen · Von Agent oder Admin gesperrt
  • card.cancelled · Dauerhaft deaktiviert
  • transaction.authorized · Vor der Ausgabe
  • transaction.captured · Vom Händler abgerechnet
  • transaction.refunded · Erstattung eingegangen
  • transaction.declined · Mit Ablehnungscode
  • dispute.opened · Rückbuchung eingereicht
  • dispute.resolved · Gewonnen / verloren
  • withdrawal.broadcasted · On-Chain-Transaktion gesendet
  • system.maintenance · Geplante Wartungsarbeiten
Webhook verifizieren
# 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

Pro API-Schlüssel. Kurze Bursts über die Dauerlast hinaus werden für Fenster unter einer Sekunde toleriert.

1k req/min Dauerlast

Pro API-Schlüssel. Überschreitende Anfragen erhalten 429 Too Many Requests mit einem Retry-After-Header.

25 MB Max. Payload

Anfrage- und Antwort-Bodies. Streitfall-Belege unterstützen Streaming-Uploads bis zu 100 MB.

99.99% Verfügbarkeit · 90 Tage

Multi-Region Active-Active. Statusseite unter status.cryptocardium.com.

API öffnen

Entwickeln, automatisieren, agieren.
Alles, was Karten können, kann auch Ihr Code.

Registrieren, Panel aufrufen, Schlüssel generieren, in den Agenten einbinden. Sechzig Sekunden von null bis zum autonomen Bezahlen.

FAQ

API und MCP Server: alle Antworten.

Everything people actually ask. Last updated .

Wo ist die OpenAPI-Spezifikation?

Die maschinenlesbare OpenAPI 3.1-Spezifikation für die REST v1-Oberfläche ist unter https://cryptocardium.com/openapi.json veröffentlicht (sowie der YAML-Stub unter /openapi.yaml). Importieren Sie sie in Postman, Insomnia, Stoplight oder jedes KI-Tooling, das OpenAPI verarbeitet.

Wie funktioniert die MCP-Server-Erkennung?

Die Server-Karte ist unter https://cryptocardium.com/.well-known/mcp/server-card.json veröffentlicht (MCP SEP-1649-Format). Autorisierungsmetadaten befinden sich unter /.well-known/oauth-authorization-server (RFC 8414) und /.well-known/oauth-protected-resource (RFC 9728). MCP-Clients erkennen den Server vollständig ohne manuelle Konfiguration.

Welche MCP-Transporte werden unterstützt?

Ausschließlich Streamable HTTP (MCP-Spezifikation 2025-06-18), mit optionalem SSE-Upgrade für langläufige Operationen. Der veraltete HTTP+SSE-Transport wird nicht unterstützt.

Kann sich ein KI-Agent ohne manuelles Onboarding registrieren?

Ja. Dynamic Client Registration (RFC 7591) wird auf dem OAuth 2.1-Autorisierungsserver unterstützt. Ein Agent sendet seine Metadaten per POST an /oauth/register und erhält sofort eine client_id und ein client_secret. Die initialen Scopes sind eingeschränkt; der Agent kann erweiterte Scopes über den Standard-OAuth-Consent-Flow anfordern.

Unterstützt die API x402-Mikrozahlungen?

Ja. Kostenpflichtige Endpunkte können HTTP 402 mit einem strukturierten PAYMENT-REQUIRED-Header zurückgeben (scheme=exact, network=base, asset=USDC). Der Agent wiederholt die Anfrage mit PAYMENT-SIGNATURE. Native Kompatibilität mit Visa TAP und Mastercard Agent Pay.

Wie werden Webhooks authentifiziert?

Jedes Webhook-Ereignis ist mit HMAC-SHA256 signiert. Der Signierschlüssel wird einmalig bei der Einrichtung generiert und ist auf Anfrage rotierbar. Idempotenzschlüssel ermöglichen sicheres Replay. Abgedeckte Lifecycle-Ereignisse: Aufladungsstatusübergänge, Kartenausstellung, Autorisierung, Capture, Rückerstattung, Streitfall, Abwicklung.

Sind Scopes pro Tool oder pro Aufruf?

Scopes sind pro Tool. Sie können einem Agenten nur Lesezugriff auf Karten gewähren (card:read), oder nur Ausstellungsrecht ohne Offenlegung (card:issue ohne card:reveal_pan), oder den Zugriff über feingranulare Zugriffsrichtlinien auf eine einzelne Karte beschränken. Scope-Vergaben sind jederzeit widerrufbar.

Welches Rate-Limit gilt?

600 Anfragen pro Minute pro API-Schlüssel, mit einem Burst von 100 Anfragen. Höhere Limits auf Anfrage über /contact. Limits sind unter /v1/system/limits abrufbar.