API de WhatsApp y CRM
PATCH/messages/{messageId}

Actualizar mensaje en cola

Actualiza la información del mensaje antes de que sea procesado.

API de WhatsApp y CRM
Necesitas una clave de API. Pídela a nuestro equipo de soporte o créala desde la plataforma.
PATCH https://api.getincloud.ai/v1/messages/{messageId}

Actualiza la información del mensaje antes de que sea procesado.

Nota: solo se pueden actualizar los mensajes que aún no han sido entregados y que están en estado "queued".

Para editar el contenido de un mensaje ya enviado, consulta el endpoint [Edit message](#operation/editMessage).


Prueba este endpoint en el probador de API en vivo

>¿Necesitas ayuda? Explora todos los tutoriales, más de 100 ejemplos de casos de uso y juega con el probador de API en vivo con ejemplos de código listos para usar en más de 15 lenguajes de programación, incluidos JavaScript/Node.js, PHP, Python, C#, Java, Ruby, Swift, Kotlin, Powershell, cURL y más.

Autenticación

Envía tu API key en el encabezado Token en cada petición.

Cuerpo de la petición

CampoTipoObligatorioDescripción
messagestringNoTexto que se enviará. Se permite la sintaxis de texto enriquecido de WhatsApp. Lee más sobre la sintaxis aquí. En chats de grupo también puedes mencionar a los participantes con la siguiente sintaxis: @1234567890, donde 1234567890 es el número de teléfono en formato E.164 del usuario participante. minLength: 0 · maxLength: 15000
phonestringNoCampo obligatorio si group y channel están vacíos. Número de teléfono con prefijo internacional en formato E164 al que se enviará el mensaje. Ejemplo: +1234567890 minLength: 6
groupstringNoCampo obligatorio si phone y channel están vacíos. ID de WhatsApp (WID) del chat de grupo de destino donde se debe entregar el mensaje. Puedes obtener el ID de grupo disponible en tu WhatsApp desde el [panel del número](/number/groups). Ejemplo de ID de grupo: 123456789000000000@g.us minLength: 8 · maxLength: 40
channelstringNoCampo obligatorio si phone y group están vacíos. ID de WhatsApp (WID) del canal de destino donde se debe entregar el mensaje. Puedes obtener los IDs de canal disponibles en tu WhatsApp desde el [panel del número](/number/groups). Ejemplo de ID de canal: 123000098765421000@newsletter minLength: 18 · maxLength: 30
chatstringNoID de WhatsApp (WID) del chat de destino al que se enviará el mensaje. **Si los campos phone, group y channel están vacíos, este campo será obligatorio**. Ejemplos de WID de chat: 1234567890@c.us para chats de usuario, 123456789000000000@g.us para chats de grupo, 1234567890000000@newsletter para canales, 1234567890000000@lid para chats privados de usuario y PE.1045742271480925@bsuid para contactos que ocultan su número de teléfono. minLength: 6 · maxLength: 141
numberstringNoNúmero de teléfono de WhatsApp de origen conectado en tu cuenta que se usará para la entrega del mensaje. Solo es obligatorio si tienes varios números de WhatsApp conectados. Alternativamente, puedes especificar el campo de ID device. Usa este campo para enrutar mensajes a través de varios números de WhatsApp disponibles en tu cuenta. Si solo tienes un número de WhatsApp conectado, este campo es opcional. Es obligatorio si tienes varios números de WhatsApp conectados. Ejemplo de número de teléfono en formato E164: +1234567890 minLength: 6 · maxLength: 18
devicestringNoID del dispositivo de WhatsApp de destino que se usará para la entrega del mensaje. Alternativamente, puedes usar el campo from para apuntar a tu dispositivo de WhatsApp por número de teléfono en lugar de por ID. Si no se indica, se usará por defecto el primer número conectado. Puedes usar este campo para enrutar mensajes entre varios números conectados en tu cuenta. Obtén el ID del dispositivo desde el [panel web](/number/info) minLength: 24 · maxLength: 24 · pattern: ^[0-9A-Fa-f]{24}$
agentstringNoID de agente opcional en cuyo nombre se enviará el mensaje. El chat no se asignará al agente a menos que se defina explícitamente [mediante acciones del mensaje](#supported-actions). El agente debe tener permisos de acceso al dispositivo. Puedes obtener los IDs de agentes [desde aquí](#operation/getDeviceAgents) minLength: 24 · maxLength: 24 · pattern: ^[0-9A-Fa-f]{24}$
templateobjectNoEnvía un mensaje de plantilla de WhatsApp. Solo aplica a números de la API WABA. Las plantillas de mensaje deben estar aprobadas previamente por WhatsApp. [Más información aquí](/help/waba-templates)
template.namestringNoNombre de la plantilla. Debe coincidir exactamente con el nombre de la plantilla aprobada. Usa el endpoint [Get templates](#operation/getTemplates) para obtener la lista de plantillas aprobadas. minLength: 1 · maxLength: 512
template.languagestringNoOpcional. Código de idioma de la plantilla (por ejemplo, en_US, es_ES). Si no se especifica, se usará el idioma por defecto de la primera plantilla. pattern: ^[a-z]{2}(_[A-Z]{2})?$
template.headerobjectNoEl componente de encabezado puede ser de tipo texto, multimedia (imagen, video, documento) o ubicación.
template.bodyarray<object>No
template.buttonarray<object>No
template.timeofferobjectNo
template.componentsarray<object>NoSolo es obligatorio si los campos template.header, template.body, template.button y template.timeoffer están vacíos. Este campo acepta el mismo esquema de datos de componentes de plantilla que la API de WhatsApp Business, por motivos de compatibilidad. Úsalo por comodidad si ya tienes componentes de plantilla en el esquema compatible con WABA. Más información sobre los componentes de plantilla
deliverAtstringNoFecha y hora personalizada en formato ISO 8601 en la que se entregará el mensaje. format: date-time
scheduleobjectNoProgramación opcional del mensaje; debe estar presente uno de los siguientes campos: delay, delayTo o date
schedule.delaynumberNoPrograma la entrega del mensaje después de los segundos indicados. Ej.: 300 minimum: 1 · maximum: 63072000 · format: float
schedule.delayTostringNoPrograma la entrega del mensaje usando la sintaxis de duración. Ejemplos de valores válidos: 1h, 15m, 12h, 1d. Lee más sobre la sintaxis de duración aquí. minLength: 2 · maxLength: 5 · pattern: ^([0-9]{1,8})([y
schedule.datestringNoPrograma la entrega del mensaje para una fecha y hora personalizada en formato ISO 8601. Ej.: 2019-01-23T23:22:59.776Z format: date-time
typingintegerNoOpcional. Segundos durante los cuales se simula que el usuario está escribiendo o grabando (solo en mensajes de audio) en el chat de destino antes de la entrega del mensaje. El mínimo es 2 segundos y el máximo 30 segundos. Si no se especifica, el sistema lo simulará automáticamente con una duración aleatoria no superior a 3 segundos. minimum: 2 · maximum: 30
contactobjectNoEnvía una sola tarjeta de contacto
contact.phonestringSíNúmero de teléfono internacional del contacto en formato E164. Ejemplo: +1234567890 minLength: 6 · maxLength: 16
contact.namestringSíAlias o nombre completo del contacto. Ejemplo: Michael Jordan minLength: 1 · maxLength: 40
contactsarray<object>NoEnvía varias tarjetas de contacto. Cada entrada de contacto se basa en un número de teléfono internacional E164 y un nombre de contacto. El nombre del contacto puede tener espacios para representar el nombre completo de una persona. Puedes enviar hasta 10 contactos en un solo mensaje.
quotestringNoID del mensaje que se citará al enviar el nuevo mensaje. El ID del mensaje puede ser un ID nativo de WhatsApp (de 18, 20, 22 o 32 caracteres hexadecimales, o un ID de WABA) o un ID de mensaje saliente específico de la plataforma (de 24 caracteres hexadecimales). Por restricción de WhatsApp, solo puedes citar mensajes dentro de la misma conversación. Si el ID del mensaje citado no se encuentra o ya no está disponible en el chat, el nuevo mensaje se entregará siempre sin la anotación de cita. minLength: 18 · maxLength: 200
selectIdstringNoResponde a mensajes de botones o de lista seleccionando uno de los elementos disponibles por su ID único. Importante: requiere que el campo quote esté presente y haga referencia al ID del mensaje original de botones o de lista al que se responde. maxLength: 50
forwardobjectNoReenvía un mensaje por chat de origen e ID de mensaje.
forward.messagestringNoID del mensaje que se reenviará. El ID del mensaje puede ser un ID nativo de WhatsApp (de 18, 20, 22 o 32 caracteres hexadecimales) o un ID de mensaje saliente específico de la plataforma (de 24 caracteres hexadecimales). Por restricción de WhatsApp, solo puedes citar mensajes dentro de la misma conversación. Si el ID del mensaje citado no se encuentra o ya no está disponible en el chat, el nuevo mensaje se entregará siempre sin la anotación de cita. minLength: 18 · maxLength: 32
forward.chatstringNoID del chat de origen al que pertenece el mensaje que se reenviará. El ID del chat puede ser un número de teléfono internacional E164 o un ID de chat de grupo. Si no puedes proporcionar el ID del chat o el número de teléfono del chat, el sistema intentará descubrir el ID del chat automáticamente. Si no se puede descubrir el ID del chat, la API devolverá un error 400. Ej.: +1234567890, 123456789000000000@g.us minLength: 8 · maxLength: 32
mediaobjectNoEnvía contenido multimedia como imagen (jpeg, png, webp), video (mp4), audio (mp3, ogg), documento (pdf, docx, xlsx, csv, pptx) o archivo binario (zip, rar, 7z).
media.filestringNoID del archivo subido que se enviará como contenido del mensaje multimedia. El archivo debe haberse subido previamente con el [endpoint de la API para subir archivos](#tag/Files/operation/uploadFile) y haber obtenido el ID único del archivo (valor alfanumérico de 24 caracteres) Importante: no puedes poner aquí el contenido del archivo. Alternativamente, puedes enviar un archivo multimedia usando el campo media.url e indicando una URL de archivo de acceso público (consulta el campo url más abajo). minLength: 24 · maxLength: 24 · pattern: ^[0-9A-Fa-f]{24}$
media.formatstringNoFormato de visualización opcional del archivo, cuando aplique, para GIFs (videos) y grabaciones de voz (audios) enum: ['gif', 'ptt', 'native'] · default: native
media.messagestringNoPie de texto opcional del archivo multimedia que se usará al entregar el mensaje. Solo aplica a archivos multimedia de imagen y video; en otro caso se ignora. Se usa en caso de que no haya un campo de cuerpo de mensaje definido en el mensaje que se entregará. minLength: 0 · maxLength: 15000
media.viewOncebooleanNoOpcional, solo aplica a imágenes y videos. Si defines viewMode como true, el contenido multimedia desaparecerá de WhatsApp después de que el destinatario lo haya abierto y haya salido del visor multimedia. Una vez que salga del visor, el contenido ya no será visible en ese chat y no podrá verlo de nuevo. Las fotos y videos de una sola vista no se guardarán en las Fotos o la Galería del destinatario, y no podrá reenviarlos.
media.urlstringNoURL pública accesible desde Internet para descargar el contenido del archivo. Si la URL devuelve un error, no es accesible desde Internet o el tipo de archivo no es válido, la API devolverá un error 400 Bad Request. minLength: 10 · maxLength: 1024
media.filenamestringNoNombre de archivo opcional. Si no se define, se toma de la URL del archivo o del contenido del formulario, si está disponible. De lo contrario, se generará un nombre de archivo aleatorio. minLength: 3 · maxLength: 200
media.referencestringNoIdentificador de referencia opcional del archivo definido por el usuario. Puede ser útil para identificar archivos entre sistemas, por ejemplo, un CRM o un sistema de almacenamiento. minLength: 2 · maxLength: 150
media.permissionstringNoPermiso de acceso opcional al archivo. Por defecto es public: todos los miembros del equipo pueden acceder al archivo, descargarlo y enviarlo. Si se establece en private, solo el propietario del archivo puede acceder a él, descargarlo y enviarlo. enum: ['public', 'readonly', 'private']
media.tagsarray<string>NoEtiquetas opcionales del archivo, hasta 10 etiquetas por archivo. Cada etiqueta no puede tener más de 50 caracteres.
media.expirationstringNoLímite de tiempo de expiración del almacenamiento del archivo, después del cual se eliminará del sistema. Por defecto es de 15 días. enum: ['10m', '30m', '1h', '6h', '12h', '1d', '2d', '3d', '5d', '6d', '7d', '15d', '30d', '60d', '90d', '120d', '180d', '360d', '1y', '2y'] · minLength: 2 · maxLength: 5 · default: 30d
pollobjectNo
poll.namestringNoNombre o título de la encuesta. maxLength: 255
poll.optionsarray<string>NoOpciones de la encuesta para votar. Cada opción debe tener un valor de texto. Se permiten hasta 12 opciones.
poll.multiplebooleanNoPermite varios votos por usuario. Por defecto se permiten varios votos por usuario. default: True
voteobjectNoEnvía uno o varios votos en una encuesta existente por ID de mensaje. Para eliminar todos los votos, envía un arreglo vacío: [].
vote.pollstringNoID del mensaje de la encuesta en la que se votará. El ID del mensaje puede ser un ID nativo de WhatsApp (de 18, 20, 22 o 32 caracteres hexadecimales) o un ID de mensaje nativo de la plataforma (de 24 caracteres hexadecimales). minLength: 18 · maxLength: 32 · pattern: [a-fA-F0-9]
vote.optionsarray<object>NoOpciones de la encuesta por las que votar, o usa un arreglo vacío para eliminar todos los votos. Cada opción debe tener un ID o un texto de valor. Puedes enviar varias opciones para votar. Las opciones ya votadas se sobrescribirán con las opciones definidas.
eventobjectNoEnvía un mensaje de evento de WhatsApp con nombre, descripción, ubicación, fecha y enlace de llamada opcional.
event.namestringNoNombre o título del evento. Hasta 100 caracteres. minLength: 1 · maxLength: 100
event.descriptionstringNoMensaje de descripción del evento opcional. Hasta 2048 caracteres. maxLength: 2048
event.datestringSíFecha y hora del evento en formato ISO 8601. Ej.: 2024-08-15T12:30:00:000Z format: date-time
event.locationstringNoNombre opcional de la ubicación del evento. Hasta 255 caracteres. maxLength: 255
event.latitudenumberNoLatitud opcional de la ubicación del evento. Debe ser un número válido entre -90 y 90. minimum: -90 · maximum: 90 · format: float
event.longitudenumberNoLongitud opcional de la ubicación del evento. Debe ser un número válido entre -180 y 180. minimum: -180 · maximum: 180 · format: float
event.callstringNoOpcionalmente usa o genera una llamada de reunión de WhatsApp para unirse al evento. Por defecto, sin llamada. Las opciones disponibles son: llamada voice o video. enum: ['voice', 'video', 'none']
event.codestringNoCódigo opcional del enlace de llamada para unirse al evento. El código debe ser una cadena alfanumérica válida de 21 o 22 caracteres. El código se añadirá a la URL del enlace de llamada de WhatsApp. Ej.: https://call.whatsapp.com/voice/$CODE minLength: 21 · maxLength: 22 · pattern: [a-zA-Z0-9]/
attendobjectNo
attend.eventstringNoID del mensaje del evento al que se responderá. El ID del mensaje puede ser un ID nativo de WhatsApp (de 18, 20, 22 o 32 caracteres hexadecimales) o un ID de mensaje nativo de la plataforma (de 24 caracteres hexadecimales). minLength: 18 · maxLength: 32 · pattern: [a-fA-f0-9]
attend.confirmbooleanNoConfirma la asistencia al evento. Por defecto es true. Usa false para rechazar la asistencia.
referencestringNoReferencia opcional del mensaje definida por el usuario para facilitar la trazabilidad con sistemas existentes. Por ejemplo, puedes definir como referencia el ID del cliente en tu CRM. El valor de reference se incluirá en cada evento de webhook. minLength: 1 · maxLength: 150
livebooleanNoEnvía el mensaje en modo en vivo sin ponerlo en cola (también conocido como tiempo real). Si es true, equivale a usar enqueue=never. Ten en cuenta que solo el plan Platform admite el modo de entrega de mensajes en vivo; de lo contrario, el mensaje se pondrá en cola o fallará. default: False
enqueuestringNoDefine el comportamiento de entrega del mensaje. Por defecto, los mensajes se ponen en cola y se procesan de forma asíncrona en segundo plano. En los planes Platform, puedes forzar la entrega del mensaje en tiempo real sin ponerlo en cola y obtener una respuesta síncrona con el estado real de entrega del mensaje (delivered, failed, not found, error). Modos de cola admitidos: - always - Siempre pone el mensaje en cola para que el sistema de colas lo procese en segundo plano según la prioridad y la fecha de entrega del mensaje. Modo por defecto en los planes Gateway. Tanto los planes Gateway como Platform admiten este modo. - never - Nunca pone el mensaje en cola e intenta entregarlo en tiempo real a través del número de WhatsApp de destino. Si la sesión del número no está en línea o la conexión no está operativa, devolverá un error. El consumidor de la API debe manejar el error correctamente y reintentar la entrega del mensaje si es necesario. Los planes Gateway no admiten este modo. - opportunistic: Intenta entregar el mensaje en tiempo real si el dispositivo está en línea y puede aceptar mensajes. Si el mensaje no se puede entregar por un error o porque la cola está llena, se pondrá en cola de forma transparente y se procesará de forma asíncrona más tarde. Modo por defecto en los planes Platform. Los planes Gateway no admiten este modo. enum: ['never', 'always', 'opportunistic']
previewUrlbooleanNoActiva o desactiva la vista previa de imagen/título de la URL en el mensaje de destino mediante el protocolo OpenGraph. Activada por defecto.
locationobjectNo
location.requestbooleanNoSi se establece en true, el mensaje se enviará como un mensaje de solicitud de ubicación, que pide al usuario que comparta su ubicación actual. Si se establece en false o no se define, el mensaje se enviará como un mensaje de ubicación estándar con la dirección o las coordenadas proporcionadas.
location.addressstringNoValor de la dirección de la ubicación en formato legible. No se puede usar junto con coordenadas. El sistema geocodificará la dirección para ubicarla con precisión mediante coordenadas. minLength: 3 · maxLength: 100
location.namestringNoNombre opcional de la ubicación si no se define la dirección. Si está vacío, se usará la geocodificación inversa de las coordenadas para inferir el nombre de la ubicación. maxLength: 100
location.coordinatesarray<number>NoCoordenadas de la ubicación en formato de latitud y longitud. No se pueden usar junto con la dirección. Usa el campo name si deseas proporcionar una descripción personalizada de la ubicación; de lo contrario, el sistema obtendrá el nombre de la ubicación mediante geocodificación inversa.
productstringNoEnvía un mensaje de catálogo de productos por ID de producto. Esta función solo está disponible en números de WhatsApp Business con un catálogo existente. minLength: 16 · maxLength: 18 · pattern: [0-9]{14,18}
orderbooleanNoÚsalo si quieres asegurar que todos los mensajes se envíen al chat de destino en orden estricto. Si está activado, el sistema garantizará que el mensaje se entregue en el mismo orden en que fue enviado. Esta función es útil para automatizaciones de chatbots y secuencias de mensajes. Esta función no es compatible con las opciones live=true ni enqueue=never. default: False
reactionstringNoEnvía un emoji de reacción a un mensaje existente. Para eliminar una reacción, usa - como valor de reacción. Requiere que el campo reactionMessage esté presente con el ID del mensaje de WhatsApp al que se reaccionará. Se admite un solo carácter de emoji. Puedes obtener los emojis disponibles aquí: getemoji.com minLength: 1 · maxLength: 10
reactionMessagestringNoID único del mensaje de WhatsApp al que se reaccionará o cuya reacción se eliminará (hexadecimal de 18, 20, 22 o 32 caracteres, o ID de WABA). Ej.: 3EB029A0219B0037CA10. Requiere que el campo reaction esté presente. maxLength: 200 · pattern: [a-fA-F0-9]{18,32}
retriesnumberNoNúmero máximo de reintentos de entrega del mensaje. minimum: 0 · maximum: 1000 · default: 25 · format: float
retryWaitnumberNoTiempo de espera opcional definido por el usuario para cada intento de reintento del mensaje, en segundos. Usa 0 para desactivarlo. Si no se define, se usará el retroceso exponencial por defecto del sistema. minimum: 0 · maximum: 86400 · format: float
expirationobjectNoDefine un tiempo de expiración (ttl) del mensaje. Úsalo si quieres que el mensaje no se envíe automáticamente si no fue posible entregarlo pasado un tiempo. Ej.: 1h
expiration.secondsnumberNoHace que el mensaje expire si no fue posible entregarlo después de los segundos indicados. Ej.: 300 minimum: 5 · maximum: 8035200 · format: float
expiration.durationstringNoHace que el mensaje expire después de un tiempo dado con la sintaxis de duración. Ejemplos de valores válidos: 1h, 15m, 12h, 1d. Lee más sobre la sintaxis de duración aquí. minLength: 2 · maxLength: 5 · pattern: ^([0-9]{1,8})([y
expiration.datestringNoHace que el mensaje expire en una fecha y hora específicas usando un formato de fecha y hora ISO 8601. Ej.: 2019-01-23T23:22:59.776Z format: date-time
actionsarray<object>NoLista opcional de acciones que se ejecutarán después de la entrega del mensaje. El alcance de las acciones se limita al chat/contacto que recibe el mensaje. Si la entrega del mensaje falla, las acciones se ignorarán. Nota: esta función solo aplica a dispositivos con soporte de chat multiagente. ### Acciones admitidas * Action: chat:assign * Description: Asigna el chat a un agente. * Params: - agent: string (opcional) - Obligatorio si department no está definido. ID del agente al que se asignará el chat después de la entrega del mensaje. Puedes obtener los IDs de agentes [desde aquí](#operation/getDeviceAgents) - department: string (opcional) - Obligatorio si agent no está definido. ID del departamento al que se asignará el chat después de la entrega del mensaje. Puede usarse junto con el campo agent para asignar un chat tanto a un agente como a un departamento. Puedes obtener el ID del departamento [desde aquí](#operation/getDepartments) - assigner: string (opcional) - Opcional. ID del agente que asigna el chat al otro agente ---- * Action: chat:unassign * Description: Desasigna el chat del agente existente * Params: - assigner: string (opcional) - ID del agente que asigna el chat al otro agente. Puedes obtener los IDs de agentes [desde aquí](#operation/getDeviceAgents) ---- * Action: chat:resolve * Description: Resuelve el chat si aún no está resuelto. No se puede usar junto con la acción chat:unresolve. * Params: no params accepted ---- * Action: chat:unresolve * Description: Marca el chat como no resuelto si ya está resuelto. No se puede usar junto con la acción chat:resolve. * Params: no params accepted ---- * Action: chat:read * Description: Marca el chat internamente como leído en la interfaz de chat web después de que el mensaje sea entregado. No se puede usar junto con la acción chat:resolve. * Params: no params accepted ---- * Action: chat:unread * Description: Marca el chat internamente como no leído en la interfaz de chat web después de que el mensaje sea entregado. No se puede usar junto con la acción chat:resolve. * Params: no params accepted ---- * Action: labels:add * Description: Añade etiqueta(s) al chat después de que el mensaje sea entregado * Params: - labels: array (opcional) - Etiquetas que se añadirán al chat conservando las existentes. Puedes obtener una lista de etiquetas existentes [consultando este endpoint](#operation/getLabels) ---- * Action: labels:remove * Description: Elimina etiqueta(s) del chat, cuando ya estén presentes, después de que el mensaje sea entregado * Params: - labels: array (opcional) - Etiquetas que se eliminarán del chat. Puedes obtener una lista de etiquetas existentes [consultando este endpoint](#operation/getLabels) ---- * Action: labels:set * Description: Establece y sobrescribe etiqueta(s) en el chat después de que el mensaje sea entregado * Params: - labels: array (opcional) - Etiquetas que se establecerán y sobrescribirán en el chat. Puedes obtener una lista de etiquetas existentes [consultando este endpoint](#operation/getLabels) ---- * Action: metadata:set * Description: Establece y sobrescribe entradas de metadatos clave-valor en la entidad de contacto del chat de destino después de que el mensaje sea entregado * Params: - metadata: array (opcional) - Entradas de metadatos con las propiedades key y value que se establecerán y sobrescribirán en el contacto del chat ---- * Action: metadata:add * Description: Añade o sobrescribe, según el campo key, entradas de metadatos clave-valor existentes en la entidad de contacto del chat de destino después de que el mensaje sea entregado * Params: - metadata: array (opcional) - Entradas de metadatos con las propiedades key y value que se añadirán al contacto del chat ---- * Action: metadata:remove * Description: Elimina entradas de metadatos existentes según el campo key en la entidad de contacto del chat de destino después de que el mensaje sea entregado * Params: - keys: array (opcional) - Entradas de metadatos que se eliminarán por key en el contacto del chat
sendReadAckbooleanNoInforma los mensajes del chat no leídos después de la entrega del mensaje, simulando el comportamiento de un usuario nativo. Usa "true" para informar al usuario o a los miembros del grupo de destino que los mensajes recibidos fueron leídos por ti con el doble check azul. Nota: si has desactivado la confirmación de lectura en WhatsApp > Configuración > Cuenta > Privacidad, esta configuración no tendrá efecto. default: False
retentionPolicystringNoPolítica de retención de mensajes opcional. Por defecto, se usará la política de retención de datos del dispositivo del plan actual. La política de retención define el tiempo máximo permitido durante el cual el mensaje debe almacenarse en el sistema después de haber sido entregado o de haber fallado. Si quieres forzar al sistema a no almacenar ningún mensaje después de haber sido procesado, usa "never" como política. enum: ['plan_defaults', 'never', '5m', '15m', '30m', '1h', '12h', '24h', '2d', '3d', '4d', '5d', '6d', '7d', '10d']
prioritystringNoPrioridad del mensaje. Recomendamos no abusar de las prioridades "high" o "urgent" a menos que sea estrictamente necesario entregar el mensaje lo antes posible. De lo contrario, usa simplemente la prioridad "normal" por defecto. enum: ['low', 'normal', 'high', 'urgent'] · default: normal
headerstringNoTexto de encabezado del mensaje opcional, hasta 60 caracteres. Restringido a mensajes con botones de respuesta y mensajes de lista. maxLength: 60
footerstringNoTexto de pie del mensaje opcional, restringido a mensajes con botones de respuesta y mensajes de lista. maxLength: 60
buttonsarray<object>NoEnvía botones dinámicos de respuesta definidos por el usuario, hasta 10 botones por mensaje, con texto opcional de header y footer del mensaje (consulta los campos más abajo). Así se verán los mensajes de botones en WhatsApp: ![](/images/docs/buttons.webp) Útil para automatizaciones de chatbots y para interacciones de respuesta más amigables para el usuario. Se aplican ciertas restricciones: 1. No se pueden enviar botones especiales con acciones de enlace URL o de llamada a un número de teléfono a chats de grupo, solo a chats de usuarios individuales. 2. No se pueden enviar botones como el primer mensaje que inicia una nueva conversación con un usuario externo. 3. En su lugar, usa un mensaje de texto como primer mensaje y, a continuación, un segundo mensaje que sí puede ser de botones.
listobjectNoEnvía listas de selección dinámicas definidas por el usuario, hasta 10 secciones, cada una con hasta 10 filas, por mensaje. Opcionalmente puedes definir un title, un footer y una description para la lista del mensaje (consulta los campos más abajo para más información). Útil para automatizaciones de chatbots y para interacciones de respuesta más amigables para el usuario. Se aplican ciertas restricciones: 1. No puedes enviar una lista como el primer mensaje que inicia una nueva conversación con un usuario externo. 2. En su lugar, usa un mensaje de texto como primer mensaje y, a continuación, un segundo mensaje que sí puede ser una lista.
list.descriptionstringNoObligatorio: mensaje de descripción a nivel del cuadro del mensaje de lista maxLength: 1024
list.buttonstringNoObligatorio: texto del botón para abrir la lista que se muestra al usuario, hasta 20 caracteres, incluidos los emojis. minLength: 1 · maxLength: 20
list.titlestringNoOpcional: mensaje de título a nivel del cuadro del mensaje de lista maxLength: 60
list.footerstringNoOpcional: mensaje de pie a nivel del cuadro del mensaje de lista maxLength: 60
list.sectionsarray<object>NoObligatorio: sección de la lista compuesta por un título y una lista de filas por sección. Hasta 10 secciones, cada una con hasta 10 filas por mensaje.
flowMessageobjectNoEnvía un WhatsApp Flow como mensaje interactivo nativo. El texto del mensaje se toma del campo message, con header/footer opcionales.
flowMessage.flowIdstringSíID del WhatsApp Flow que se enviará.
flowMessage.flowCtastringSíEtiqueta del botón de llamada a la acción, hasta 30 caracteres. minLength: 1 · maxLength: 30
flowMessage.screenstringNoID de la pantalla de entrada que se abrirá. Obligatorio para flujos navigate (flujos estáticos).
flowMessage.actionstringNoAcción del flujo. Los flujos estáticos usan navigate. enum: ['navigate', 'data_exchange'] · default: navigate
flowMessage.dataobjectNoDatos iniciales opcionales que se pasan a la pantalla de entrada.
flowMessage.flowTokenstringNoToken opcional de idempotencia/sesión. Se genera automáticamente si se omite.
flowMessage.modestringNoEnvía un flujo publicado o en borrador. enum: ['published', 'draft'] · default: published
removearray<string>No

Respuestas

CódigoDescripción
200Modelo del mensaje
400Datos de consulta o cuerpo de la solicitud no válidos
401Acceso no autorizado por token de API no válido o expirado
403Falta el token de API obligatorio
404Mensaje no encontrado
409Conflicto
429Demasiadas solicitudes - Inténtalo de nuevo más tarde
500Error inesperado
501No implementado
503Servicio temporalmente no disponible - Inténtalo de nuevo más tarde
// This code example requires you to have installed curl package
// Installation instructions here: https://curl.haxx.se/download.html

// Partially update message data
curl --request PATCH \
  --url https://api.getincloud.ai/v1/messages/{id} \
  --header 'Content-Type: application/json' \
  --header 'Token: <api token goes here>' \
  --data '{"phone":"+987654321","message":"This is a new text message","reference":"my-custom-id"}'
AnteriorVaciar colaSiguienteBuscar mensajes
¿Te sirvió esta página?