Todos los productos
Search
Centro de documentos

Chat App Message Service:ChatAppStatus

Última actualización: Sep 18, 2026

Chat App Message Service envía los reportes de estado de recepción de mensajes a una URL HTTP que usted especifique. Implemente un endpoint en esta URL para recibir los reportes y devolver una respuesta en menos de 3 segundos.

Protocolo

Elemento

Descripción

Protocolo

HTTP + JSON

Codificación

UTF-8

Requisitos previos

  • Debe contar con una cuenta de Alibaba Cloud y un par de AccessKey. Para obtener más información, consulte Create an AccessKey.

  • Revise la overview and configuration of message receipts y comprenda sus modos, tipos y proceso de configuración. Después, configure las confirmaciones de recepción de mensajes según corresponda.

Nota

Para conocer el procedimiento de configuración de mensajes MO, consulte Message receipts and configuration.

Formato de solicitud

Un solo envío puede contener varios reportes de estado.

Ejemplo de solicitud cuando MsgFrameType es template:

[
    {    
    "Status":"Failed",
    "ErrorDescription":"131026:Receiver is incapable of receiving this message(Message Undeliverable.)",
    "MsgFrameType":"template",
    "TaskId":"202307030171*******9",
    "From":"86131*******8",
    "Timestamp":1691043638000,
    "OriginPhoneNumber":"86130*******8",
    "TemplateCode":"820561547132813184",
    "Type":"TEMPLATE",
    "Language":"id",
    "TemplateName":"wa_otp_v_0_0_3",
    "To":"86138*******8",
    "ErrorCode":"131026",
    "MessageId":"2023078469463703*******3"
    },
    {    
    "Status":"Failed",
    "ErrorDescription":"131026:Receiver is incapable of receiving this message(Message Undeliverable.)",
    "MsgFrameType":"template",
    "TaskId":"202307030171*******9",
    "From":"86131*******8",
    "Timestamp":1691043638000,
    "OriginPhoneNumber":"86130*******8",
    "TemplateCode":"820561547132813184",
    "Type":"TEMPLATE",
    "Language":"id",
    "TemplateName":"wa_otp_v_0_0_3",
    "To":"86137*******8",
    "ErrorCode":"131026",
    "MessageId":"2023078469463703*******3"
    }
]

Ejemplo de solicitud cuando MsgFrameType es message:

[
    {    
    "Status":"Read",
    "MsgFrameType":"message",
    "Type":"INTERACTIVE",
    "TaskId":"2023068473353098*******8",
    "From":"86131*******8",
    "To":"86138*******8",
    "Timestamp":1691132091000,
    "OriginPhoneNumber":"86131*******8",
    "MessageId":"2023038470553398*******8",
    "ConversationId":"72222201111****",
    "ConversationType": "service"
    },
    {    
    "Status":"Read",
    "MsgFrameType":"message",
    "Type":"INTERACTIVE",
    "TaskId":"2023068473353098*******8",
    "From":"86131*******8",
    "To":"86138*******1",
    "Timestamp":1691132091000,
    "OriginPhoneNumber":"86131*******8",
    "MessageId":"2023038470553398*******8",
    "ConversationId":"72222201111****",
    "ConversationType": "service"
    }
]

A continuación se describen los campos.

Parámetro

Tipo

Obligatorio

Descripción

MessageId

String

Sí

Identificador único del mensaje.

From

String

Sí

Número de teléfono del remitente.

To

String

Sí

Número de teléfono del destinatario.

FromUserId

String

No

BSUID

FromParentUserId

String

No

BSUID principal (si existe)

FromUserName

String

No

Cuenta de usuario (si existe)

Timestamp

Long

Sí

Marca de tiempo Unix en milisegundos que indica cuándo se envió el mensaje.

Status

String

Sí

Estado de entrega del mensaje. Valores válidos:

  • Sent: mensaje enviado.

  • Delivered: mensaje entregado al dispositivo del destinatario.

  • Read: mensaje leído por el destinatario.

  • Failed: error en la entrega del mensaje.

  • Deleted: mensaje eliminado.

    Nota

    No disponible. WhatsApp no envía el estado Deleted a Chat App Message Service.

  • unsubscribe: el usuario bloqueó la cuenta comercial.

  • subscribe: el usuario desbloqueó la cuenta comercial.

    Nota

    Aplica únicamente a los canales de Viber.

StatusDescription

String

Sí

Descripción del estado.

ErrorCode

String

No

Código de error por fallo de entrega.

ErrorDescription

String

No

Descripción del código de error. Para más detalles, consulte API error codes.

ConversationType

String

No

Tipo de conversación. Valores válidos:

  • service: conversación iniciada por el usuario.

  • utility: mensaje transaccional.

  • marketing: mensaje de marketing.

  • authentication: mensaje de autenticación.

ConversationId

String

No

Identificador único de la conversación.

ConversationExpirationTime (obsoleto)

Long

No

Hora de expiración de la conversación.

Nota

Obsoleto. No tiene efecto bajo el modelo de facturación por mensaje.

MsgFrameType

String

Sí

Tipo de mensaje. Valores válidos:

  • message: mensaje de formato libre. Solo se puede enviar dentro de las 24 horas posteriores al último mensaje del usuario.

  • template: plantilla de mensaje preaprobada desde la consola. Se puede enviar en cualquier momento.

Type

String

No

Tipo de medio del contenido del mensaje. Valores válidos:

  • image

  • video

  • document

  • audio

  • none: texto sin formato

TaskId

String

No

ID de tarea personalizado.

Nota

Toma el valor predeterminado de MessageId si no se especifica TaskId .

OriginPhoneNumber

String

No

Número de teléfono original del remitente.

TemplateCode

String

No

Código de la plantilla de mensaje.

Nota

Disponible únicamente cuando MsgFrameType es template .

Formato de respuesta

Una vez que reciba un reporte de estado, su endpoint debe cumplir con los siguientes requisitos:

  • Responda en un máximo de 3 segundos.

  • Devuelva el código de estado HTTP 200.

  • Devuelva el cuerpo de la respuesta con el formato que se muestra a continuación.

Si la respuesta no cumple estos requisitos, el envío falla y el servicio lo reintenta. Para más detalles, consulte Retry policy.

Ejemplo de respuesta

{
  "code": 0,
  "msg": "Success"
}

Descripción de los campos

Nombre

Tipo

Obligatorio

Descripción

code

Number

Sí

Código de respuesta.

msg

String

No

Descripción.

Política de reintentos

El envío falla si su endpoint no responde en 3 segundos, no devuelve el código de estado HTTP 200 o no regresa el cuerpo de la respuesta en el formato requerido. El servicio vuelve a enviar el reporte de estado después de 1 minuto y luego tras 5 minutos. En total, el servicio hace hasta tres intentos de envío: el inicial y dos reintentos. Si los tres fallan, el servicio deja de reintentar.