انتقل للمحتوى

    عربي أو إنجليزي · ↑↓ للتنقل · Enter للفتح · Esc للقفل

    English
    في الصفحة دي

    أكواد OTP صح

    ابعت أكواد تحقق من رقمك: مرسلات بتعمل الكود وتعمله hash، وبتستخدم نص ثابت آمن، وبتحدد المحاولات والمستلمين.

    POST /v2/otp بيبعت كود تحقق؛ و POST /v2/otp/{otpId}/verify بيتأكد من اللي الشخص كتبه. انت عمرك ما بتمسك الكود أو تخزنه: مرسلات بتعمله بمولّد عشوائي آمن وبتحتفظ بـ hash بس.

    curl -X POST "https://mursilat.com/api/v2/otp" \
      -H "Authorization: Bearer $WASLA_API_KEY" \
      -H "Idempotency-Key: order-1042-confirm" \
      -H "Content-Type: application/json" \
      -d '{
      "numberId": "cm1abcd2345efgh6789ijkl",
      "to": "201001234567",
      "length": 6,
      "ttlSeconds": 300,
      "maxAttempts": 5,
      "app": "متجر النور",
      "copyButton": true
    }'

    نصوص ثابتة

    النص ثابت ومترجم، عشان endpoint الـ OTP عمره ما يتحول لوسيلة لرسايل عشوائية أو روابط احتيال. بيتملى فيه الكود ومدة الصلاحية بالدقايق واسم app بس:

    localeالنص
    ar (الافتراضي)النص«كود التحقق لـ {app}: {code} — صالح لمدة {minutes} دقيقة. متشاركهوش مع أي حد.»
    enالنص“Your verification code for {app}: {code} — Valid for {minutes} minutes. Do not share it with anyone.”

    app بيقبل حروف وأرقام ومسافات (حد أقصى 30) — من غير روابط، ولا نهايات دومين زي com أو sa، ولا خدمات روابط، ولا 6 أرقام ورا بعض. copyButton: true بيضيف زرار «نسخ الكود».

    الحدود

    الحدالقيمة
    طول الكود / الصلاحية / المحاولاتالقيمة4–8 أرقام · 60–900 ثانية · 1–10 محاولات
    أكواد لنفس المستلمالقيمة5 في الساعة
    مستلمين مختلفين للحسابالقيمة200 في الساعة (OTP_ACCOUNT_RATE_LIMITED)
    طلبات التحققالقيمة60 لكل مفتاح في الدقيقة
    حماية الرقم لفئة OTPالقيمة30 في الساعة و300 في اليوم لكل رقم، بفاصل 3–5 ثواني
    الرصيدالقيمةوحدة رسالة واحدة، بترجع لو الإرسال فشل

    المستلمين اللي لغوا اشتراكهم بيترفضوا. صفوف الـ OTP بتتمسح بعد 7 أيام؛ والمستلم بيتخزن مخفي جزئيًا.

    التحقق

    ابعت الكود كنص (الأصفار اللي في الأول مهمة). كل طلب بيصرف محاولة قبل المقارنة بوقت ثابت؛ وعند maxAttempts الكود بيتقفل. valid: false بيجي معاه reason: INVALID_CODE أو EXPIRED أو TOO_MANY_ATTEMPTS أو ALREADY_VERIFIED. ويب هوك otp.verified (من غير الكود) بيتبعت لما ينجح.

    curl -X POST "https://mursilat.com/api/v2/otp/otp_8f2c1d9a7b3e4f56a1b2c3d4/verify" \
      -H "Authorization: Bearer $WASLA_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "code": "048213"
    }'

    وصول الرسالة

    ابعت الـ OTP من رقم الناس عارفاه — والأحسن رقم مخصوص، مش الرقم اللي بتعمل بيه حملات، عشان البلاغات على التسويق متقفلش تسجيل الدخول. شوف استخدام رقم بيزنس مخصوص.