AXIS STORE AXIS STORE — أدلة ربط الشركاء المتجر الأرقام البروكسيات تحميل PDF العودة للمتجر ابدأ الربط
PARTNER API · NUMBERS · v1.2

دليل ربط الشركاء — الأرقام

الدليل الرسمي والكامل لبيع الأرقام الأمريكية والعالمية من AXIS STORE داخل نظامك: اشترِ الرقم بسعر شريحتك، واستلم كود التحقق، وألغِ أو أعد الاستخدام أو جدّد أو مدّد — كل ذلك بمفتاح الربط نفسه.

الإصدارv1.2
تاريخ الإصدار2026-11-14
عنوان الواجهةhttps://axissstore.com/api/partner/v1/numbers
الناشرAXIS GROUP

المحتويات

هذا الدليل مستقلّ: فيه كل ما يلزم لقسم الأرقام. أساسيات الواجهة المشتركة مفصّلة في «دليل المتجر».

  1. 1نظرة عامة
  2. 2الأساسيات والمفتاح
  3. 3البدء السريع
  4. 4السيرفرات
  5. 5الخدمات والأسعار
  6. 6شراء رقم
  7. 7شكل ردّ الرقم وحالاته
  8. 8استلام كود التحقق
  9. 9الإلغاء والاسترداد
  10. 10إعادة استخدام رقم مؤقت
  11. 11تجديد وتمديد الإيجار الدائم
  12. 12التجديد التلقائي
  13. 13منع ازدواج العمليات
  14. 14الأخطاء
  15. 15مثال كامل
  16. 16أفضل الممارسات وقائمة التحقق
  17. 17مرجع النداءات والدعم

1نظرة عامة

أرقام هاتف لاستقبال كود التحقق (SMS): مؤقتة لتفعيلٍ واحد، أو دائمة تُستأجر لأيام.

قسم الأرقام لا يعمل كمنتجٍ عادي: الشريك يختار سيرفراً ثم خدمة (واتساب، تيليجرام…)، فيُشترى له رقم، ثم ينتظر كود التحقق الذي يصل إلى الرقم. لذلك له نداءاته الخاصة تحت /numbers، وهي تعمل بمفتاح الربط نفسه وبرصيد المحفظة نفسه وبسعر شريحتك.

رقم مؤقت

لتفعيلٍ واحد. يكتمل الطلب عند وصول الكود، ويُسترَد ثمنه تلقائياً إن لم يصل كود ضمن المهلة.

رقم دائم (إيجار)

يُستأجر لمدة (أيام)، ويستقبل أكواداً متعدّدة حتى انتهاء مدته، ويُجدَّد ويُمدَّد.

مفتاح واحد

المفتاح والرصيد والشريحة ومرجع منع الازدواج — كلها مشتركة مع المتجر والبروكسيات.

كيف يجري الشراء

GET /numbers/servers→GET /numbers/services→POST /numbers/orders→GET /numbers/orders/{ref}→code ✓
  1. تجلب السيرفرات المتاحة الآن، وتختار واحداً (مؤقت أو دائم).
  2. تجلب خدمات السيرفر بأسعارها الحيّة بشريحتك، وما تقبله كل خدمة (ولاية، مقدّمة، إلغاء…).
  3. تشتري الرقم بمرجعٍ فريد من طرفك — يُخصم ثمنه من محفظتك ويعود الرقم في الرد.
  4. تعرض الرقم لعميلك، وتتابع حتى يصل الكود (completed) أو يُسترَد المبلغ (refunded).
الأدلة الثلاثة المتجر: https://axissstore.com/developers · الأرقام: https://axissstore.com/developers/numbers · البروكسيات: https://axissstore.com/developers/proxies

2الأساسيات والمفتاح

القواعد نفسها في الأدلة الثلاثة — مختصرةً هنا.

العنوان الأساسيhttps://axissstore.com/api/partner/v1/numbers
المصادقةترويسة X-API-Key: axk_… في كل نداء — المفتاح نفسه الذي تستخدمه للمتجر. يُنشأ من https://axissstore.com/api-access (لشرائح شريك VIP، شريك VIP PRO). لا يُقبل المفتاح في الرابط أبداً، ولا يوضع في كود متصفح أو تطبيق.
الصيغةJSON بترميز UTF-8. أرسل Content-Type: application/json مع كل POST وPUT.
الرصيديُخصم من محفظتك لدينا. الرصيد والشريحة يعيدهما GET https://axissstore.com/api/partner/v1/me (دليل المتجر).
المبالغبالدولار الأمريكي كنصوص عشرية مثل "0.62" — لا تحوّلها إلى float.
المواعيدcreated_at وcompleted_at بصيغة ISO 8601 بتوقيت الخادم وقد تحمل كسور الثانية. expires_at وuntil بالصيغة نفسها حتى الدقيقة (2026-10-14T18:30) وبتوقيت الخادم أيضاً. نصٌّ فارغ = غير معروف بعد.
اللغةlang=ar (افتراضي) أو lang=en على نداءات الكتالوج. رسائل الخطأ بترويسة Accept-Language: en.
حدود الاستخدام120 نداءً في الدقيقة لكل مفتاح، و60 عملية شراء في الدقيقة لكل حساب (مشتركة مع المتجر والبروكسيات). تحديث رقمٍ واحد: مرة كل 5 ثوانٍ. تحديث كل الأرقام: مرة كل 8 ثوانٍ. التجاوز يعيد 429 مع Retry-After.
المرجعكل عملية تخصم مالاً تحمل reference فريداً من طرفك يمنع ازدواجها (القسم 13).

3البدء السريع

من صفر إلى أول كود في أربعة نداءات.

# 1) Servers available right now
curl -H "X-API-Key: axk_YOUR_KEY" https://axissstore.com/api/partner/v1/numbers/servers

# 2) Services of a server, at your tier price
curl -H "X-API-Key: axk_YOUR_KEY" "https://axissstore.com/api/partner/v1/numbers/services?server=us-temp-1&q=whatsapp"

# 3) Buy a number — with your own unique reference
curl -X POST https://axissstore.com/api/partner/v1/numbers/orders \
  -H "X-API-Key: axk_YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"server":"us-temp-1","service":"whatsapp","reference":"NUM-10001"}'

# 4) Ask for the code (at most once every 5 seconds per number)
curl -X POST -H "X-API-Key: axk_YOUR_KEY" https://axissstore.com/api/partner/v1/numbers/orders/NUM-10001/refresh

4السيرفرات

السيرفر يحدّد نوع الرقم (مؤقت أو دائم) ومصدره. ابدأ منه دائماً.

GET/numbers/servers

السيرفرات المتاحة الآن. سيرفرٌ متوقّف مؤقتاً لا يظهر — فلا تثبّت القائمة في كودك؛ اجلبها دورياً.

المعاملالنوعالوصف
langar | enلغة اسم السيرفر. الافتراضي ar.
مثال الرد — 200
{
  "items": [
    { "key": "us-temp-1", "name": "رقم أمريكي مؤقت — سيرفر 1", "type": "temporary", "needs_country": false },
    { "key": "us-perm-1", "name": "رقم أمريكي دائم — سيرفر 1", "type": "permanent", "needs_country": false },
    { "key": "global-temp", "name": "رقم عالمي مؤقت", "type": "temporary", "needs_country": true }
  ],
  "total": 3
}
الحقلالمعنى
keyمعرّف السيرفر — يُرسَل في server مع كل نداء لاحق.
typetemporary رقم لتفعيلٍ واحد · permanent إيجار بمدة.
needs_countrytrue: الدولة تُختار لكل خدمة ويجب إرسال country عند الشراء (السيرفر العالمي).

السيرفرات المعرّفة

keyالاسمالنوعالدولة
us-perm-1رقم أمريكي دائم — سيرفر 1permanent الولايات المتحدة
us-perm-2رقم أمريكي دائم — سيرفر 2permanent الولايات المتحدة
us-temp-1رقم أمريكي مؤقت — سيرفر 1temporary الولايات المتحدة
us-temp-2رقم أمريكي مؤقت — سيرفر 2temporary الولايات المتحدة
us-temp-3رقم أمريكي مؤقت — سيرفر 3temporary الولايات المتحدة
us-temp-4رقم أمريكي مؤقت — سيرفر 4temporary الولايات المتحدة
global-tempرقم عالمي مؤقتtemporary يختارها الشريك
vip-temp-usVIP — رقم أمريكي مؤقت (20 دقيقة)temporary الولايات المتحدة
vip-temp-ukVIP — رقم بريطاني مؤقت (20 دقيقة)temporary الولايات المتحدة
vip-perm-usVIP — رقم أمريكي دائمpermanent الولايات المتحدة
vip-perm-ukVIP — رقم بريطاني دائمpermanent الولايات المتحدة
vip-all-usVIP — رقم أمريكي لكل الخدمات (28 يوماً)permanent الولايات المتحدة
vip-all-ukVIP — رقم بريطاني لكل الخدمات (30 يوماً)permanent الولايات المتحدة

قد يظهر بعضها فقط في /numbers/servers بحسب المتاح لحظة النداء.

5الخدمات والأسعار

أسعار حيّة بشريحتك، ومعها ما تقبله كل خدمة عند الشراء.

GET/numbers/services
المعاملالنوعالوصف
server *نصkey السيرفر.
qنصبحث في اسم الخدمة (whatsapp، telegram…).
durationنصللدائم: تسعير بمدةٍ بعينها (key من durations).
countryنصللعالمي: رمز الدولة (code من /numbers/countries).
limitعددعدد النتائج، من 1 إلى 100 (الافتراضي 50). الأكثر طلباً أولاً.
langar | enلغة label.
مثال الرد — 200
{
  "items": [{
    "name": "whatsapp",
    "label": "whatsapp",
    "price_usd": "0.62",
    "popular": true,
    "country": "",
    "duration": "",
    "durations": [],
    "state_ok": true, "area_code_ok": false,
    "cancel_ok": true, "auto_refund": true,
    "no_code_minutes": 10
  }],
  "total": 1
}

حقول الخدمة

الحقلالمعنى
nameمعرّف الخدمة — هو ما يُرسَل في service عند الشراء، حرفياً.
labelالاسم المعروض لعميلك. يختلف عن name لخدمة «أي خدمة أخرى (غير مدرجة)» فقط.
price_usdسعر الرقم بشريحتك. للدائم: سعر المدة duration.
popularمن الخدمات الأكثر طلباً (تتصدّر القائمة).
countryالدولة التي سُعِّر بها الصف (للعالمي).
duration / durationsللدائم: المدة التي سُعِّر بها الصف، والمدد التي تقبلها الخدمة [{ "key": "7d", "label": "7 أيام", "days": 7 }]. أرسل key كما هو — صيغته تختلف بين السيرفرات (7d أو sevenDay).
state_okتقبل اختيار ولاية أمريكية (us_state).
area_code_okتقبل اختيار مقدّمة الرقم (area_code، ثلاثة أرقام).
cancel_okيمكن إلغاء الرقم قبل وصول كود (القسم 9).
auto_refund / no_code_minutesإن لم يصل كود خلال no_code_minutes دقيقة يُسترَد الثمن تلقائياً (0 = المهلة غير معلنة).
لا تخزّن الأسعار طويلاً أسعار الأرقام تتغيّر خلال اليوم، والخدمات بلا سعر حقيقي لا تُعرَض. السعر الملزِم هو ما يُحسب لحظة الشراء ويعود في total_usd.
GET/numbers/quote

سعر خدمةٍ واحدة بمدةٍ أو دولةٍ بعينها — قبل عرض المبلغ على عميلك. الرد صفٌّ واحد بشكل صفوف /numbers/services.

المعاملالوصف
server *key السيرفر.
service *name الخدمة.
durationللدائم.
countryللعالمي.
curl -H "X-API-Key: axk_YOUR_KEY" "https://axissstore.com/api/partner/v1/numbers/quote?server=us-perm-2&service=whatsapp&duration=30d"

خدمة غير متاحة بهذا الاختيار تعيد 422 validation_error.

GET/numbers/countries

دول السيرفر، الأوفر أرقاماً أولاً. للسيرفر العالمي أرسل service أيضاً (وإلا 422).

المعاملالوصف
server *key السيرفر.
servicename الخدمة — مطلوب حين needs_country = true.
{ "items": [ { "code": "GB", "name": "United Kingdom", "count": 1840 } ], "total": 1 }
GET/numbers/states

الولايات الأمريكية الخمسون بأسمائها المقبولة في us_state (الاسم الكامل بالإنجليزية).

{ "items": [ "Alabama", "Alaska", "Arizona", "..." ], "total": 50 }

6شراء رقم

يُخصم الثمن من محفظتك ويُشترى الرقم فوراً — في نداء واحد.

POST/numbers/orders
الحقلالنوعالوصف
server *نصkey السيرفر.
service *نصname الخدمة كما عاد من /numbers/services.
reference *نص ≤ 100مرجعك الفريد لهذا الشراء — يمنع الازدواج (القسم 13).
durationنصللدائم: key المدة. إن تُرك اختيرت المدة الافتراضية للخدمة.
countryنصرمز الدولة — مطلوب حين needs_country = true.
us_stateنصولاية أمريكية من /numbers/states — فقط إن كانت state_ok.
area_codeنصمقدّمة من ثلاثة أرقام (213) — فقط إن كانت area_code_ok. لا يُرسَل مع us_state.
curl -X POST https://axissstore.com/api/partner/v1/numbers/orders \
  -H "X-API-Key: axk_YOUR_KEY" -H "Content-Type: application/json" \
  -d '{
    "server": "us-temp-1",
    "service": "whatsapp",
    "reference": "NUM-10001",
    "us_state": "Florida"
  }'
الرد — 201
{
  "reference": "AX-NUM-3F9A2B01",
  "partner_reference": "NUM-10001",
  "kind": "purchase", "parent": "",
  "status": "processing", "state": "waiting",
  "type": "temporary",
  "server": "us-temp-1", "service": "whatsapp",
  "name": "رقم whatsapp — رقم أمريكي مؤقت — سيرفر 1",
  "phone": "+12125550100",
  "codes": [], "latest_code": "",
  "duration": "", "country": "", "us_state": "Florida", "area_code": "",
  "expires_at": "",
  "can_cancel": true, "auto_renew": false,
  "total_usd": "0.62",
  "created_at": "2026-10-07T14:05:31.825176", "completed_at": null
}
يُرفض قبل أي خصم (422) خدمة غير متاحة بهذا الاختيار · مدة لا تقبلها الخدمة · ولاية أو مقدّمة لخدمةٍ لا تدعمها · ولاية ومقدّمة معاً · مقدّمة ليست ثلاثة أرقام · سيرفر عالمي بلا دولة · reference مفقود. وسيرفر غير موجود أو متوقّف يعيد 404.

7شكل ردّ الرقم وحالاته

كل نداءات الشراء والمتابعة والعمليات تعيد الشكل نفسه.

الحقلالمعنى
referenceمرجعنا (AX-NUM-…).
partner_referenceمرجعك الذي أرسلته. كلاهما يصلح في أي مسار فيه {reference}.
kindpurchase رقمٌ مشترى · reuse / renew / extend عمليةٌ على رقمٍ سابق.
parentللعمليات: مرجعنا للرقم الأصلي. فارغ للشراء.
statusحالة الطلب المالية (الجدول أدناه).
stateحالة الرقم للعرض (الجدول أدناه).
typetemporary أو permanent.
server / serviceما اشتُري به الرقم.
nameوصف الطلب بالعربية كما يظهر في حسابك.
phoneالرقم بالصيغة الدولية. فارغ إلى أن يُسنَد.
codes / latest_codeأكواد التحقق الواصلة بالترتيب، وآخرها. للعملية reuse: أكواد دورتها الجديدة فقط.
durationللدائم: key المدة.
country / us_state / area_codeما أُرسل عند الشراء.
expires_atانتهاء الرقم (الدائم خصوصاً). فارغ إن لم يُعلَن.
can_cancelهل يُقبل /cancel الآن.
auto_renewهل التجديد التلقائي مفعّل (الدائم).
total_usdما خُصم لهذا الطلب.
created_at / completed_atالإنشاء والاكتمال.

الحالة المالية — status

paid→processing→completed
paid / processing→refunded(يعود المبلغ لمحفظتك تلقائياً)
الحالةالمعنىنهائية؟
paidخُصم الثمن والشراء جارٍ لدى المصدر.لا
processingالرقم جاهز وبانتظار الكود، أو بانتظار تأكيد المصدر.لا
completedوصل كود (أو نُفِّذت العملية). الإيجار الدائم يبقى يستقبل أكواداً بعدها.نعم
refundedلم يصل كود، أو أُلغي، أو رفضه المصدر — عاد المبلغ كاملاً.نعم

حالة الرقم — state

القيمةالمعنىماذا تفعل
waitingبانتظار أول كود.تابِع (القسم 8).
activeإيجار دائم مكتمل ما زالت مدته جارية — قد تصله أكواد جديدة.تابِع عند الحاجة حتى expires_at.
doneوصل الكود وانتهى دور الرقم.اعرض الكود وتوقّف.
expiredانتهت المدة بلا أكواد.توقّف.
refundedأُعيد المبلغ.أعد لعميلك ماله في متجرك.
الدائم يصير completed عند أول كود (أو عند انتهاء مدته بلا أكواد)، ويبقى state = active يستقبل أكواداً جديدة في codes حتى expires_at. الإيجار المستهلَك لا يُسترَد.

8استلام كود التحقق

نتابع المصدر آلياً كل نصف دقيقة تقريباً؛ ويمكنك طلب التحديث الآن.

GET/numbers/orders/{reference}

آخر حالة محفوظة للرقم (أو لعمليةٍ عليه) — بمرجعنا أو بمرجعك. لا يسأل المصدر، فهو خفيف وبلا حدّ خاص.

curl -H "X-API-Key: axk_YOUR_KEY" https://axissstore.com/api/partner/v1/numbers/orders/NUM-10001
{ "reference": "AX-NUM-3F9A2B01", "partner_reference": "NUM-10001", "status": "completed", "state": "done",
  ..., "phone": "+12125550100", "codes": ["482913"], "latest_code": "482913",
  "completed_at": "2026-10-07T14:06:02.114093" }
POST/numbers/orders/{reference}/refresh

يسأل المصدر الآن عن الكود ثم يعيد الرقم بشكله الكامل. بلا جسم. محدود بمرة كل 5 ثوانٍ للرقم الواحد — التجاوز يعيد 429 مع Retry-After.

curl -X POST -H "X-API-Key: axk_YOUR_KEY" https://axissstore.com/api/partner/v1/numbers/orders/NUM-10001/refresh
GET/numbers/orders

أرقامك (الشراء فقط، لا العمليات التابعة) — الأحدث أولاً، حتى 100 رقم. كل عنصر بالشكل الكامل.

{ "items": [ { "reference": "AX-NUM-3F9A2B01", "phone": "+12125550100", "state": "waiting", ... } ], "total": 1 }
POST/numbers/refresh

يسأل المصدر الآن عن كل أرقامك الجارية (waiting وactive، حتى 20 رقماً) ثم يعيد القائمة كما في GET /numbers/orders. بلا جسم. محدود بمرة كل 8 ثوانٍ للحساب — الأنسب حين تتابع عدّة أرقام معاً.

نمط المتابعة الموصى به بعد الشراء: POST …/refresh كل 5–10 ثوانٍ ما دام state = waiting، وتوقّف عند completed أو refunded. للإيجار الدائم: حدِّث عند طلب عميلك كوداً جديداً، لا باستمرار.

الطلب يظهر أيضاً في نداءات الطلبات العامة (GET https://axissstore.com/api/partner/v1/orders/{reference}) ونصّ التسليم فيه يحمل الرقم والأكواد — لكنّ نداءات /numbers هي التي تعيدها حقولاً منفصلة.

9الإلغاء والاسترداد

المبلغ يعود لمحفظتك حين يؤكّد المصدر الاسترداد — لا لحظة الطلب.

POST/numbers/orders/{reference}/cancel

يلغي رقماً مؤقتاً لم يصله كود. بلا جسم. متاح فقط حين can_cancel = true (الخدمة تدعم الإلغاء، والرقم ما زال منتظراً، ولم يُطلب إلغاؤه من قبل).

curl -X POST -H "X-API-Key: axk_YOUR_KEY" https://axissstore.com/api/partner/v1/numbers/orders/NUM-10001/cancel

الرد بالشكل الكامل. غالباً تبقى الحالة processing لحظات ثم تصير refunded حين يؤكّد المصدر — تابِع بـGET. إلغاءٌ غير ممكن يعيد 422 validation_error برسالة توضّح السبب (وصل كود، انتهت مهلة الإلغاء، الخدمة لا تدعمه…).

الحالةما يحدث للمبلغ
لم يصل كود ضمن مهلة الخدمة (auto_refund)يُسترَد تلقائياً — يصير الطلب refunded دون أي نداء منك.
ألغيتَ الرقم قبل وصول كوديُسترَد حين يؤكّده المصدر.
رفض المصدر الشراءيُسترَد فوراً.
وصل كودلا استرداد — الرقم استُهلك.
إيجار دائم انتهت مدتهلا استرداد.

10إعادة استخدام رقم مؤقت

كودٌ جديد على الرقم نفسه بعد اكتماله — ضمن نافذةٍ زمنية وبرسمٍ معلن.

GET/numbers/orders/{reference}/options

ما يمكن فعله بالرقم الآن وبكم — من حالته الحيّة لدى المصدر. اسأله قبل عرض أي زرّ على عميلك.

رقم مؤقت مكتمل
{
  "type": "temporary", "busy": false, "expires_at": "",
  "reuse": { "price_usd": "0.35", "until": "2026-10-07T14:36" },
  "renew": null, "extend": null, "auto_renew": null
}
إيجار دائم
{
  "type": "permanent", "busy": false, "expires_at": "2026-10-14T14:05",
  "reuse": null,
  "renew": { "price_usd": "3.20", "duration": "7d", "label": "7 أيام" },
  "extend": { "durations": [ { "key": "7d", "label": "7 أيام", "days": 7 },
                             { "key": "30d", "label": "30 يوماً", "days": 30 } ] },
  "auto_renew": { "enabled": false, "hours_before": 12 }
}
الحقلالمعنى
busyعمليةٌ جارية على الرقم — لا تُقبل ثانيةٌ قبل انتهائها (422).
reusenull = غير متاحة الآن. وإلا رسمها بشريحتك وآخر موعدٍ لها.
renewnull = غير متاح. وإلا سعر التجديد بمدة الرقم نفسها.
extendnull = غير متاح. وإلا المدد المقبولة — سعّر كل مدة بـ/numbers/quote.
auto_renewnull = غير متاح لهذا الرقم. وإلا حالته، وكم ساعةً قبل الانتهاء يُجدَّد.
POST/numbers/orders/{reference}/reuse

يخصم رسم إعادة الاستخدام ويفتح دورةً جديدة على الرقم. {reference} في المسار هو الرقم الأصلي.

الحقلالوصف
reference *مرجعٌ جديد فريد لهذه العملية (ليس مرجع الرقم).
curl -X POST https://axissstore.com/api/partner/v1/numbers/orders/NUM-10001/reuse \
  -H "X-API-Key: axk_YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"reference":"NUM-10001-R1"}'
الرد — 201 (عملية جديدة)
{ "reference": "AX-NUM-77C01D2E", "partner_reference": "NUM-10001-R1",
  "kind": "reuse", "parent": "AX-NUM-3F9A2B01",
  "status": "processing", "state": "waiting", "phone": "+12125550100", "codes": [], ...,
  "total_usd": "0.35" }

تابِع العملية بمرجعها (GET أو refresh على NUM-10001-R1) حتى completed — وكودها الجديد في codes (أكواد الدورة السابقة لا تُحتسب). إن لم يصل كود تُسترَد العملية وحدها: refunded.

11تجديد وتمديد الإيجار الدائم

كل عملية طلبٌ مستقل بثمنه ومرجعه واسترداده.

POST/numbers/orders/{reference}/renew

يجدّد الإيجار بمدته نفسها وبالسعر المعلن في options.renew.

الحقلالوصف
reference *مرجعٌ جديد فريد لهذه العملية.
curl -X POST https://axissstore.com/api/partner/v1/numbers/orders/RENT-501/renew \
  -H "X-API-Key: axk_YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"reference":"RENT-501-REN-1"}'
POST/numbers/orders/{reference}/extend

يمدّد الإيجار بمدةٍ تختارها من options.extend.durations. متاح ما دام الإيجار لم ينتهِ.

الحقلالوصف
reference *مرجعٌ جديد فريد لهذه العملية.
duration *key المدة. مدة خارج القائمة تعيد 422 بلا خصم.
curl -X POST https://axissstore.com/api/partner/v1/numbers/orders/RENT-501/extend \
  -H "X-API-Key: axk_YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"reference":"RENT-501-EXT-1","duration":"30d"}'
ردّ العمليتين — 201
{ "reference": "AX-NUM-9B20E4A1", "partner_reference": "RENT-501-REN-1",
  "kind": "renew", "parent": "AX-NUM-5D11C0F7",
  "status": "completed", "phone": "+12125550100", "duration": "7d", ...,
  "total_usd": "3.20", "completed_at": "2026-10-13T09:12:44.501220" }

12التجديد التلقائي

يُجدَّد الإيجار الدائم من محفظتك قبل انتهائه — دون نداءٍ منك.

PUT/numbers/orders/{reference}/auto-renew
الحقلالنوعالوصف
enabled *true | falseتشغيل أو إيقاف.
curl -X PUT https://axissstore.com/api/partner/v1/numbers/orders/RENT-501/auto-renew \
  -H "X-API-Key: axk_YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"enabled":true}'
{ "reference": "AX-NUM-5D11C0F7", "auto_renew": true }

13منع ازدواج العمليات

الشبكة تنقطع، والخصم يجب ألّا يتكرر.

14الأخطاء

الصيغة نفسها في كل الواجهة — ابنِ منطقك على code لا على نص الرسالة.

HTTP/1.1 422 Unprocessable Entity
{
  "code": "validation_error",
  "message": "هذه الخدمة لا تدعم اختيار الولاية.",
  "details": {}
}
HTTPcodeالسببالإجراء
401unauthenticatedالمفتاح مفقود أو غير صالح أو ملغى، أو سُحبت صلاحية الربط.تحقّق من الترويسة والمفتاح.
402insufficient_balanceالرصيد لا يكفي للشراء أو للعملية.اشحن محفظتك. لا خصم حدث.
403account_suspendedالحساب موقوف.تواصل مع الدعم.
404not_foundسيرفر غير موجود أو متوقّف، أو مرجعٌ ليس رقماً لك.تحقّق من key أو المرجع.
409conflictreference استُخدم لعمليةٍ أخرى.مرجع جديد لكل عملية.
422validation_errorاختيار غير متاح، حقل ناقص، إلغاء أو عملية غير ممكنة الآن.اقرأ الرسالة وصحّح. لا خصم حدث.
429rate_limitedتجاوز حدّ النداءات أو حدّ التحديث.انتظر Retry-After ثانية.
502numbers_provider_errorتعذّر الوصول إلى المصدر.أعد المحاولة بعد قليل، بالمرجع نفسه.
503numbers_list_unavailableهذا السيرفر لا يعرض خدماته الآن.جرّب سيرفراً آخر.
503numbers_disabledقسم الأرقام متوقّف مؤقتاً.أعد المحاولة لاحقاً.
5xxhttp_5xxخطأ غير متوقع أو انقطاع.أعد المحاولة بالمرجع نفسه.
متى يحدث الخصم؟ فقط حين يعود 201 من نداءات الشراء والعمليات. كل أخطاء 4xx أعلاه تُرفض قبل الخصم. وعند 5xx أو انقطاع الاتصال لا تفترض شيئاً — استعلم بمرجعك.

15مثال كامل

شراء رقم مؤقت ثم انتظار الكود، بمعالجة صحيحة للأخطاء وإعادة المحاولة.

Python

import os, time, requests

API = "https://axissstore.com/api/partner/v1"
HEADERS = {"X-API-Key": os.environ["AXIS_API_KEY"]}   # key from an environment variable

def call(method, path, **kw):
    for attempt in range(5):
        try:
            r = requests.request(method, API + path, headers=HEADERS, timeout=30, **kw)
        except requests.RequestException:
            time.sleep(2 ** attempt); continue          # network error: retry with the same reference
        if r.status_code == 429:
            time.sleep(int(r.headers.get("Retry-After", "5"))); continue
        if r.status_code >= 500:
            time.sleep(2 ** attempt); continue
        data = r.json()
        if r.status_code >= 400:
            raise RuntimeError(f"{data['code']}: {data['message']}")
        return data
    raise RuntimeError("service unavailable")

def buy_number(server, service, shop_order_id, on_number, wait_minutes=12):
    ref = f"NUM-{shop_order_id}"                               # fixed per purchase
    number = call("POST", "/numbers/orders", json={
        "server": server, "service": service, "reference": ref})
    shown = False
    deadline = time.time() + wait_minutes * 60
    while number["status"] in ("paid", "processing") and time.time() < deadline:
        if number["phone"] and not shown:
            on_number(number["phone"]); shown = True            # show it to your customer now
        time.sleep(8)
        number = call("POST", f"/numbers/orders/{ref}/refresh")
    return number            # completed (code in latest_code), refunded, or still waiting

n = buy_number("us-temp-1", "whatsapp", 10001, on_number=print)
print(n["status"], n["phone"], n["latest_code"])

Node.js

const API = 'https://axissstore.com/api/partner/v1';
const headers = { 'X-API-Key': process.env.AXIS_API_KEY, 'Content-Type': 'application/json' };

async function axis(method, path, body) {
  const res = await fetch(API + path, { method, headers, body: body && JSON.stringify(body),
                                    signal: AbortSignal.timeout(30000) });
  const data = await res.json();
  if (!res.ok) throw new Error(`${data.code}: ${data.message}`);
  return data;
}

let number = await axis('POST', '/numbers/orders',
  { server: 'us-temp-1', service: 'whatsapp', reference: 'NUM-10001' });
console.log('number:', number.phone);
while (['paid', 'processing'].includes(number.status)) {
  await new Promise(r => setTimeout(r, 8000));
  number = await axis('POST', '/numbers/orders/NUM-10001/refresh');
}
console.log(number.status, number.latest_code);

16أفضل الممارسات وقائمة التحقق

ما يميّز ربطاً يعمل لسنوات عن ربطٍ يتعطّل عند أول انقطاع.

الموضوعالتوصية
السيرفراتاجلب /numbers/servers دورياً ولا تثبّت القائمة. عند numbers_list_unavailable اعرض سيرفراً آخر.
الأسعارلا تخزّنها أكثر من دقائق؛ أعد /numbers/quote قبل عرض المبلغ النهائي. المحاسبة على total_usd في الرد.
القيودلا تعرض الولاية أو المقدّمة أو الإلغاء إلا إن كانت أعلامها true للخدمة.
المتابعةحدِّث كل 5–10 ثوانٍ، واحترم Retry-After. لعدّة أرقام استخدم POST /numbers/refresh.
المهلةمهلة 30 ثانية لكل نداء. عند انتهائها لا تفترض الفشل — أعد بالمرجع نفسه.
الاستردادحين يصير الطلب refunded يكون المبلغ قد عاد لمحفظتك — أعده لعميلك في متجرك.
العملياتاسأل options قبل عرض إعادة الاستخدام أو التجديد أو التمديد، وتابِع العملية بمرجعها هي.
السجلاتسجّل reference وpartner_reference لكل عملية. لا تسجّل المفتاح.

قبل الإطلاق

البند
☐المفتاح محفوظ على الخادم فقط (متغيّر بيئة)، ولا يظهر في أي كود متصفح أو تطبيق أو سجل.
☐كل شراء وكل عملية (reuse / renew / extend) تحمل reference فريداً يُحفظ في قاعدة بياناتك قبل الإرسال.
☐مراجع الأرقام لا تتقاطع مع مراجع المتجر والبروكسيات (بادئة لكل نوع).
☐الرقم يُعرض لعميلك فور عودته، والكود فور وصوله.
☐المتابعة تتوقف عند completed وrefunded، وتحترم حدّ التحديث.
☐حالة refunded تُعيد المبلغ لعميلك في متجرك.
☐الولاية والمقدّمة والمدة والدولة تُتحقّق في متجرك من أعلام الخدمة قبل الطلب.
☐تنبيه عند انخفاض الرصيد — خصوصاً مع التجديد التلقائي.
☐جرّبت شراء رقم حقيقي واحد من البداية حتى الكود، وإلغاء رقمٍ آخر.

17مرجع النداءات والدعم

كل نداءات قسم الأرقام في جدول واحد.

الفعلالمسارالوظيفةيخصم؟
GET/numbers/serversالسيرفرات المتاحة الآن.لا
GET/numbers/servicesخدمات سيرفر وأسعارها.لا
GET/numbers/quoteسعر خدمة بمدة أو دولة.لا
GET/numbers/countriesدول السيرفر.لا
GET/numbers/statesالولايات الأمريكية.لا
POST/numbers/ordersشراء رقم.نعم
GET/numbers/ordersأرقامي.لا
POST/numbers/refreshتحديث كل الأرقام الجارية.لا
GET/numbers/orders/{reference}حالة رقم أو عملية.لا
POST/numbers/orders/{reference}/refreshطلب الكود الآن.لا
POST/numbers/orders/{reference}/cancelإلغاء رقم مؤقت.لا (استرداد)
GET/numbers/orders/{reference}/optionsالعمليات المتاحة وأسعارها.لا
POST/numbers/orders/{reference}/reuseإعادة استخدام رقم مؤقت.نعم
POST/numbers/orders/{reference}/renewتجديد إيجار دائم.نعم
POST/numbers/orders/{reference}/extendتمديد إيجار دائم.نعم
PUT/numbers/orders/{reference}/auto-renewالتجديد التلقائي.لاحقاً، عند كل تجديد

سجل التغييرات

الإصدارالتغييرات
1.2أول إصدار لنداءات الأرقام في واجهة الشركاء: الكتالوج، الشراء، الكود، الإلغاء، إعادة الاستخدام، التجديد، التمديد، والتجديد التلقائي.

© 2026 AXIS GROUP — AXIS STORE. جميع الحقوق محفوظة.
هذه الوثيقة مرجعٌ تقني لشركاء AXIS STORE، وقد تُحدَّث — النسخة الأحدث دائماً على https://axissstore.com/developers/numbers.