Envío de mensajes

Las llamadas para la API de Sinch Messaging son enviadas a https://api-messaging.wavy.global/v1/whatsapp/send en formato POST independientemente del tipo de mensaje, pero el contenido del cuerpo del mensaje JSON puede variar para cada tipo de mensaje.

El cuerpo de la solicitud debe contener un objeto JSON con los siguientes campos:

CampoNecesarioDetallesTipo

destinations

Si

Lista de destinatarios

Destination

message

Si

Mensaje de texto que se enviará a la lista de destinatarios

Message

flowId

No

Identificación del flujo de Bot

String

defaultExtraInfo

No

Los datos adicionales que identifican el envío, se vincularán a todos los destinatarios que recibirán el mensaje

String

campaignAlias

No

ID de campaña, está vinculado a todos los mensajes del envío

String

Destino:

CampoNecesarioDetallesTipo

correlationId

No

Su id definido sera devuelto en un mensaje de confirmación (Callback). Esto será útil en casos en que se desea mantener el control del mensaje enviado, ya que es posible definir ids diferentes para mensajes distintos.

String

destination

Si

Número de teléfono (código de país y estado deben estar presentes) al que se enviará el mensaje. Ejemplos: 5411900001111, +5720900001111, +56 (56) 900001111.

String

Mensaje:

CampoNecesarioDetallesTipo

messageText

Si

Campo utilizado en caso de que desee enviar un mensaje personalizado como respuesta a un mensaje recibido.

text

image

Si

Campo utilizado en caso de que desee enviar un contenido de imagen.

Image

audio

Si

Campo utilizado en caso de que desee enviar un contenido de audio.

Audio

document

Si

Campo utilizado en caso de que desee enviar un archivo o documento.

Document

contacts

Si

Campo utilizado en caso de que desee enviar contactos.

Contact[]

previewFirstUrl

No

Controla la vista previa de la aplicación de la primera URL enviada

Boolean

location

Si

Campo utilizado en caso de que desee enviar una ubicacion.

Location

Solo una de las siguientes opciones de midia debe ser especificado, ya sea ‘messageText’, ‘image’, ‘audio’, ‘document’, ‘location’ o ‘contacts’

Solo se debe enviar un mensaje personalizado como respuesta a un mensaje recibido por el usuario siempre cuando la sesión se encuentre abierta. Si la sesión no está abierta o el usuario no envió un mensaje deberá utilizase el Template.

Los siguientes tipos de envío solo se entregarán con éxito dentro de la ventana de servicio (24 horas)

Texto:

CampoObrigatórioDetalhesTipo

messageText

Si

Texto que se enviará al usuario.

Ejemplo de envío de texto

 {
            "destinations": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "messageText": "Mensaje de prueba"
            }
        }

Imagen:

CampoNecesarioDetallesTipo

type

Si

Tipo / extensión de la imagen que se enviará en el mensaje. Opciones disponibles: JPG, JPEG, PNG.

String

caption

No

Texto que se mostrara al usuario debajo de la imagen en Whatsapp

String

url

Si

URL donde se aloja el contenido que se enviará.

String

data

Si

Base64 contenido codificado

String

Solo se debe especificar una de las siguientes opciones, ya sea ‘url’, en caso de que desee enviar usando un archivo, o ‘datos’, en caso de que desee enviar una imagen usando la codificación base64

Ejemplo de envío de imagen (URL)

 {
            "destinations": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "image": {
                    "type": "JPG",
                    "url": "http://...jpg",
                    "caption": "image description"
                }
            }
        }

Ejemplo de envío de imagen (Base64)

{
           "destinations": [{
               "correlationId": "MyCorrelationId",
               "destination": "5519900001111"
           }],
           "message": {
               "image": {
                   "type": "JPG",
                   "data": "ZmlsZQ=="
               }
           }
       }

Audio:

CampoNecesarioDetallesTipo

type

Si

Tipo/Extensión de audio que se enviará en el mensaje. Opciones disponibles: AAC, MP4, AMR, MP3, OGG.

String

url

Si

URL donde se aloja el contenido que se enviará.

String

data

Si

Base64 contenido codificado

String

Solo se debe especificar una de las siguientes opciones, ya sea ‘url’, en caso de que desee enviar usando un archivo, o ‘datos’, en caso de que desee enviar un audio usando la codificación base64.

Ejemplo de envío de audio (URL)

  {
            "destinations": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "audio": {
                    "type": "MP3",
                    "url": "http://...mp3"
                }
            }
        }

Ejemplo de envío de audio

{
            "destinations": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "audio": {
                    "type": "MP3",
                    "data": "ZmlsZQ=="
                }
            }
        }

Contact:

CampoNecesarioDetallesTipo

addresses

No

Direcciones de contacto completas.

Address[]

birthday

No

Fecha de cumpleaños como cadena con formato YYYY-MM-DD.

String

emails

No

Direcciones de correo electrónico de contacto.

Email[]

name

Nombre completo de contacto.

Name

org

No

Información de la organización de contacto.

Org

phones

No

Teléfonos de contacto.

Phone[]

urls

No

URLs de los contactos.

Url[]

Ejemplo de envio de contactos

{  
           "destinations":[  
              {  
                 "correlationId":"MyCorrelationId",
                 "destination":"5519900001111"
              }
           ],
           "message":{  
              "contacts":[  
                 {  
                    "addresses":[  
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"1 Hacker Way",
                          "type":"HOME",
                          "zip":"94025"
                       },
                       {  
                          "city":"Menlo Park",
                          "country":"United States",
                          "country_code":"us",
                          "state":"CA",
                          "street":"200 Jefferson Dr",
                          "type":"WORK",
                          "zip":"94025"
                       }
                    ],
                    "birthday":"2012-08-18",
                    "emails":[  
                       {  
                          "email":"test@fb.com",
                          "type":"WORK"
                       },
                       {  
                          "email":"test@whatsapp.com",
                          "type":"WORK"
                       }
                    ],
                    "name":{  
                       "first_name":"John",
                       "formatted_name":"John Smith",
                       "last_name":"Smith"
                    },
                    "org":{  
                       "company":"WhatsApp",
                       "department":"Design",
                       "title":"Manager"
                    },
                    "phones":[  
                       {  
                          "phone":"+1 (940) 555-1234",
                          "type":"HOME"
                       },
                       {  
                          "phone":"+1 (650) 555-1234",
                          "type":"WORK",
                          "wa_id":"16505551234"
                       }
                    ],
                    "urls":[  
                       {  
                          "url":"https://www.fb.com",
                          "type":"WORK"
                       }
                    ]
                 }
              ]
           }
        }

Address:

CampoNecesarioDetallesTipo

street

No

Número y nombre de la calle.

String

city

No

Nombre de la ciudad.

String

state

No

Abreviatura del estado.

String

zip

No

Código postal.

String

country

No

Nombre completo del país.

String

country_code

No

Abreviatura de país de dos letras.

String

type

No

Valores estándar: HOME, WORK.

String

Email:

CampoNecesarioDetallesTipo

email

No

Correo electrónico.

String

type

No

Valores estándar: HOME, WORK.

String

Name:

CampoNecesarioDetallesTipo

first_name

No

Primer nombre.

String

last_name

No

Apellido.

String

middle_name

No

Segundo nombre.

String

name_suffix

No

Sufijo del nombre.

String

name_prefix

No

Prefijo del nombre.

String

formatted_name

Nombre completo como aparece normalmente.

String

Org:

CampoNecesarioDetallesTipo

company

No

Nombre de la empresa del contacto.

String

department

No

Nombre del departamento de contacto.

String

title

No

Título comercial de contacto.

String

Phone:

CampoNecesarioDetallesTipo

phone

No

Número de teléfono formateado.

String

type

No

Valores estándar: CELL, MAIN, IPHONE, HOME, WORK.

String

wa_id

No

Identificador de WhatsApp.

String

Url:

CampoNecesarioDetallesTipo

phone

No

URL del contacto.

String

type

No

Valores estándar: HOME, WORK.

String

Para los objetos que contienen un campo de tipo, los valores listados se consideran simplemente los valores estándar que se pueden ver, sin embargo, puede establecer el campo en cualquier valor descriptivo que elija.

Si aún no tiene una plantilla creada y aprobada para su uso, consulte la documentación en Template de WhatsApp para obtener más información sobre cómo hacerlo. El cuerpo de la solicitud debe contener un objeto JSON con los siguientes campos:

FieldRequiredDetailsType

destinations

Si

Detalles sobre los identificadores de envío y destino

Destination[]

message

Si

Detalles sobre el objeto MENSAJE que se enviará

message

defaultExtraInfo

No

Los datos adicionales que identifican el envío, se vincularán a todos los destinatarios que recibirán el mensaje

String

campaignAlias

No

ID de campaña, está vinculado a todos los mensajes del envío

String

Ejemplo de solicitud template

{
  {
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
  }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_image_hsm"
    },
    {  
            "languagePolicy": "DETERMINISTIC",
            "languageCode": "pt_BR"
      }
    }
    }
}

destinations:

FieldRequiredDetailsType

correlationId

No

Id definido por el cliente que se devolverá en el estado del mensaje (devolución de llamada). Puede usar esta identificación para rastrear mensajes enviados de manera personalizada.

String

destination

Si

Número de teléfono que recibirá el mensaje (el código de país y DDD son obligatorios). Ejemplos: 5519900001111, +5519900001111, +55 (19) 900001111.

String

message:

CampoObrigatórioDetalhesType

template

Si

Detalles sobre el objeto TEMPLATE que se enviará.

Template

template:

FieldRequiredDetailsType

elementName

Si

Nombre del Template registrado y aprobado.

String

header

Si, cuando el Template tiene un parámetro en el encabezado (header)

Objetos del encabezado (header) con sus parámetros

Header

bodyParameters

Si (cuando el Template tiene parámetros)

La suma de todos los caracteres en el cuerpo, considerando campos fijos y dinámicos, está limitada a 1024 caracteres si el modelo registrado solo tiene el cuerpo. Está limitado a 160 caracteres si tiene un encabezado o pie de página.

Lista de strings

languageCode

Sí, cuando hay más de un idioma registrado para la misma plantilla.

Codes: pt_BR, en, es, en_US, en_GB, pt_PT, es_AR, es_ES, es_MX, it, fr

String

Buttons

Sí (Cuando hay)

Los botones aprobados de la plantilla.

Buttons

FieldRequiredDetailsType

parameters

Opcional

Lista de parámetros que serán reemplazados en el texto del encabezado. Nota: En el caso de que esté presente el encabezado no debe tener título ni elemento alguno.

String

title

Opcional

El título debe tener hasta 60 caracteres

String

(element)

Si

Opciones: text (patrón), image, audio, document, video.

Object

element:

FieldRequiredDetailsType

url

Si

URL del archivo multimedia. Usar únicamente con URLs HTTP/HTTPS.

String

type

Si

Tipo de archivo multimedia (JPEG, MP3, PDF, etc)

String

Ejemplo de solicitud template con Header y Parámetro

{
  {
    "destinations": [{
            "correlationId": "MyCorrelationId",
            "destination": "5519900001111"      
  }],
    "message": {
        "template": {
            "namespace" : "aaaaaaaa_bbbb_cccc_dddd_eeeeeeeeeeee",
            "elementName" : "some_approved_image_hsm",
            "header": {
                "parameters": [
                    "header_parameter_1"
                ]
            },
            "bodyParameters": [
                "https://upload.wikimedia.org/wikipedia/commons/c/c3/Arquivo.jpg"
            ],
            "languagePolicy": "DETERMINISTIC",
            "languageCode": "pt_BR"
        }
    }
}

Last updated