logo
enes

Botones

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: "template"
  • Respuesta: la misma para todos los mensajes (ver respuesta)

Plantillas con botones: respuesta rápida, contraseña de un solo uso, realizar llamada y abrir URL. Todos se envían con POST /v1/messaging; los encabezados, los campos comunes y la respuesta están en Conexión HTTP. La estructura general de la plantilla (objetos template y components) está en Mensajes con plantilla.

Quick reply

Botón de respuesta rápida: componente button con subtype "quick_reply". En el objeto del parámetro, type debe ser "payload".

Cuerpo

Campos del componente button:

NombreDescripciónTipoRequerimientos
typeEl valor es “button”.StringObligatorio
subtypeEl valor es “quick_reply”.StringObligatorio
indexÍndice del botón (0, 1, 2).IntegerOpcional

Campos del parámetro Quick reply:

NombreDescripciónTipoRequerimientos
typeEl valor es “payload”.StringObligatorio
payloadDescripción del botón para respuesta rápida.String
  • Opcional.
  • Se utiliza con el tipo de parámetro payload.
  • Se utiliza en el componente button.
  • El tamaño máximo es de 128 caracteres.

Ejemplo

Ejemplo completo de Quick reply (petición HTTP y cuerpo JSON):

Petición HTTP quick reply

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": "template",
"template": {
"language": "es",
"name": "calificacion_servicio",
"components": [
{
"type": "body",
"parameters": [
{
"text": "Juan",
"type": "text"
}
]
},
{
"type": "button",
"subtype": "quick_reply",
"index": 0,
"parameters": [
{
"type": "payload",
"payload": "12345765"
}
]
},
{
"type": "button",
"subtype": "quick_reply",
"index": 1,
"parameters": [
{
"type": "payload",
"payload": "12345765"
}
]
},
{
"type": "button",
"subtype": "quick_reply",
"index": 2,
"parameters": [
{
"type": "payload",
"payload": "12345765"
}
]
}
]
}
}'

Body quick reply

{
"from": "5215500000001",
"to": "5215500000002",
"type": "template",
"template": {
"language": "es",
"name": "calificacion_servicio",
"components": [
{
"type": "body",
"parameters": [
{
"text": "Juan",
"type": "text"
}
]
},
{
"type": "button",
"subtype": "quick_reply",
"index": 0,
"parameters": [
{
"type": "payload",
"payload": "12345765"
}
]
},
{
"type": "button",
"subtype": "quick_reply",
"index": 1,
"parameters": [
{
"type": "payload",
"payload": "12345765"
}
]
},
{
"type": "button",
"subtype": "quick_reply",
"index": 2,
"parameters": [
{
"type": "payload",
"payload": "12345765"
}
]
}
]
}
}


Contraseña de un solo uso

Plantilla de contraseña de un solo uso: el código se envía como parámetro de texto en el componente body y en un botón con subtype "url".

Ejemplo

Ejemplo completo de Contraseña de un solo uso (petición HTTP y cuerpo JSON):

Petición HTTP contraseña

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": "template",
"template": {
"language": "es",
"name": "confirmacion_codigo_02",
"components": [
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "54321"
}
]
},
{
"type": "button",
"subtype": "url",
"index": 0,
"parameters":
[
{
"type": "text",
"text": "54321"
}
]
}
]
}
}'

Body contraseña

{
"from": "5215500000001",
"to": "5215500000002",
"type": "template",
"template": {
"language": "es",
"name": "confirmacion_codigo_02",
"components": [
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "54321"
}
]
},
{
"type": "button",
"subtype": "url",
"index": 0,
"parameters":
[
{
"type": "text",
"text": "54321"
}
]
}
]
}
}


Acción de realizar llamada

Plantilla con un botón de acción para realizar una llamada. El botón se define en la plantilla aprobada, por lo que solo se envían los parámetros del componente body.

Ejemplo

Ejemplo completo de Acción de realizar llamada (petición HTTP y cuerpo JSON):

Petición HTTP realizar llamada

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": "template",
"template": {
"language": "es",
"name": "test_call_to_action_04",
"components": [
{
"type": "body",
"parameters":
[
{
"type": "text",
"text": "now"
}
]
}
]
}
}'

Body realizar llamada

{
"from": "5215500000001",
"to": "5215500000002",
"type": "template",
"template": {
"language": "es",
"name": "test_call_to_action_04",
"components": [
{
"type": "body",
"parameters":
[
{
"type": "text",
"text": "now"
}
]
}
]
}
}


Acción de abrir URL

Plantilla con un botón de acción para abrir una URL. Con una URL estática no se envían parámetros; con una URL dinámica se envía un botón con subtype "url" cuyo parámetro de texto se agrega al prefijo de URL definido en la plantilla.

Ejemplo

Ejemplo completo de Acción de abrir URL (petición HTTP y cuerpo JSON):

Petición HTTP url estático

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": "template",
"template": {
"language": "es",
"name": "template_call_to_action"
}
}'

Body url estático

{
"from": "5215500000001",
"to": "5215500000002",
"type": "template",
"template": {
"language": "es",
"name": "template_call_to_action"
}
}

Petición HTTP url dinámico

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": "template",
"template": {
"language": "es",
"name": "template_example_account_button_call_to_action_url",
"components": [
{
"type": "button",
"subtype": "url",
"index": 0,
"parameters":
[
{
"type": "text",
"text": "producto_api.html"
}
]
}
]
}
}'

Body url dinámico

{
"from": "5215500000001",
"to": "5215500000002",
"type": "template",
"template": {
"language": "es",
"name": "template_example_account_button_call_to_action_url",
"components": [
{
"type": "button",
"subtype": "url",
"index": 0,
"parameters":
[
{
"type": "text",
"text": "producto_api.html"
}
]
}
]
}
}


Anterior
Multimedia y ubicación
Siguiente
WhatsApp Flows