Desenvolvedores · REST API v1

Emita cartões direto do seu código

Crie, recarregue, congele e cancele cartões Visa e Mastercard virtuais via HTTPS. As requisições são em JSON, autenticadas com uma chave secreta, e usam o mesmo saldo em USDT que você recarrega com cripto.

URL basehttps://usdtcryptocard.com/api/v1
Autenticação
Bearer sk_live_…
Formato
JSON via HTTPS
Endpoints
15
Webhooks
Assinados com HMAC-SHA256

Introdução

A API faz o mesmo que o painel, só que a partir do seu servidor. Cada cartão emitido e cada recarga feita saem do saldo da sua conta, que você abastece com depósitos em cripto e que fica sempre em USDT.

Os valores são em dólares americanos com duas casas decimais. As datas seguem o ISO 8601 em UTC. Os endpoints de listagem são paginados com page e per_page.

  1. Crie uma chaveAbra o acesso à API no seu painel e gere uma chave.
  2. Peça a ativaçãoConfirme seu e-mail, faça um primeiro depósito e peça ao suporte para ativar a API.
  3. Faça uma chamadaConsulte seu saldo com a requisição ao lado e depois emita seu primeiro cartão.
Primeira chamada
Requisição
curl https://usdtcryptocard.com/api/v1/wallet/balance \
  -H "Authorization: Bearer sk_live_..."
Resposta200
{
  "balance": 1312.5,
  "currency": "USDT",
  "pending_deposits": 500,
  "cards_active": 8,
  "cards_total_balance": 2450
}

Autenticação

Envie sua chave secreta como token Bearer no cabeçalho Authorization de toda requisição. As chaves começam com sk_live_ e são geradas no seu painel, em Acesso à API.

Mantenha a chave no seu servidor

Quem tiver a chave consegue movimentar o dinheiro da sua conta. Carregue-a de uma variável de ambiente e nunca coloque no código do navegador ou do app.

Antes da primeira requisição

Uma chave nova responde 403 até a conta estar pronta. Você recebe onboarding_incomplete até confirmar seu e-mail e fazer um primeiro depósito, e depois api_not_enabled até o suporte ativar o acesso à API. Escreva pra gente e nós ativamos.

Cabeçalhos
Requisição
Authorization: Bearer sk_live_your_api_key
Content-Type: application/json
X-Idempotency-Key: 7c1e2f0a-retry-safe

Erros

Qualquer resposta fora da faixa 2xx vem com um corpo JSON: um código de erro estável para você tratar no código e uma mensagem escrita para humanos.

200
Requisição bem-sucedida
201
Recurso criado
400
Parâmetros de requisição inválidos
401
Chave de API ausente ou inválida
403
A chave é válida, mas o acesso à API ainda não foi ativado nesta conta
404
Recurso não encontrado
429
Limite de taxa excedido
error.json
Resposta403
{
  "error": "api_not_enabled",
  "message": "Open a support ticket from your dashboard to enable API access."
}

Limites de requisição

Os limites são contados por chave de API. Se passar de um, você recebe um 429: espere um pouco e tente de novo com backoff.

Requisições / Minuto
1.000
Criações de Cartão / Minuto
50
Requisições / Hora
10.000
Cartões

Gerenciamento de Cartões

Cada cartão tem saldo, limites e ciclo de vida próprios, então uma campanha, cliente ou assinatura nunca interfere em outra.

POST/cards

Emitir um novo cartão virtual

Emite um cartão no BIN escolhido e o recarrega com seu saldo na mesma chamada.

Corpo da Requisição

bin_idstringobrigatório
Identificador BIN (ex: 491653). Use GET /bins para listar BINs disponíveis.
amountnumberobrigatório
Recarga inicial em USD, descontada do seu saldo. Mínimo de $50; a taxa de emissão de $1 é cobrada à parte.
labelstringopcional
Etiqueta personalizada para o cartão (máx 64 caracteres)
spending_limitnumberopcional
Limite de gastos mensal em USD. Padrão é o máximo do BIN.
allowed_categoriesstring[]opcional
Categorias de comerciante em que o cartão pode ser usado, como publicidade ou software. Todo o resto é recusado.
auto_freeze_atnumberopcional
Congela automaticamente quando o saldo cai abaixo deste valor
metadataobjectopcional
Pares chave-valor para rastreamento interno (máx 20 chaves)
POST /v1/cards
Requisição
curl -X POST https://usdtcryptocard.com/api/v1/cards \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "bin_id": "491653",
    "amount": 500,
    "label": "Meta Ads — Campaign 12",
    "spending_limit": 2000,
    "allowed_categories": [
      "advertising"
    ],
    "metadata": {
      "campaign": "fall_2026"
    }
  }'
Resposta201
{
  "id": "card_8xK2m9Lp4q",
  "bin_id": "491653",
  "network": "visa",
  "last4": "2039",
  "status": "active",
  "balance": 500,
  "spending_limit": 2000,
  "label": "Meta Ads — Campaign 12",
  "allowed_categories": [
    "advertising"
  ],
  "auto_freeze_at": null,
  "metadata": {
    "campaign": "fall_2026"
  },
  "created_at": "2026-09-30T12:00:00Z",
  "expires_at": "2030-10-31"
}
GET/cards

Listar todos os cartões com filtros e paginação

Seus cartões, dos mais recentes aos mais antigos.

Parâmetros de Query

statusstringopcional
Filtrar por statusactivefrozenterminated
bin_idstringopcional
Filtrar por BIN
pageintegeropcional
Número da página. Padrão: 1
per_pageintegeropcional
Itens por página (1-100). Padrão: 25
GET /v1/cards
Requisição
curl https://usdtcryptocard.com/api/v1/cards?status=active&per_page=25 \
  -H "Authorization: Bearer sk_live_..."
Resposta200
{
  "data": [
    {
      "id": "card_8xK2m9Lp4q",
      "bin_id": "491653",
      "network": "visa",
      "last4": "2039",
      "status": "active",
      "balance": 500,
      "spending_limit": 2000,
      "label": "Meta Ads — Campaign 12"
    }
  ],
  "page": 1,
  "per_page": 25,
  "total": 1
}
GET/cards/{card_id}

Obter resumo do cartão (sem dados sensíveis)

O cartão sem o número nem o CVV. Use o endpoint de detalhes quando precisar deles.

Parâmetros de caminho

card_idstringobrigatório
O id do cartão, como retornado na criação.
GET /v1/cards/{card_id}
Requisição
curl https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q \
  -H "Authorization: Bearer sk_live_..."
Resposta200
{
  "id": "card_8xK2m9Lp4q",
  "bin_id": "491653",
  "network": "visa",
  "last4": "2039",
  "status": "active",
  "balance": 500,
  "spending_limit": 2000,
  "label": "Meta Ads — Campaign 12",
  "created_at": "2026-09-30T12:00:00Z"
}
GET/cards/{card_id}/details

Obter PAN completo, CVV e validade

Endpoint Sensível

Retorna PAN completo, CVV e validade do cartão. Sensível à PCI — nunca registre ou armazene sem criptografia. Limite de 30 req/min.

Parâmetros de caminho

card_idstringobrigatório
O id do cartão, como retornado na criação.
GET /v1/cards/{card_id}/details
Requisição
curl https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/details \
  -H "Authorization: Bearer sk_live_..."
Resposta200
{
  "id": "card_8xK2m9Lp4q",
  "pan": "4916530000002039",
  "cvv": "123",
  "exp_month": 10,
  "exp_year": 2030
}
POST/cards/{card_id}/freeze

Suspender temporariamente um cartão

Suspende todas as transações. O saldo é preservado. O cartão pode ser descongelado posteriormente.

Parâmetros de caminho

card_idstringobrigatório
O id do cartão, como retornado na criação.
POST /v1/cards/{card_id}/freeze
Requisição
curl -X POST https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/freeze \
  -H "Authorization: Bearer sk_live_..."
Resposta200
{
  "id": "card_8xK2m9Lp4q",
  "status": "frozen",
  "balance": 500
}
POST/cards/{card_id}/unfreeze

Reativar um cartão congelado

Reativa as transações em um cartão congelado. Retorna o objeto do cartão com status: "active".

Parâmetros de caminho

card_idstringobrigatório
O id do cartão, como retornado na criação.
POST /v1/cards/{card_id}/unfreeze
Requisição
curl -X POST https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/unfreeze \
  -H "Authorization: Bearer sk_live_..."
Resposta200
{
  "id": "card_8xK2m9Lp4q",
  "status": "active",
  "balance": 500
}
DELETE/cards/{card_id}

Encerrar permanentemente um cartão

Ação Irreversível

Encerrar um cartão é permanente. O saldo restante é devolvido à sua carteira instantaneamente.

Parâmetros de caminho

card_idstringobrigatório
O id do cartão, como retornado na criação.
DELETE /v1/cards/{card_id}
Requisição
curl -X DELETE https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q \
  -H "Authorization: Bearer sk_live_..."
Resposta200
{
  "id": "card_8xK2m9Lp4q",
  "status": "terminated",
  "returned_to_wallet": 500
}
Financiamento

Financiamento de Cartões

Adicione ou retire fundos de cartões individuais. Os fundos vêm do saldo da sua carteira.

POST/cards/{card_id}/fund

Adicionar fundos a um cartão

Transfere dinheiro do seu saldo para o cartão. Fica disponível para uso na hora.

Parâmetros de caminho

card_idstringobrigatório
O id do cartão, como retornado na criação.

Corpo da Requisição

amountnumberobrigatório
Valor em USD a transferir do seu saldo para o cartão.
POST /v1/cards/{card_id}/fund
Requisição
curl -X POST https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/fund \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 200
  }'
Resposta200
{
  "card_id": "card_8xK2m9Lp4q",
  "card_balance": 700,
  "wallet_balance": 612.5
}
POST/cards/{card_id}/withdraw

Retirar fundos de volta para a carteira

Retorna os saldos atualizados do cartão e da carteira.

Parâmetros de caminho

card_idstringobrigatório
O id do cartão, como retornado na criação.
POST /v1/cards/{card_id}/withdraw
Requisição
curl -X POST https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/withdraw \
  -H "Authorization: Bearer sk_live_..."
Resposta200
{
  "card_id": "card_8xK2m9Lp4q",
  "card_balance": 0,
  "wallet_balance": 1312.5
}
Transações

Histórico de Transações

Visualize todas as transações em seus cartões. Inclui autorizações, liquidações, reembolsos e recusas.

GET/transactions

Listar todas as transações com filtros

Autorizações, liquidações, reembolsos e recusas de todos os seus cartões, das mais recentes às mais antigas.

Parâmetros de Query

card_idstringopcional
Filtrar por cartão
typestringopcional
Retorna apenas transações deste tipo.authorizationsettlementrefunddecline
fromstringopcional
Data de início (ISO 8601)
tostringopcional
Data de término (ISO 8601)
pageintegeropcional
Número da página. Padrão: 1
GET /v1/transactions
Requisição
curl https://usdtcryptocard.com/api/v1/transactions?card_id=card_8xK2m9Lp4q \
  -H "Authorization: Bearer sk_live_..."
Resposta200
{
  "data": [
    {
      "id": "txn_3fQ9w1Zk",
      "card_id": "card_8xK2m9Lp4q",
      "type": "settlement",
      "amount": 42.9,
      "currency": "USD",
      "fee": 0.3,
      "merchant": {
        "name": "SPOTIFY",
        "mcc": "4899"
      },
      "created_at": "2026-09-30T14:02:11Z"
    }
  ],
  "page": 1
}
Carteira

Carteira e Depósitos

Gerencie sua carteira de conta. Deposite cripto, verifique saldos e acompanhe depósitos recebidos.

GET/wallet/balance

Obter saldo e estatísticas da carteira

Seu saldo, mantido em USDT, mais o que está nos seus cartões.

GET /v1/wallet/balance
Requisição
curl https://usdtcryptocard.com/api/v1/wallet/balance \
  -H "Authorization: Bearer sk_live_..."
Resposta200
{
  "balance": 1312.5,
  "currency": "USDT",
  "pending_deposits": 500,
  "cards_active": 8,
  "cards_total_balance": 2450
}
GET/wallet/deposit-address

Obter endereços de depósito de cripto

Para onde enviar cripto. Os depósitos são convertidos em USDT assim que a rede os confirma.

Parâmetros de Query

currencystringopcional
Retorna só o endereço desta moeda. Omita para receber todos.btcethsolusdtbnbtrxpolltcavaxarb
GET /v1/wallet/deposit-address
Requisição
curl https://usdtcryptocard.com/api/v1/wallet/deposit-address?currency=usdt \
  -H "Authorization: Bearer sk_live_..."
Resposta200
{
  "data": [
    {
      "currency": "usdt",
      "network": "ERC-20 (Ethereum)",
      "address": "0x9c4e…b71a"
    }
  ]
}
BINs

Seleção de BIN

Os 9 BINs em que você pode emitir, com a rede e o suporte a carteiras digitais.

GET/bins

Listar todos os BINs disponíveis

O catálogo de BINs, com rede, categoria e suporte a Apple Pay / Google Pay.

GET /v1/bins
Requisição
curl https://usdtcryptocard.com/api/v1/bins \
  -H "Authorization: Bearer sk_live_..."
Resposta200
{
  "data": [
    {
      "id": "471938",
      "network": "visa",
      "category": "ads",
      "3ds": true,
      "apple_pay": true,
      "google_pay": true
    },
    {
      "id": "553184",
      "network": "mastercard",
      "category": "ads",
      "3ds": true,
      "apple_pay": true,
      "google_pay": true
    }
  ],
  "total": 9
}
3D Secure

Autenticação 3D Secure

Recupere desafios 3DS e códigos OTP. Todos os cartões são inscritos no 3DS 2.0 automaticamente.

GET/3ds

Listar desafios 3DS pendentes

Desafios 3D Secure pendentes com seus códigos de uso único, para você concluir uma compra sem precisar de celular.

GET /v1/3ds
Requisição
curl https://usdtcryptocard.com/api/v1/3ds?status=pending \
  -H "Authorization: Bearer sk_live_..."
Resposta200
{
  "data": [
    {
      "id": "3ds_m4n5o6p7",
      "card_id": "card_8xK2m9Lp4q",
      "merchant": "SPOTIFY",
      "amount": 9.99,
      "otp": "847291",
      "status": "pending",
      "expires_at": "2026-09-30T15:05:00Z"
    }
  ]
}
Webhooks

Webhooks e Eventos

Receba notificações em tempo real quando eventos ocorrerem. Os payloads são assinados com HMAC-SHA256.

Eventos Disponíveis

card.created
Um novo cartão foi emitido
card.frozen
Um cartão foi congelado
card.unfrozen
Um cartão foi descongelado
card.terminated
Um cartão foi encerrado
card.funded
Fundos adicionados a um cartão
transaction.authorized
Transação autorizada
transaction.settled
Transação liquidada
transaction.declined
Transação recusada
transaction.refunded
Reembolso processado
3ds.challenge
Verificação 3DS necessária
deposit.pending
Depósito cripto detectado
deposit.confirmed
Depósito cripto confirmado

Verificação de Assinatura

Toda entrega é assinada com HMAC-SHA256 usando o segredo do seu endpoint. Recalcule a assinatura sobre o corpo bruto e compare em tempo constante antes de confiar no conteúdo.

verify
Código
# Recalcular a assinatura de um payload bruto
echo -n "$RAW_BODY" | openssl dgst -sha256 -hmac "$WEBHOOK_SECRET"
POST/webhooks

Registrar um endpoint de webhook

Registra um endpoint HTTPS e os eventos que ele deve receber.

Corpo da Requisição

urlstringobrigatório
URL do endpoint HTTPS para receber eventos
eventsstring[]obrigatório
Nomes dos eventos a assinar. Use ["*"] para receber todos.
secretstringopcional
Segredo de assinatura personalizado. Gerado automaticamente se omitido.
POST /v1/webhooks
Requisição
curl -X POST https://usdtcryptocard.com/api/v1/webhooks \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/hooks/cards",
    "events": [
      "transaction.authorized",
      "3ds.challenge"
    ]
  }'
Resposta201
{
  "id": "wh_5tLr8QaZ",
  "url": "https://example.com/hooks/cards",
  "events": [
    "transaction.authorized",
    "3ds.challenge"
  ],
  "secret": "whsec_…",
  "created_at": "2026-09-30T12:00:00Z"
}
API para Emissão de Cartões Virtuais | USDT Crypto Card