Contacts and Location Messages
Use the message node to send contacts or location messages.
Sending Location Messages
To send location messages, make a POST call to the /messages endpoint and attach a message object with type=location. Then, add a location object.
POST https://waba-v2.360dialog.io/messages
Request Body
to*
string
Recipient wa_id
type*
string
Message type: location
messaging_product*
string
Required only for Cloud API.
Messaging service used for the request. Use "whatsapp".
A successful response includes an object with an identifier prefixed with wamid. Use the ID listed after wamid to track your message status.
{
"messaging_product": "whatsapp",
"contacts": [{
"input": "PHONE_NUMBER",
"wa_id": "WHATSAPP_ID",
}]
"messages": [{
"id": "wamid.ID",
}]
}POST https://waba-v2.360dialog.io/messages' \
{
"messaging_product": "whatsapp",
"to": "PHONE_NUMBER",
"type": "location",
"location": {
"longitude": LONG_NUMBER,
"latitude": LAT_NUMBER,
"name": LOCATION_NAME,
"address": LOCATION_ADDRESS
}
}'
Location Object
longitude
Required.
Longitude of the location.
latitude
Required.
Latitude of the location.
name
Required.
Name of the location.
address
Required.
Address of the location.
Sending Contacts Messages
To send contact messages, make a POST call to the /messages endpoint and attach a message object with type=contacts. Then, add a contacts object.
POST https://waba-v2.360dialog.io/messages
Request Body
to*
string
Recipient wa_id
type*
string
Message type: contacts
messaging_product*
string
Required for Cloud API.
Use "whatsapp".
{
"messaging_product": "whatsapp",
"contacts": [{
"input": "PHONE_NUMBER",
"wa_id": "WHATSAPP_ID",
}]
"messages": [{
"id": "wamid.ID",
}]
}POST https://waba-v2.360dialog.io/messages' \
{
"messaging_product": "whatsapp",
"to": "PHONE_NUMBER",
"type": "contacts",
"contacts": [{
"addresses": [{
"street": "STREET",
"city": "CITY",
"state": "STATE",
"zip": "ZIP",
"country": "COUNTRY",
"country_code": "COUNTRY_CODE",
"type": "HOME"
},
{
"street": "STREET",
"city": "CITY",
"state": "STATE",
"zip": "ZIP",
"country": "COUNTRY",
"country_code": "COUNTRY_CODE",
"type": "WORK"
}],
"birthday": "YEAR_MONTH_DAY",
"emails": [{
"email": "EMAIL",
"type": "WORK"
},
{
"email": "EMAIL",
"type": "HOME"
}],
"name": {
"formatted_name": "NAME",
"first_name": "FIRST_NAME",
"last_name": "LAST_NAME",
"middle_name": "MIDDLE_NAME",
"suffix": "SUFFIX",
"prefix": "PREFIX"
},
"org": {
"company": "COMPANY",
"department": "DEPARTMENT",
"title": "TITLE"
},
"phones": [{
"phone": "PHONE_NUMBER",
"type": "HOME"
},
{
"phone": "PHONE_NUMBER",
"type": "WORK",
"wa_id": "PHONE_OR_WA_ID"
}],
"urls": [{
"url": "URL",
"type": "WORK"
},
{
"url": "URL",
"type": "HOME"
}]
}]
}Contacts Object
Inside contacts, you can nest the following objects: addresses, emails, name, org, phone, and urls. Pluralized objects are to be wrapped in an array as shown in the example below.
addresses
object
Optional.
Full contact address(es) formatted as an addresses object.
The object can contain the following fields:
streetstring – Optional. Street number and name.
citystring – Optional. City name.
statestring – Optional. State abbreviation.
zipstring – Optional. ZIP code.
countrystring – Optional. Full country name.
country_codestring – Optional. Two-letter country abbreviation.
typestring – Optional. Standard values are HOME and WORK.
birthday
Optional.
YYYY-MM-DD formatted string.
emails
object
Optional.
Contact email address(es) formatted as an emails object.
The object can contain the following fields:
emailstring – Optional. Email address.
typestring – Optional. Standard values are HOME and WORK.
name
object
Required.
Full contact name formatted as a name object.
The object can contain the following fields:
formatted_namestring – Required. Full name, as it normally appears.
first_namestring – Optional*. First name.
last_namestring – Optional*. Last name.
middle_namestring – Optional*. Middle name.
suffixstring – Optional*. Name suffix.
prefixstring – Optional*. Name prefix.
*At least one of the optional parameters needs to be included along with the formatted_name parameter.
org
object
Optional.
Contact organization information formatted as an org object.
The object can contain the following fields:
companystring – Optional. Name of the contact's company.
departmentstring – Optional. Name of the contact's department.
titlestring – Optional. Contact's business title.
phones
object
Optional.
Contact phone number(s) formatted as a phone object.
The object can contain the following fields:
phonestring – Optional. Automatically populated with the `wa_id` value as a formatted phone number.
typestring – Optional. Standard Values are CELL, MAIN, IPHONE, HOME, and WORK.
wa_idstring – Optional. WhatsApp ID.
urls
object
Optional.
Contact URL(s) formatted as a urls object.
The object can contain the following fields:
urlstring – Optional. URL.
typestring – Optional. Standard values are HOME and WORK.
Example of a contacts object with pluralized objects nested inside:
"contacts": [
{
"addresses": [
{
"city": "city name",
"country": "country name",
"country_code": "code",
"state": "Contact's State",
"street": "Contact's Street",
"type": "Contact's Address Type",
"zip": "Contact's Zip Code"
}
],
"birthday": "birthday",
"emails": [
{
"email": "email",
"type": "HOME"
},
{
"email": "email",
"type": "WORK"
}
],
"name": {
"first_name": "first name value",
"formatted_name": "formatted name value",
"last_name": "last name value",
"suffix": "suffix value"
},
"org": {
"company": "company name",
"department": "dep name",
"title": "title"
},
"phones": [
{
"phone": "Phone number",
"wa-id": "WA-ID value",
"type": "MAIN"
},
{
"phone": "Phone number",
"type": "HOME"
},
{
"phone": "Phone number",
"type": "WORK"
}
],
"urls": [{
"url": "some url",
"type": "WORK"
}]
}
]How to block contacts
The Block Users API enables businesses block bad numbers from contacting the account.
When a WhatsApp user is blocked, the following happens:
The user cannot contact the business or see that they are online.
The business cannot message the user. If so, an error will occur.
Errors on the API occur per-number, since blocks might be successful on some numbers and not others. The Block Users API is synchronous.
To block a contact, you must have received a message from them within the last 24 hours.
To block a contact, please ask your ISV Partner to use this API endpoint.
Last updated
Was this helpful?