هذا مسار صادر يبدأ عبر الواجهة (Wave تتّصل بالمستخدم). وهو يختلف عن
قوائم الرد الصوتي (حيث يتّصل المتصل بك). المصادقة الصوتية مُقيّدة —
اطلب من جهة تواصلك في Wave تفعيلها لحسابك.
المصادقة والفئات
كل مسار ضمن/v1/voice-auth يتطلّب مفتاح إنتاج (sk_live_) مع صلاحية
voice_auth:write (أو voice_auth:read للاستعلام). لا تستطيع المفاتيح التجريبية
إجراء مكالمات مصادقة حقيقية.
إنشاء طلب تحقّق (challenge)
تُعيد
201 معرّف الطلب و(في وضع number_match) الأرقام المطلوب عرضها:
النتيجة — الفشل الآمن
يصل الطلب إلى حالة نهائية واحدةstate:
كشف الردّ الآلي (AMD)
قبل أي رسالة، تُصنّف Wave من ردّ على المكالمة. ردّ الآلة أو البريد الصوتي ينتهي إلىmachine_detected ولا تُشغَّل رسالة الموافقة أبدًا — فلا يمكن لبريد صوتي التقاط ضغطة
أو ترك موافقة. هذا مُطبَّق، وليس بأفضل جهد.
المطابقة الرقمية عالية التوكيد
للإجراءات عالية القيمة (المدفوعات، تغييرات المشرف)، اضبطassurance: "number_match".
تتضمّن استجابة 201 قيمة match_digits (مثل "47") — اعرضها لمستخدمك. تطلب المكالمة
حينها من المتّصل إدخال تلك الأرقام بالضبط للموافقة. أي إدخال خاطئ لا يوافق — وهذا
يُبطل إرهاق المصادقة (“فقط اضغط 1”) والموافقات العرضية.
webhook النتيجة
عند بلوغ حالة نهائية ترسل Wave حدثvoice_auth.completed موقّعًا إلى نقطة webhook
الخاصّة بمشروعك. تحقّق من كل تسليم:
X-Wave-Signature—sha256=…، توقيع HMAC-SHA256 للمحتوى الخام بسرّ التوقيع الخاصّ بنقطتك. ارفض أي عدم تطابق.X-Wave-Timestamp— بالثواني (unix)؛ ارفض التسليمات الأقدم من نافذتك (مثلًا 5 دقائق).X-Wave-Event-Id— ثابت عبر إعادات الإرسال؛ استخدمه لمنع التكرار.
الاستعلام عن الحالة
state وعدد المحاولات وamd_result والطوابع الزمنية و(عند الانتهاء)
القرار. مقصورة على مؤسّستك فقط.
المعرّف الفريد للطلب، حدود المعدّل، ومكافحة الإساءة
- Idempotency — أرسل
Idempotency-Key؛ تُعيد المحاولة بنفس المفتاح نفس الطلب ولا تُجري مكالمة ثانية. - حدود لكل رقم ولكل جهة إصدار — تحدّ Wave من عدد الطلبات لرقم واحد ولكل مفتاح، وتحجب
الأرقام/البادئات المُسيئة، لمنع القصف الصوتي والاحتيال. عند تجاوز الحدّ →
429.

