مرجع API

ادمج PrivCards في تطبيقاتك. أصدر، اشحن، جمد وأدر البطاقات الافتراضية برمجياً عبر REST API الخاص بنا.

URL الأساسيhttps://api.privcards.com/v1
JSON RESTful
مصادقة Bearer
بيئة Sandbox
Webhooks
المصادقة

مفاتيح API والمصادقة

تتطلب جميع طلبات API رمز Bearer. أنشئ مفتاح API من لوحة التحكم → الإعدادات → مفاتيح API.

أمان مفتاح API

لا تكشف مفتاحك أبداً في كود جانب العميل. استخدم متغيرات البيئة. المفاتيح ببادئة sk_live_ هي إنتاج، 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
حدود المعدل
1,000
طلب / دقيقة
50
بطاقة / دقيقة
10,000
طلب / ساعة
رموز الأخطاء
error-response.json
{
  "error": "insufficient_funds",
  "message": "Your wallet balance is too low to fund this card.",
  "code": 400,
  "request_id": "req_7f8a9b2c3d4e"
}
200
نجح الطلب
201
تم إنشاء المورد
400
معاملات غير صالحة
401
مفتاح API مفقود أو غير صالح
404
المورد غير موجود
429
تم تجاوز حد المعدل
البطاقات

إدارة البطاقات

أنشئ، أدر وتحكم في بطاقات Visa وMastercard الافتراضية. كل بطاقة معزولة برصيدها وحدودها ودورة حياتها الخاصة.

جسم الطلب
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)
مثال طلب
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
ParameterTypeDescription
statusstringoptionalactive, frozen, terminated
bin_idstringoptionalFilter by BIN
pageintegeroptionalPage number. Default: 1
per_pageintegeroptionalItems per page (1-100). Default: 25

apiDocs.cards.getDesc

Endpoint حساس

تُرجع PAN وCVV وتاريخ الانتهاء الكامل. حساس PCI — لا تسجل أو تخزن أبداً بدون تشفير. محدود بـ 30 req/min.

يعلق جميع المعاملات. الرصيد محفوظ. يمكن إلغاء تجميد البطاقة لاحقاً.

يعيد تفعيل المعاملات على بطاقة مجمدة. يُرجع كائن البطاقة بحالة status: "active".

إجراء لا يمكن التراجع عنه

إنهاء البطاقة دائم. يتم إرجاع الرصيد المتبقي إلى محفظتك فوراً.

الشحن

شحن البطاقة

أضف أو اسحب الأموال من البطاقات الفردية. تأتي الأموال من رصيد محفظتك.

جسم الطلب
ParameterTypeDescription
amountnumberrequiredAmount in USD to add. Min: $1.00, Max: $5,000.00

يُرجع أرصدة محدثة للبطاقة والمحفظة.

المعاملات

سجل المعاملات

اعرض جميع المعاملات على بطاقاتك. يشمل التراخيص والتسويات والمبالغ المستردة والرفض.

معاملات Query
ParameterTypeDescription
card_idstringoptionalFilter by card
typestringoptionalauthorization, settlement, refund, decline
fromstringoptionalStart date (ISO 8601)
tostringoptionalEnd date (ISO 8601)
pageintegeroptionalPage number. Default: 1
المحفظة

المحفظة والإيداعات

أدر محفظة حسابك. أودع الكريبتو، تحقق من الأرصدة وتتبع الإيداعات الواردة.

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
ParameterTypeDescription
currencystringoptionalbtc, eth, sol, usdt. Omit to get all.
BINs

اختيار BIN

سرد نطاقات BIN المتاحة مع قدراتها وحدودها ومعدلات القبول.

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

استرد تحديات 3DS ورموز OTP. جميع البطاقات مسجلة تلقائياً في 3DS 2.0.

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 والأحداث

تلقي إشعارات في الوقت الفعلي عند وقوع الأحداث. الحمولات موقعة بـ HMAC-SHA256.

الأحداث المتاحة
card.createdتم إصدار بطاقة جديدة
card.frozenتم تجميد بطاقة
card.unfrozenتم إلغاء تجميد بطاقة
card.terminatedتم إنهاء بطاقة
card.fundedتمت إضافة أموال إلى بطاقة
transaction.authorizedتم تفويض المعاملة
transaction.settledتم تسوية المعاملة
transaction.declinedتم رفض المعاملة
transaction.refundedتمت معالجة الاسترداد
3ds.challengeمطلوب التحقق من 3DS
deposit.pendingتم اكتشاف إيداع كريبتو
deposit.confirmedتم تأكيد إيداع الكريبتو
التحقق من التوقيع
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)
جسم الطلب
ParameterTypeDescription
urlstringrequiredHTTPS endpoint URL to receive events
eventsstring[]requiredEvent types to subscribe. Use ["*"] for all.
secretstringoptionalCustom signing secret. Auto-generated if omitted.
SDKs

SDKs والمكتبات

مكتبات عميل رسمية لـ stack الخاص بك. جميع SDKs تدعم بيئات live وsandbox.

Python

Python

pip install privcards

Node.js

Node.js

npm i privcards

Go

Go

go get privcards

بدء سريع — 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)
بدء سريع — 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 — PrivCards API البطاقة الافتراضية