API Referansı

PrivCards'ı uygulamalarınıza entegre edin. REST API ile sanal kartları programatik olarak verin, yükleyin, dondurun ve yönetin.

Temel URLhttps://api.privcards.com/v1
RESTful JSON
Bearer Kimlik Doğrulama
Sandbox Ortamı
Webhooks
Kimlik Doğrulama

API Anahtarları ve Kimlik Doğrulama

Tüm API istekleri Bearer token gerektirir. Panel → Ayarlar → API Anahtarları'ndan API anahtarınızı oluşturun.

API Anahtar Güvenliği

Anahtarınızı asla istemci tarafı kodda göstermeyin. Çevre değişkenleri kullanın. sk_live_ ön ekli anahtarlar üretim, sk_test_ sandbox.

request-headers
Authorization: Bearer sk_live_your_api_key_here
Content-Type: application/json
X-Idempotency-Key: optional-unique-key-for-safe-retries
Hız Sınırları
1.000
İstek / Dakika
50
Kart / Dakika
10.000
İstek / Saat
Hata Kodları
error-response.json
{
  "error": "insufficient_funds",
  "message": "Your wallet balance is too low to fund this card.",
  "code": 400,
  "request_id": "req_7f8a9b2c3d4e"
}
200
İstek başarılı
201
Kaynak oluşturuldu
400
Geçersiz parametreler
401
Eksik veya geçersiz API anahtarı
404
Kaynak bulunamadı
429
Hız sınırı aşıldı
Kartlar

Kart Yönetimi

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.

İstek Gövdesi
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)
Örnek İstek
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"
}
Query Parametreleri
ParameterTypeDescription
statusstringoptionalactive, frozen, terminated
bin_idstringoptionalFilter by BIN
pageintegeroptionalPage number. Default: 1
per_pageintegeroptionalItems per page (1-100). Default: 25

apiDocs.cards.getDesc

Hassas Endpoint

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.

Geri Alınamaz İşlem

Kartı sonlandırmak kalıcıdır. Kalan bakiye anında cüzdanınıza döndürülür.

Yüklemeler

Kart Yükleme

Tek tek kartlardan fon ekleyin veya çekin. Fonlar cüzdan bakiyenizden gelir.

İstek Gövdesi
ParameterTypeDescription
amountnumberrequiredAmount in USD to add. Min: $1.00, Max: $5,000.00

Güncellenmiş kart ve cüzdan bakiyelerini döndürür.

İşlemler

İşlem Geçmişi

Kartlarınızdaki tüm işlemleri görüntüleyin. Yetkilendirmeleri, kapanışları, iadeleri ve reddedileni içerir.

Query Parametreleri
ParameterTypeDescription
card_idstringoptionalFilter by card
typestringoptionalauthorization, settlement, refund, decline
fromstringoptionalStart date (ISO 8601)
tostringoptionalEnd date (ISO 8601)
pageintegeroptionalPage number. Default: 1
Cüzdan

Cüzdan ve Yatırımlar

Hesap cüzdanınızı yönetin. Kripto yatırın, bakiyeleri kontrol edin ve gelen yatırımları takip edin.

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
}
Query Parametreleri
ParameterTypeDescription
currencystringoptionalbtc, eth, sol, usdt. Omit to get all.
BIN'ler

BIN Seçimi

Yetenekleri, limitleri ve onay oranları ile mevcut BIN aralıklarını listeler.

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

3D Secure Kimlik Doğrulama

3DS sorgularını ve OTP kodlarını alın. Tüm kartlar otomatik olarak 3DS 2.0'a kaydedilir.

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 ve Olaylar

Olaylar gerçekleştiğinde gerçek zamanlı bildirimler alın. Payload'lar HMAC-SHA256 ile imzalanır.

Mevcut Olaylar
card.createdYeni kart verildi
card.frozenBir kart donduruldu
card.unfrozenBir kart çözüldü
card.terminatedBir kart sonlandırıldı
card.fundedKarta fon eklendi
transaction.authorizedİşlem yetkilendirildi
transaction.settledİşlem kapandı
transaction.declinedİşlem reddedildi
transaction.refundedİade işlendi
3ds.challenge3DS doğrulaması gerekli
deposit.pendingKripto yatırım algılandı
deposit.confirmedKripto yatırım onaylandı
İmza Doğrulama
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)
İstek Gövdesi
ParameterTypeDescription
urlstringrequiredHTTPS endpoint URL to receive events
eventsstring[]requiredEvent types to subscribe. Use ["*"] for all.
secretstringoptionalCustom signing secret. Auto-generated if omitted.
SDK'lar

SDK'lar ve Kütüphaneler

Stack'iniz için resmi istemci kütüphaneleri. Tüm SDK'lar live ve sandbox ortamlarını destekler.

Python

Python

pip install privcards

Node.js

Node.js

npm i privcards

Go

Go

go get privcards

Hızlı Başlangıç — 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)
Hızlı Başlangıç — 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'],
});
API Dokümantasyonu — PrivCards Sanal Kart API