API & Agentes

Uma API que pensa
como uma carteira.

REST v1 para humanos. MCP nativo para Claude, ChatGPT, Cursor e qualquer agente de IA. Cadastre-se, recarregue, emita cartões, gaste, acompanhe transações, abra contestações — totalmente autônomo, sem intervenção humana.

REST v1 · 50+ endpoints MCP v0.4 · 40+ ferramentas OAuth 2.1 + DCR Webhooks HMAC
Duas superfícies

Um programa. Duas formas de integrar.

REST para as integrações que você controla de ponta a ponta. MCP para os agentes que conduzem a integração por conta própria.

REST API v1 Para seus servidores, scripts e SDKs
  • 50+ endpoints, todas as ações de conta cobertas
  • Tipado com JSON Schema · especificação OpenAPI 3.1
  • Idempotente, paginado, baseado em cursor
  • Chaves geradas no painel → Configurações de API
  • Webhooks assinados com HMAC com proteção contra replay
  • Limite de requisições por chave · burst de 60 req/s, sustentado 1000 req/min
  • Compatível com versões anteriores, versionado (v1 LTS para sempre)
Catálogo de endpoints
MCP Server Para Claude, ChatGPT, Cursor, Continue e qualquer agente
  • MCP server nativo do Model Context Protocol, hospedado por nós
  • Mais de 40 ferramentas mapeadas 1:1 a partir dos endpoints REST, nomes amigáveis para agentes
  • Transporte HTTP com streaming · sem estado ou com sessão
  • OAuth 2.1 + DCR — agentes se registram automaticamente em tempo de execução
  • Integração direta com Claude Desktop, Cursor, Continue, mcp-cli
  • Concessão de escopo por ferramenta — restrinja um agente a somente leitura ou a um único cartão
  • Mesmo SLA, mesmos limites de requisições, mesmo log de auditoria
Integração MCP
Início rápido

Do zero ao cartão ativo em três chamadas.

Cadastre-se, adicione saldo e emita um cartão. Todo o fluxo cabe em uma única sessão de terminal — tanto para humanos quanto para agentes.

As chaves de API são geradas no painel em /api-settings. O bearer token abaixo é um bearer de sessão de curta duração obtido na resposta de cadastro — adequado para testes, mas em produção substitua por uma chave ccm_live_… de longa duração.

1 · cadastro & obtenção de chave de 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 · recarregue seu saldo
# Create a USDT-TRC20 deposit address
curl https://api.cryptocardium.com/v1/topups \
  -H "Authorization: Bearer $CCM_KEY" \
  -H "Idempotency-Key: top_9e221f324be41b7c" \
  -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 · emita um cartão & realize pagamentos
# 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

Toda ação, programável.

Conta, recargas, cartões, transações, logs, saques, disputas, webhooks — a superfície completa do painel, exposta como endpoints REST e ferramentas MCP.

Conta & perfil

7 endpoints
  • POST /v1/accounts Criar uma nova conta (sem KYC, sem documentos). create_account
  • POST /v1/sessions Autenticar com e-mail + senha (retorna bearer). sign_in
  • DELETE /v1/sessions Encerrar a sessão atual. sign_out
  • GET /v1/accounts/me Retornar a conta atual, saldo e estado do 2FA. get_account
  • PATCH /v1/accounts/me Atualizar e-mail, senha e notificações da conta. update_account
  • POST /v1/accounts/me/totp Registrar um autenticador (retorna segredo + URI). enable_2fa
  • DELETE /v1/accounts/me/totp Desativar o 2FA (requer senha + código válido). disable_2fa

Chaves de API

3 endpoints
  • GET /v1/api_keys Listar suas chaves de API (somente prefixo, nunca o segredo). list_api_keys
  • POST /v1/api_keys Criar uma nova chave. Texto simples retornado UMA VEZ. create_api_key
  • DELETE /v1/api_keys/:id Revogar uma chave imediatamente. revoke_api_key

Saldo & tesouraria

2 endpoints
  • GET /v1/balance Saldo atual em USDT. get_balance
  • GET /v1/balance/history Série temporal de variações de saldo. get_balance_history

Recargas

4 endpoints
  • POST /v1/topups Criar uma recarga: retorna endereço de depósito + QR. create_topup
  • GET /v1/topups Listar suas recargas (filtrar por status, data). list_topups
  • GET /v1/topups/:id Obter uma recarga (status, confirmações, txid). get_topup
  • POST /v1/topups/:id/cancel Cancelar uma recarga pendente. cancel_topup

Cartões · emissão

5 endpoints
  • GET /v1/cards Listar seus cartões (filtrar por status, tipo, BIN). list_cards
  • POST /v1/cards Emitir um novo cartão (virtual ou físico). issue_card
  • GET /v1/cards/:id Metadados do cartão (status, BIN, últimos 4 dígitos, saldo). get_card
  • GET /v1/cards/:id/pan PAN completo + CVV (sensível, uso único, auditado). reveal_pan
  • POST /v1/cards/:id/replace Substituir um cartão (novo PAN, reemissão virtual). replace_card

Cartões · operações

8 endpoints
  • POST /v1/cards/:id/load Transferir USDT do saldo para o cartão. load_card
  • POST /v1/cards/:id/unload Devolver saldo não utilizado à sua tesouraria. unload_card
  • POST /v1/cards/:id/freeze Bloquear o cartão (autorizações recusadas). freeze_card
  • POST /v1/cards/:id/unfreeze Reativar um cartão bloqueado. unfreeze_card
  • POST /v1/cards/:id/cancel Cancelar o cartão permanentemente. cancel_card
  • PATCH /v1/cards/:id/limits Definir limites por cartão: por transação, diário e mensal. set_card_limits
  • PATCH /v1/cards/:id/mcc Permitir ou bloquear categorias MCC (listas). set_mcc_rules
  • PATCH /v1/cards/:id/geo Aplicar bloqueio geográfico do cartão a países específicos. set_card_geo

Transações

4 endpoints
  • GET /v1/transactions Listar todas as transações do cartão (paginado). list_transactions
  • GET /v1/transactions/:id Evento único de autorização/captura/estorno. get_transaction
  • GET /v1/cards/:id/transactions Histórico de transações por cartão. list_card_transactions
  • GET /v1/transactions/:id/auth Mensagem bruta de autorização (campos ISO 8583). get_auth_details

Atividade & logs de auditoria

3 endpoints
  • GET /v1/activity Fluxo unificado de eventos (recargas + cartões + gastos). get_activity
  • GET /v1/activity?type=error Filtrar por tipo de evento (topup/card/spend/error). filter_activity
  • GET /v1/audit_log Log de auditoria da conta (logins, uso de chaves). get_audit_log

Saques

3 endpoints
  • POST /v1/withdrawals Sacar USDT para uma carteira externa. withdraw
  • GET /v1/withdrawals Listar suas solicitações de saque. list_withdrawals
  • GET /v1/withdrawals/:id Obter um saque (status, txid on-chain). get_withdrawal

Disputas & chargebacks

4 endpoints
  • POST /v1/disputes Abrir um chargeback em uma transação. file_dispute
  • GET /v1/disputes Listar suas disputas (abertas / respondidas / encerradas). list_disputes
  • GET /v1/disputes/:id Disputa individual (status, resposta, evidências). get_dispute
  • POST /v1/disputes/:id/evidence Anexar evidências (comprovantes, capturas de tela, observações). add_dispute_evidence

Webhooks

5 endpoints
  • GET /v1/webhooks Listar suas assinaturas de webhook. list_webhooks
  • POST /v1/webhooks Assinar eventos (URL + tipos de evento). create_webhook
  • PATCH /v1/webhooks/:id Atualizar URL, eventos ou rotacionar a chave de assinatura. update_webhook
  • DELETE /v1/webhooks/:id Cancelar assinatura. delete_webhook
  • POST /v1/webhooks/:id/replay/:eid Reenviar um evento para seu endpoint. replay_webhook

Suporte & sistema

4 endpoints
  • POST /v1/tickets Abrir um ticket de suporte (requer cartão ativo). open_ticket
  • GET /v1/tickets Listar seus tickets. list_tickets
  • GET /v1/system/health Verificação de integridade (status do emissor, redes e rede). get_system_health
  • GET /v1/system/limits Seus limites de requisições e tetos de gastos atuais. get_limits
Autonomia do agente

O que um agente Claude ou ChatGPT faz por conta própria.

Diante de uma tarefa como "comprar 100 créditos de nuvem com cripto", um agente encadeia as chamadas abaixo — sem intervenção humana. Cada etapa é uma única chamada de ferramenta.

  1. 01

    POST /v1/accounts · create_account

    O agente gera um novo e-mail e senha e os envia. Sem KYC, sem documentos. Recebe um bearer token em ~200ms.

  2. 02

    POST /v1/topups · create_topup

    O agente solicita uma recarga em qualquer cripto suportada (USDT-TRC20 é a mais barata). Recebe um endereço de depósito. Envia a cripto de sua carteira. O webhook dispara quando os fundos são confirmados.

  3. 03

    POST /v1/cards · issue_card

    O agente escolhe o BIN que corresponde ao comerciante (Visa Business para anúncios, Visa Platinum para carteiras digitais, Visa Corporate para SaaS), carrega $X e obtém um cartão ativo.

  4. 04

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

    O agente revela PAN + CVV + validade (uso único, auditado). Usa-os no checkout do comerciante. Desafios 3-D Secure são aprovados via callback de webhook.

  5. 05

    GET /v1/activity · get_activity

    O agente monitora (ou assina via webhook) eventos de autorização. Confirma que o gasto foi processado. Lê o nome do comerciante, MCC, valor e moeda.

  6. 06

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

    Tarefa concluída. O agente bloqueia (ou cancela) o cartão. O saldo não utilizado pode ser devolvido à tesouraria. Todo o fluxo levou menos de um minuto.

Integração MCP

Integração direta com Claude, ChatGPT, Cursor.

Adicione nosso servidor MCP hospedado à configuração do seu agente. O agente detecta automaticamente mais de 40 ferramentas — cada endpoint REST mapeado para um nome de ferramenta amigável ao agente.

Claude Desktop / Claude Code Runtime de referência da Anthropic para agentes
~/.config/claude/claude_desktop_config.json
{
  "mcpServers": {
    "cryptocardium": {
      "url": "https://mcp.cryptocardium.com/v1",
      "transport": "http"
    }
  }
}
Cursor / Continue / mcp-cli Qualquer cliente compatível com 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+ ferramentas

Cada endpoint REST possui uma ferramenta MCP correspondente, nomeada para fácil compreensão por agentes. Uma pequena amostra:

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 … mais 21
Autenticação & segurança

Três formas de autenticar.

Bearer tokens para scripts simples. Chaves de API para servidores em produção. OAuth 2.1 com DCR para agentes que se registram automaticamente.

Sessão Bearer

A partir de POST /v1/sessions. Curta duração (30 dias). Ideal para testes e scripts interativos.

Authorization: Bearer sess_94d72b6c…

Chave de API

A partir de Configurações de API. Persistente (até ser revogada). Carrega permissões de nível de conta. Melhor para integrações de backend.

Authorization: Bearer ccm_live_a1b2c3d4…

OAuth 2.1 + DCR

Agentes registram-se automaticamente em tempo de execução via Dynamic Client Registration. Concessão de escopo por ferramenta — restrinja um agente a somente leitura ou a um cartão específico.

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

Assine todos os eventos.

Payloads assinados com HMAC-SHA256. Entrega garantida com novas tentativas. Reenvie qualquer evento pelo painel ou pela API.

Tipos de evento

  • account.created · novo cadastro
  • account.signed_in · início de sessão
  • topup.created · endereço de depósito emitido
  • topup.confirmed · finalidade on-chain atingida
  • topup.expired · janela de endereço encerrada
  • topup.error · liquidação falhou (kill-switch, reembolso)
  • card.issued · novo cartão ativo
  • card.loaded · fundos adicionados a um cartão
  • card.frozen · bloqueado por agente ou administrador
  • card.cancelled · cancelado permanentemente
  • transaction.authorized · pré-gasto
  • transaction.captured · liquidado pelo comerciante
  • transaction.refunded · reembolso recebido
  • transaction.declined · com código de motivo
  • dispute.opened · chargeback registrado
  • dispute.resolved · ganhou / perdeu
  • withdrawal.broadcasted · transação on-chain enviada
  • system.maintenance · manutenção programada
verificar um 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

Por chave de API. Picos acima da taxa contínua são tolerados em janelas inferiores a um segundo.

1k req/min Contínuo

Por chave de API. Requisições excedentes recebem 429 Too Many Requests com cabeçalho Retry-After.

25 MB Tamanho máximo do payload

Corpo de requisições e respostas. Evidências de disputa suportam uploads em streaming de até 100 MB.

99.99% Disponibilidade · 90d

Ativo-ativo multirregional. Página de status em status.cryptocardium.com.

Acesse a API

Construa, automatize, agentifique.
Tudo o que um cartão pode fazer, seu código pode.

Cadastre-se, acesse o painel, gere uma chave e conecte ao seu agente. Sessenta segundos do zero ao gasto autônomo.

FAQ

API e servidor MCP, respondidos.

Everything people actually ask. Last updated .

Onde está a especificação OpenAPI?

A especificação OpenAPI 3.1 legível por máquina para a superfície REST v1 está publicada em https://cryptocardium.com/openapi.json (e o stub YAML em /openapi.yaml). Importe no Postman, Insomnia, Stoplight ou qualquer ferramenta de IA que consuma OpenAPI.

Como funciona a descoberta do MCP server?

O server card está publicado em https://cryptocardium.com/.well-known/mcp/server-card.json (formato MCP SEP-1649). Os metadados de autorização estão em /.well-known/oauth-authorization-server (RFC 8414) e /.well-known/oauth-protected-resource (RFC 9728). Clientes MCP configuram o servidor de ponta a ponta sem configuração manual.

Quais transportes MCP são suportados?

Apenas HTTP com streaming (especificação MCP 2025-06-18), com upgrade SSE opcional para operações de longa duração. O transporte HTTP+SSE descontinuado não é suportado.

Um agente de IA pode se registrar sem onboarding manual?

Sim. O Dynamic Client Registration (RFC 7591) é suportado no servidor de autorização OAuth 2.1. Um agente envia seus metadados via POST para /oauth/register e recebe um client_id e client_secret imediatamente. Os escopos iniciais são restritos; o agente pode solicitar escopos elevados pelo fluxo padrão de consentimento OAuth.

A API suporta micropagamentos x402?

Sim. Endpoints pagos podem retornar HTTP 402 com um cabeçalho PAYMENT-REQUIRED estruturado (scheme=exact, network=base, asset=USDC). O agente reenvia com PAYMENT-SIGNATURE. Alinhamento nativo com Visa TAP e Mastercard Agent Pay.

Como os webhooks são autenticados?

Cada evento de webhook é assinado com HMAC-SHA256. A chave de assinatura é gerada uma vez na assinatura e pode ser rotacionada sob demanda. Chaves de idempotência permitem replay seguro. Eventos de ciclo de vida cobertos: transições de estado de recarga, emissão de cartão, autorização, captura, reembolso, contestação, liquidação.

Os escopos são por ferramenta ou por chamada?

Os escopos são por ferramenta. Você pode conceder a um agente acesso somente leitura em cartões (card:read), ou somente emissão sem revelação (card:issue sem card:reveal_pan), ou restringi-lo a um único cartão via políticas de acesso refinadas. Concessões de escopo são revogáveis a qualquer momento.

Qual é o limite de requisições?

600 requisições por minuto por chave de API, com burst de 100 requisições. Limites superiores mediante solicitação via /contact. Os limites são expostos em /v1/system/limits.