WHATSAPP¶
Sending¶
To send WhatsApp messages it is required to:
- Agree on sender's name in personal account.
- Call POST /whatsapp/messages, sending message parameters in the request body with the authorization data in the header.
Request parameters¶
| Parameter | Data type | Description |
|---|---|---|
| messages | array[Message] | Messages array. |
Message¶
| Parameter | Data type | Description |
|---|---|---|
| from | string | Approved sender’s name. |
| to | string | Phone number in international format, according to E.164 standard. |
| text (optional) |
string | Message text. Maximum length is 4096 characters. |
| address (optional) |
string | User address. |
| addressName (optional) |
string | The name of the user's address. |
| addressUrl (optional) |
string | The user's address URL. |
| callbackData (optional) |
object | An object with the data which will be specified in the callback with the message status. Any |
| callbackUrl (optional) |
string | The URL to which the system will send notifications about message status changes. Any valid URL with the |
| contentName (optional) |
string | Content title. Maximum length is 100 characters. |
| contentType (optional) |
MIME Type | Content MIME Type. An existing MIME Type. |
| contentUrl (optional) |
string | Content URL. Any valid URL with HTTP or HTTPS scheme. |
| languageCode (optional) |
string | Language code. The default is en. |
| latitude (optional) |
float | Latitude. |
| longitude (optional) |
float | Longitude. |
| templateButtonParams (optional) |
TemplateButtonParamList | Options for interactive buttons in the message. |
| templateId (optional) |
string | The ID of the template in the provider's system. |
| templateParams (optional) |
object | A set of parameters to fill with a pattern, where the key is the position number of the value. Attention! In values it is not allowed to use: line breaks, tabs and 4 spaces in a row. |
| whatsAppContacts (optional) |
Contact | Contact information. |
Contact¶
| Parameter | Data type | Description |
|---|---|---|
| name | object | Full contact name (ContactName object). |
| addresses (optional) |
array[object] | Full contact addresses (ContactAddress object). |
| birthday (optional) |
string | YYYY-MM-DD formatted string. |
| emails (optional) |
array[object] | Contact email addresses (ContactEmail object). |
| org (optional) |
object | Contact organization information (ContactCompany object). |
| phones (optional) |
array[object] | Contact phone number (ContactPhone object). |
| urls (optional) |
array[object] | Contact URL (ContactUrl object). |
ContactName¶
Note
At least one of the optional parameters needs to be included along with the formatted_name parameter.
| Parameter | Data type | Description |
|---|---|---|
| formatted_name | string | Full name, as it normally appears. |
| first_name (optional) |
string | First name. |
| last_name (optional) |
string | Last name. |
| middle_name (optional) |
string | Middle name. |
| suffix (optional) |
string | Name suffix. |
| prefix (optional) |
string | Name prefix. |
ContactAddress¶
| Parameter | Data type | Description |
|---|---|---|
| street (optional) |
string | Street name and house number. |
| city (optional) |
string | City name. |
| state (optional) |
string | State abbreviation. |
| zip (optional) |
string | ZIP code. |
| country (optional) |
string | Full country name. |
| country_code (optional) |
string | Two-letter country abbreviation. |
| type (optional) |
string | Standard values: HOME, WORK. |
ContactEmail¶
| Parameter | Data type | Description |
|---|---|---|
| email (optional) |
string | Email address. |
| type (optional) |
string | Standard values: HOME, WORK. |
ContactCompany¶
| Parameter | Data type | Description |
|---|---|---|
| company (optional) |
string | Name of the contact's company. |
| department (optional) |
string | Name of the contact's department. |
| title (optional) |
string | Contact's job title. |
ContactPhone¶
| Parameter | Data type | Description |
|---|---|---|
| phone (optional) |
string | Automatically populated with the wa_id value as a formatted phone number. |
| type (optional) |
string | Standard Values:CELL, MAIN, IPHONE, HOME, WORK. |
| wa_id (optional) |
string | WhatsApp ID. |
ContactUrl¶
| Parameter | Data type | Description |
|---|---|---|
| url (optional) |
string | Contact URL. |
| type (optional) |
string | Standard values: HOME, WORK. |
TemplateButtonParamList¶
Attention
The name of the objects in the templateButtonParams array is the name of your button, as specified in the template.
| Parameter | Data type | Description |
|---|---|---|
| parameters | TemplateButtonParam | Button options. |
| parameters.payload (optional) |
string | The text message that will be sent to the chat when the button is clicked. For QUICK_REPLY buttons. |
| parameters.text (optional) |
string | The suffix that is added to the button's URL. For URL buttons. |
| parameters.type | string | One of the parameter types is specified: PAYLOAD or TEXT, depending on the button type. |
| subType | string | Button type. Possible values: |
MIME Type¶
| Media | Supported content type |
File extensions | Size restrictions | Comment |
|---|---|---|---|---|
audio |
audio/accaudio/mp4audio/amraudio/mpeg |
.acc.mp4.mp4a.amr.mpeg |
16Mb | codecs=opus |
voice |
audio/ogg |
.ogg |
16 Mb | Audio recorded on the device.
|
document |
any valid MIME Type | 100 Mb | ||
image |
image/jpegimage/png |
.jpeg.jpg.png |
5 Mb | GIFs will be automatically converted to MP4 videos by WhatsApp. Images with a transparent background are not supported. |
video |
video/mp4video/3gpp |
.mp4.3gp.3g2 |
16 Mb | Only H.264 video codec and AAC audio codec are supported. Only videos with one audio stream or without audio stream are supported. |
Request example¶
[
{
"from": "MyCompany",
"to": "79034567890",
"text": "Code: 1234"
},
{
"from":"MyCompany",
"to":"79034567888",
"templateId": "account_activated",
"templateParams":{
"1": "+7(495) 646 00 54",
"2": "https://devino.online"
},
"languageCode": "ru",
"callbackUrl":"https://test_callback_url.site"
}
]
Response parameters¶
| Parameter | Data type | Description |
|---|---|---|
| code | string | Shows the result of message processing. 1. |
| messageId (optional) |
string | Message ID. To be given with "code": "OK" only. |
| reasons (optional) |
array[string, string] | An array of the errors that occurred while processing the message. To be given with "code": "REJECTED" only. |
| reasons.key | string | Error code. |
| reasons.ref (optional) |
string | A reference to the parameter where the error has occurred. |
Error codes¶
| Key | Ref | Description |
|---|---|---|
| invalid | messages[i].to | The phone number is incorrect. |
| invalid | messages[i].callbackUrl | The URL is not in the HTTP or HTTPS format. |
| invalid | messages[i].templateButtonParams | The text parameter cannot be empty. |
| invalid | messages[i].templateButtonParams | The payload parameter cannot be empty. |
| invalid | messages[i].languageCode | The language code is incorrect. |
Response examples¶
{
"result": [
{
"code": "OK",
"messageId": "3482512350952730368"
}
]
}
{
"result": {
"code":"REJECTED",
"messageId":null,
"reasons": [
{
"key":"invalid.to",
"ref":"to"
}
]
}
}
Incoming messages¶
How to enable
To enable incoming messages from users, contact your account manager or technical support. You will also need to provide the URL of a web-server for processing incoming messages.
Parameters¶
| Parameter | Data type | Description |
|---|---|---|
| incomingMessageId | integer | Incoming message ID. |
| to | string | The receiver's profile name. |
| from | string | The sender's phone number. |
| text | string | Message text. |
| profileName | string | The sender's profile name. |
| ts | integer | The time the message was received (timestamp) in milliseconds. |
Example¶
{
"incomingMessageId": 2834738753045023457,
"to": "BusinessProfile",
"from": "799900000000",
"text": "Hello!",
"profileName": "UserName",
"ts": 1670844823000
}
Callbacks¶
How to enable
To set up callbacks with message statuses, please contact your account manager or technical support.
Possible statuses¶
| Code | Description |
|---|---|
| SENT | The message has been sent. |
| EXPIRED | The lifetime of the message has expired. |
| DELIVERED | The message has been delivered to the user. |
| SEEN | The message has been read by the user. |
| REJECTED | The message has been rejected by the operator or the message sending limit has been exceeded. |
| UNDELIVERABLE | The message has been rejected by the operator or the message template is missing. |
Callback example¶
[
{
"messageId": 1,
"ts": 1636976602504,
"status": "DELIVERED",
"errorCode": 0,
"callbackData": "string"
}
]