Integre o PrivCards às suas aplicações. Emita, carregue, congele e gerencie cartões virtuais de forma programática com nossa API REST.
https://api.privcards.com/v1Todas as requisições de API requerem um token Bearer. Gere sua chave de API em Dashboard → Configurações → Chaves 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.
Authorization: Bearer sk_live_your_api_key_here Content-Type: application/json X-Idempotency-Key: optional-unique-key-for-safe-retries
{
"error": "insufficient_funds",
"message": "Your wallet balance is too low to fund this card.",
"code": 400,
"request_id": "req_7f8a9b2c3d4e"
}Crie, gerencie e controle cartões virtuais Visa e Mastercard. Cada cartão é isolado com seu próprio saldo, limites e ciclo de vida.
| Parameter | Type | Description | |
|---|---|---|---|
| bin_id | string | required | BIN identifier (e.g. 491653). Use GET /bins to list available BINs. |
| amount | number | required | Initial funding amount in USD. Min: $1.00, Max: $5,000.00 |
| label | string | optional | Custom label for the card (max 64 chars) |
| spending_limit | number | optional | Monthly spending limit in USD. Defaults to BIN maximum. |
| allowed_categories | string[] | optional | MCC categories to whitelist (e.g. ["advertising", "software"]) |
| auto_freeze_at | number | optional | Auto-freeze when balance drops below this amount |
| metadata | object | optional | Key-value pairs for your internal tracking (max 20 keys) |
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"}
}'{
"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"
}| Parameter | Type | Description | |
|---|---|---|---|
| status | string | optional | active, frozen, terminated |
| bin_id | string | optional | Filter by BIN |
| page | integer | optional | Page number. Default: 1 |
| per_page | integer | optional | Items per page (1-100). Default: 25 |
apiDocs.cards.getDesc
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".
Encerrar um cartão é permanente. O saldo restante é devolvido à sua carteira instantaneamente.
Adicione ou retire fundos de cartões individuais. Os fundos vêm do saldo da sua carteira.
| Parameter | Type | Description | |
|---|---|---|---|
| amount | number | required | Amount in USD to add. Min: $1.00, Max: $5,000.00 |
Retorna os saldos atualizados do cartão e da carteira.
Visualize todas as transações em seus cartões. Inclui autorizações, liquidações, reembolsos e recusas.
| Parameter | Type | Description | |
|---|---|---|---|
| card_id | string | optional | Filter by card |
| type | string | optional | authorization, settlement, refund, decline |
| from | string | optional | Start date (ISO 8601) |
| to | string | optional | End date (ISO 8601) |
| page | integer | optional | Page number. Default: 1 |
Gerencie sua carteira de conta. Deposite cripto, verifique saldos e acompanhe depósitos recebidos.
{
"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
}| Parameter | Type | Description | |
|---|---|---|---|
| currency | string | optional | btc, eth, sol, usdt. Omit to get all. |
Liste os intervalos de BIN disponíveis com suas capacidades, limites e taxas de aprovação.
{
"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"]
}
]
}Recupere desafios 3DS e códigos OTP. Todos os cartões são inscritos no 3DS 2.0 automaticamente.
{
"data": [
{
"id": "3ds_m4n5o6p7",
"card_id": "card_8xK2m9Lp4q",
"merchant": "SPOTIFY",
"amount": 9.99,
"otp": "847291",
"status": "pending",
"expires_at": "2026-04-15T15:05:00Z"
}
]
}Receba notificações em tempo real quando eventos ocorrerem. Os payloads são assinados com HMAC-SHA256.
card.createdUm novo cartão foi emitidocard.frozenUm cartão foi congeladocard.unfrozenUm cartão foi descongeladocard.terminatedUm cartão foi encerradocard.fundedFundos adicionados a um cartãotransaction.authorizedTransação autorizadatransaction.settledTransação liquidadatransaction.declinedTransação recusadatransaction.refundedReembolso processado3ds.challengeVerificação 3DS necessáriadeposit.pendingDepósito cripto detectadodeposit.confirmedDepósito cripto confirmadoimport hmac, hashlib
def verify_webhook(payload, signature, secret):
expected = hmac.new(
secret.encode(),
payload.encode(),
hashlib.sha256
).hexdigest()
return hmac.compare_digest(expected, signature)| Parameter | Type | Description | |
|---|---|---|---|
| url | string | required | HTTPS endpoint URL to receive events |
| events | string[] | required | Event types to subscribe. Use ["*"] for all. |
| secret | string | optional | Custom signing secret. Auto-generated if omitted. |
Bibliotecas cliente oficiais para sua stack. Todos os SDKs suportam ambientes live e sandbox.
pip install privcards
npm i privcards
go get privcards
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)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'],
});