API & Agentes

Una API que piensa
como una wallet.

REST v1 para humanos. MCP nativo para Claude, ChatGPT, Cursor y cualquier agente de IA. Regístrate, recarga, emite tarjetas, gasta, consulta transacciones, presenta disputas — totalmente autónomo, sin intervención humana.

REST v1 · más de 50 endpoints MCP v0.4 · más de 40 herramientas OAuth 2.1 + DCR Webhooks HMAC
Dos superficies

Un programa. Dos formas de integrar.

REST para las integraciones que controlas de extremo a extremo. MCP para los agentes que gestionan la integración por su cuenta.

REST API v1 Para tus servidores, scripts y SDKs
  • Más de 50 endpoints, todas las acciones de cuenta cubiertas
  • Tipado con JSON Schema · especificación OpenAPI 3.1
  • Idempotente, paginado, basado en cursor
  • Claves generadas en el panel → Configuración API
  • Webhooks firmados con HMAC con protección contra reproducción
  • Límite de tasa por clave · ráfaga de 60 req/s, 1000 req/min sostenido
  • Compatible hacia atrás, versionado (v1 LTS para siempre)
Catálogo de endpoints
Servidor MCP Para Claude, ChatGPT, Cursor, Continue, cualquier agente
  • Servidor nativo del Protocolo de Contexto de Modelo, alojado por nosotros
  • Más de 40 herramientas mapeadas 1:1 desde endpoints REST, con nombres para agentes
  • Transporte HTTP streamable · sin estado o con sesión
  • OAuth 2.1 + DCR — los agentes se registran solos en tiempo de ejecución
  • Plug-and-play para Claude Desktop, Cursor, Continue, mcp-cli
  • Permisos de alcance por herramienta — restringe un agente a solo lectura o a una tarjeta
  • Mismo SLA, mismos límites de tasa, mismo registro de auditoría
Integración MCP
Inicio rápido

De cero a tarjeta activa en tres llamadas.

Regístrate, recarga, emite una tarjeta. El flujo completo cabe en una sola sesión de terminal — tanto para humanos como para agentes.

Las claves API se generan en el panel en /api-settings. El token bearer siguiente es un bearer de sesión de corta duración procedente de la respuesta de registro — válido para pruebas, pero en producción sustitúyelo por una clave ccm_live_… de larga duración.

1 · registrarse & obtener una clave 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 · recargar la tesorería
# Create a USDT-TRC20 deposit address
curl https://api.cryptocardium.com/v1/topups \
  -H "Authorization: Bearer $CCM_KEY" \
  -H "Idempotency-Key: top_b3895dfd0942eeb3" \
  -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 · emitir una tarjeta & gastar
# 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"}
}
Catálogo de endpoints

Cada acción, programable.

Cuenta, recargas, tarjetas, transacciones, registros, retiradas, disputas, webhooks — la superficie completa del panel, expuesta como endpoints REST y herramientas MCP.

Cuenta & perfil

7 endpoints
  • POST /v1/accounts Crear una nueva cuenta (sin KYC, sin documentos). create_account
  • POST /v1/sessions Iniciar sesión con email + contraseña (devuelve bearer). sign_in
  • DELETE /v1/sessions Cerrar la sesión actual. sign_out
  • GET /v1/accounts/me Devolver la cuenta actual, saldo, estado 2FA. get_account
  • PATCH /v1/accounts/me Actualizar email, contraseña y notificaciones de la cuenta. update_account
  • POST /v1/accounts/me/totp Inscribir un autenticador (devuelve secreto + URI). enable_2fa
  • DELETE /v1/accounts/me/totp Desactivar 2FA (requiere contraseña + código válido). disable_2fa

Claves API

3 endpoints
  • GET /v1/api_keys Listar tus claves API (solo prefijo, nunca el secreto). list_api_keys
  • POST /v1/api_keys Crear una nueva clave. El texto plano se devuelve UNA VEZ. create_api_key
  • DELETE /v1/api_keys/:id Revocar una clave de inmediato. revoke_api_key

Saldo & tesorería

2 endpoints
  • GET /v1/balance Saldo USDT actual. get_balance
  • GET /v1/balance/history Serie temporal de cambios de saldo. get_balance_history

Recargas

4 endpoints
  • POST /v1/topups Crear una recarga: devuelve dirección de depósito + QR. create_topup
  • GET /v1/topups Listar tus recargas (filtrar por estado, fecha). list_topups
  • GET /v1/topups/:id Obtener una recarga (estado, confirmaciones, txid). get_topup
  • POST /v1/topups/:id/cancel Cancelar una recarga pendiente. cancel_topup

Tarjetas · emisión

5 endpoints
  • GET /v1/cards Listar tus tarjetas (filtrar por estado, tipo, BIN). list_cards
  • POST /v1/cards Emitir una nueva tarjeta (virtual o física). issue_card
  • GET /v1/cards/:id Metadatos de tarjeta (estado, BIN, últimos 4 dígitos, saldo). get_card
  • GET /v1/cards/:id/pan PAN completo + CVV (sensible, de un solo uso, auditado). reveal_pan
  • POST /v1/cards/:id/replace Reemplazar una tarjeta (nuevo PAN, reemisión virtual). replace_card

Tarjetas · operaciones

8 endpoints
  • POST /v1/cards/:id/load Cargar USDT del saldo a la tarjeta. load_card
  • POST /v1/cards/:id/unload Mover el saldo no utilizado de vuelta a la tesorería. unload_card
  • POST /v1/cards/:id/freeze Congelar la tarjeta (autorizaciones rechazadas). freeze_card
  • POST /v1/cards/:id/unfreeze Reactivar una tarjeta congelada. unfreeze_card
  • POST /v1/cards/:id/cancel Cancelar la tarjeta de forma permanente. cancel_card
  • PATCH /v1/cards/:id/limits Establecer límites por tarjeta: tx / diario / mensual. set_card_limits
  • PATCH /v1/cards/:id/mcc Permitir o bloquear categorías MCC (listas). set_mcc_rules
  • PATCH /v1/cards/:id/geo Georestringir la tarjeta a países específicos. set_card_geo

Transacciones

4 endpoints
  • GET /v1/transactions Listar todas las transacciones de tarjeta (paginadas). list_transactions
  • GET /v1/transactions/:id Evento único de autorización/captura/reembolso. get_transaction
  • GET /v1/cards/:id/transactions Historial de transacciones por tarjeta. list_card_transactions
  • GET /v1/transactions/:id/auth Mensaje de autorización en bruto (campos ISO 8583). get_auth_details

Actividad & registros de auditoría

3 endpoints
  • GET /v1/activity Flujo de eventos unificado (recargas + tarjetas + gastos). get_activity
  • GET /v1/activity?type=error Filtrar por tipo de evento (topup/card/spend/error). filter_activity
  • GET /v1/audit_log Registro de auditoría de cuenta (inicios de sesión, usos de clave). get_audit_log

Retiradas

3 endpoints
  • POST /v1/withdrawals Retirar USDT a una cartera externa. withdraw
  • GET /v1/withdrawals Listar tus solicitudes de retirada. list_withdrawals
  • GET /v1/withdrawals/:id Obtener una retirada (estado, txid en cadena). get_withdrawal

Disputas & contracargos

4 endpoints
  • POST /v1/disputes Abrir un contracargo sobre una transacción. file_dispute
  • GET /v1/disputes Listar tus disputas (abiertas / respondidas / cerradas). list_disputes
  • GET /v1/disputes/:id Disputa individual (estado, respuesta, evidencias). get_dispute
  • POST /v1/disputes/:id/evidence Adjuntar evidencias (recibos, capturas, notas). add_dispute_evidence

Webhooks

5 endpoints
  • GET /v1/webhooks Listar tus suscripciones de webhook. list_webhooks
  • POST /v1/webhooks Suscribirse a eventos (URL + tipos de evento). create_webhook
  • PATCH /v1/webhooks/:id Actualizar URL, eventos o rotar la clave de firma. update_webhook
  • DELETE /v1/webhooks/:id Cancelar la suscripción. delete_webhook
  • POST /v1/webhooks/:id/replay/:eid Reproducir un evento en tu endpoint. replay_webhook

Soporte & sistema

4 endpoints
  • POST /v1/tickets Abrir un ticket de soporte (requiere tarjeta activa). open_ticket
  • GET /v1/tickets Listar tus tickets. list_tickets
  • GET /v1/system/health Verificación de estado (emisor, rails, estado de red). get_system_health
  • GET /v1/system/limits Tu límite de tasa actual + límites de gasto. get_limits
Autonomía del agente

Lo que hace un agente Claude o ChatGPT por sí solo.

Dada una tarea como "comprar 100 créditos cloud con cripto", un agente encadena las llamadas siguientes — sin intervención humana. Cada paso es una única llamada de herramienta.

  1. 01

    POST /v1/accounts · create_account

    El agente genera un email y contraseña nuevos y los envía. Sin KYC, sin documentos. Recibe un token bearer en ~200 ms.

  2. 02

    POST /v1/topups · create_topup

    El agente solicita una recarga en cualquier cripto soportada (USDT-TRC20 es la más barata). Recibe una dirección de depósito. Envía la cripto desde su cartera. El webhook se dispara cuando los fondos se confirman.

  3. 03

    POST /v1/cards · issue_card

    El agente elige el BIN que coincide con el comercio (Visa Business para publicidad, Visa Platinum para carteras móviles, Visa Corporate para SaaS), carga X $, obtiene una tarjeta activa.

  4. 04

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

    El agente revela el PAN + CVV + vencimiento (de un solo uso, auditado). Los usa en el proceso de pago del comercio. Los desafíos de 3-D Secure se aprueban mediante callback de webhook.

  5. 05

    GET /v1/activity · get_activity

    El agente sondea (o se suscribe vía webhook) a eventos de autorización. Confirma que el gasto se procesó correctamente. Lee el nombre del comercio, MCC, importe y divisa.

  6. 06

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

    Trabajo terminado. El agente congela (o cancela) la tarjeta. El saldo no utilizado puede descargarse de vuelta a la tesorería. Todo el flujo duró menos de un minuto.

Integración MCP

Plug-and-play para Claude, ChatGPT, Cursor.

Añade nuestro servidor MCP alojado a la configuración de tu agente. El agente detecta más de 40 herramientas automáticamente — cada endpoint REST, mapeado a un nombre de herramienta adaptado para agentes.

Claude Desktop / Claude Code Entorno de ejecución de referencia de Anthropic
~/.config/claude/claude_desktop_config.json
{
  "mcpServers": {
    "cryptocardium": {
      "url": "https://mcp.cryptocardium.com/v1",
      "transport": "http"
    }
  }
}
Cursor / Continue / mcp-cli Cualquier cliente compatible con 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.
Más de 40 herramientas

Cada endpoint REST tiene una herramienta MCP equivalente, con nombre pensado para la comprensión del agente. Una pequeña muestra:

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 más
Autenticación & seguridad

Tres formas de autenticarse.

Tokens bearer para scripts sencillos. Claves API para servidores en producción. OAuth 2.1 con DCR para agentes que se registran solos.

Sesión bearer

Desde POST /v1/sessions. De corta duración (30 días). Ideal para pruebas y scripts interactivos.

Authorization: Bearer sess_94d72b6c…

Clave API

Desde Configuración API. Persistente (hasta revocación). Lleva permisos a nivel de cuenta. Ideal para integraciones de backend.

Authorization: Bearer ccm_live_a1b2c3d4…

OAuth 2.1 + DCR

Los agentes se registran solos en tiempo de ejecución mediante Registro Dinámico de Clientes. Permisos de alcance por herramienta — restringe un agente a solo lectura o a una tarjeta específica.

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

Suscríbete a cada evento.

Payloads firmados con HMAC-SHA256. Entrega al menos una vez con reintentos. Reproduce cualquier evento desde el panel o la API.

Tipos de evento

  • account.created · nuevo registro
  • account.signed_in · inicio de sesión
  • topup.created · dirección de depósito emitida
  • topup.confirmed · finalidad en cadena alcanzada
  • topup.expired · ventana de dirección cerrada
  • topup.error · liquidación fallida (kill-switch, reembolso)
  • card.issued · nueva tarjeta activa
  • card.loaded · fondos añadidos a una tarjeta
  • card.frozen · congelada por agente o administrador
  • card.cancelled · cancelada permanentemente
  • transaction.authorized · pre-gasto
  • transaction.captured · liquidada por el comercio
  • transaction.refunded · reembolso recibido
  • transaction.declined · con código de motivo
  • dispute.opened · contracargo presentado
  • dispute.resolved · ganado / perdido
  • withdrawal.broadcasted · tx en cadena enviada
  • system.maintenance · tiempo de inactividad programado
verificar 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 Ráfaga

Por clave API. Se toleran ráfagas cortas por encima de la tasa sostenida en ventanas de subsegundo.

1k req/min Sostenido

Por clave API. Las solicitudes que superen el límite recibirán 429 Too Many Requests con una cabecera Retry-After.

25 MB Tamaño máximo de payload

Cuerpos de solicitud y respuesta. Las evidencias de disputa soportan cargas en streaming de hasta 100 MB.

99.99% Uptime · 90d

Activo-activo multirregión. Página de estado en status.cryptocardium.com.

Abre la API

Construye, automatiza, delega en agentes.
Todo lo que las tarjetas pueden hacer, tu código también.

Regístrate, ve al panel, genera una clave, conéctala a tu agente. Sesenta segundos de cero al gasto autónomo.

FAQ

API y servidor MCP, respondidos.

Everything people actually ask. Last updated .

¿Dónde está la especificación OpenAPI?

La especificación OpenAPI 3.1 legible por máquina para la superficie REST v1 se publica en https://cryptocardium.com/openapi.json (y el stub YAML en /openapi.yaml). Impórtala en Postman, Insomnia, Stoplight o cualquier herramienta de IA que consuma OpenAPI.

¿Cómo funciona el descubrimiento del servidor MCP?

La ficha del servidor se publica en https://cryptocardium.com/.well-known/mcp/server-card.json (formato MCP SEP-1649). Los metadatos de autorización están en /.well-known/oauth-authorization-server (RFC 8414) y /.well-known/oauth-protected-resource (RFC 9728). Los clientes MCP detectan el servidor de extremo a extremo sin configuración manual.

¿Qué transportes MCP están soportados?

Solo HTTP streamable (especificación MCP 2025-06-18), con actualización SSE opcional para operaciones de larga duración. El transporte HTTP+SSE obsoleto no está soportado.

¿Puede un agente de IA registrarse sin incorporación manual?

Sí. El Registro Dinámico de Clientes (RFC 7591) está soportado en el servidor de autorización OAuth 2.1. Un agente envía sus metadatos mediante POST a /oauth/register y recibe inmediatamente un client_id y un client_secret. Los alcances iniciales son restringidos; el agente puede solicitar alcances elevados a través del flujo estándar de consentimiento OAuth.

¿La API soporta micropagos x402?

Sí. Los endpoints de pago pueden devolver HTTP 402 con una cabecera PAYMENT-REQUIRED estructurada (scheme=exact, network=base, asset=USDC). El agente reintenta con PAYMENT-SIGNATURE. Alineación nativa con Visa TAP y Mastercard Agent Pay.

¿Cómo se autentican los webhooks?

Cada evento de webhook está firmado con HMAC-SHA256. La clave de firma se genera una vez al suscribirse y puede rotarse bajo demanda. Las claves de idempotencia permiten la reproducción segura. Eventos del ciclo de vida cubiertos: transiciones de estado de recarga, emisión de tarjeta, autorización, captura, reembolso, disputa, liquidación.

¿Los alcances son por herramienta o por llamada?

Los alcances son por herramienta. Puedes otorgar a un agente solo lectura en tarjetas (card:read), o solo emisión sin revelación (card:issue sin card:reveal_pan), o limitarlo a una tarjeta específica mediante políticas de acceso detalladas. Los permisos de alcance son revocables en cualquier momento.

¿Cuál es el límite de tasa?

600 solicitudes por minuto por clave API, con una ráfaga de 100 solicitudes. Límites más altos disponibles bajo petición en /contact. Los límites están expuestos en /v1/system/limits.