Todos los productos
Search
Centro de documentos

Chat App Message Service:ChatAppInbound

Última actualización: Sep 05, 2026

Especifique una URL HTTP para recibir mensajes Mobile Originated (MO).

Especificación del protocolo

Parámetro

Descripción

Protocolo

HTTP + JSON

Codificación

UTF-8

Requisitos previos

Nota

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

Formato de solicitud

Una sola solicitud puede contener varios mensajes MO.

Ejemplo de solicitud cuando Type es TEXT

[
   {
   "MessageId": "1000000000000001",  
   "From": "861388888****",    
   "To": "86137888****",    
   "DisplayName": "Mr Liu",
   "Type": "TEXT",
   "Message": "hello,it's me",    
   "Timestamp": 1662104191973,
   "Name": "jack"
   },
   {
   "MessageId": "1000000000000002",  
   "From": "861388888****",    
   "To": "86139123****",    
   "DisplayName": "Mr Wang",
   "Type": "TEXT",
   "Message": "hello,it's me",    
   "Timestamp": 1662104191973,
   "Name": "Jones"
   }
]

Ejemplo de solicitud cuando Type es AUDIO

[ 
   {    
   "MessageId": "1000000000000003",    
   "CustSpaceId": "cams-83m8j9xxxxadc",
   "From": "+861388888****",     
   "DisplayName": "Mr Liu",
   "NoticeType": "inbound",     
   "To": "+861378886****",    
   "Type": "AUDIO",    
   "Message": 
     "{
     \"filename\":\"File.ogg\",
     \"animated\":false,
     \"id\":\"3214520xxxx75431\",
     \"mimeType\":\"audio/ogg\",
     \"url\":\"https://whatsapp-prod-oss-bucket.oss-ap-southeast-1.aliyuncs.com/1161931534xxxx19904.ogg\"
     }",
   "Timestamp ": 1662104191973,        
   "Name": "jack",
   "WabaId": "95271863xxxx233",
   },
   {    
   "MessageId": "1000000000000004",
   "CustSpaceId": "cams-83m8j9xxxxadc",  
   "From": "+861388888****",     
   "DisplayName": "Mr Wang",
   "NoticeType": "inbound",  
   "To": "+861378886****",
   "Type": "AUDIO",    
   "Message": 
     "{
     \"filename\":\"File.ogg\",
     \"animated\":false,
     \"id\":\"3214520xxxx75431\",
     \"mimeType\":\"audio/ogg\",
     \"url\":\"https://whatsapp-prod-oss-bucket.oss-ap-southeast-1.aliyuncs.com/1161931534xxxx19904.ogg\"
     }",   
   "Timestamp ": 1662104191973,        
   "Name": "John",
   "WabaId": "95271863xxxx233",
   }
]

Ejemplo de solicitud cuando Type es DOCUMENT

[
   {    
   "MessageId": "1000000000000005",    
   "From": "+861388888****",         
   "DisplayName": "Mr Liu",
   "NoticeType": "inbound", 
   "To": "+861378889****",    
   "Type": "DOCUMENT",    
   "Message": 
     "{
     \"filename\":\"eventlog_20251211_155722_GMT.jsonl\",
     \"animated\":false,
     \"id\":\"275171383xxxx878\",
     \"mimeType\":\"application/octet-stream\",
     \"url\":\"https://bucket-chatapp-file-internal.oss-ap-southeast-1.aliyuncs.com/1161931xxxxx8375296.jsonl\"
     }",
   "Timestamp ": 1662104191973,        
   "Name": "jack",
   "WabaId": "212506738xxxx650",
   "CustSpaceId": "cams-85sglhxxxxkw"
   },
   {    
   "MessageId": "1000000000000006",    
   "From": "+861388888****",         
   "DisplayName": "Mr Liu",    
   "NoticeType": "inbound", 
   "To": "+861378882****",    
   "Type": "DOCUMENT",    
   "Message": 
     "{
     \"filename\":\"eventlog_20251211_155722_GMT.jsonl\",
     \"animated\":false,
     \"id\":\"275171383xxxx878\",
     \"mimeType\":\"application/octet-stream\",
     \"url\":\"https://bucket-chatapp-file-internal.oss-ap-southeast-1.aliyuncs.com/1161931xxxxx8375296.jsonl\"
     }",  
   "Timestamp ": 1662104191973,        
   "Name": "Jone",
   "WabaId": "212506738xxxx650",
   "CustSpaceId": "cams-85sglhxxxxkw"
   } 
]

Ejemplo de solicitud cuando Type es REPLY

[
   {    
   "MessageId": "1000000000000007",    
   "From": "861388888****",        
   "DisplayName": "Mr Liu",    
   "To": "861378886****",    
   "Type": "REPLY",    
   "Message": "{ \"text\": \"click me\",\"payload\": \"1000000\" }" ,    
   "Timestamp ": 1662104191973
   },
   {    
   "MessageId": "1000000000000008",    
   "From": "861388888****",        
   "DisplayName": "Mr Wang",    
   "To": "861378883****",    
   "Type": "REPLY",    
   "Message": "{ \"text\": \"click me\",\"payload\": \"1000000\" }" ,    
   "Timestamp ": 1662104191973
   } 
]

Ejemplo de solicitud cuando Type es LOCATION

[
   {    
   "MessageId": "1000000000000009",    
   "From": "861388888****",        
   "DisplayName":"Mr Liu",    
   "To": "861378868****",    
   "Type": "LOCATION",    
   "Message": 
     "{
     \"address \": \"changsha yuelu street \", 
     \"latitude \": \"39.999137107913\", 
     \"longitude \": \"116.48074005043\", 
     \"name \": \"this is firest location message\" 
     }",    
   "Timestamp ": 1662104191973,        
   "Name": "jack"
   },
   {    
   "MessageId": "1000000000000010",    
   "From": "861388888****",        
   "DisplayName":"Mr Wang",    
   "To": "861378168****",    
   "Type": "LOCATION",    
   "Message": 
     "{
     \"address \": \"changsha yuelu street \", 
     \"latitude \": \"39.999137107913\", 
     \"longitude \": \"116.48074005043\", 
     \"name \": \"this is firest location message\" 
     }",    
   "Timestamp ": 1662104191973,        
   "Name": "Jone"
   }
]

Descripción de campos

Parámetro

Tipo

Obligatorio

Descripción

MessageId

String

Sí

Identificador único del mensaje.

CustSpaceId

String

Sí

ID del canal.

WabaId

String

Sí

ID de la cuenta de WhatsApp Business (WABA).

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 del mensaje, en milisegundos.

DisplayName

String

Sí

Nombre para mostrar del remitente.

Type

String

Sí

Tipo de mensaje. Valores válidos:

  • TEXT

  • LOCATION

  • DOCUMENT

  • VIDEO

  • AUDIO

  • REPLY

  • IMAGE

  • CONTACTS

  • SYSTEM

Message

Object

Sí

Contenido del mensaje.

Name

String

Sí

Nombre de usuario.

Objeto LOCATION

Parámetro

Tipo

Obligatorio

Descripción

address

String

Sí

Información de la dirección.

latitude

String

Sí

Latitud.

longitude

String

Sí

Longitud.

name

String

Sí

Descripción de la ubicación.

Objeto VIDEO

Parámetro

Tipo

Obligatorio

Descripción

name

String

Sí

Descripción del archivo de video.

id

String

Sí

ID del archivo de video.

mimeType

String

Sí

Valor fijo: ogg .

Nota

Este parámetro se puede ignorar si codecs=opus.

url

String

Sí

URL del archivo de video.

Nota

La URL tiene una validez de 7 días.

Objeto IMAGE

Parámetro

Tipo

Obligatorio

Descripción

caption

String

No

Descripción de la imagen.

id

String

Sí

ID de la imagen.

mimeType

String

Sí

Tipo MIME de la imagen.

url

String

Sí

URL de la imagen.

Nota

La URL tiene una validez de 7 días.

Objeto AUDIO

Parámetro

Tipo

Obligatorio

Descripción

name

String

Sí

Descripción del archivo de audio.

id

String

Sí

ID del archivo de audio.

mimeType

String

Sí

Valor fijo: audio .

Nota

Este parámetro se puede ignorar si codecs=opus.

url

String

Sí

URL del archivo de audio.

Nota

La URL tiene una validez de 7 días.

Objeto DOCUMENT

Parámetro

Tipo

Obligatorio

Descripción

name

String

Sí

Descripción del documento.

id

String

Sí

ID del documento.

filename

String

Sí

Nombre del archivo de documento.

mimeType

String

Sí

Valor fijo: application/pdf .

url

String

Sí

URL del documento.

Nota

La URL tiene una validez de 7 días.

Objeto REPLY

Parámetro

Tipo

Obligatorio

Descripción

text

String

Sí

Etiqueta de texto del botón en el que se hizo clic.

payload

String

Sí

Carga útil devuelta cuando el usuario hace clic en el botón. Coincide con la carga útil definida en el mensaje enviado.

Objeto SYSTEM

Parámetro

Tipo

Obligatorio

Descripción

body

String

Sí

Cambio en la identidad o número de teléfono del usuario.

wa_id

String

Sí

Nuevo ID de WhatsApp del usuario tras un cambio de número telefónico.

type

String

Sí

Tipo de actualización del sistema. Valores válidos:

  • customer_changed_number : El usuario cambió su número de teléfono.

  • customer_identity_changed : El usuario modificó su perfil.

Respuesta

Para confirmar la recepción, su endpoint debe devolver HTTP 200 en un plazo de 3 segundos. El cuerpo de la respuesta debe ser un objeto JSON con el siguiente formato. De lo contrario, la plataforma reintentará la solicitud.

Ejemplo de respuesta

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

Descripción de campos

Campo

Tipo

Obligatorio

Descripción

code

Number

Sí

Código de respuesta.

msg

String

No

Mensaje descriptivo.

Directiva de reintentos

Si un intento de envío falla (respuesta distinta a 200 o tiempo de espera agotado), el servicio reintenta después de 1 minuto y nuevamente después de 5 minutos. Tras tres intentos fallidos, se detienen los reintentos.