> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ycloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# whatsapp.echo_message.created

> Se produce cuando se registra un mensaje de eco saliente para un agente de la API REST pública.

Usa `whatsapp.echo_message.created` para gestionar este evento en tu endpoint de webhook.

## Disparadores

Se produce cuando se registra un mensaje de eco saliente para un agente de la API REST pública.

Suscríbete a `whatsapp.echo_message.created` cuando [configures tu endpoint de webhook](https://docs.ycloud.com/es/api-reference/guides/api-fundamentals/configure-webhooks.md).

Este evento está limitado a los agentes incorporados a través de la API REST pública. Usa `whatsappMessage.id` o `wamid` para correlacionar actualizaciones de estado posteriores. El contenido del mensaje depende de `type`.

## Sintaxis

YCloud envía una solicitud HTTP `POST` a tu URL de webhook configurada. La siguiente estructura muestra una variante de carga útil. Los valores entre corchetes angulares son marcadores de posición; sus tipos se enumeran en **Parámetros**. Los campos opcionales y otras variantes se describen a continuación.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "<ID>",
  "type": "whatsapp.echo_message.created",
  "apiVersion": "<API_VERSION>",
  "createTime": "<CREATE_TIME>",
  "whatsappMessage": {
    "id": "<ID>",
    "wamid": "<WAMID>",
    "wabaId": "<WABA_ID>",
    "from": "<FROM>",
    "to": "<TO>",
    "recipientUserId": "<RECIPIENT_USER_ID>",
    "type": "<TYPE>",
    "text": {
      "body": "<BODY>"
    },
    "status": "<STATUS>",
    "createTime": "<CREATE_TIME>",
    "sendTime": "<SEND_TIME>"
  }
}
```

## Parámetros

Valida el encabezado HTTP `YCloud-Signature` antes de procesar el cuerpo JSON. Consulta [validación de firmas](https://docs.ycloud.com/es/api-reference/guides/api-fundamentals/configure-webhooks.md).

### Envoltorio del evento

| Parámetro | Tipo | Obligatorio | Descripción |
| - | - | - | - |
| `id` | string | Sí | Identificador único para el evento. Longitud mínima: `6`. Longitud máxima: `128`. |
| `type` | string | Sí | Siempre `whatsapp.echo_message.created`. |
| `apiVersion` | string | Sí | La versión de la API utilizada para representar este evento. |
| `createTime` | string (date-time) | Sí | La fecha y hora en que se creó este evento, con formato [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339). P. ej., `2022-06-01T12:00:00.000Z`. |

### Carga útil del evento

| Parámetro | Tipo | Obligatorio | Descripción |
| - | - | - | - |
| `whatsappMessage` | object | Sí | Carga útil de `whatsappMessage` específica del evento. |

Los cuatro campos comunes del envoltorio son obligatorios. Los campos de la carga útil dependen de la variante del evento. En cada tabla de objetos, **Obligatorio** se aplica cuando su objeto principal está presente. Los campos opcionales se pueden omitir; una muestra no hace que un campo sea obligatorio.

#### whatsappMessage

| Parámetro | Tipo | Obligatorio | Descripción |
| - | - | - | - |
| `id` | string | Sí | ID de mensaje de YCloud. Úsalo para correlacionar eventos de eco creados y actualizados. |
| `wamid` | string | No | El ID del mensaje original en la plataforma de WhatsApp, si está disponible. |
| `wabaId` | string | No | ID de la cuenta de WhatsApp Business del callback de origen, si está disponible. |
| `from` | string | No | Número de remitente comercial en formato E.164, si está disponible. |
| `to` | string | No | Número de destinatario en formato E.164 cuando el callback identifica al cliente por número de teléfono. |
| `recipientUserId` | string | No | ID de usuario de WhatsApp con alcance comercial (BSUID) del destinatario, cuando lo suministra el callback. |
| `parentRecipientUserId` | string | No | ID de usuario de WhatsApp con alcance comercial superior del destinatario, cuando lo suministra el callback. |
| `type` | string | No | Tipo de mensaje copiado del callback de un proveedor admitido. Los valores actuales incluyen text, interactive, image, video, audio, document, sticker, location, contacts y reaction. Los clientes deben admitir futuros valores. |
| `text` | object | No | Objeto de texto de mensaje de WhatsApp. |
| `image` | object | No | Metadatos multimedia copiados de un callback de eco de un agente de Meta Business. |
| `video` | object | No | Metadatos multimedia copiados de un callback de eco de un agente de Meta Business. |
| `audio` | object | No | Metadatos multimedia copiados de un callback de eco de un agente de Meta Business. |
| `document` | object | No | Metadatos multimedia copiados de un callback de eco de un agente de Meta Business. |
| `sticker` | object | No | Metadatos multimedia copiados de un callback de eco de un agente de Meta Business. |
| `location` | object | No | Úsalo para mensajes `location`. |
| `interactive` | object | No | Úsalo para mensajes de `interactive`. |
| `contacts` | object\[] | No | Los elementos del array se describen a continuación. |
| `reaction` | object | No | Cuando un usuario reacciona a los mensajes con un emoji, el tipo de mensaje se establece en `reaction` y se incluye este campo. |
| `context` | object | No | Se utiliza para mencionar un mensaje específico al que estás respondiendo. La respuesta puede ser de cualquier tipo de mensaje. |
| `status` | string | No | Estado del mensaje de WhatsApp. Uno de `accepted`, `failed`, `sent`, `delivered`, `read`.<ul><li>`accepted`: La solicitud de mensajería ha sido aceptada por nuestro sistema.</li><li>`failed`: Un mensaje enviado por tu empresa no se pudo enviar.</li><li>`sent`: Un mensaje enviado por tu empresa está en tránsito dentro de los sistemas de WhatsApp.</li><li>`delivered`: Un mensaje enviado por tu empresa se entregó en el dispositivo del usuario.</li><li>`read`: Un mensaje enviado por tu empresa fue leído por el usuario.</li></ul> |
| `errorCode` | string | No | Código de error de origen cuando el estado es failed y el proveedor proporcionó uno. |
| `errorMessage` | string | No | Título del error de origen cuando el estado es failed y el proveedor proporcionó uno. |
| `createTime` | string (date-time) | No | Hora del eco de origen para un evento creado, formateada en RFC 3339. |
| `updateTime` | string (date-time) | No | Hora del estado de origen para un evento actualizado, formateada en RFC 3339. |
| `sendTime` | string (date-time) | No | Hora del eco de origen en eventos creados, u hora del estado de origen cuando el evento actual informa sent. |
| `deliverTime` | string (date-time) | No | Hora del estado de origen cuando el evento actual informa delivered. |
| `readTime` | string (date-time) | No | Hora del estado de origen cuando el evento actual informa read. |

> [accordion] whatsappMessage.text
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `body` | string | Sí | Obligatorio para mensajes de texto. El texto del mensaje de texto que puede contener URL que comiencen con http\:// o https\:// y formato. Consulta las opciones de formato disponibles aquí. Si incluyes URL en tu texto y deseas incluir un cuadro de vista previa en los mensajes de texto (preview\_url: true), asegúrate de que la URL comience con http\:// o https\://; se prefieren las URL https\://. Debes incluir un nombre de host, ya que las direcciones IP no se reconocerán. Longitud máxima: 4096 caracteres.Longitud máxima: `4096`. |
> | `preview_url` | boolean | No | De forma predeterminada, WhatsApp reconoce las URL y permite hacer clic en ellas, pero también puedes incluir un cuadro de vista previa con más información sobre el enlace. Establece este campo en true si deseas incluir un cuadro de vista previa de la URL. La mayoría de las veces, el destinatario verá una URL en la que puede hacer clic cuando envíes una URL, establezcas preview\_url en true y proporciones un objeto body con un enlace http o https. Las vistas previas de URL solo se muestran después de que haya ocurrido una de las siguientes situaciones:<ul><li>La empresa ha enviado una plantilla de mensaje al usuario.</li><li>El usuario inicia una conversación con un enlace "clic para chatear".</li><li>El usuario añade el número de teléfono de la empresa a su libreta de contactos e inicia una conversación. Valor predeterminado: `false`.</li></ul> |

> [accordion] whatsappMessage.image
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `id` | string | No | ID de multimedia del proveedor, cuando lo suministra el callback. |
> | `link` | string | No | URL de multimedia del proveedor, cuando la suministra el callback. |
> | `caption` | string | No | Pie de foto o descripción del contenido multimedia, si la devolución de llamada lo proporciona. |
> | `filename` | string | No | Nombre de archivo original, si la devolución de llamada lo proporciona. |
> | `mime_type` | string | No | Tipo MIME del proveedor copiado de la devolución de llamada. |

> [accordion] whatsappMessage.video
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `id` | string | No | ID del contenido multimedia del proveedor, si la devolución de llamada lo proporciona. |
> | `link` | string | No | URL del contenido multimedia del proveedor, si la devolución de llamada la proporciona. |
> | `caption` | string | No | Pie de foto o descripción del contenido multimedia, si la devolución de llamada lo proporciona. |
> | `filename` | string | No | Nombre de archivo original, si la devolución de llamada lo proporciona. |
> | `mime_type` | string | No | Tipo MIME del proveedor copiado de la devolución de llamada. |

> [accordion] whatsappMessage.audio
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `id` | string | No | ID del contenido multimedia del proveedor, si la devolución de llamada lo proporciona. |
> | `link` | string | No | URL del contenido multimedia del proveedor, si la devolución de llamada la proporciona. |
> | `caption` | string | No | Pie de foto o descripción del contenido multimedia, si la devolución de llamada lo proporciona. |
> | `filename` | string | No | Nombre de archivo original, si la devolución de llamada lo proporciona. |
> | `mime_type` | string | No | Tipo MIME del proveedor copiado de la devolución de llamada. |

> [accordion] whatsappMessage.document
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `id` | string | No | ID del contenido multimedia del proveedor, si la devolución de llamada lo proporciona. |
> | `link` | string | No | URL del contenido multimedia del proveedor, si la devolución de llamada la proporciona. |
> | `caption` | string | No | Pie de foto o descripción del contenido multimedia, si la devolución de llamada lo proporciona. |
> | `filename` | string | No | Nombre de archivo original, si la devolución de llamada lo proporciona. |
> | `mime_type` | string | No | Tipo MIME del proveedor copiado de la devolución de llamada. |

> [accordion] whatsappMessage.sticker
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `id` | string | No | ID del contenido multimedia del proveedor, si la devolución de llamada lo proporciona. |
> | `link` | string | No | URL del contenido multimedia del proveedor, si la devolución de llamada la proporciona. |
> | `caption` | string | No | Pie de foto o descripción del contenido multimedia, si la devolución de llamada lo proporciona. |
> | `filename` | string | No | Nombre de archivo original, si la devolución de llamada lo proporciona. |
> | `mime_type` | string | No | Tipo MIME del proveedor copiado de la devolución de llamada. |

> [accordion] whatsappMessage.location
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `latitude` | number (double) | Sí | Latitud de la ubicación. |
> | `longitude` | number (double) | Sí | Longitud de la ubicación. |
> | `name` | string | No | Nombre de la ubicación. |
> | `address` | string | No | Dirección de la ubicación. Solo se muestra si `name` está presente. |

> [accordion] whatsappMessage.interactive
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `type` | string | No | **Obligatorio.** El tipo de mensaje interactivo que quieres enviar.<ul><li>`button`: Úsalo para Reply Buttons.</li><li>`list`: Úsalo para List Messages.</li><li>`cta_url`: Úsalo para Call-To-Action (CTA) URL Button Messages.</li><li>`product`: Úsalo para Single Product Messages.</li><li>`product_list`: Úsalo para Multi-Product Messages.</li><li>`catalog_message`: Úsalo para Catalog Messages.</li><li>`location_request_message`: Úsalo para Location Request Messages.</li><li>`order_details`: Úsalo para Order Details Messages.</li><li>`order_status`: Úsalo para Order Status Messages.</li><li>`voice_call`: Úsalo para Voice Call Messages.</li><li>`flow`: Úsalo para Flow Messages.</li></ul> |
> | `action` | object | No | **Obligatorio.** Acción que quieres que realice el usuario después de leer el mensaje `interactive`. |
> | `body` | object | No | Opcional para el tipo `product`. Obligatorio para otros tipos de mensajes. |
> | `header` | object | No | Obligatorio para el tipo `product_list`. Opcional para otros tipos. |
> | `footer` | object | No | Opcional. Un objeto con el pie de página del mensaje. |

> [accordion] whatsappMessage.interactive.action
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `buttons` | object\[] | No | Obligatorio para Reply Buttons. Puedes tener hasta 3 botones. |
> | `button` | string | No | Obligatorio para List Messages. Contenido del botón. No puede ser una cadena vacía y debe ser único dentro del mensaje. Se admiten emojis, no markdown. Longitud máxima: 20 caracteres.Longitud máxima: `20`. |
> | `catalog_id` | string | No | Obligatorio para Single Product Messages y Multi-Product Messages. Identificador único del catálogo de Facebook vinculado a tu cuenta de WhatsApp Business. Este ID se puede obtener a través del [Meta Commerce Manager](https://business.facebook.com/commerce). |
> | `product_retailer_id` | string | No | Obligatorio para Single Product Messages y Multi-Product Messages. Identificador único del producto en un catálogo. |
> | `sections` | object\[] | No | Obligatorio para List Messages y Multi-Product Messages. Matriz de objetos de sección. Mínimo 1, máximo 10. |
> | `name` | string | No | Nombre de la acción. Obligatorio para botones de llamada a la acción (CTA).<ul><li>`cta_url`: Úsalo para botones URL de llamada a la acción (CTA).</li><li>`catalog_message`: Úsalo para Catalog Messages.</li><li>`send_location`: Úsalo para botones de solicitud de ubicación.</li><li>`flow`: Úsalo para botones de Flow.</li><li>`review_and_pay`: Úsalo para botones de detalles del pedido.</li><li>`review_order`: Úsalo para botones de estado del pedido.</li><li>`voice_call`: Úsalo para botones de llamada de voz.</li></ul> |
> | `parameters` | object | No | Parámetros de la acción. Obligatorio para botones de llamada a la acción (CTA). |

> [accordion] whatsappMessage.interactive.action.buttons\[]
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `type` | string | No | El único tipo admitido es `reply` (para Reply Button). |
> | `reply` | object | No | Los campos del objeto se detallan a continuación. |

> [accordion] whatsappMessage.interactive.action.buttons\[].reply
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `title` | string | No | Título del botón. No puede ser una cadena vacía y debe ser único dentro del mensaje. Se admiten emojis, pero no markdown. Longitud máxima: 20 caracteres.Longitud máxima: `20`. |
> | `id` | string | No | Identificador único para tu botón. Este ID se devuelve en el webhook cuando el usuario hace clic en el botón. Longitud máxima: 256 caracteres. No puedes incluir espacios iniciales ni finales al configurar el ID.Longitud máxima: `256`. |

> [accordion] whatsappMessage.interactive.action.sections\[]
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `title` | string | No | **Obligatorio si el mensaje tiene más de una sección.** Título de la sección. Longitud máxima: 24 caracteres.Longitud máxima: `24`. |
> | `rows` | object\[] | No | Contiene una lista de filas. Puedes tener un total de 10 filas entre todas tus secciones. Cada fila debe tener un título (longitud máxima: 24 caracteres) y un ID (longitud máxima: 200 caracteres). Puedes añadir una descripción (longitud máxima: 72 caracteres), pero es opcional. |
> | `product_items` | object\[] | No | Obligatorio para mensajes multiproducto. Array de objetos de producto. Hay un mínimo de 1 producto por sección y un máximo de 30 productos entre todas las secciones. |

> [accordion] whatsappMessage.interactive.action.sections\[].rows\[]
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `id` | string | No | ID único de la fila. Longitud máxima: 200 caracteres.Longitud máxima: `200`. |
> | `title` | string | No | Contenido del título de la fila. Longitud máxima: 24 caracteres.Longitud máxima: `24`. |
> | `description` | string | No | Contenido de la descripción de la fila. Longitud máxima: 72 caracteres.Longitud máxima: `72`. |

> [accordion] whatsappMessage.interactive.action.sections\[].product\_items\[]
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `product_retailer_id` | string | No | Obligatorio para mensajes multiproducto. Identificador único del producto en un catálogo. |

> [accordion] whatsappMessage.interactive.action.parameters
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `display_text` | string | No | Texto del botón CTA URL. Longitud máxima: 20 bytes.Longitud máxima: `20`. |
> | `url` | string | No | URL del botón CTA URL. |
> | `thumbnail_product_retailer_id` | string | No | Número SKU del artículo. Etiquetado como **Content ID** en el [Commerce Manager](https://business.facebook.com/commerce). La miniatura de este artículo se utilizará como imagen del encabezado del mensaje. |
> | `flow_message_version` | string | No | Se usa para los botones `flow`. El valor debe ser "3". |
> | `flow_token` | string | No | Se usa para los botones `flow`. Token de Flow que genera la empresa para que sirva de identificador. Su valor predeterminado es `unused`. |
> | `flow_id` | string | No | Obligatorio condicionalmente para los botones `flow`. ID único del Flow proporcionado por WhatsApp. No se puede utilizar con el parámetro `flow_name`. |
> | `flow_name` | string | No | Obligatorio condicionalmente para los botones `flow`. El nombre del Flow que creaste. No se puede usar con el parámetro `flow_id`. Si cambias el nombre del Flow, deberás actualizar este parámetro para que coincida con el nuevo nombre. |
> | `flow_cta` | string | No | Obligatorio para los botones `flow`. Texto en el botón CTA. Por ejemplo: "Open flow!". Longitud máxima: 20 caracteres.Longitud máxima: `20`. |
> | `flow_action` | string | No | Úsalo para los botones `flow`. Ya sea `navigate` o `data_exchange`. El valor predeterminado es `navigate`. |
> | `flow_action_payload` | object | No | Obligatorio si `flow_action` es `navigate`. De lo contrario, debe omitirse. |
> | `reference_id` | string | No | Obligatorio para los botones `review_and_pay`. Identificador único para el pedido proporcionado por la empresa. Distingue entre mayúsculas y minúsculas, no puede ser una cadena vacía y solo puede contener letras en inglés, números, guiones bajos, guiones o puntos, y no debe superar los 35 caracteres.El `reference_id` debe ser único para cada mensaje order\_details de una empresa determinada. Si es necesario enviar varios mensajes order\_details para el mismo pedido, se recomienda incluir un número de secuencia en el reference\_id (por ejemplo, "BM345A-12") para garantizar la unicidad del reference\_id. |
> | `type` | string | No | Obligatorio para los botones `review_and_pay`. El tipo de bienes que se pagan en este pedido. Las opciones admitidas actualmente son `digital-goods` y `physical-goods`. |
> | `beneficiaries` | object\[] | No | Obligatorio para los botones `review_and_pay`. Un array de beneficiarios para este pedido. Un beneficiario es un destinatario previsto para el envío de los bienes físicos en el pedido. La información del beneficiario no se muestra a los usuarios, pero es necesaria por motivos legales y de cumplimiento normativo. |
> | `currency` | string | No | Obligatorio para los botones `review_and_pay`. La moneda para este pedido. Actualmente, el único valor admitido es `INR`. |
> | `total_amount` | object | No | Obligatorio para los botones `review_and_pay`. El importe total para este pedido. |
> | `order` | object | No | Obligatorio para los botones `review_and_pay` o `review_order`.Para los botones `review_and_pay`, proporciona el `status` del pedido, `items`, `subtotal`, `tax`, etc.Para los botones `review_order`, proporciona solo el `status` y la `description` del pedido. |
> | `payment_settings` | object\[] | No | Obligatorio para los botones `review_and_pay`. Configuración de pago para el pedido. |

> [accordion] whatsappMessage.interactive.action.parameters.flow\_action\_payload
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `screen` | string | No | El ID de la pantalla que se muestra primero. Debe ser una pantalla **entry** . |
> | `data` | object | No | Datos de entrada opcionales para la primera pantalla del Flow. Si se proporcionan, deben ser un objeto no vacío. |

> [accordion] whatsappMessage.interactive.action.parameters.beneficiaries\[]
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `name` | string | Sí | Nombre de la persona o empresa que recibe los bienes físicos. No puede superar los 200 caracteres.Longitud máxima: `200`. |
> | `address_line1` | string | Sí | Dirección de envío (número de puerta/torre, nombre de la calle, etc.). No puede superar los 100 caracteres.Longitud máxima: `100`. |
> | `address_line2` | string | No | Dirección de envío (punto de referencia, zona, etc.). No puede superar los 100 caracteres.Longitud máxima: `100`. |
> | `city` | string | Sí | Nombre de la ciudad. |
> | `state` | string | Sí | Nombre del estado o provincia. |
> | `country` | string | Sí | Nombre del país. Actualmente, el único valor admitido es `India`. |
> | `postal_code` | string | Sí | Código postal de 6 dígitos de la dirección de envío.Longitud mínima: `6`. Longitud máxima: `6`. |

> [accordion] whatsappMessage.interactive.action.parameters.total\_amount
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `offset` | integer (int32) | Sí | Debe ser `100` para `INR`. |
> | `value` | integer (int32) | Sí | Entero positivo que representa el valor del importe multiplicado por el desplazamiento (offset). Por ejemplo, ₹12.34 tiene el valor 1234. |
> | `description` | string | No | Usa solo para `tax`, `shipping` o `discount`. Descripción del importe. El límite máximo es de 60 caracteres.Longitud máxima: `60`. |
> | `discount_program_name` | string | No | Usa solo para `discount`. Texto utilizado para definir pedidos con incentivos. Si el pedido tiene incentivos, el comerciante debe definir esta información. El límite máximo es de 60 caracteres.Longitud máxima: `60`. |

> [accordion] whatsappMessage.interactive.action.parameters.order
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `status` | string | No | El único valor admitido en el mensaje `order_details` es `pending`. En un mensaje `order_status`, `status` puede ser: `pending`, `processing`, `partially_shipped`, `shipped`, `completed` o `canceled`. |
> | `type` | string | No | El único valor admitido es `quick_pay`. Cuando se pasa este campo, ocultamos el botón "Review and Pay" y solo mostramos el botón "Pay Now" en la burbuja de detalles del pedido. |
> | `catalog_id` | string | No | Identificador único del catálogo de Facebook que utiliza la empresa. Si no proporcionas este campo, debes proporcionar los siguientes campos dentro del objeto items: `country_of_origin`, `importer_name` y `importer_address`. |
> | `items` | object\[] | No | Matriz de artículos en el pedido. |
> | `subtotal` | object | No | El valor **debe ser igual** a la suma de `order.amount.value` \* `order.amount.quantity`. |
> | `tax` | object | No | La información sobre impuestos de este pedido. |
> | `shipping` | object | No | El costo de envío del pedido. |
> | `discount` | object | No | El importe del descuento para este pedido. |
> | `expiration` | object | No | Vencimiento de este pedido. |
> | `description` | string | No | **Opcional.** Texto para compartir información relacionada con el estado. Puede ser útil al enviar una cancelación. El límite máximo es de 120 caracteres.Longitud máxima: `120`. |

> [accordion] whatsappMessage.interactive.action.parameters.order.items\[]
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `retailer_id` | string | No | ID de contenido de un artículo del pedido perteneciente a tu catálogo. |
> | `name` | string | Sí | El nombre del artículo que se mostrará al usuario. No puede superar los 60 caracteres.Longitud máxima: `60`. |
> | `image` | object | No | Imagen personalizada del artículo que se mostrará al usuario. |
> | `amount` | object | Sí | El precio por artículo. |
> | `sale_amount` | object | No | El precio con descuento por artículo. Debe ser menor que el importe original. Si se incluye, este campo se utiliza para calcular el subtotal. |
> | `quantity` | integer (int32) | Sí | La cantidad de artículos en el pedido. |
> | `country_of_origin` | string | No | Obligatorio si `catalog_id` no está presente. El país de origen del producto. |
> | `importer_name` | string | No | Obligatorio si `catalog_id` no está presente. Nombre de la empresa importadora. |
> | `importer_address` | string | No | Obligatorio si `catalog_id` no está presente. Dirección de la empresa importadora. |

> [accordion] whatsappMessage.interactive.action.parameters.order.items\[].image
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `id` | string | No | \*\*Usa esto cuando el archivo multimedia se suba a los servidores de WhatsApp.\*\*Proporciona el ID del objeto multimedia obtenido de la API de subida multimedia de WhatsApp (\[[https://docs.ycloud.com/reference/whatsapp\_media-upload#/](https://docs.ycloud.com/reference/whatsapp_media-upload#/)]\([https://docs.ycloud.com/reference/whatsapp\_media-upload#/)).Nota](https://docs.ycloud.com/reference/whatsapp_media-upload#/\)\).Nota): Se debe proporcionar `id` o `link`. Si se proporcionan ambos, `id` tiene prioridad. |
> | `link` | string | No | \*\*Usa esto cuando envíes archivos multimedia directamente desde tu servidor.\*\*El protocolo y la URL del archivo multimedia que se enviará. Úsalo solo con URL HTTP/HTTPS.Nota: La Cloud API de WhatsApp almacena en caché los recursos multimedia durante 10 minutos. Para asegurarte de tener el contenido más reciente, añade parámetros de consulta aleatorios a la URL.Nota: Se debe proporcionar `id` o `link`. Si se proporcionan ambos, `id` tiene prioridad y `link` se ignorará. |
> | `caption` | string | No | Describe el archivo multimedia `image`, `gif`, `video` o `document` especificado. No aplicable en el `header` de mensajes de `template` o `interactive`. |
> | `filename` | string | No | Describe el nombre de archivo para el documento específico. Úsalo solo con archivos multimedia `document`. |

> [accordion] whatsappMessage.interactive.action.parameters.order.items\[].amount
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `offset` | integer (int32) | Sí | Debe ser `100` para `INR`. |
> | `value` | integer (int32) | Sí | Entero positivo que representa el valor del importe multiplicado por el desplazamiento. Por ejemplo, ₹12.34 tiene el valor 1234. |
> | `description` | string | No | Úsalo solo para `tax`, `shipping` o `discount`. Descripción del importe. El límite máximo es de 60 caracteres.Longitud máxima: `60`. |
> | `discount_program_name` | string | No | Usa solo para `discount`. Texto utilizado para definir pedidos con incentivos. Si el pedido tiene incentivos, el comerciante debe definir esta información. El límite máximo de caracteres es de 60.Longitud máxima: `60`. |

> [accordion] whatsappMessage.interactive.action.parameters.order.items\[].sale\_amount
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `offset` | integer (int32) | Sí | Debe ser `100` para `INR`. |
> | `value` | integer (int32) | Sí | Entero positivo que representa el valor del importe multiplicado por el desplazamiento. Por ejemplo, ₹12.34 tiene el valor 1234. |
> | `description` | string | No | Usa solo para `tax`, `shipping` o `discount`. Descripción del importe. El límite máximo de caracteres es de 60.Longitud máxima: `60`. |
> | `discount_program_name` | string | No | Usa solo para `discount`. Texto utilizado para definir pedidos con incentivos. Si el pedido tiene incentivos, el comerciante debe definir esta información. El límite máximo de caracteres es de 60.Longitud máxima: `60`. |

> [accordion] whatsappMessage.interactive.action.parameters.order.subtotal
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `offset` | integer (int32) | Sí | Debe ser `100` para `INR`. |
> | `value` | integer (int32) | Sí | Entero positivo que representa el valor del importe multiplicado por el desplazamiento. Por ejemplo, ₹12.34 tiene el valor 1234. |
> | `description` | string | No | Usa solo para `tax`, `shipping` o `discount`. Descripción del importe. El límite máximo de caracteres es de 60.Longitud máxima: `60`. |
> | `discount_program_name` | string | No | Usa solo para `discount`. Texto utilizado para definir pedidos con incentivos. Si el pedido tiene incentivos, el comerciante debe definir esta información. El límite máximo de caracteres es de 60.Longitud máxima: `60`. |

> [accordion] whatsappMessage.interactive.action.parameters.order.tax
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `offset` | integer (int32) | Sí | Debe ser `100` para `INR`. |
> | `value` | integer (int32) | Sí | Entero positivo que representa el valor del importe multiplicado por el desplazamiento. Por ejemplo, ₹12.34 tiene el valor 1234. |
> | `description` | string | No | Usa solo para `tax`, `shipping` o `discount`. Descripción del importe. El límite máximo de caracteres es de 60.Longitud máxima: `60`. |
> | `discount_program_name` | string | No | Usa solo para `discount`. Texto utilizado para definir pedidos con incentivos. Si el pedido tiene incentivos, el comerciante debe definir esta información. El límite máximo de caracteres es de 60.Longitud máxima: `60`. |

> [accordion] whatsappMessage.interactive.action.parameters.order.shipping
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `offset` | integer (int32) | Sí | Debe ser `100` para `INR`. |
> | `value` | integer (int32) | Sí | Entero positivo que representa el valor del importe multiplicado por el desplazamiento. Por ejemplo, ₹12.34 tiene el valor 1234. |
> | `description` | string | No | Úsalo solo para `tax`, `shipping` o `discount`. Descripción del importe. El límite máximo es de 60 caracteres.Longitud máxima: `60`. |
> | `discount_program_name` | string | No | Úsalo solo para `discount`. Texto utilizado para definir pedidos con incentivos. Si el pedido tiene incentivos, el comerciante debe definir esta información. El límite máximo es de 60 caracteres.Longitud máxima: `60`. |

> [accordion] whatsappMessage.interactive.action.parameters.order.discount
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `offset` | integer (int32) | Sí | Debe ser `100` para `INR`. |
> | `value` | integer (int32) | Sí | Entero positivo que representa el valor del importe multiplicado por el desplazamiento. Por ejemplo, ₹12.34 tiene el valor 1234. |
> | `description` | string | No | Úsalo solo para `tax`, `shipping` o `discount`. Descripción del importe. El límite máximo es de 60 caracteres.Longitud máxima: `60`. |
> | `discount_program_name` | string | No | Úsalo solo para `discount`. Texto utilizado para definir pedidos con incentivos. Si el pedido tiene incentivos, el comerciante debe definir esta información. El límite máximo es de 60 caracteres.Longitud máxima: `60`. |

> [accordion] whatsappMessage.interactive.action.parameters.order.expiration
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `timestamp` | string | Sí | Una cadena de marca de tiempo UTC en segundos del momento en que debe caducar el pedido. El umbral mínimo es de 300 segundos. |
> | `description` | string | No | Explicación en texto de la caducidad.Longitud máxima: `120`. |

> [accordion] whatsappMessage.interactive.action.parameters.payment\_settings\[]
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `type` | string | Sí | Debe establecerse en `payment_gateway`. |
> | `payment_gateway` | object | Sí | Un objeto que describe la información de la cuenta de pago. |

> [accordion] whatsappMessage.interactive.action.parameters.payment\_settings\[].payment\_gateway
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `type` | string | Sí | Tipo de pago. Debes establecer esto en `billdesk`, `razorpay`, `payu` o `zaakpay`, si has vinculado tu pasarela de pago BillDesk, Razorpay, PayU o Zaakpay para aceptar pagos. |
> | `configuration_name` | string | Sí | El nombre de la configuración de pago preconfigurada que se utilizará para este pedido; no debe superar los 60 caracteres. Este valor debe coincidir con una configuración de pago configurada en el WhatsApp Business Manager.Longitud máxima: `60`. |
> | `billdesk` | object | No | Información adicional para BillDesk. Los campos definidos por el usuario (extra) se utilizan para almacenar cualquier información correspondiente a un pedido en particular. Cada campo extra tiene un límite máximo de 120 caracteres. |
> | `payu` | object | No | Información adicional para PayU. Los campos definidos por el usuario (udf) se utilizan para almacenar cualquier información correspondiente a un pedido en particular. Cada campo UDF tiene un límite máximo de 255 caracteres. |
> | `razorpay` | object | No | Información adicional para Razorpay. |
> | `zaakpay` | object | No | Información adicional para Zaakpay. Los campos definidos por el usuario (extra) se utilizan para almacenar cualquier información correspondiente a un pedido específico. Cada campo extra tiene un límite máximo de 180 caracteres. |

> [accordion] whatsappMessage.interactive.action.parameters.payment\_settings\[].payment\_gateway.billdesk
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `additional_info1` | string | No | Información definida por el usuario sobre este pedido para BillDesk.Longitud máxima: `120` caracteres. |
> | `additional_info2` | string | No | Información definida por el usuario sobre este pedido para BillDesk.Longitud máxima: `120` caracteres. |
> | `additional_info3` | string | No | Información definida por el usuario sobre este pedido para BillDesk.Longitud máxima: `120` caracteres. |
> | `additional_info4` | string | No | Información definida por el usuario sobre este pedido para BillDesk.Longitud máxima: `120` caracteres. |
> | `additional_info5` | string | No | Información definida por el usuario sobre este pedido para BillDesk.Longitud máxima: `120` caracteres. |
> | `additional_info6` | string | No | Información definida por el usuario sobre este pedido para BillDesk.Longitud máxima: `120` caracteres. |
> | `additional_info7` | string | No | Información definida por el usuario sobre este pedido para BillDesk.Longitud máxima: `120` caracteres. |

> [accordion] whatsappMessage.interactive.action.parameters.payment\_settings\[].payment\_gateway.payu
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `udf1` | string | No | Información definida por el usuario sobre este pedido para PayU.Longitud máxima: `255` caracteres. |
> | `udf2` | string | No | Información definida por el usuario sobre este pedido para PayU.Longitud máxima: `255` caracteres. |
> | `udf3` | string | No | Información definida por el usuario sobre este pedido para PayU.Longitud máxima: `255` caracteres. |
> | `udf4` | string | No | Información definida por el usuario sobre este pedido para PayU.Longitud máxima: `255` caracteres. |

> [accordion] whatsappMessage.interactive.action.parameters.payment\_settings\[].payment\_gateway.razorpay
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `receipt` | string | No | Número de recibo correspondiente a este pedido, configurado para tu referencia interna. Admite una longitud máxima de 40 caracteres, con una longitud mínima superior a 0 caracteres. |
> | `notes` | object | No | El objeto puede ser pares clave-valor con un máximo de 15 claves y cada valor está limitado a 256 caracteres. |

> [accordion] whatsappMessage.interactive.action.parameters.payment\_settings\[].payment\_gateway.zaakpay
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `extra1` | string | No | Información definida por el usuario sobre este pedido para Zaakpay.Longitud máxima: `180` caracteres. |
> | `extra2` | string | No | Información definida por el usuario sobre este pedido para Zaakpay.Longitud máxima: `180` caracteres. |

> [accordion] whatsappMessage.interactive.body
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `text` | string | No | El contenido del cuerpo del mensaje. Se admiten emojis y markdown. Longitud máxima: 1024 caracteres.Longitud máxima: `1024`. |

> [accordion] whatsappMessage.interactive.header
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `type` | string | No | **Requerido.** El tipo de encabezado que te gustaría usar.<ul><li>`text`: Se usa para mensajes de lista, botones de respuesta y mensajes de múltiples productos.</li><li>`video`: Se usa para botones de respuesta.</li><li>`image`: Se usa para botones de respuesta.</li><li>`document`: Se usa para botones de respuesta.</li></ul> |
> | `text` | string | No | Texto para el encabezado. El formato permite emojis, pero no markdown.Longitud máxima: `60`. |
> | `image` | object | No | Úsalo para mensajes `image`, `gif`, `video`, `audio`, `document` o `sticker`. Consulta también [Supported Media Types](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media#supported-media-types). |
> | `video` | object | No | Úsalo para mensajes `image`, `gif`, `video`, `audio`, `document` o `sticker`. Consulta también [Supported Media Types](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media#supported-media-types). |
> | `document` | object | No | Úsalo para mensajes `image`, `gif`, `video`, `audio`, `document` o `sticker`. Consulta también [Supported Media Types](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media#supported-media-types). |

> [accordion] whatsappMessage.interactive.header.image
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `id` | string | No | \*\*Usa esto cuando el archivo multimedia se suba a los servidores de WhatsApp.\*\*Proporciona el ID del objeto multimedia obtenido de la API de subida multimedia de WhatsApp (\[[https://docs.ycloud.com/reference/whatsapp\_media-upload#/](https://docs.ycloud.com/reference/whatsapp_media-upload#/)]\([https://docs.ycloud.com/reference/whatsapp\_media-upload#/)).Nota](https://docs.ycloud.com/reference/whatsapp_media-upload#/\)\).Nota): Se debe proporcionar `id` o bien `link`. Si se proporcionan ambos, `id` tiene prioridad. |
> | `link` | string | No | \*\*Usa esto cuando envíes archivos multimedia directamente desde tu servidor.\*\*El protocolo y la URL del archivo multimedia a enviar. Úsalo solo con URL HTTP/HTTPS.Nota: La API de WhatsApp Cloud almacena en caché los recursos multimedia durante 10 minutos. Para asegurar el contenido más reciente, añade parámetros de consulta aleatorios a la URL.Nota: Se debe proporcionar `id` o bien `link`. Si se proporcionan ambos, `id` tiene prioridad y `link` se ignorará. |
> | `caption` | string | No | Describe el medio especificado de tipo `image`, `gif`, `video` o `document`. No aplicable en el `header` de mensajes `template` o `interactive`. |
> | `filename` | string | No | Describe el nombre de archivo para el documento específico. Úsalo únicamente con medios de tipo `document`. |

> [accordion] whatsappMessage.interactive.header.video
>
> | Parámetro | Tipo | Requerido | Descripción |
> | - | - | - | - |
> | `id` | string | No | \*\*Usa esto cuando el archivo multimedia se suba a los servidores de WhatsApp.\*\*Proporciona el ID del objeto multimedia obtenido de la API de subida multimedia de WhatsApp (\[[https://docs.ycloud.com/reference/whatsapp\_media-upload#/](https://docs.ycloud.com/reference/whatsapp_media-upload#/)]\([https://docs.ycloud.com/reference/whatsapp\_media-upload#/)).Nota](https://docs.ycloud.com/reference/whatsapp_media-upload#/\)\).Nota): Se debe proporcionar `id` o bien `link`. Si se proporcionan ambos, `id` tiene prioridad. |
> | `link` | string | No | \*\*Usa esto cuando envíes archivos multimedia directamente desde tu servidor.\*\*El protocolo y la URL del archivo multimedia que se va a enviar. Úsalo solo con URL HTTP/HTTPS.Nota: WhatsApp Cloud API almacena en caché los recursos multimedia durante 10 minutos. Para asegurar el contenido más reciente, añade cadenas de consulta aleatorias a la URL.Nota: Se debe proporcionar `id` o `link`. Si se proporcionan ambos, `id` tiene prioridad y `link` se ignorará. |
> | `caption` | string | No | Describe el contenido multimedia especificado de tipo `image`, `gif`, `video` o `document`. No aplica en el `header` de los mensajes de `template` o `interactive`. |
> | `filename` | string | No | Describe el nombre de archivo para el documento específico. Úsalo solo con contenido multimedia de tipo `document`. |

> [accordion] whatsappMessage.interactive.header.document
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `id` | string | No | \*\*Usa esto cuando el archivo multimedia se sube a los servidores de WhatsApp.\*\*Proporciona el ID del objeto multimedia obtenido de la API de subida de medios de WhatsApp (\[[https://docs.ycloud.com/reference/whatsapp\_media-upload#/](https://docs.ycloud.com/reference/whatsapp_media-upload#/)]\([https://docs.ycloud.com/reference/whatsapp\_media-upload#/)).Nota](https://docs.ycloud.com/reference/whatsapp_media-upload#/\)\).Nota): Se debe proporcionar `id` o `link`. Si se proporcionan ambos, `id` tiene prioridad. |
> | `link` | string | No | \*\*Usa esto cuando envíes archivos multimedia directamente desde tu servidor.\*\*El protocolo y la URL del archivo multimedia que se va a enviar. Úsalo solo con URL HTTP/HTTPS.Nota: WhatsApp Cloud API almacena en caché los recursos multimedia durante 10 minutos. Para asegurar el contenido más reciente, añade cadenas de consulta aleatorias a la URL.Nota: Se debe proporcionar `id` o `link`. Si se proporcionan ambos, `id` tiene prioridad y `link` se ignorará. |
> | `caption` | string | No | Describe el contenido multimedia especificado de tipo `image`, `gif`, `video` o `document`. No aplica en el `header` de los mensajes de `template` o `interactive`. |
> | `filename` | string | No | Describe el nombre de archivo para el documento específico. Úsalo solo con contenido multimedia de tipo `document`. |

> [accordion] whatsappMessage.interactive.footer
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `text` | string | No | El contenido del pie de página. Se admiten emojis y markdown. Se admiten enlaces. Longitud máxima: 60 caracteres.Longitud máxima: `60`. |

> [accordion] whatsappMessage.contacts\[]
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `addresses` | object\[] | No | Los elementos del arreglo se describen a continuación. |
> | `birthday` | string | No | Cadena formateada como `YYYY-MM-DD`. |
> | `emails` | object\[] | No | Los elementos del arreglo se describen a continuación. |
> | `name` | object | Sí | Nombre completo del contacto con formato de objeto name. |
> | `org` | object | No | Información de la organización del contacto con formato de objeto org. |
> | `phones` | object\[] | No | Número(s) de teléfono del contacto con formato de objeto phone. |
> | `urls` | object\[] | No | URL(s) del contacto con formato de objeto urls. |
> | `vcard` | string | No | vCard opcional proporcionada con la carga útil del contacto compartido. |
> | `origin` | string | No | Se establece en `contact_request` cuando el usuario compartió el contacto en respuesta a un mensaje request-contact-info. |

> [accordion] whatsappMessage.contacts\[].addresses\[]
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `street` | string | No | Número y nombre de la calle. |
> | `city` | string | No | Nombre de la ciudad. |
> | `state` | string | No | Abreviatura del estado o provincia. |
> | `zip` | string | No | Código postal. |
> | `country` | string | No | Nombre completo del país. |
> | `country_code` | string | No | Abreviatura del país de dos letras. |
> | `type` | string | No | Los valores estándar son `HOME` y `WORK`. |

> [accordion] whatsappMessage.contacts\[].emails\[]
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `email` | string | No | Dirección de correo electrónico. |
> | `type` | string | No | Los valores estándar son `HOME` y `WORK`. |

> [accordion] whatsappMessage.contacts\[].name
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `formatted_name` | string | Sí | Nombre completo, tal como aparece normalmente. |
> | `first_name` | string | No | Nombre de pila. |
> | `last_name` | string | No | Apellido. |
> | `middle_name` | string | No | Segundo nombre. |
> | `suffix` | string | No | Sufijo del nombre. |
> | `prefix` | string | No | Prefijo del nombre. |

> [accordion] whatsappMessage.contacts\[].org
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `company` | string | No | Nombre de la empresa del contacto. |
> | `department` | string | No | Nombre del departamento del contacto. |
> | `title` | string | No | Cargo profesional del contacto. |

> [accordion] whatsappMessage.contacts\[].phones\[]
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `phone` | string | No | Se completa automáticamente con el valor de `wa_id` como un número de teléfono con formato. |
> | `type` | string | No | Los valores estándar son `CELL`, `MAIN`, `IPHONE`, `HOME` y `WORK`. |
> | `wa_id` | string | No | ID de WhatsApp. |

> [accordion] whatsappMessage.contacts\[].urls\[]
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `url` | string | No | URL. |
> | `type` | string | No | Los valores estándar son `HOME` y `WORK`. |

> [accordion] whatsappMessage.reaction
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `message_id` | string | Sí | Especifica el `wamid` del mensaje recibido que contenía la reacción. |
> | `emoji` | string | No | **Obligatorio** cuando envías un mensaje `reaction`. Establécelo en `""` si deseas eliminar el emoji. **Opcional** cuando recibiste un mensaje de un usuario. Este campo se incluye cuando un usuario reacciona a los mensajes con un emoji. De lo contrario, indica que un usuario eliminó el emoji. |

> [accordion] whatsappMessage.context
>
> | Parámetro | Tipo | Obligatorio | Descripción |
> | - | - | - | - |
> | `message_id` | string | No | Especifica el `wamid` del mensaje al que estás respondiendo. `wamid` es el ID del mensaje original en la plataforma de WhatsApp. |

## Ejemplo

El siguiente JSON es el cuerpo entregado a tu receptor. Los ID, los números de teléfono y otros valores de cuenta son ilustrativos.

> [accordion] Eco de texto saliente
>
> Almacena el texto de whatsappMessage.text.body. id y wamid vinculan los eventos de estado posteriores.
>
> ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
> {
>   "id": "evt_example_echo_text",
>   "type": "whatsapp.echo_message.created",
>   "apiVersion": "v2",
>   "createTime": "2026-09-09T02:00:00.000Z",
>   "whatsappMessage": {
>     "id": "MESSAGE_ID",
>     "wamid": "wamid.EXAMPLE",
>     "wabaId": "WABA_ID",
>     "from": "+12025550124",
>     "to": "+12025550123",
>     "recipientUserId": "GB.898232076600896",
>     "type": "text",
>     "text": {
>       "body": "Hello! How can I help you?"
>     },
>     "status": "sent",
>     "createTime": "2026-09-09T02:00:00.000Z",
>     "sendTime": "2026-09-09T02:00:00.000Z"
>   }
> }
> ```

> [accordion] Eco de imagen saliente
>
> El contenido del mensaje varía según el tipo. Trata los ID de medios como referencias del proveedor, no como URL de descarga públicas.
>
> ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
> {
>   "id": "evt_example_echo_image",
>   "type": "whatsapp.echo_message.created",
>   "apiVersion": "v2",
>   "createTime": "2026-09-09T02:00:00.000Z",
>   "whatsappMessage": {
>     "id": "IMAGE_MESSAGE_ID",
>     "wamid": "wamid.IMAGE_EXAMPLE",
>     "wabaId": "WABA_ID",
>     "from": "+12025550124",
>     "to": "+12025550123",
>     "recipientUserId": "GB.898232076600896",
>     "type": "image",
>     "image": {
>       "id": "MEDIA_ID",
>       "mime_type": "image/jpeg"
>     },
>     "status": "sent",
>     "createTime": "2026-09-09T02:00:00.000Z",
>     "sendTime": "2026-09-09T02:00:00.000Z"
>   }
> }
> ```

Tras verificar la firma y aceptar el evento de forma duradera, devuelve una respuesta `2xx`. Procesa las tareas lentas de forma asíncrona.

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
HTTP/1.1 200 OK
```

Para ver guías paso a paso de escenarios, consulta los [ejemplos comentados](https://docs.ycloud.com/es/api-reference/guides/examples/webhook-examples/whatsapp-echo-message-created).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.