الانتقال إلى المحتوى الرئيسي
التحقّق هو أداة أساسية قائمة على الرسائل لـ رمز الاستخدام الواحد. يطلب نظامك من Wave إرسال رمز تحقّق إلى رقم هاتف عبر WhatsApp؛ يقرأه المستخدم ويُدخله؛ وتتحقّق من الرمز وتحصل على نتيجة موثوقة قابلة للقراءة آليًا عبر webhook موقّع (وواجهة استعلام عن الحالة). هو عامل تأكيد امتلاك الهاتف لإنشاء حساب والمصادقة المتقدمة وإعادة تعيين كلمة المرور — أداة أمان، وليست قائمة رد صوتي. ولأن النتيجة تحكم الوصول، فهي مصمّمة لتفشل بأمان: الرمز الدقيق في الوقت المناسب فقط في حدود المحاولات يمنح الوصول، والرمز الخاطئ أو المنتهي لا يفعل.
هذا مسار يبدأ عبر الواجهة (Wave ترسل رمزًا للمستخدم). وهو يختلف عن المصادقة الصوتية (أداة اتصال-للموافقة). التحقّق مُقيّد — اطلب من جهة تواصلك في Wave تفعيله لحسابك.

المصادقة والفئات

كل مسار ضمن /v1/verify يتطلّب مفتاح إنتاج (sk_live_) مع صلاحية verify:write (أو verify:read للاستعلام). لا تستطيع المفاتيح التجريبية إرسال رموز تحقّق حقيقية.

إنشاء تحقّق

تُعيد 201 معرّف التحقّق وميعاد انتهاؤه:

النتيجة — الفشل الآمن

يصل التحقّق إلى حالة نهائية واحدة state:
verified فقط يمنح الوصول. عامِل كل حالة أخرى كعدم منح وافشل بأمان. وتحقّق دائمًا من النتيجة عبر واجهة الحالة قبل اعتماد الموافقة — دفاعًا في العمق.

فحص الرمز

200 تُعيد حالة التحقّق وقيمة منطقية:
على رمز خاطئ، تتضمّن الاستجابة state: "awaiting_check" وverified: false؛ يزداد العداد. بعد خمس محاولات خاطئة، تصبح state هي max_attempts وتفشل الفحوصات اللاحقة.

webhook النتيجة

عند بلوغ حالة نهائية ترسل Wave حدث verify.completed موقّعًا إلى نقطة webhook الخاصّة بمشروعك. تحقّق من كل تسليم:
  • X-Wave-Signature — sha256=…، توقيع HMAC-SHA256 للمحتوى الخام بسرّ التوقيع الخاصّ بنقطتك. ارفض أي عدم تطابق.
  • X-Wave-Timestamp — بالثواني (unix)؛ ارفض التسليمات الأقدم من نافذتك (مثلًا 5 دقائق).
  • X-Wave-Event-Id — ثابت عبر إعادات الإرسال؛ استخدمه لمنع التكرار.
الـ webhook إشعار — أعد التأكيد عبر واجهة الحالة قبل المنح.

الاستعلام عن الحالة

تُعيد الحالة الحالية state وعدد المحاولات والقناة والطوابع الزمنية و(عند الانتهاء) القرار. مقصورة على مؤسّستك فقط.

رمز واحد لكل رقم وانتهاء الرمز والمعرّف الفريد

  • رمز واحد لكل رقم — POST /v1/verify جديد لنفس الرقم يستبدل الرمز السابق ويلغي التحقّق القديم.
  • انتهاء الرمز — ينتهي الرمز في expires_at. فحص بعدها يُعيد state: "expired" دون زيادة المحاولات.
  • Idempotency — أرسل Idempotency-Key؛ تُعيد المحاولة بنفس المفتاح نفس التحقّق ولا ترسل رمز ثانٍ أو رسالة ثانية.

حدود المعدّل ومكافحة الإساءة

  • حدود لكل رقم — تحدّد Wave التحقّقات لرقم واحد لكل مفتاح، وتحجب الأرقام/البادئات المُسيئة، لمنع قصف الرموز والاحتيال. تجاوز → 429.
  • حد محاولات لكل تحقّق — خمس محاولات خاطئة → max_attempts. لا فحوصات لاحقة.
  • حدود الحجم العام — تتبع Wave الحجم الإجمالي لكل مفتاح. الزيادة المستدامة → 429.

الأخطاء