logo
enes

Botones de réplica

Last update: 4 days ago by Irais Aguirre

Resumen para integración

  • Endpoint: POST https://{{url}}/whatsapp-bsp-api-endpoint-ws/services/v1/messaging
  • Token: de mensajería, en el encabezado Authorization: Bearer {{wa-msg-api-token}} (cómo generarlo)
  • Campos comunes: from, to (teléfono o BSUID) y type (detalle)
  • Valores de type en esta página: "interactive"
  • Respuesta: la misma para todos los mensajes (ver respuesta)

Mensajes que incluyen hasta 3 opciones; cada opción es un botón. Este tipo de mensaje ofrece una forma más rápida para que los usuarios realicen una selección de un menú cuando interactúan con una empresa. También pueden incluir hasta 2 botones que abren una URL. Se envían con POST /v1/messaging; los encabezados, los campos comunes y la respuesta están en Conexión HTTP.

Botones de réplica

El campo type debe ser "interactive" y el contenido del mensaje se envía en el objeto replyButtons. Consulta la estructura general de los mensajes interactivos.

Cuerpo

Campos de Botones de réplica:

NombreDescripciónTipoRequerimientos
replyButtonsObjeto con los botones de réplica. Envía solo uno: listMessages, replyButtons o flow (o algún otro tipo de mensaje interactivo).ObjetoCondicional

Objeto replyButtons

NombreDescripciónTipoRequerimientos
headerTextTexto del encabezado (máximo 60 caracteres).StringOpcional. Se permite como máximo un header; prioridad: headerDocument > headerImage > headerVideo > headerText.
headerImageImagen del encabezado.ObjetoOpcional. Se permite como máximo un header.
headerVideoVideo del encabezado.ObjetoOpcional. Se permite como máximo un header.
headerDocumentDocumento del encabezado.ObjetoOpcional. Se permite como máximo un header.
bodyContiene el texto del mensaje, que puede incluir formato y URL (máximo 1024 caracteres).StringObligatorio
footerEl pie de página del mensaje (máximo 60 caracteres). Se admiten emojis y Markdown.StringOpcional
buttonsLista objetosLista ObjectObligatorio

Objeto headerImage

NombreDescripciónTipoRequerimientos
linkLiga del archivo.StringSe requiere link, id o media_id (uno de ellos).
idID del recurso en WhatsApp.StringSe requiere link, id o media_id (uno de ellos).
media_idID del recurso en WhatsApp (alias de id). Si se envían tanto id como media_id, media_id tiene prioridad.StringSe requiere link, id o media_id (uno de ellos).
providerNameNombre del proveedor.StringOpcional

Objeto headerVideo

NombreDescripciónTipoRequerimientos
linkLiga del archivo.StringSe requiere link o id (uno de los dos).
idID del recurso en WhatsApp.StringSe requiere link o id (uno de los dos).
providerNameNombre del proveedor.StringOpcional

Objeto headerDocument

NombreDescripciónTipoRequerimientos
linkLiga del archivo.StringSe requiere link o id (uno de los dos).
idID del recurso en WhatsApp.StringSe requiere link o id (uno de los dos).
fileNameNombre del archivo.StringOpcional
providerNameNombre del proveedor.StringOpcional

Objeto buttons

NombreDescripciónTipoRequerimientos
idId del botón.String
  • Obligatorio.
  • Máximo 256 caracteres.
titleTexto del botón.String
  • Obligatorio.
  • Máximo 20 caracteres.
Límites de botones:
  • Hasta 3 botones de respuesta por mensaje.
  • Para enviar un mensaje con un botón de llamada a la acción (URL), usa el tipo de mensaje dedicado CTA URL en lugar de agregar los campos type/url aquí.

Ejemplo

Ejemplo completo de Botones de réplica (petición HTTP y cuerpo JSON):

Botones de réplica con imagen

Petición HTTP con imagen
curl -X POST 'https://{{url}}/whatsapp-bsp-api-endpoint-ws/services/v1/messaging' \
-H 'Authorization: Bearer {{wa-msg-api-token}}' \
-H 'Content-Type: application/json' \
-d '{
"from": "5215500000001",
"to": "5215500000002",
"type": "interactive",
"replyButtons":
{
"headerImage":
{
"link": "https://www.ejemplo.com/ejemplo_imagen.png"
},
"body": "Nuestras sopas son las mejores del lugar",
"footer": "Buen provecho",
"buttons":
[
{
"id": "1",
"title": "Sopa de fideo"
},
{
"id": "2",
"title": "Sopa de tortilla"
},
{
"id": "3",
"title": "Sopa de pasta"
}
]
}
}'
Body con imagen
{
"from": "5215500000001",
"to": "5215500000002",
"type": "interactive",
"replyButtons":
{
"headerImage":
{
"link": "https://www.ejemplo.com/ejemplo_imagen.png"
},
"body": "Nuestras sopas son las mejores del lugar",
"footer": "Buen provecho",
"buttons":
[
{
"id": "1",
"title": "Sopa de fideo"
},
{
"id": "2",
"title": "Sopa de tortilla"
},
{
"id": "3",
"title": "Sopa de pasta"
}
]
}
}

Botones de réplica con video

Petición HTTP con video
curl -X POST 'https://{{url}}/whatsapp-bsp-api-endpoint-ws/services/v1/messaging' \
-H 'Authorization: Bearer {{wa-msg-api-token}}' \
-H 'Content-Type: application/json' \
-d '{
"from": "5215500000001",
"to": "5215500000002",
"type": "interactive",
"replyButtons":
{
"headerVideo":
{
"link": "https://www.ejemplo.com/ejemplo_video_3.7_MB.mp4"
},
"body": "Nuestras sopas son las mejores del lugar",
"footer": "Buen provecho",
"buttons":
[
{
"id": "1",
"title": "Sopa de fideo"
},
{
"id": "2",
"title": "Sopa de tortilla"
},
{
"id": "3",
"title": "Sopa de pasta"
}
]
}
}'
Body con video
{
"from": "5215500000001",
"to": "5215500000002",
"type": "interactive",
"replyButtons":
{
"headerVideo":
{
"link": "https://www.ejemplo.com/ejemplo_video_3.7_MB.mp4"
},
"body": "Nuestras sopas son las mejores del lugar",
"footer": "Buen provecho",
"buttons":
[
{
"id": "1",
"title": "Sopa de fideo"
},
{
"id": "2",
"title": "Sopa de tortilla"
},
{
"id": "3",
"title": "Sopa de pasta"
}
]
}
}

Botones de réplica con documento

Petición HTTP con documento
curl -X POST 'https://{{url}}/whatsapp-bsp-api-endpoint-ws/services/v1/messaging' \
-H 'Authorization: Bearer {{wa-msg-api-token}}' \
-H 'Content-Type: application/json' \
-d '{
"from": "5215500000001",
"to": "5215500000002",
"type": "interactive",
"replyButtons":
{
"headerDocument":
{
"link": "https://www.ejemplo.com/ejemplo_documento.pdf",
"fileName": "mi doc"
},
"body": "Nuestras sopas son las mejores del lugar",
"footer": "Buen provecho",
"buttons":
[
{
"id": "1",
"title": "Sopa de fideo"
},
{
"id": "2",
"title": "Sopa de tortilla"
},
{
"id": "3",
"title": "Sopa de pasta"
}
]
}
}'
Body con documento
{
"from": "5215500000001",
"to": "5215500000002",
"type": "interactive",
"replyButtons":
{
"headerDocument":
{
"link": "https://www.ejemplo.com/ejemplo_documento.pdf",
"fileName": "mi doc"
},
"body": "Nuestras sopas son las mejores del lugar",
"footer": "Buen provecho",
"buttons":
[
{
"id": "1",
"title": "Sopa de fideo"
},
{
"id": "2",
"title": "Sopa de tortilla"
},
{
"id": "3",
"title": "Sopa de pasta"
}
]
}
}

Botones de réplica con botón URL

Petición HTTP con botón URL
curl -X POST 'https://{{url}}/whatsapp-bsp-api-endpoint-ws/services/v1/messaging' \
-H 'Authorization: Bearer {{wa-msg-api-token}}' \
-H 'Content-Type: application/json' \
-d '{
"from": "5215500000001",
"to": "5215500000002",
"type": "interactive",
"replyButtons":
{
"headerText": "Menú del día",
"body": "Nuestras sopas son las mejores del lugar",
"footer": "Buen provecho",
"buttons":
[
{
"type": "cta_url",
"title": "Ver menú completo",
"url": "https://www.ejemplo.com/menu"
},
{
"id": "1",
"title": "Sopa de fideo"
},
{
"id": "2",
"title": "Sopa de tortilla"
}
]
}
}'
Body con botón URL
{
"from": "5215500000001",
"to": "5215500000002",
"type": "interactive",
"replyButtons":
{
"headerText": "Menú del día",
"body": "Nuestras sopas son las mejores del lugar",
"footer": "Buen provecho",
"buttons":
[
{
"type": "cta_url",
"title": "Ver menú completo",
"url": "https://www.ejemplo.com/menu"
},
{
"id": "1",
"title": "Sopa de fideo"
},
{
"id": "2",
"title": "Sopa de tortilla"
}
]
}
}


Anterior
Lista de mensajes
Siguiente
Llamada a la acción (URL)