ادمج CryptoTopCard في تطبيقاتك. أصدر وموّل وجمّد وأدر البطاقات الافتراضية برمجياً عبر واجهة REST API.
https://api.cryptotopcard.com/v1
تتطلب جميع طلبات API رمز Bearer. أنشئ مفتاح API من لوحة التحكم → الإعدادات → مفاتيح API.
لا تكشف مفتاحك في كود العميل أبداً. استخدم متغيرات البيئة. المفاتيح بادئة sk_live_ للإنتاج، sk_test_ للتجربة.
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"
}
أنشئ وأدر وتحكم في بطاقات Visa & Mastercard الافتراضية. كل بطاقة معزولة برصيدها وحدودها ودورة حياتها.
| المعلمة | النوع | الوصف | |
|---|---|---|---|
| bin_id | string | required | معرّف BIN (مثل 491653). استخدم GET /bins لعرض BINs المتاحة. |
| amount | number | required | مبلغ التمويل الأولي بالدولار. الحد الأدنى: $1.00، الحد الأقصى: $5,000.00 |
| label | string | optional | تسمية مخصصة للبطاقة (حد أقصى 64 حرف) |
| spending_limit | number | optional | حد الإنفاق الشهري بالدولار. الافتراضي: الحد الأقصى لـ BIN. |
| allowed_categories | string[] | optional | فئات MCC للقائمة البيضاء (مثل ["advertising", "software"]) |
| auto_freeze_at | number | optional | تجميد تلقائي عند انخفاض الرصيد دون هذا المبلغ |
| metadata | object | optional | أزواج مفتاح-قيمة للتتبع الداخلي (حد أقصى 20 مفتاح) |
curl -X POST https://api.cryptotopcard.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"
}
| المعلمة | النوع | الوصف | |
|---|---|---|---|
| status | string | optional | active, frozen, terminated |
| bin_id | string | optional | تصفية حسب BIN |
| label | string | optional | البحث حسب التسمية (تطابق جزئي) |
| sort | string | optional | created_at, balance, last_used. الافتراضي: created_at |
| order | string | optional | asc أو desc. الافتراضي: desc |
| page | integer | optional | رقم الصفحة. الافتراضي: 1 |
| per_page | integer | optional | عناصر لكل صفحة (1-100). الافتراضي: 25 |
{
"data": [
{
"id": "card_8xK2m9Lp4q",
"bin_id": "491653",
"network": "visa",
"last4": "2039",
"status": "active",
"balance": 487.50,
"label": "Meta Ads Campaign #12",
"created_at": "2026-04-15T12:00:00Z"
}
],
"pagination": {
"page": 1,
"per_page": 25,
"total": 142,
"total_pages": 6
}
}
يُرجع معلومات البطاقة بدون بيانات حساسة. استخدم /cards/{card_id}/details للحصول على PAN الكامل وCVV.
{
"id": "card_8xK2m9Lp4q",
"bin_id": "491653",
"network": "visa",
"last4": "2039",
"status": "active",
"balance": 487.50,
"spending_limit": 2000.00,
"total_spent": 12.50,
"transaction_count": 3,
"label": "Meta Ads Campaign #12",
"metadata": { "campaign": "spring_2026" },
"created_at": "2026-04-15T12:00:00Z",
"expires_at": "2029-04-15T23:59:59Z",
"last_used_at": "2026-04-15T14:32:00Z"
}
يُرجع PAN الكامل وCVV وتاريخ الانتهاء. بيانات PCI حساسة — لا تسجلها أو تخزنها بدون تشفير. محدود بـ 30 طلب/دقيقة.
{
"id": "card_8xK2m9Lp4q",
"pan": "4916531288472039",
"cvv": "847",
"exp_month": 4,
"exp_year": 2029,
"holder_name": "ANONYMOUS",
"billing_address": {
"line1": "123 Privacy Street",
"city": "Wilmington",
"state": "DE",
"zip": "19801",
"country": "US"
}
}
| المعلمة | النوع | الوصف | |
|---|---|---|---|
| label | string | optional | تحديث تسمية البطاقة |
| spending_limit | number | optional | تحديث حد الإنفاق الشهري |
| allowed_categories | string[] | optional | تحديث فئات MCC المسموحة |
| auto_freeze_at | number | optional | تعيين عتبة التجميد التلقائي. 0 للتعطيل. |
| metadata | object | optional | دمج مع البيانات الوصفية الحالية |
يُرجع كائن البطاقة المحدّث.
يعلّق جميع المعاملات. يُحفظ الرصيد. يمكن إلغاء تجميد البطاقة لاحقاً.
{ "id": "card_8xK2m9Lp4q", "status": "frozen", "frozen_at": "2026-04-15T15:00:00Z" }
يُعيد تفعيل المعاملات على بطاقة مجمدة. يُرجع كائن البطاقة مع status: "active".
إنهاء البطاقة نهائي. يُعاد الرصيد المتبقي إلى محفظتك فوراً.
{
"id": "card_8xK2m9Lp4q",
"status": "terminated",
"refunded_amount": 487.50,
"terminated_at": "2026-04-15T16:00:00Z"
}
أضف أو اسحب أموالاً من بطاقات فردية. الأموال تأتي من رصيد محفظتك.
| المعلمة | النوع | الوصف | |
|---|---|---|---|
| amount | number | required | المبلغ بالدولار للإضافة. الحد الأدنى: $1.00، الحد الأقصى: $5,000.00 |
{
"id": "card_8xK2m9Lp4q",
"previous_balance": 487.50,
"funded_amount": 200.00,
"new_balance": 687.50,
"wallet_balance": 1312.50
}
| المعلمة | النوع | الوصف | |
|---|---|---|---|
| amount | number | required | المبلغ بالدولار لسحبه من البطاقة إلى المحفظة |
يُرجع أرصدة البطاقة والمحفظة المحدّثة.
اعرض جميع المعاملات عبر بطاقاتك. يشمل التفويضات والتسويات والمبالغ المستردة والرفض.
| المعلمة | النوع | الوصف | |
|---|---|---|---|
| card_id | string | optional | تصفية حسب البطاقة |
| type | string | optional | authorization, settlement, refund, decline |
| from | string | optional | تاريخ البداية (ISO 8601) |
| to | string | optional | تاريخ النهاية (ISO 8601) |
| merchant | string | optional | البحث حسب اسم التاجر (تطابق جزئي) |
| min_amount | number | optional | الحد الأدنى لمبلغ المعاملة |
| max_amount | number | optional | الحد الأقصى لمبلغ المعاملة |
| page | integer | optional | رقم الصفحة. الافتراضي: 1 |
| per_page | integer | optional | عناصر لكل صفحة (1-100). الافتراضي: 50 |
{
"data": [
{
"id": "txn_a1b2c3d4",
"card_id": "card_8xK2m9Lp4q",
"type": "settlement",
"amount": -12.50,
"currency": "USD",
"merchant": {
"name": "FACEBK ADS",
"category": "advertising",
"mcc": "7311",
"country": "US"
},
"balance_after": 487.50,
"created_at": "2026-04-15T14:32:00Z"
}
],
"pagination": { "page": 1, "per_page": 50, "total": 328 }
}
يُرجع كائن المعاملة الكامل بما في ذلك تفاصيل التاجر ورمز MCC وحالة 3DS وجدول التفويض.
أدر محفظة حسابك. أودع العملات المشفرة، تحقق من الأرصدة وتتبع الإيداعات الواردة.
{
"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
}
| المعلمة | النوع | الوصف | |
|---|---|---|---|
| currency | string | optional | btc, eth, sol, usdt. اتركه للحصول على الكل. |
{
"addresses": {
"btc": "bc1qxy2kgdygjrsqtzq2n0yrf...",
"eth": "0x742d35Cc6634C0532925a3b...",
"sol": "7xKXtg2CW87d97TXJSDpbD5j...",
"usdt": "0x742d35Cc6634C0532925a3b..."
},
"networks": {
"btc": "bitcoin",
"eth": "ethereum",
"sol": "solana",
"usdt": "erc-20"
},
"min_deposit": {
"btc": "0.0001",
"eth": "0.005",
"sol": "0.1",
"usdt": "5.00"
}
}
| المعلمة | النوع | الوصف | |
|---|---|---|---|
| status | string | optional | pending, confirmed, expired |
| currency | string | optional | تصفية حسب العملة المشفرة |
{
"data": [
{
"id": "dep_x9y8z7w6",
"currency": "btc",
"amount_crypto": "0.0075",
"amount_usd": 500.00,
"fee_usd": 10.00,
"credited_usd": 490.00,
"status": "confirmed",
"tx_hash": "3a1b2c3d4e5f...",
"confirmations": 6,
"created_at": "2026-04-15T10:00:00Z",
"confirmed_at": "2026-04-15T10:42:00Z"
}
]
}
اعرض نطاقات BIN المتاحة مع إمكانياتها وحدودها ومعدلات القبول.
{
"data": [
{
"id": "491653",
"network": "visa",
"type": "advertising",
"issuer_country": "US",
"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"]
},
{
"id": "531993",
"network": "mastercard",
"type": "everyday",
"issuer_country": "US",
"3ds": true,
"apple_pay": true,
"google_pay": true,
"max_transaction": 1000.00,
"max_monthly": 10000.00,
"acceptance_rate": 95.8,
"best_for": ["subscriptions", "saas", "shopping"]
}
]
}
استرجع تحديات 3DS وأكواد OTP. جميع البطاقات مسجلة في 3DS 2.0 تلقائياً.
| المعلمة | النوع | الوصف | |
|---|---|---|---|
| card_id | string | optional | تصفية حسب البطاقة |
| status | string | optional | pending, completed, expired |
{
"data": [
{
"id": "3ds_m4n5o6p7",
"card_id": "card_8xK2m9Lp4q",
"merchant": "SPOTIFY",
"amount": 9.99,
"otp": "847291",
"status": "pending",
"expires_at": "2026-04-15T15:05:00Z",
"created_at": "2026-04-15T15:00:00Z"
}
]
}
يُرجع كائن تحدي 3DS الكامل بما في ذلك رمز OTP. تنتهي صلاحية OTP بعد 5 دقائق.
استلم إشعارات فورية عند وقوع الأحداث. الحمولات موقعة بـ HMAC-SHA256.
card.createdتم إصدار بطاقة جديدةcard.frozenتم تجميد بطاقةcard.unfrozenتم إلغاء تجميد بطاقةcard.terminatedتم إنهاء بطاقةcard.fundedتمت إضافة أموال لبطاقةtransaction.authorizedتم تفويض المعاملةtransaction.settledتمت تسوية المعاملةtransaction.declinedتم رفض المعاملةtransaction.refundedتمت معالجة الاسترداد3ds.challengeمطلوب تحقق 3DSdeposit.pendingتم اكتشاف إيداع مشفرdeposit.confirmedتم تأكيد إيداع مشفر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)
| المعلمة | النوع | الوصف | |
|---|---|---|---|
| url | string | required | عنوان URL لنقطة نهاية HTTPS لاستلام الأحداث |
| events | string[] | required | أنواع الأحداث للاشتراك. استخدم ["*"] للكل. |
| secret | string | optional | مفتاح توقيع مخصص. يُنشأ تلقائياً إذا تم حذفه. |
{
"id": "wh_r5s6t7u8",
"url": "https://yourapp.com/webhooks/ctc",
"events": ["transaction.authorized", "transaction.declined"],
"secret": "whsec_a1b2c3d4e5f6...",
"active": true,
"created_at": "2026-04-15T12:00:00Z"
}
يُرجع مصفوفة جميع نقاط نهاية webhook المسجلة مع اشتراكات الأحداث وحالتها.
يزيل webhook نهائياً. لن يتم تسليم أي أحداث أخرى إلى نقطة النهاية هذه.
مكتبات العملاء الرسمية لمجموعتك التقنية. تدعم جميع SDKs بيئات الإنتاج والتجربة.
pip install cryptotopcard
npm i cryptotopcard
go get cryptotopcard
from cryptotopcard import Client client = Client("sk_live_your_api_key") # إنشاء بطاقة card = client.cards.create( bin_id="491653", amount=500, label="Ad Spend" ) print(card.id, card.last4) # الحصول على تفاصيل البطاقة الكاملة (PAN، CVV) details = client.cards.details(card.id) print(details.pan, details.cvv) # تمويل البطاقة client.cards.fund(card.id, amount=200) # عرض المعاملات txns = client.transactions.list(card_id=card.id) for t in txns.data: print(t.merchant.name, t.amount)
const { CryptoTopCard } = require('cryptotopcard'); const client = new CryptoTopCard('sk_live_your_api_key'); // إنشاء بطاقة const card = await client.cards.create({ binId: '491653', amount: 500, label: 'Ad Spend', }); // الحصول على OTPs 3DS const challenges = await client.threeds.list({ cardId: card.id, status: 'pending', }); // إعداد webhooks await client.webhooks.create({ url: 'https://yourapp.com/hooks', events: ['transaction.authorized', '3ds.challenge'], });