API Referência

Integre o PrivCards às suas aplicações. Emita, carregue, congele e gerencie cartões virtuais de forma programática com nossa API REST.

URL Basehttps://api.privcards.com/v1
JSON RESTful
Autenticação Bearer
Ambiente Sandbox
Webhooks
Autenticação

Chaves de API e Autenticação

Todas as requisições de API requerem um token Bearer. Gere sua chave de API em Dashboard → Configurações → Chaves de API.

Segurança da Chave de API

Nunca exponha sua chave em código do lado do cliente. Use variáveis de ambiente. Chaves com prefixo sk_live_ são produção, sk_test_ são sandbox.

request-headers
Authorization: Bearer sk_live_your_api_key_here
Content-Type: application/json
X-Idempotency-Key: optional-unique-key-for-safe-retries
Limites de Taxa
1.000
Requisições / Minuto
50
Criações de Cartão / Minuto
10.000
Requisições / Hora
Códigos de Erro
error-response.json
{
  "error": "insufficient_funds",
  "message": "Your wallet balance is too low to fund this card.",
  "code": 400,
  "request_id": "req_7f8a9b2c3d4e"
}
200
Requisição bem-sucedida
201
Recurso criado
400
Parâmetros de requisição inválidos
401
Chave de API ausente ou inválida
404
Recurso não encontrado
429
Limite de taxa excedido
Cartões

Gerenciamento de Cartões

Crie, gerencie e controle cartões virtuais Visa e Mastercard. Cada cartão é isolado com seu próprio saldo, limites e ciclo de vida.

Corpo da Requisição
ParameterTypeDescription
bin_idstringrequiredBIN identifier (e.g. 491653). Use GET /bins to list available BINs.
amountnumberrequiredInitial funding amount in USD. Min: $1.00, Max: $5,000.00
labelstringoptionalCustom label for the card (max 64 chars)
spending_limitnumberoptionalMonthly spending limit in USD. Defaults to BIN maximum.
allowed_categoriesstring[]optionalMCC categories to whitelist (e.g. ["advertising", "software"])
auto_freeze_atnumberoptionalAuto-freeze when balance drops below this amount
metadataobjectoptionalKey-value pairs for your internal tracking (max 20 keys)
Exemplo de Requisição
curl
curl -X POST https://api.privcards.com/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": "spring_2026"}
  }'
Response 201 Created
response.json
{
  "id": "card_8xK2m9Lp4q",
  "bin_id": "491653",
  "network": "visa",
  "last4": "2039",
  "status": "active",
  "balance": 500.00,
  "spending_limit": 2000.00,
  "label": "Meta Ads Campaign #12",
  "allowed_categories": ["advertising"],
  "auto_freeze_at": null,
  "metadata": { "campaign": "spring_2026" },
  "created_at": "2026-04-15T12:00:00Z",
  "expires_at": "2029-04-15T23:59:59Z"
}
Parâmetros de Query
ParameterTypeDescription
statusstringoptionalactive, frozen, terminated
bin_idstringoptionalFilter by BIN
pageintegeroptionalPage number. Default: 1
per_pageintegeroptionalItems per page (1-100). Default: 25

apiDocs.cards.getDesc

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.

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

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

Ação Irreversível

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

Financiamento

Financiamento de Cartões

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

Corpo da Requisição
ParameterTypeDescription
amountnumberrequiredAmount in USD to add. Min: $1.00, Max: $5,000.00

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

Transações

Histórico de Transações

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

Parâmetros de Query
ParameterTypeDescription
card_idstringoptionalFilter by card
typestringoptionalauthorization, settlement, refund, decline
fromstringoptionalStart date (ISO 8601)
tostringoptionalEnd date (ISO 8601)
pageintegeroptionalPage number. Default: 1
Carteira

Carteira e Depósitos

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

Response 200 OK
response.json
{
  "balance": 1312.50,
  "currency": "USD",
  "pending_deposits": 500.00,
  "total_deposited": 15000.00,
  "total_spent": 13687.50,
  "cards_active": 8,
  "cards_total_balance": 2450.00
}
Parâmetros de Query
ParameterTypeDescription
currencystringoptionalbtc, eth, sol, usdt. Omit to get all.
BINs

Seleção de BIN

Liste os intervalos de BIN disponíveis com suas capacidades, limites e taxas de aprovação.

Response 200 OK
response.json
{
  "data": [
    {
      "id": "491653",
      "network": "visa",
      "type": "advertising",
      "3ds": true,
      "apple_pay": true,
      "google_pay": true,
      "max_transaction": 5000.00,
      "max_monthly": 50000.00,
      "acceptance_rate": 97.2,
      "best_for": ["meta_ads", "google_ads", "tiktok_ads"]
    }
  ]
}
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.

Response 200 OK
response.json
{
  "data": [
    {
      "id": "3ds_m4n5o6p7",
      "card_id": "card_8xK2m9Lp4q",
      "merchant": "SPOTIFY",
      "amount": 9.99,
      "otp": "847291",
      "status": "pending",
      "expires_at": "2026-04-15T15: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.createdUm novo cartão foi emitido
card.frozenUm cartão foi congelado
card.unfrozenUm cartão foi descongelado
card.terminatedUm cartão foi encerrado
card.fundedFundos adicionados a um cartão
transaction.authorizedTransação autorizada
transaction.settledTransação liquidada
transaction.declinedTransação recusada
transaction.refundedReembolso processado
3ds.challengeVerificação 3DS necessária
deposit.pendingDepósito cripto detectado
deposit.confirmedDepósito cripto confirmado
Verificação de Assinatura
verify-webhook.py
import hmac, hashlib

def verify_webhook(payload, signature, secret):
    expected = hmac.new(
        secret.encode(),
        payload.encode(),
        hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(expected, signature)
Corpo da Requisição
ParameterTypeDescription
urlstringrequiredHTTPS endpoint URL to receive events
eventsstring[]requiredEvent types to subscribe. Use ["*"] for all.
secretstringoptionalCustom signing secret. Auto-generated if omitted.
SDKs

SDKs e Bibliotecas

Bibliotecas cliente oficiais para sua stack. Todos os SDKs suportam ambientes live e sandbox.

Python

Python

pip install privcards

Node.js

Node.js

npm i privcards

Go

Go

go get privcards

Início Rápido — Python
quickstart.py
from privcards import Client

client = Client("sk_live_your_api_key")

# Create a card
card = client.cards.create(
    bin_id="491653",
    amount=500,
    label="Ad Spend"
)
print(card.id, card.last4)

# Get full card details (PAN, CVV)
details = client.cards.details(card.id)
print(details.pan, details.cvv)

# Fund the card
client.cards.fund(card.id, amount=200)

# List transactions
txns = client.transactions.list(card_id=card.id)
for t in txns.data:
    print(t.merchant.name, t.amount)
Início Rápido — Node.js
quickstart.js
const { privcards } = require('privcards');

const client = new privcards('sk_live_your_api_key');

// Create a card
const card = await client.cards.create({
  binId: '491653',
  amount: 500,
  label: 'Ad Spend',
});

// Get 3DS OTPs
const challenges = await client.threeds.list({
  cardId: card.id,
  status: 'pending',
});

// Set up webhooks
await client.webhooks.create({
  url: 'https://yourapp.com/hooks',
  events: ['transaction.authorized', '3ds.challenge'],
});
Documentação da API — PrivCards API de Cartão Virtual