Перейти к содержанию

Статус отправленного сообщения#

Входящее уведомление данного типа содержит статус ранее отправленного сообщения: отправлено, доставлено, прочитано и др.

Настройка инстанса

Чтобы получать входящие уведомления о статусах отправленных сообщений, необходимо включить настройки одним из представленных вариантов:

  1. Через личный кабинет включить настройки Получать уведомления о сообщениях, отправленных с телефона, Получать уведомления о сообщениях, отправленных через API и Получать уведомления о статусах отправки/доставки/прочтении исходящих сообщений

  2. Через метод SetSettings включить настройки outgoingMessageWebhook, outgoingAPIMessageWebhook и outgoingWebhook

Подробнее о статусах отправленных сообщений в WhatApp читайте в нашей статье

Уведомление#

Формат уведомления#

Параметр Тип Описание
typeWebhook string Тип входящего уведомления. Для уведомлений данного типа поле принимает значение outgoingMessageStatus
chatId string Идентификатор чата. Чат с сообщением по которому получили статус.
instanceData object Данные об инстансе
timestamp integer Время наступления события в UNIX-формате
idMessage string Идентификатор отправленного сообщения или файла. Идентификатор отправленного сообщения возвращается методами: SendMessage, SendFileByUrl, SendFileByUpload, SendLocation, SendContact, SendPoll
status string Статус отправленного сообщения или файла. Статус принимает значения:
sent - сообщение отправлено
delivered - сообщение доставлено до получателя
read - сообщение прочитано/просмотрено/прослушано
failed - произошла ошибка при отправке сообщения на сервер WhatsApp (данный статус невозможно отключить в настройках SetSettings, необходимо обязательно реализовать обработку данного уведомления)
noAccount - на номере телефона получателя не зарегистрирован аккаунт WhatsApp (данный статус невозможно отключить в настройках SetSettings, необходимо обязательно реализовать обработку данного уведомления)
notInGroup - отправитель не является участником группового чата, в который выполняется отправка сообщения
description string Описание ошибки (рекомендуется сделать информирование оператора об ошибках системы)
sendByApi boolean Флаг указывает отправлено сообщение из API или нет, принимает значения: true , false

Поля объекта instanceData

Параметр Тип Описание
idInstance integer Идентификатор инстанса. Размер integer равен int64. Значения лежат в диапазоне от 1 до 10 разрядов
wid string Идентификатор аккаунта в формате WhatsApp
typeInstance string Тип мессенджера для инстанса

Пример тела уведомления со статусом sent#

{
    "typeWebhook": "outgoingMessageStatus",
        "chatId": "79876543210@c.us",
        "instanceData": {
            "idInstance": 1101111111,
            "wid": "79876543210@c.us",
            "typeInstance": "whatsapp"
        },
        "timestamp": 1727691478,
        "idMessage": "3EB0608D6A2901063D63",
        "status": "sent",
        "sendByApi": true
}

Пример тела уведомления со статусом delivered#

{
    "typeWebhook": "outgoingMessageStatus",
        "chatId": "79876543210@c.us",
        "instanceData": {
            "idInstance": 1101111111,
            "wid": "79876543210@c.us",
            "typeInstance": "whatsapp"
        },
        "timestamp": 1727698517,
        "idMessage": "3EB0608D6A2901063D63",
        "status": "delivered",
        "sendByApi": true
}

Пример тела уведомления со статусом read#

{
    "typeWebhook": "outgoingMessageStatus",
        "chatId": "79876543210@c.us",
        "instanceData": {
            "idInstance": 1101111111,
            "wid": "79876543210@c.us",
            "typeInstance": "whatsapp"
        },
        "timestamp": 1727698597,
        "idMessage": "3EB0608D6A2901063D63",
        "status": "read",
        "sendByApi": true
}

Пример тела уведомления при отправке в группу, в которой не состоит отправитель#

{
    "typeWebhook": "outgoingMessageStatus",
        "chatId": "120363347693198097@g.us",
        "instanceData": {
            "idInstance": 1234,
            "wid": "11001234567@c.us",
            "typeInstance": "whatsapp"
        },
        "timestamp": 1727760222,
        "idMessage": "BAE5245994546A06",
        "status": "notInGroup",
        "sendByApi": true
}

Пример тела уведомления при отправке сообщения с пустым файлом через метод SendFileByUrl#

{
    "typeWebhook": "outgoingMessageStatus",
        "chatId": "120363347693198097@g.us",
        "instanceData": {
            "idInstance": 1234,
            "wid": "11001234567@c.us",
            "typeInstance": "whatsapp"
        },
        "timestamp": 1727760222,
        "idMessage": "BAE5245994546A06",
        "status": "failed",
        "description": "file should not be empty. URL: ...",
        "sendByApi": true
}

Пример тела уведомления при отправке сообщения с файлом, который недоступен по ссылке (SendFileByUrl)#

{
    "typeWebhook": "outgoingMessageStatus",
        "chatId": "120363347693198097@g.us",
        "instanceData": {
            "idInstance": 1234,
            "wid": "11001234567@c.us",
            "typeInstance": "whatsapp"
        },
        "timestamp": 1727760222,
        "idMessage": "BAE5245994546A06",
        "status": "failed",
        "description": "upload request was failed with bad status code ([45][0-9]{2})...",
        "sendByApi": true
}

или (могут встречаться оба)

{
    "typeWebhook": "outgoingMessageStatus",
        "chatId": "120363347693198097@g.us",
        "instanceData": {
            "idInstance": 1234,
            "wid": "11001234567@c.us",
            "typeInstance": "whatsapp"
        },
        "timestamp": 1727760222,
        "idMessage": "BAE5245994546A06",
        "status": "failed",
        "description": "request was failed with bad status code ([45][0-9]{2})...",
        "sendByApi": true
}

Пример тела уведомления при отправке сообщения с файлом, размер которого превышает 100 мб. (SendFileByUrl)#

{
    "typeWebhook": "outgoingMessageStatus",
        "chatId": "120363347693198097@g.us",
        "instanceData": {
            "idInstance": 1234,
            "wid": "11001234567@c.us",
            "typeInstance": "whatsapp"
        },
        "timestamp": 1727760222,
        "idMessage": "BAE5245994546A06",
        "status": "failed",
        "description": "file size should not exceed 100 megabytes. URL: ...",
        "sendByApi": true
}

Пример тела уведомление при отправке сообщения с файлом при недоступности медиахостов WhatsApp продолжительное время#

{
    "typeWebhook": "outgoingMessageStatus",
        "chatId": "120363347693198097@g.us",
        "instanceData": {
            "idInstance": 1234,
            "wid": "11001234567@c.us",
            "typeInstance": "whatsapp"
        },
        "timestamp": 1727760222,
        "idMessage": "BAE5245994546A06",
        "status": "failed",
        "description": "Uploader Error",
        "sendByApi": true
}

или (могут встречаться оба)

{
    "typeWebhook": "outgoingMessageStatus",
        "chatId": "120363347693198097@g.us",
        "instanceData": {
            "idInstance": 1234,
            "wid": "11001234567@c.us",
            "typeInstance": "whatsapp"
        },
        "timestamp": 1727760222,
        "idMessage": "BAE5245994546A06",
        "status": "failed",
        "description": "failed to send message with file",
        "sendByApi": true
}

Пример тела уведомление при отправке сообщения при недоступности хостов WhatsApp продолжительное время#

{
    "typeWebhook": "outgoingMessageStatus",
        "chatId": "120363347693198097@g.us",
        "instanceData": {
            "idInstance": 1234,
            "wid": "11001234567@c.us",
            "typeInstance": "whatsapp"
        },
        "timestamp": 1727760222,
        "idMessage": "BAE5245994546A06",
        "status": "failed",
        "description": "Error: Timed Out",
        "sendByApi": true
}

или (могут встречаться оба)

{
    "typeWebhook": "outgoingMessageStatus",
        "chatId": "120363347693198097@g.us",
        "instanceData": {
            "idInstance": 1234,
            "wid": "11001234567@c.us",
            "typeInstance": "whatsapp"
        },
        "timestamp": 1727760222,
        "idMessage": "BAE5245994546A06",
        "status": "failed",
        "description": "Error: Connection Closed",
        "sendByApi": true
}

Пример тела уведомления при отсутствии аккаунта WhatsApp на номере#

{
    "typeWebhook": "outgoingMessageStatus",
        "chatId": "79876543210@c.us",
        "instanceData": {
            "idInstance": 1101111111,
            "wid": "79876543210@c.us",
            "typeInstance": "whatsapp"
        },
        "timestamp": 1727759586,
        "idMessage": "3EB0608D6A2901063D63",
        "status": "noAccount",
        "sendByApi": true
}

Пример тела уведомления с ошибкой SWE004#

{
    "typeWebhook": "outgoingMessageStatus",
        "chatId": "79876543210@c.us",
        "instanceData": {
            "idInstance": 1101111111,
         "wid": "79876543210@c.us",
            "typeInstance": "whatsapp"
        },
    "timestamp": 1586700802,
    "idMessage": "3EB0608D6A2901063D63",
    "status": "failed",
    "description":"SWE004: the number of participants in the group has been exceeded - 706", // 706 - количество участников в группе
    "sendByApi": true
}

Пример тела уведомления при редактировании сообщения отправленного более 15 минут назад#

{
    "typeWebhook": "outgoingMessageStatus",
    "chatId": "79001234567@c.us",
    "instanceData": {
        "idInstance": 1101000001,
        "wid": "79001234567@c.us",
        "typeInstance": "whatsapp"
    },
    "timestamp": 1739426932,
    "idMessage": "BAE56687379D581D",
    "status": "failed",
    "description": "15 minute editing time gap has been expired",
    "sendByApi": true
}