Desarrolladores · REST API v1

Emite tarjetas desde tu propio código

Crea, recarga, congela y cierra tarjetas Visa y Mastercard virtuales por HTTPS. Las solicitudes son JSON, se autentican con una clave secreta y usan el mismo saldo en USDT que recargas con cripto.

URL basehttps://usdtcryptocard.com/api/v1
Autenticación
Bearer sk_live_…
Formato
JSON sobre HTTPS
Endpoints
15
Webhooks
Firmados con HMAC-SHA256

Introducción

La API hace lo mismo que el panel, pero desde tu servidor. Cada tarjeta que emites y cada recarga que haces se pagan con el saldo de tu cuenta, que financias con depósitos en cripto y que siempre se mantiene en USDT.

Los importes están en dólares estadounidenses con dos decimales. Las fechas siguen ISO 8601 en UTC. Los endpoints de listado se paginan con page y per_page.

  1. Crea una claveAbre el acceso a la API en tu panel y genera una clave.
  2. Pide que la activenConfirma tu email, haz un primer depósito y luego pide a soporte que habilite la API.
  3. Haz una llamadaConsulta tu saldo con la solicitud de la derecha y luego emite tu primera tarjeta.
Primera llamada
Solicitud
curl https://usdtcryptocard.com/api/v1/wallet/balance \
  -H "Authorization: Bearer sk_live_..."
Respuesta200
{
  "balance": 1312.5,
  "currency": "USDT",
  "pending_deposits": 500,
  "cards_active": 8,
  "cards_total_balance": 2450
}

Autenticación

Envía tu clave secreta como token Bearer en la cabecera Authorization de cada solicitud. Las claves empiezan por sk_live_ y se generan en tu panel, en Acceso a la API.

Guarda la clave en tu servidor

Quien tenga la clave puede mover dinero de tu cuenta. Cárgala desde una variable de entorno y nunca la pongas en código de navegador o de apps móviles.

Antes de tu primera solicitud

Una clave nueva responde 403 hasta que la cuenta esté lista. Recibirás onboarding_incomplete hasta que confirmes tu email y hagas un primer depósito, y después api_not_enabled hasta que soporte active el acceso a la API. Escríbenos y la habilitamos.

Cabeceras
Solicitud
Authorization: Bearer sk_live_your_api_key
Content-Type: application/json
X-Idempotency-Key: 7c1e2f0a-retry-safe

Errores

Toda respuesta que no sea 2xx trae un cuerpo JSON: un código de error estable con el que puedes ramificar tu lógica y un mensaje escrito para personas.

200
Solicitud exitosa
201
Recurso creado
400
Parámetros inválidos
401
Clave API faltante o inválida
403
La clave es válida, pero el acceso a la API aún no está activado en esta cuenta
404
Recurso no encontrado
429
Límite de tasa excedido
error.json
Respuesta403
{
  "error": "api_not_enabled",
  "message": "Open a support ticket from your dashboard to enable API access."
}

Límites de uso

Los límites se cuentan por clave de API. Si superas uno, recibes un 429: espera un momento y reintenta con backoff.

Solicitudes / Minuto
1.000
Tarjetas / Minuto
50
Solicitudes / Hora
10.000
Tarjetas

Gestión de Tarjetas

Cada tarjeta tiene su propio saldo, límites y ciclo de vida, así que una campaña, un cliente o una suscripción nunca afecta a otra.

POST/cards

Emitir una nueva tarjeta virtual

Emite una tarjeta en el BIN que elijas y la recarga con tu saldo en la misma llamada.

Cuerpo de la Solicitud

bin_idstringrequerido
Identificador BIN (ej. 491653). Usa GET /bins para listar BINs disponibles.
amountnumberrequerido
Carga inicial en USD, descontada de tu saldo. Mínimo $50; la comisión de emisión de $1 se cobra aparte.
labelstringopcional
Etiqueta personalizada para la tarjeta (máx 64 caracteres)
spending_limitnumberopcional
Límite de gasto mensual en USD. Por defecto, el máximo del BIN.
allowed_categoriesstring[]opcional
Categorías de comercio en las que se puede usar la tarjeta, como publicidad o software. Todo lo demás se rechaza.
auto_freeze_atnumberopcional
Auto-congelar cuando el saldo cae por debajo de este monto
metadataobjectopcional
Pares clave-valor para tu seguimiento interno (máx 20 claves)
POST /v1/cards
Solicitud
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"
    }
  }'
Respuesta201
{
  "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 todas las tarjetas con filtros y paginación

Tus tarjetas, de la más reciente a la más antigua.

Parámetros de Query

statusstringopcional
Filtrar por estadoactivefrozenterminated
bin_idstringopcional
Filtrar por BIN
pageintegeropcional
Número de página. Por defecto: 1
per_pageintegeropcional
Elementos por página (1-100). Por defecto: 25
GET /v1/cards
Solicitud
curl https://usdtcryptocard.com/api/v1/cards?status=active&per_page=25 \
  -H "Authorization: Bearer sk_live_..."
Respuesta200
{
  "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}

Obtener resumen de tarjeta (sin datos sensibles)

La tarjeta sin su número ni CVV. Usa el endpoint de detalles cuando los necesites.

Parámetros de ruta

card_idstringrequerido
El id de la tarjeta, tal como se devolvió al crearla.
GET /v1/cards/{card_id}
Solicitud
curl https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q \
  -H "Authorization: Bearer sk_live_..."
Respuesta200
{
  "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

Obtener PAN, CVV y vencimiento completos

Endpoint Sensible

Devuelve PAN, CVV y vencimiento completos. Sensible PCI — nunca registres ni almacenes sin cifrar. Limitado a 30 req/min.

Parámetros de ruta

card_idstringrequerido
El id de la tarjeta, tal como se devolvió al crearla.
GET /v1/cards/{card_id}/details
Solicitud
curl https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/details \
  -H "Authorization: Bearer sk_live_..."
Respuesta200
{
  "id": "card_8xK2m9Lp4q",
  "pan": "4916530000002039",
  "cvv": "123",
  "exp_month": 10,
  "exp_year": 2030
}
POST/cards/{card_id}/freeze

Suspender temporalmente una tarjeta

Suspende todas las transacciones. El saldo se conserva. La tarjeta puede descongelarse después.

Parámetros de ruta

card_idstringrequerido
El id de la tarjeta, tal como se devolvió al crearla.
POST /v1/cards/{card_id}/freeze
Solicitud
curl -X POST https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/freeze \
  -H "Authorization: Bearer sk_live_..."
Respuesta200
{
  "id": "card_8xK2m9Lp4q",
  "status": "frozen",
  "balance": 500
}
POST/cards/{card_id}/unfreeze

Reactivar una tarjeta congelada

Reactiva las transacciones en una tarjeta congelada. Devuelve el objeto tarjeta con status: "active".

Parámetros de ruta

card_idstringrequerido
El id de la tarjeta, tal como se devolvió al crearla.
POST /v1/cards/{card_id}/unfreeze
Solicitud
curl -X POST https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/unfreeze \
  -H "Authorization: Bearer sk_live_..."
Respuesta200
{
  "id": "card_8xK2m9Lp4q",
  "status": "active",
  "balance": 500
}
DELETE/cards/{card_id}

Terminar permanentemente una tarjeta

Acción Irreversible

Terminar una tarjeta es permanente. El saldo restante se devuelve a tu billetera al instante.

Parámetros de ruta

card_idstringrequerido
El id de la tarjeta, tal como se devolvió al crearla.
DELETE /v1/cards/{card_id}
Solicitud
curl -X DELETE https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q \
  -H "Authorization: Bearer sk_live_..."
Respuesta200
{
  "id": "card_8xK2m9Lp4q",
  "status": "terminated",
  "returned_to_wallet": 500
}
Recargas

Recarga de Tarjetas

Agrega o retira fondos de tarjetas individuales. Los fondos provienen del saldo de tu billetera.

POST/cards/{card_id}/fund

Agregar fondos a una tarjeta

Mueve dinero de tu saldo a la tarjeta. Se puede gastar al instante.

Parámetros de ruta

card_idstringrequerido
El id de la tarjeta, tal como se devolvió al crearla.

Cuerpo de la Solicitud

amountnumberrequerido
Importe en USD que se mueve de tu saldo a la tarjeta.
POST /v1/cards/{card_id}/fund
Solicitud
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
  }'
Respuesta200
{
  "card_id": "card_8xK2m9Lp4q",
  "card_balance": 700,
  "wallet_balance": 612.5
}
POST/cards/{card_id}/withdraw

Retirar fondos a la billetera

Devuelve los saldos actualizados de tarjeta y billetera.

Parámetros de ruta

card_idstringrequerido
El id de la tarjeta, tal como se devolvió al crearla.
POST /v1/cards/{card_id}/withdraw
Solicitud
curl -X POST https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/withdraw \
  -H "Authorization: Bearer sk_live_..."
Respuesta200
{
  "card_id": "card_8xK2m9Lp4q",
  "card_balance": 0,
  "wallet_balance": 1312.5
}
Transacciones

Historial de Transacciones

Visualiza todas las transacciones en tus tarjetas. Incluye autorizaciones, liquidaciones, reembolsos y rechazos.

GET/transactions

Listar todas las transacciones con filtros

Autorizaciones, liquidaciones, reembolsos y rechazos de todas tus tarjetas, de lo más reciente a lo más antiguo.

Parámetros de Query

card_idstringopcional
Filtrar por tarjeta
typestringopcional
Devuelve solo transacciones de este tipo.authorizationsettlementrefunddecline
fromstringopcional
Fecha inicial (ISO 8601)
tostringopcional
Fecha final (ISO 8601)
pageintegeropcional
Número de página. Por defecto: 1
GET /v1/transactions
Solicitud
curl https://usdtcryptocard.com/api/v1/transactions?card_id=card_8xK2m9Lp4q \
  -H "Authorization: Bearer sk_live_..."
Respuesta200
{
  "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
}
Billetera

Billetera y Depósitos

Gestiona la billetera de tu cuenta. Deposita cripto, consulta saldos y rastrea depósitos entrantes.

GET/wallet/balance

Obtener saldo y estadísticas de la billetera

Tu saldo, mantenido en USDT, más lo que tienes cargado en tus tarjetas.

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

Obtener direcciones de depósito de cripto

Dónde enviar cripto. Los depósitos se convierten a USDT en cuanto la red los confirma.

Parámetros de Query

currencystringopcional
Devuelve solo la dirección de esta moneda. Omítelo para recibirlas todas.btcethsolusdtbnbtrxpolltcavaxarb
GET /v1/wallet/deposit-address
Solicitud
curl https://usdtcryptocard.com/api/v1/wallet/deposit-address?currency=usdt \
  -H "Authorization: Bearer sk_live_..."
Respuesta200
{
  "data": [
    {
      "currency": "usdt",
      "network": "ERC-20 (Ethereum)",
      "address": "0x9c4e…b71a"
    }
  ]
}
BINs

Selección de BIN

Los 9 BINs en los que puedes emitir, con su red y compatibilidad con billeteras.

GET/bins

Listar todos los BINs disponibles

El catálogo de BINs, con red, categoría y compatibilidad con Apple Pay / Google Pay.

GET /v1/bins
Solicitud
curl https://usdtcryptocard.com/api/v1/bins \
  -H "Authorization: Bearer sk_live_..."
Respuesta200
{
  "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

Autenticación 3D Secure

Recupera retos 3DS y códigos OTP. Todas las tarjetas se inscriben automáticamente en 3DS 2.0.

GET/3ds

Listar retos 3DS pendientes

Desafíos 3D Secure pendientes con sus códigos de un solo uso, para completar un pago sin teléfono.

GET /v1/3ds
Solicitud
curl https://usdtcryptocard.com/api/v1/3ds?status=pending \
  -H "Authorization: Bearer sk_live_..."
Respuesta200
{
  "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 y Eventos

Recibe notificaciones en tiempo real cuando ocurren eventos. Los payloads están firmados con HMAC-SHA256.

Eventos Disponibles

card.created
Se emitió una nueva tarjeta
card.frozen
Se congeló una tarjeta
card.unfrozen
Se descongeló una tarjeta
card.terminated
Se terminó una tarjeta
card.funded
Fondos agregados a una tarjeta
transaction.authorized
Transacción autorizada
transaction.settled
Transacción liquidada
transaction.declined
Transacción rechazada
transaction.refunded
Reembolso procesado
3ds.challenge
Verificación 3DS requerida
deposit.pending
Depósito de cripto detectado
deposit.confirmed
Depósito de cripto confirmado

Verificación de Firma

Cada envío va firmado con HMAC-SHA256 usando el secreto de tu endpoint. Recalcula la firma sobre el cuerpo sin procesar y compárala en tiempo constante antes de confiar en el contenido.

verify
Código
# Recalcula la firma de un payload sin procesar
echo -n "$RAW_BODY" | openssl dgst -sha256 -hmac "$WEBHOOK_SECRET"
POST/webhooks

Registrar un endpoint de webhook

Registra un endpoint HTTPS y los eventos que debe recibir.

Cuerpo de la Solicitud

urlstringrequerido
URL HTTPS del endpoint para recibir eventos
eventsstring[]requerido
Nombres de los eventos a los que suscribirte. Usa ["*"] para recibirlos todos.
secretstringopcional
Secreto de firma personalizado. Auto-generado si se omite.
POST /v1/webhooks
Solicitud
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"
    ]
  }'
Respuesta201
{
  "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 emitir tarjetas virtuales | USDT Crypto Card