PrivCards'ı uygulamalarınıza entegre edin. REST API ile sanal kartları programatik olarak verin, yükleyin, dondurun ve yönetin.
https://api.privcards.com/v1Tüm API istekleri Bearer token gerektirir. Panel → Ayarlar → API Anahtarları'ndan API anahtarınızı oluşturun.
Anahtarınızı asla istemci tarafı kodda göstermeyin. Çevre değişkenleri kullanın. sk_live_ ön ekli anahtarlar üretim, sk_test_ 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"
}Sanal Visa ve Mastercard kartları oluşturun, yönetin ve kontrol edin. Her kart kendi bakiyesi, limitleri ve yaşam döngüsü ile izole edilmiştir.
| 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
Tam PAN, CVV ve son kullanma tarihini döndürür. PCI-hassas — asla şifrelenmemiş loglamayın veya saklamayın. 30 req/min sınırlı.
Tüm işlemleri durdurur. Bakiye korunur. Kart daha sonra çözülebilir.
Donmuş kartta işlemleri yeniden etkinleştirir. status: "active" ile kart nesnesini döndürür.
Kartı sonlandırmak kalıcıdır. Kalan bakiye anında cüzdanınıza döndürülür.
Tek tek kartlardan fon ekleyin veya çekin. Fonlar cüzdan bakiyenizden gelir.
| Parameter | Type | Description | |
|---|---|---|---|
| amount | number | required | Amount in USD to add. Min: $1.00, Max: $5,000.00 |
Güncellenmiş kart ve cüzdan bakiyelerini döndürür.
Kartlarınızdaki tüm işlemleri görüntüleyin. Yetkilendirmeleri, kapanışları, iadeleri ve reddedileni içerir.
| 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 |
Hesap cüzdanınızı yönetin. Kripto yatırın, bakiyeleri kontrol edin ve gelen yatırımları takip edin.
{
"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. |
Yetenekleri, limitleri ve onay oranları ile mevcut BIN aralıklarını listeler.
{
"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"]
}
]
}3DS sorgularını ve OTP kodlarını alın. Tüm kartlar otomatik olarak 3DS 2.0'a kaydedilir.
{
"data": [
{
"id": "3ds_m4n5o6p7",
"card_id": "card_8xK2m9Lp4q",
"merchant": "SPOTIFY",
"amount": 9.99,
"otp": "847291",
"status": "pending",
"expires_at": "2026-04-15T15:05:00Z"
}
]
}Olaylar gerçekleştiğinde gerçek zamanlı bildirimler alın. Payload'lar HMAC-SHA256 ile imzalanır.
card.createdYeni kart verildicard.frozenBir kart dondurulducard.unfrozenBir kart çözüldücard.terminatedBir kart sonlandırıldıcard.fundedKarta fon eklenditransaction.authorizedİşlem yetkilendirilditransaction.settledİşlem kapandıtransaction.declinedİşlem reddedilditransaction.refundedİade işlendi3ds.challenge3DS doğrulaması gereklideposit.pendingKripto yatırım algılandıdeposit.confirmedKripto yatırım onaylandı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)| 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. |
Stack'iniz için resmi istemci kütüphaneleri. Tüm SDK'lar live ve sandbox ortamlarını destekler.
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'],
});