للمطورين · REST API v1

أصدِر البطاقات من شيفرتك الخاصة

أنشئ بطاقات فيزا وماستركارد افتراضية وموّلها وجمّدها وأغلقها عبر HTTPS. الطلبات بصيغة JSON، وتُوثَّق بمفتاح سري، وتُخصم من رصيد USDT نفسه الذي تشحنه بالعملات الرقمية.

عنوان URL الأساسيhttps://usdtcryptocard.com/api/v1
المصادقة
Bearer sk_live_…
الصيغة
JSON عبر HTTPS
نقاط النهاية
15
Webhooks
موقّعة بـ HMAC-SHA256

مقدمة

تؤدي واجهة API ما تؤديه لوحة التحكم، ولكن من خادمك. كل بطاقة تُصدرها وكل شحن تُجريه يُدفع من رصيد حسابك، الذي تموّله بإيداعات العملات الرقمية ويُحفظ دائماً بـ USDT.

المبالغ بالدولار الأمريكي بخانتين عشريتين. والطوابع الزمنية بصيغة ISO 8601 بتوقيت UTC. ونقاط النهاية التي تُرجع قوائم مقسّمة إلى صفحات عبر page وper_page.

  1. أنشئ مفتاحاًافتح قسم وصول API في لوحة التحكم وولّد مفتاحاً.
  2. اطلب تفعيلهأكّد بريدك الإلكتروني، وأجرِ أول إيداع، ثم اطلب من الدعم تفعيل API.
  3. نفّذ أول طلبتحقّق من رصيدك بالطلب الظاهر بجانبك، ثم أصدِر بطاقتك الأولى.
أول طلب
الطلب
curl https://usdtcryptocard.com/api/v1/wallet/balance \
  -H "Authorization: Bearer sk_live_..."
الاستجابة200
{
  "balance": 1312.5,
  "currency": "USDT",
  "pending_deposits": 500,
  "cards_active": 8,
  "cards_total_balance": 2450
}

المصادقة

أرسل مفتاحك السري كرمز Bearer في ترويسة Authorization مع كل طلب. تبدأ المفاتيح بـ sk_live_ وتُولَّد من لوحة التحكم، في قسم وصول API.

احتفظ بالمفتاح على خادمك

أي شخص يملك المفتاح يستطيع تحريك الأموال في حسابك. حمّله من متغير بيئة، ولا تضعه أبداً في شيفرة المتصفح أو تطبيقات الجوال.

قبل أول طلب

يُرجع المفتاح الجديد 403 حتى يصبح الحساب جاهزاً. ستتلقى onboarding_incomplete إلى أن تؤكد بريدك وتُجري أول إيداع، ثم api_not_enabled إلى أن يفعّل الدعم وصول API. راسلنا وسنفعّله لك.

الترويسات
الطلب
Authorization: Bearer sk_live_your_api_key
Content-Type: application/json
X-Idempotency-Key: 7c1e2f0a-retry-safe

الأخطاء

أي استجابة غير 2xx تأتي مع جسم JSON: رمز خطأ ثابت يمكنك البناء عليه، ورسالة مكتوبة ليقرأها البشر.

200
نجح الطلب
201
تم إنشاء المورد
400
معاملات غير صالحة
401
مفتاح API مفقود أو غير صالح
403
المفتاح صالح، لكن وصول API غير مفعّل لهذا الحساب بعد
404
المورد غير موجود
429
تم تجاوز حد المعدل
error.json
الاستجابة403
{
  "error": "api_not_enabled",
  "message": "Open a support ticket from your dashboard to enable API access."
}

حدود الطلبات

تُحتسب الحدود لكل مفتاح API. إذا تجاوزت أحدها تتلقى 429: انتظر قليلاً ثم أعد المحاولة مع تأخير تصاعدي.

طلب / دقيقة
1,000
بطاقة / دقيقة
50
طلب / ساعة
10,000
البطاقات

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

لكل بطاقة رصيدها وحدودها ودورة حياتها الخاصة، فلا تتداخل حملة أو عميل أو اشتراك مع آخر.

POST/cards

إصدار بطاقة افتراضية جديدة

يُصدر بطاقة على BIN الذي تختاره ويشحنها من رصيدك في الطلب نفسه.

جسم الطلب

bin_idstringمطلوب
معرف BIN (مثل 491653). استخدم GET /bins لسرد BINs المتاحة.
amountnumberمطلوب
الشحن الأولي بالدولار، يُخصم من رصيدك. الحد الأدنى $50، وتُضاف رسوم الإصدار $1 عليه.
labelstringاختياري
تسمية مخصصة للبطاقة (الحد الأقصى 64 حرف)
spending_limitnumberاختياري
حد الإنفاق الشهري بالدولار. افتراضي الحد الأقصى لـ BIN.
allowed_categoriesstring[]اختياري
فئات التجار المسموح استخدام البطاقة لديها، مثل الإعلانات أو البرمجيات. يُرفض أي شيء آخر.
auto_freeze_atnumberاختياري
تجميد تلقائي عندما ينخفض الرصيد عن هذا المبلغ
metadataobjectاختياري
أزواج مفتاح-قيمة للتتبع الداخلي (الحد الأقصى 20 مفتاح)
POST /v1/cards
الطلب
curl -X POST https://usdtcryptocard.com/api/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": "fall_2026"
    }
  }'
الاستجابة201
{
  "id": "card_8xK2m9Lp4q",
  "bin_id": "491653",
  "network": "visa",
  "last4": "2039",
  "status": "active",
  "balance": 500,
  "spending_limit": 2000,
  "label": "Meta Ads — Campaign 12",
  "allowed_categories": [
    "advertising"
  ],
  "auto_freeze_at": null,
  "metadata": {
    "campaign": "fall_2026"
  },
  "created_at": "2026-09-30T12:00:00Z",
  "expires_at": "2030-10-31"
}
GET/cards

سرد جميع البطاقات مع الفلاتر والترقيم

بطاقاتك، الأحدث أولاً.

معاملات Query

statusstringاختياري
تصفية حسب الحالةactivefrozenterminated
bin_idstringاختياري
تصفية حسب BIN
pageintegerاختياري
رقم الصفحة. افتراضي: 1
per_pageintegerاختياري
عناصر لكل صفحة (1-100). افتراضي: 25
GET /v1/cards
الطلب
curl https://usdtcryptocard.com/api/v1/cards?status=active&per_page=25 \
  -H "Authorization: Bearer sk_live_..."
الاستجابة200
{
  "data": [
    {
      "id": "card_8xK2m9Lp4q",
      "bin_id": "491653",
      "network": "visa",
      "last4": "2039",
      "status": "active",
      "balance": 500,
      "spending_limit": 2000,
      "label": "Meta Ads — Campaign 12"
    }
  ],
  "page": 1,
  "per_page": 25,
  "total": 1
}
GET/cards/{card_id}

احصل على ملخص البطاقة (بدون بيانات حساسة)

البطاقة دون رقمها أو CVV. استخدم نقطة نهاية التفاصيل عندما تحتاج إليهما.

معاملات المسار

card_idstringمطلوب
معرّف البطاقة، كما أُرجع عند إنشائها.
GET /v1/cards/{card_id}
الطلب
curl https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q \
  -H "Authorization: Bearer sk_live_..."
الاستجابة200
{
  "id": "card_8xK2m9Lp4q",
  "bin_id": "491653",
  "network": "visa",
  "last4": "2039",
  "status": "active",
  "balance": 500,
  "spending_limit": 2000,
  "label": "Meta Ads — Campaign 12",
  "created_at": "2026-09-30T12:00:00Z"
}
GET/cards/{card_id}/details

احصل على PAN وCVV وتاريخ الانتهاء الكامل

Endpoint حساس

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

معاملات المسار

card_idstringمطلوب
معرّف البطاقة، كما أُرجع عند إنشائها.
GET /v1/cards/{card_id}/details
الطلب
curl https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/details \
  -H "Authorization: Bearer sk_live_..."
الاستجابة200
{
  "id": "card_8xK2m9Lp4q",
  "pan": "4916530000002039",
  "cvv": "123",
  "exp_month": 10,
  "exp_year": 2030
}
POST/cards/{card_id}/freeze

تجميد البطاقة مؤقتاً

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

معاملات المسار

card_idstringمطلوب
معرّف البطاقة، كما أُرجع عند إنشائها.
POST /v1/cards/{card_id}/freeze
الطلب
curl -X POST https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/freeze \
  -H "Authorization: Bearer sk_live_..."
الاستجابة200
{
  "id": "card_8xK2m9Lp4q",
  "status": "frozen",
  "balance": 500
}
POST/cards/{card_id}/unfreeze

إعادة تفعيل بطاقة مجمدة

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

معاملات المسار

card_idstringمطلوب
معرّف البطاقة، كما أُرجع عند إنشائها.
POST /v1/cards/{card_id}/unfreeze
الطلب
curl -X POST https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/unfreeze \
  -H "Authorization: Bearer sk_live_..."
الاستجابة200
{
  "id": "card_8xK2m9Lp4q",
  "status": "active",
  "balance": 500
}
DELETE/cards/{card_id}

إنهاء البطاقة بشكل دائم

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

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

معاملات المسار

card_idstringمطلوب
معرّف البطاقة، كما أُرجع عند إنشائها.
DELETE /v1/cards/{card_id}
الطلب
curl -X DELETE https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q \
  -H "Authorization: Bearer sk_live_..."
الاستجابة200
{
  "id": "card_8xK2m9Lp4q",
  "status": "terminated",
  "returned_to_wallet": 500
}
الشحن

شحن البطاقة

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

POST/cards/{card_id}/fund

إضافة أموال إلى بطاقة

ينقل المال من رصيدك إلى البطاقة. ويصبح قابلاً للإنفاق فوراً.

معاملات المسار

card_idstringمطلوب
معرّف البطاقة، كما أُرجع عند إنشائها.

جسم الطلب

amountnumberمطلوب
المبلغ بالدولار المراد نقله من رصيدك إلى البطاقة.
POST /v1/cards/{card_id}/fund
الطلب
curl -X POST https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/fund \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 200
  }'
الاستجابة200
{
  "card_id": "card_8xK2m9Lp4q",
  "card_balance": 700,
  "wallet_balance": 612.5
}
POST/cards/{card_id}/withdraw

سحب الأموال إلى المحفظة

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

معاملات المسار

card_idstringمطلوب
معرّف البطاقة، كما أُرجع عند إنشائها.
POST /v1/cards/{card_id}/withdraw
الطلب
curl -X POST https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/withdraw \
  -H "Authorization: Bearer sk_live_..."
الاستجابة200
{
  "card_id": "card_8xK2m9Lp4q",
  "card_balance": 0,
  "wallet_balance": 1312.5
}
المعاملات

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

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

GET/transactions

سرد جميع المعاملات مع الفلاتر

التفويضات والتسويات والمبالغ المستردة والمعاملات المرفوضة عبر جميع بطاقاتك، الأحدث أولاً.

معاملات Query

card_idstringاختياري
تصفية حسب البطاقة
typestringاختياري
إرجاع المعاملات من هذا النوع فقط.authorizationsettlementrefunddecline
fromstringاختياري
تاريخ البدء (ISO 8601)
tostringاختياري
تاريخ الانتهاء (ISO 8601)
pageintegerاختياري
رقم الصفحة. افتراضي: 1
GET /v1/transactions
الطلب
curl https://usdtcryptocard.com/api/v1/transactions?card_id=card_8xK2m9Lp4q \
  -H "Authorization: Bearer sk_live_..."
الاستجابة200
{
  "data": [
    {
      "id": "txn_3fQ9w1Zk",
      "card_id": "card_8xK2m9Lp4q",
      "type": "settlement",
      "amount": 42.9,
      "currency": "USD",
      "fee": 0.3,
      "merchant": {
        "name": "SPOTIFY",
        "mcc": "4899"
      },
      "created_at": "2026-09-30T14:02:11Z"
    }
  ],
  "page": 1
}
المحفظة

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

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

GET/wallet/balance

احصل على رصيد المحفظة والإحصائيات

رصيدك المحفوظ بـ USDT، إضافةً إلى ما هو موجود على بطاقاتك.

GET /v1/wallet/balance
الطلب
curl https://usdtcryptocard.com/api/v1/wallet/balance \
  -H "Authorization: Bearer sk_live_..."
الاستجابة200
{
  "balance": 1312.5,
  "currency": "USDT",
  "pending_deposits": 500,
  "cards_active": 8,
  "cards_total_balance": 2450
}
GET/wallet/deposit-address

احصل على عناوين إيداع الكريبتو

العناوين التي ترسل إليها العملات الرقمية. تُحوَّل الإيداعات إلى USDT بمجرد تأكيدها على الشبكة.

معاملات Query

currencystringاختياري
إرجاع عنوان هذه العملة فقط. اتركه فارغاً للحصول على جميع العناوين.btcethsolusdtbnbtrxpolltcavaxarb
GET /v1/wallet/deposit-address
الطلب
curl https://usdtcryptocard.com/api/v1/wallet/deposit-address?currency=usdt \
  -H "Authorization: Bearer sk_live_..."
الاستجابة200
{
  "data": [
    {
      "currency": "usdt",
      "network": "ERC-20 (Ethereum)",
      "address": "0x9c4e…b71a"
    }
  ]
}
BINs

اختيار BIN

أرقام BIN البالغ عددها 9 التي يمكنك الإصدار عليها، مع شبكتها ودعم المحافظ.

GET/bins

سرد جميع BINs المتاحة

كتالوج BIN، مع الشبكة والفئة ودعم Apple Pay / Google Pay.

GET /v1/bins
الطلب
curl https://usdtcryptocard.com/api/v1/bins \
  -H "Authorization: Bearer sk_live_..."
الاستجابة200
{
  "data": [
    {
      "id": "471938",
      "network": "visa",
      "category": "ads",
      "3ds": true,
      "apple_pay": true,
      "google_pay": true
    },
    {
      "id": "553184",
      "network": "mastercard",
      "category": "ads",
      "3ds": true,
      "apple_pay": true,
      "google_pay": true
    }
  ],
  "total": 9
}
3D Secure

مصادقة 3D Secure

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

GET/3ds

سرد تحديات 3DS المعلقة

تحديات 3D Secure المعلّقة مع رموزها لمرة واحدة، لتُكمل عملية الدفع دون هاتف.

GET /v1/3ds
الطلب
curl https://usdtcryptocard.com/api/v1/3ds?status=pending \
  -H "Authorization: Bearer sk_live_..."
الاستجابة200
{
  "data": [
    {
      "id": "3ds_m4n5o6p7",
      "card_id": "card_8xK2m9Lp4q",
      "merchant": "SPOTIFY",
      "amount": 9.99,
      "otp": "847291",
      "status": "pending",
      "expires_at": "2026-09-30T15: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
تم تأكيد إيداع الكريبتو

التحقق من التوقيع

كل إرسال موقّع بـ HMAC-SHA256 باستخدام السر الخاص بنقطة النهاية. أعد حساب التوقيع على الجسم الخام وقارنه بزمن ثابت قبل أن تثق بالمحتوى.

verify
الرمز
# إعادة حساب توقيع محتوى خام
echo -n "$RAW_BODY" | openssl dgst -sha256 -hmac "$WEBHOOK_SECRET"
POST/webhooks

تسجيل endpoint webhook

يسجّل نقطة نهاية HTTPS والأحداث التي يجب أن تستقبلها.

جسم الطلب

urlstringمطلوب
URL HTTPS لتلقي الأحداث
eventsstring[]مطلوب
أسماء الأحداث المراد الاشتراك فيها. استخدم ["*"] لكل الأحداث.
secretstringاختياري
سر توقيع مخصص. يتم إنشاؤه تلقائياً إذا تم حذفه.
POST /v1/webhooks
الطلب
curl -X POST https://usdtcryptocard.com/api/v1/webhooks \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/hooks/cards",
    "events": [
      "transaction.authorized",
      "3ds.challenge"
    ]
  }'
الاستجابة201
{
  "id": "wh_5tLr8QaZ",
  "url": "https://example.com/hooks/cards",
  "events": [
    "transaction.authorized",
    "3ds.challenge"
  ],
  "secret": "whsec_…",
  "created_at": "2026-09-30T12:00:00Z"
}
API لإصدار البطاقات الافتراضية | USDT Crypto Card