مرجع عام
Cards
كل نقاط النهاية في هذه المجموعة. افتح أي واحدة لعرض معاملاتها ومثال عملي عليها.
Cards
10POST /api/v1/admin/cards/redeem-otc Redeem a card over the counter
The same operation as the subscriber-facing redeem, with one difference: the acting manager is recorded as the reseller, so the redemption snapshots what they paid against what they charged. Without that, per-reseller pricing never resolves and every redemption records face value on both sides.
- المصادقة
- رمز موظّف أو جلسة
- تتطلب صلاحية
-
prm_cards_verifyVerify / redeem cards - حد المعدل
card_redeem- مفتاح عدم التكرار
request_id
المعاملات
| المعامل | الوصف |
|---|---|
codeمطلوب
body · string
|
The plaintext card code. |
user_idمطلوب
body · integer
|
The subscriber to credit. |
request_idمطلوب
body · string
|
Idempotency key. |
POST /api/v1/admin/cards/redeem-to-wallet Top up own wallet online
- المصادقة
- رمز موظّف أو جلسة
- تتطلب صلاحية
-
prm_managers_self_depositTop up own wallet online - حد المعدل
card_wallet_redeem
مقروء مباشرة من الموجّه الذي يخدم هذه النسخة. لم يُضَف بعد وصف مكتوب لنقطة النهاية هذه.
GET /api/v1/admin/cards/redemptions/{id} View card batches & cards
- المصادقة
- رمز موظّف أو جلسة
- تتطلب صلاحية
-
prm_cards_listView card batches & cards
مقروء مباشرة من الموجّه الذي يخدم هذه النسخة. لم يُضَف بعد وصف مكتوب لنقطة النهاية هذه.
GET /api/v1/admin/cards/redemptions/{id}/reversals View card batches & cards
- المصادقة
- رمز موظّف أو جلسة
- تتطلب صلاحية
-
prm_cards_listView card batches & cards
مقروء مباشرة من الموجّه الذي يخدم هذه النسخة. لم يُضَف بعد وصف مكتوب لنقطة النهاية هذه.
POST /api/v1/admin/cards/redemptions/{id}/reversals Refund last activation
- المصادقة
- رمز موظّف أو جلسة
- تتطلب صلاحية
-
prm_users_refundRefund last activation - حد المعدل
t_mutate
مقروء مباشرة من الموجّه الذي يخدم هذه النسخة. لم يُضَف بعد وصف مكتوب لنقطة النهاية هذه.
POST /api/v1/cards/redeem Redeem a card onto a subscriber
Spends a card and applies its effect to the named subscriber. Two authority checks run, both derived from your credential and neither from the body: the card must be in your subtree, and the subscriber must be one you may write to. Both denials are 404s identical to "no such card" and "no such subscriber".
- المصادقة
- رمز موظّف أو جلسة
- تتطلب صلاحية
-
prm_cards_verifyVerify / redeem cards - حد المعدل
card_redeem- مفتاح عدم التكرار
request_id
A replay returns 200 with the same card_id, mode and effect_applied, and NO replay flag — but new_balance is ABSENT, because the replay path returns the stored effect without re-reading the wallet. A missing new_balance is not a failure and is not a reason to retry. Read the balance off the subscriber record if you need it.
المعاملات
| المعامل | الوصف |
|---|---|
codeمطلوب
body · string
|
The plaintext card code. |
user_idمطلوب
body · integer
|
The subscriber to credit. |
request_idمطلوب
body · string
|
Idempotency key. |
{
"data": {
"card_id": 90211,
"mode": "refill_balance",
"user_id": 4711,
"effect_applied": { "type": "add_balance", "amount": 150.00 },
"new_balance": 400.00
}
}
POST /api/v1/cards/redeem-create
- المصادقة
- عام
- حد المعدل
card_redeem
مقروء مباشرة من الموجّه الذي يخدم هذه النسخة. لم يُضَف بعد وصف مكتوب لنقطة النهاية هذه.
GET /api/v1/cards/search Verify one card by code, serial or username
The counter-staff lookup. Finds a single card and reports its state, its owning reseller and who spent it. Confined to the caller's manager subtree unless they are an administrator.
- المصادقة
- رمز موظّف أو جلسة
- تتطلب صلاحية
-
prm_cards_verifyVerify / redeem cards - حد المعدل
card_search
A card outside your subtree answers the same 404 as an unknown keyword, never a 403 — a 403 would confirm the code exists and turn this into a code-guessing oracle. It carries its own per-operator budget for the same reason, separate from the tenant's.
المعاملات
| المعامل | الوصف |
|---|---|
kindمطلوب
query · enum
|
code, serial or username. |
keywordمطلوب
query · string
|
The value to match. A code is normalised first, so separators and mixed case still resolve. |
{
"data": {
"card_id": 90211,
"serial": "000312",
"state": "consumed",
"effective_state": "consumed",
"disposition": "",
"mode": "voucher_account",
"plan_name": "Home 20M",
"batch_id": 208,
"face_value": 150.00,
"redemptions_left": 0,
"owner_manager_id": 41,
"owner_username": "cairo-reseller",
"used_by_kind": "user",
"used_by_user_id": 4711,
"used_by_username": "ahmed",
"used_channel": "customer_portal",
"first_use_at": "2026-09-14 18:22:10",
"expires_at": "2027-01-01 00:00:00"
}
}
POST /api/v1/cards/{id}/revoke Revoke one card
Flips a single card to revoked. A revoked card can never be redeemed, and the state is terminal.
- المصادقة
- رمز موظّف أو جلسة
- تتطلب صلاحية
-
prm_cards_suspend_releaseSuspend / release cards - حد المعدل
t_mutate
المعاملات
| المعامل | الوصف |
|---|---|
idمطلوب
path · integer
|
Card id. |
GET /api/v1/cards/{id}/timeline One card's full lifecycle
Header facts plus the chronological event list for a single card: when it was minted, printed, sold, transferred and redeemed.
- المصادقة
- رمز موظّف أو جلسة
- تتطلب صلاحية
-
prm_cards_listView card batches & cards - حد المعدل
card_timeline
This endpoint's rate-limit bucket counts DENIED lookups too, on purpose. The limiter sits ahead of the visibility check, so a walk of the card id space burns budget rather than running unmetered behind a 404.
المعاملات
| المعامل | الوصف |
|---|---|
idمطلوب
path · integer
|
Card id. |
لا توجد نقطة نهاية تطابق هذا البحث.
مكتوب لتقرأه الأدوات الآلية أيضًا
المرجع عام ولا يتطلب حسابًا، فتستطيع أداة لم تَرَ X-Radius من قبل أن تصل إلى أول استدعاء صحيح بنفسها.
- /llms.txt
- فهرس لكل صفحة، مع ملخّص من سطر واحد.
- /llms-full.txt
- المرجع كاملًا في ملف Markdown واحد، دون تنقّل يحتاج إلى زحف.
- /openapi.json
- OpenAPI 3.1، مُولَّد من الموجّه الذي يخدم هذه النسخة.
- /skill.md
- ملف مهارة جاهز لمساعد آلي: المصادقة وشكل الاستجابة ورموز الأخطاء في صفحة واحدة.
<page-url>.md- أضف .md إلى رابط أي صفحة في المرجع لتحصل على الصفحة نفسها بصيغة Markdown.
Accept: text/markdown- أرسل هذه الترويسة على الرابط المعتاد فتصلك الإجابة بصيغة Markdown بدلًا من الصفحة.
اقرأ https://x-radius.com/llms.txt، ثم اجلب نقطة النهاية التي تحتاجها بصيغة Markdown بإضافة .md إلى رابطها.