الأخطاء
كل الأخطاء تُرجع بنية موحّدة مع كود ثابت يصلح للمعالجة البرمجية:
error envelope
{
"error": {
"code": "outside_session_window",
"message": "Official WhatsApp outbound policy denied the request (approved_template_required)."
}
}
أكواد الأخطاء
| الكود | HTTP | المعنى |
|---|---|---|
| recipient_consent_revoked | 422 | تسجيل الموافقة لا يتجاوز سحب الموافقة. |
| recipient_suppressed | 422 | تسجيل الموافقة لا يزيل الحظر. |
| consent_evidence_conflict | 409 | سُجّل إرسال النموذج مسبقاً بمعرّف آخر؛ استخدم المعرّف الأصلي. |
| unauthenticated | 401 | المفتاح مفقود، ملغى، أو غير صحيح. |
| invalid_ability | 403 | المفتاح لا يملك الصلاحية المطلوبة للنقطة. |
| template_not_found | 404 | القالب غير موجود أو لا يتبع حسابك. |
| message_not_found | 404 | الرسالة غير موجودة أو لا تتبع حسابك. |
| validation_error | 422 | حقول مفقودة أو غير صحيحة (تفاصيل الحقول في errors). |
| idempotency_key_required | 422 | ترويسة Idempotency-Key مفقودة أو قصيرة. |
| idempotency_conflict | 409 (consent), 422 (send) | أُعيد استخدام المعرّف مع محتوى مختلف. |
| no_whatsapp_account | 422 | لا يوجد حساب واتساب رسمي متصل. |
| no_whatsapp_phone_number | 422 | لا يوجد رقم إرسال متاح للحساب. |
| outside_session_window | 422 | رسالة نصية خارج نافذة الـ 24 ساعة — استخدم قالباً. |
| template_not_approved | 422 | القالب ليس معتمداً لدى واتساب. |
| recipient_consent_required | 422 | المستلم لم يمنح موافقة تواصل أو سحبها. |
| send_policy_denied | 422 | رفضته سياسة الإرسال الداخلية (الرسالة توضح السبب). |
| rate_limited | 429 | تجاوزت حد الطلبات — راجع الحدود. |