Estructura Api’s Aldeamo
Texto
Headers
El usuario se autentica por medio de api_key en el encabezado “ApiKey” de la siguiente forma:
ApiKey = API_KEY
Adicionalmente se envía el ID del usuario con el encabezado “UserId”, de la siguiente forma:
UserId = UserId
Ejemplo de Headers:
La imagen a continuación ejemplifica los headers necesarios mencionados anteriormente.
URL para consumir el servicio de test:
https://apitellitwatest.aldeamo.com/v1/apikey/text/bsp/send
URL para consumir el servicio en producción:
https://apitellitwa.aldeamo.com/v1/apikey/text/bsp/send
Ejemplo de la petición:
Content-Type: application/json
JSON petición:
{
"from": "5730XXXXXXXX",
"to": "5731XXXXXXXX",
"type": "text",
"recipient_type": "individual",
"text": {
"body": "testing!!"
}
}
Parametros
Estos son los principales parámetros utilizados en las solicitudes de la API POST:
Nombre | Descripción |
---|---|
from | Obligatorio. Campo que contiene el número de origen. |
to | Obligatorio. Campo que contiene el número de destino. |
type | Obligatorio El tipo de mensaje que desea enviar. Valores admitidos: text - Por defecto. Utilizado en text. |
recipient_type | Opcional. El tipo de destinatario al que se envía el mensaje. Valor admitido: individual |
text | Necesario para los mensajes de text type. Contiene un text object. |
Body | Contiene el cuerpo del mensaje a enviar utilizado en text |
Esquema de la respuesta
Para reconocer que el envío del mensaje ha sido exitoso, obtendremos un status 200 ok y adicionalmente el identificador único del mensaje (messageUuid), todos los status estarán basados en los códigos de estados de HTTP.
Descripción de la respuesta:
{
"messageId": "a669add1-fb04-4da7-8d53-d76249a487dc"
}
En caso de estar mal algún dato de autenticación (ApiKey : API_KEY) , el servicio responde 401:
{
"errors": ["Authentication Error”],
}
En caso de faltar algún dato del request, el servicio responde 400:
{
"errors": ["Bad Request"],
}
Template
Headers
El usuario se autentica por medio de api_key en el encabezado “ApiKey” de la siguiente forma:
ApiKey = API_KEY
Adicionalmente, se envía el ID del usuario con el encabezado “UserId”, de la siguiente forma:
UserId = UserId
Ejemplo de Headers:
La imagen a continuación ejemplifica los headers necesarios mencionados anteriormente.
URL para consumir el servicio de test:
https://apitellitwatest.aldeamo.com/v1/apikey/template/bsp/send
URL para consumir el servicio en producción:
https://apitellitwa.aldeamo.com/v1/apikey/template/bsp/send
Ejemplo de la petición
Content-Type: application/json
JSON petición:
{
"from": "origin_wa_id",
"to": "recipient_wa_id",
"type": "template",
"template": {
"namespace": "your-namespace",
"language": {
"policy": "deterministic",
"code": "your-language-and-locale-code"
},
"name": "your-template-name",
"components": [
{
"type" : "header",
"parameters": [
# The following parameters code example includes several different possible header types,
# not all are required for a media message template API call.
{
"type": "text",
"text": "replacement_text"
}
# OR
{
"type": "document",
"document": {
"id": "your-media-id",
# filename is an optional parameter
"filename": "your-document-filename"
}
}
# OR
{
"type": "document"
,
"document": {
"link": "the
-provider
-name/protocol://the
-url"
,
# provider and filename are optional parameters
"provider": {
"name" : "provider
-name"
},
"filename": "your
-document
-filename"
}
}
# OR
{
"type": "video"
,
"video": {
"id": "your
-media
-id"
}
}
# OR
{
"type": "video"
,
"video": {
"link": "the
-provider
-name/protocol://the
-url"
# provider is an optional parameter
"provider": {
"name" : "provider
-name"
}
}
}
# OR
{
"type": "image"
,
"image": {
"link": "http(s)://the
-url"
,
# provider is an optional parameter
"provider": {
"name" : "provider
-name
},
}
}
]
# end header
},
{
"type" : "body"
,
"parameters":
[
{
"type": "text"
,
"text": "replacement_text"
},
{
"type": "currency"
,
"currency" : {
"fallback_value": "$100.99"
,
"code": "USD"
,
"amount_1000": 100990
}
},
{
"type": "date_time"
,
"date_time" : {
"fallback_value": "February 25, 1977"
,
"day_of_week":
5
,
"day_of_month": 25
,
"year": 1977
,
"month":
2
,
"hour": 15
,
"minute": 33, #OR
"timestamp": 1485470276
}
},
{
...
# Any additional template parameters
}
]
# end body
},
]
}
Ejemplo Plantilla con botones – Quick_Reply
{
"from"
:"573195XXXXXX"
,
"to": "57313700XXX"
,
"type": "template"
,
"template": {
"namespace": "f29c496f_9a16_408b_bff7_379e57d1c8d5",
"language": {
"policy": "deterministic",
"code": "es"
},
"name": "aldeamo_botones_autorespuesta",
"components": [
{
"type": "body",
"sub_type" : null,
"index": null,
"parameters": [
{
"type": "text",
"text": "William"
}
]
},
{
"type": "button",
"sub_type" : "quick_reply",
"index": "0",
"parameters": [
{
"type": "payload",
"payload":"1. Confirmar-Button-Payload"
}
]
},
{
"type": "button",
"sub_type" : "quick_reply",
"index": "1",
"parameters": [
{
"type": "payload",
"payload":"2. Confirmar-Button-Payload"
}
]
},
{
"type": "button",
"sub_type" : "quick_reply",
"index": "2",
"parameters": [
{
"type": "payload",
"payload":"3. Confirmar-Button-Payload"
}
]
}
]
}
}
Ejemplo Plantilla con botones – CallToAction
{
"from":"573188XXXXX",
"to": "573137XXXXXX",
"type": "template",
"template": {
"namespace": "f29c496f_9a16_408b_bff7_379e57d1c8d5",
"language": {
"policy": "deterministic",
"code": "es"
},
"name": "botones_accion_urldinamica",
"components": [
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "William"
}
]
},
{
"type": "button",
"sub_type": "url",
"index": "0",
"parameters": [
{
"type": "text",
"text": "sms"
}
]
}
]
}
}
Parámetros:
Estos son los principales parámetros utilizados en las solicitudes de la API POST:
Nombre | Descripción |
---|---|
from | Obligatorio. Campo que contiene el número de origen. |
to | Obligatorio. Campo que contiene el número de destino. |
type | Obligatorio El tipo de mensaje que desea enviar. Valores admitidos: ● text - Por defecto. Utilizado en text. |
template | Obligatorio. Se utiliza con las plantillas de mensajes. Contiene template object |
Objeto plantilla (Template)
Dentro de la plantilla, se pueden anidar los componentes y los objetos de lenguaje.
A partir de la versión 2.27.8, el espacio de nombres de una plantilla debe ser el espacio de nombres (namespace) asociado a la cuenta de WhatsApp Business que posee el número de teléfono del cliente actual de la API de WhatsApp Business, o el mensaje no se enviará.
Nombre | Descripción |
---|---|
namespace | Obligatorio. Espacio de nombres de la plantilla. |
name | Obligatorio. Nombre de la plantilla. |
language | Obligatorio. Contiene un objeto de idioma. Especifica el idioma en el que se puede renderizar la plantilla. Sólo la política de idioma determinista {deterministic} funciona con los mensajes de las plantillas de medios. |
components | Opcional. Matriz de objetos componentes que contienen los parámetros del mensaje. |
Nombre | Descripción |
---|---|
type | Obligatorio. Describe el tipo de componente. Valores: cabecera, cuerpo o botón. (header, body, or button) Para las plantillas basadas en texto, sólo se admite el type=body. |
parameters | Opcional. Matriz de objetos parámetro con el contenido del mensaje. |
Objeto de los parámetros (Parameters)
Nombre | Descripción |
---|---|
type | Describe el tipo de parámetro. Valores: text, currency, date_time, image, document, video Los tipos de medios (imagen, documento y vídeo) siguen el mismo formato que los utilizados en los mensajes de medios estándar, consulte la documentación de Medios para obtener más información. Actualmente sólo se admiten documentos PDF para las plantillas de mensajes multimedia. Para más información sobre la moneda y la fecha-hora, consulte la sección Parámetros localizables. Los parámetros currency y date_time para los mensajes de plantilla utilizan fallback_value en lugar del valor predeterminado. |
Esquema de la respuesta
Para reconocer que el envío del mensaje ha sido exitoso, obtendremos un status 200 ok y adicionalmente el identificador único del mensaje (messageUuid), todos los status estarán basados en los códigos de estados de HTTP.
Descripción de la respuesta:
En caso de todo estar todo correcto, el servicio responde:
{
"messageId": "71b512d7-b6ef-444d-b7b7-de2a042bc825"
}
En caso de estar mal algún dato de autenticación (ApiKey : API_KEY) ,el servicio responde 401:
{
"errors": ["Authentication Error"],
}
En caso de faltar algún dato del request el servicio responde 400:
{
"errors": ["Bad Request"],
}