إشعارات الحالة والتسعير

يرسل عميل واجهة API الخاصة بواتساب للأعمال إشعارات حول status الرسالة بينك وبين المستخدمين. ويتم إرسال هذه الإشعارات عبر الكائن statuses.

تحديثات الحالة

ستتلقى إشعارًا بحالة الرسالة عن كل رسالة يرسلها نشاطك التجاري. في الجدول التالي، انقر على السهم الموجود في العمود الأيمن للحصول على الوصف المقابل لتطبيق واتساب لكل حالة، إن وجد.

الاسمالوصف

deleted

تشير إلى حذف المستخدم للرسالة التي أرسلها. عند تلقي هذا الإشعار، يجب التأكد من حذف الرسالة من نظامك إذا تم تنزيلها من الخادم.

الوصف المقابل في تطبيق واتساب

يتم استبدال الرسالة في تطبيق واتساب للهاتف المحمول مع ملاحظة تتضمن عبارة "تم حذف هذه الرسالة."

delivered

تشير إلى نجاح تسليم الرسالة التي أرسلها نشاطك التجاري إلى جهاز المستخدم.

الوصف المقابل في تطبيق واتساب

علامتا تحديد

failed

تشير إلى تعذر إرسال الرسالة من جانب نشاطك التجاري. وسيتم تضمين السبب وراء تعذر الإرسال في استجابة الاستدعاء. اطّلع على وثائق رسالة الخطأ للحصول على المساعدة بشأن تصحيح الأخطاء:

الوصف المقابل في تطبيق واتساب

مثلث خطأ باللون الأحمر

read

تشير إلى قراءة المستخدم لرسالة أرسلها النشاط التجاري. إشعارات read متوفرة فقط للمستخدمين الذين قاموا بتمكين مؤشرات قراءة الرسائل. وبالنسبة إلى المستخدمين الذين لم يقوموا بتمكينها، فستتلقى فقط إشعار delivered .

الوصف المقابل في تطبيق واتساب

علامتا تحديد باللون الأزرق

sent

تشير إلى أن حالة الرسالة التي أرسلها نشاطك التجاري "قيد النقل" داخل أنظمتنا.


بالنسبة إلى مستخدمي API داخل المواقع: لتلقي إشعارات بشأن الرسائل بالحالة sent يمكنك تعيين الإعداد sent_status على true في إعدادات التطبيق. يتم تعطيل إشعار الحالة sent بشكل افتراضي.

الوصف المقابل في تطبيق واتساب

علامة تحديد واحدة

warning

تشير إلى أن الرسالة التي أرسلها نشاطك التجاري تحتوي على عنصر في كتالوج غير متوفر أو غير موجود.

قد لا يعكس ترتيب هذه الإشعارات في تطبيقك التوقيت الفعلي لحالة الرسالة. اعرض الطابع الزمني لتحديد التوقيت، إذا لزم الأمر.

ليكون الإشعار بالحالة read، يجب أن تكون الرسالة بالحالة delivered. وفي بعض السيناريوهات، فعلى سبيل المثال عندما يكون أحد المستخدمين موجودًا في شاشة الدردشة وتصل رسالة، ستظهر الرسالة بالحالتين delivered وread في الوقت ذاته تقريبًا. ففي هذا السيناريو أو غيره من السيناريوهات المشابهة، لن يتم إرسال إشعار بالحالة delivered مرة أخرى كما هو موضح ضمنيًا أنه تم تسليم الرسالة إذا تمت قراءتها. ويرجع سبب هذا السلوك إلى التحسين الداخلي.

تحديثات التسعير

منذ 1 فبراير 2022، أصبح الكائن statuses الموجود في الإشعارات الصادرة يتضمن كائنين متداخلين جديدين: conversation وpricing. تختلف مكونات كائن التسعير والمحادثة باختلاف مكان بدء المحادثة. يمكن بدء المحادثات بواسطة المستخدم أو بواسطة النشاط التجاري أو يمكن أن تبدأ من نقطة دخول مجانية. راجع المزيد من المعلومات أدناه:

أمثلة

في الأمثلة التالية، ربما يكون المعرف recipient_id هو الحقل group_id بدلًا من ذلك. ويعتمد ذلك على ما إذا كانت الرسالة مرسلة إلى فرد أم مجموعة.

الحالة: تم إرسال الرسالة

يتم تلقي حدث webhook التالي عندما يرسل النشاط التجاري رسالة كجزء من المحادثة التي بدأها المستخدم (إذا لم يتم إنشاء تلك المحادثة في نقطة إدخال مجانية):

{
   "statuses": [{
     "id": "ID",
     "recipient_id": "WHATSAPP_ID",
     "status": "sent",
     "timestamp": "TIMESTAMP",
     "type": "message",
     "conversation": {
       "id": "CONVERSATION_ID",
       "expiration_timestamp": TIMESTAMP,
       "origin": {
         "type": "user_initiated"
       }
      },
    "pricing": {
      "pricing_model": "CBP",
      "billable": true,
      "category": "user_initiated"
    }
   }]
}

يتم تلقي حدث webhook التالي عندما يرسل النشاط التجاري رسالة كجزء من المحادثة التي بدأها النشاط التجاري:

{
  "statuses": [{
    "id": "ID",
    "recipient_id": "WHATSAPP_ID",
    "status": "sent",
    "timestamp": "TIMESTAMP",
    "type": "message",         
    "conversation": {
      "id": "CONVERSATION_ID",
      "expiration_timestamp": TIMESTAMP,
      "origin": {
         "type": "business_initiated"
      }
    },
    "pricing": {
      "pricing_model": "CBP",
      "billable": true,
      "category": "business_initiated"
    }
   }]
}

يتم تلقي حدث webhook التالي عندما يرسل النشاط التجاري رسالة ردًا على المحادثة التي بدأها المستخدم التي تم إنشاؤها من نقاط إدخال مجانية:

{
  "statuses": [{
    "id": "ID",
    "recipient_id": "WHATSAPP_ID",
    "status": "sent",
    "timestamp": "TIMESTAMP",
    "type": "message",  
    "conversation": {
      "id": "CONVERSATION_ID",
      "expiration_timestamp": TIMESTAMP,
      "origin": {
         "type": "referral_conversion",
      }
    },
    "pricing": {
      "pricing_model": "CBP",
      "billable": false,
      "category": "referral_conversion"
    }
   }]
}

الحالة: تم تسليم الرسالة

يتم تلقي حدث webhook التالي عندما يتم تسليم رسالة النشاط التجاري وتكون تلك الرسالة جزءًا من المحادثة التي بدأها المستخدم (إذا لم يتم إنشاء تلك المحادثة في نقطة إدخال مجانية):

{
  "statuses": [{
    "id": "ID",
    "recipient_id": "WHATSAPP_ID",
    "status": "delivered",
    "timestamp": "TIMESTAMP",
    "type": "message",
    "conversation": {
      "id": "CONVERSATION_ID",
      "origin": {
         "type": "user_initiated"
      }
    },
    "pricing": {
      "pricing_model": "CBP",
      "billable": true,
      "category": "user_initiated"
    }
  }]
}

يتم تلقي حدث webhook التالي عند تسليم رسالة النشاط التجاري وتكون تلك الرسالة جزءًا من المحادثة التي بدأها النشاط التجاري:

{
  "statuses": [{
    "id": "ID",
    "recipient_id": "WHATSAPP_ID",
    "status": "delivered",
    "timestamp": "TIMESTAMP",
    "type": "message",
    "conversation": {
      "id": "CONVERSATION_ID",
      "origin": {
         "type": "business_initiated"
      }
    },
    "pricing": {
      "pricing_model": "CBP",
      "billable": true,
      "category": "business_initiated"
    }
  }]
}

يتم تلقي حدث webhook التالي عند تسليم رسالة النشاط التجاري وتكون تلك الرسالة جزءًا من المحادثة التي بدأها المستخدم التي تم إنشاؤها من نقطة إدخال مجانية:

{
  "statuses": [{
    "id": "ID",
    "recipient_id": "WHATSAPP_ID",
    "status": "delivered",
    "timestamp": "TIMESTAMP",
    "type": "message",  
    "conversation": {
      "id": "CONVERSATION_ID",
      "origin": {
         "type": "referral_conversion",
      }
    },
    "pricing": {
      "pricing_model": "CBP",
      "billable": false,
      "category": "referral_conversion"
    }
  }]
}

الحالة: تمت قراءة الرسالة

الاستدعاء القياسي لرسالة تمت قراءتها:

{
  "statuses":[{
    "id": "ID",
    "recipient_id": "WHATSAPP_ID",
    "status": "read",
    "timestamp": "TIMESTAMP",
    "type": "message"
  }]
}

الحالة: فشل إرسال الرسالة

رمز الخطأ 470

{
  "statuses": [{
    "errors": [{
      "code": 470,
      "title": "Failed to send message because you are outside the support window for freeform messages to this user. Please use a valid HSM notification or reconsider." 
    }],
    "id": "ID",
    "recipient_id": "WHATSAPP_ID",
    "status": "failed",
    "timestamp": "TIMESTAMP"
  }]
}

رمز الخطأ 480

{
  "statuses": [{
      "errors": [{
          "code": 480,
          "title": "Failed to send message since we detect an identity change of the contact"
      }],
      "id": "ID",
      "recipient_id": "WHATSAPP_ID",
      "status": "failed",
      "timestamp": "TIMESTAMP"
   }]
}

لا يتم تضمين قسم المحادثة الفرعي في الاستدعاء، إذا فشل إرسال الرسالة. ولا يتم تضمين تنشيط الفوترة أو المحادثة في هذه الحالة.

الحالة: تم حذف الرسالة

الاستدعاء القياسي لرسالة تم حذفها:

{
  "statuses": [{
        "id": "ID",
        "recipient_id": "WHATSAPP_ID",
        "status": "deleted",
        "timestamp": "TIMESTAMP",
        "type": "message"
    }]
}

لا يتم تضمين قسم المحادثة الفرعي في الاستدعاء، إذا تم حذف الرسالة. ولا يتم تضمين تنشيط الفوترة أو المحادثة في هذه الحالة.

كل حالات الرسائل الممكنة

لمعرفة هذه المعلومات، راجع نظرة عامة، الرسائل.

الأسئلة المتكررة

Yes, there is a specific scenario where you can get pricing information on your webhook alert for read messages. For each sent message, there can be 3 scenarios:

ScenarioWhen it Happens
You get a webhook alert when the message is delivered (including pricing information) and another webhook alert when the message is read (not including pricing information).This is the most common scenario.
You get a webhook alert when the message is delivered (including pricing information). You do not get a webhook alert that the message has been read. Common when a customer has turned off the feature that lets people know they have read a message.
You get a webhook alert when the message is read (including pricing information). You do not get a webhook alert that the message has been delivered. Only triggered when the user is already reading the thread with the business when the message comes in.