Contacts messages allow you to send rich contact information directly to WhatsApp users, such as names, phone numbers, physical addresses, and email addresses.
When a WhatsApp users taps the message's profile arrow, it displays the contact's information in a profile view:
Each message can include information for up to 257 contacts, although it is recommended to send fewer for usability and negative feedback reasons.
Use the POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/messages endpoint to send a contacts message to a WhatsApp user.
POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/messages
{ "messaging_product": "whatsapp", "to": "<WHATSAPP_USER_PHONE_NUMBER>", "type": "contacts", "contacts": [ { "addresses": [ { "street": "<STREET_NUMBER_AND_NAME>", "city": "<CITY>", "state": "<STATE_CODE>", "zip": "<ZIP_CODE>", "country": "<COUNTRY_NAME>", "country_code": "<COUNTRY_CODE>", "type": "<ADDRESS_TYPE>" } /* Additional addresses objects go here, if using */ ], "birthday": "<BIRTHDAY>", "emails": [ { "email": "<EMAIL_ADDRESS>", "type": "<EMAIL_TYPE>" } */ Additional emails objects go here, if using */ ], "name": { "formatted_name": "<FULL_NAME>", "first_name": "<FIRST_NAME>", "last_name": "<LAST_NAME>", "middle_name": "<MIDDLE_NAME>", "suffix": "<SUFFIX>", "prefix": "<PREFIX>" }, "org": { "company": "<COMPANY_OR_ORG_NAME>", "department": "<DEPARTMENT_NAME>", "title": "<JOB_TITLE>" }, "phones": [ { "phone": "<PHONE_NUMBER>", "type": "<PHONE_NUMBER_TYPE>", "wa_id": "<WHATSAPP_USER_ID>" } /* Additional phones objects go here, if using */ ], "urls": [ { "url": "<WEBSITE_URL>", "type": "<WEBSITE_TYPE>" }, /* Additional URLs go here, if using */ ] } ] }
Placeholder | Description | Example Value |
---|---|---|
String | Optional. Type of address, such as home or work. |
|
String | Optional. Contact's birthday in YYYY-MM-DD format. |
|
String | Optional. City where the contact resides. |
|
String | Optional. Name of the company where the contact works. |
|
String | Optional. ISO two-letter country code. |
|
String | Optional. Country name. |
|
String | Optional. Department within the company. |
|
String | Optional. Email address of the contact. |
|
String | Optional. Type of email, such as personal or work. |
|
String | Optional. Contact's first name. |
|
String | Required. Contact's formatted name. This will appear in the message alongside the profile arrow button. |
|
String | Optional. Contact's job title. |
|
String | Optional. Contact's last name. |
|
String | Optional. Contact's middle name. |
|
String | Optional. WhatsApp user phone number. |
|
String | Optional. Type of phone number. For example, cell, mobile, main, iPhone, home, work, etc. |
|
String | Optional. Prefix for the contact's name, such as Mr., Ms., Dr., etc. |
|
String | Optional. Two-letter state code. |
|
String | Optional. Street address of the contact. |
|
String | Optional. Suffix for the contact's name, if applicable. |
|
String | Optional. Type of website. For example, company, work, personal, Facebook Page, Instagram, etc. |
|
String | Optional. Website URL associated with the contact or their company. |
|
String | Optional. WhatsApp user ID. If omitted, the message will display an Invite to WhatsApp button instead of the standard buttons. See Button Behavior below. |
|
String | Required. WhatsApp user phone number. |
|
String | Optional. Postal or ZIP code. |
|
If you include the contact's WhatsApp ID in the message (via the wa_id
property), the message will include a Message and a Save contact button:
If the WhatsApp user taps the Message button, it will open a new message with the contact. If the user taps the Save contact button, they will be given the option to save the contact as a new contact, or to update an existing contact.
If you omit the wa_id
property, both buttons will be replaced with an Invite to WhatsApp button:
Example request to send a contacts message with two physical addresses, two email addresses, two phone numbers, and two website URLs.
curl 'https://graph.facebook.com/v21.0
/106540352242922/messages' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
--data-raw '
{
"messaging_product": "whatsapp",
"to": "+16505551234",
"type": "contacts",
"contacts": [
{
"addresses": [
{
"street": "1 Lucky Shrub Way",
"city": "Menlo Park",
"state": "CA",
"zip": "94025",
"country": "United States",
"country_code": "US",
"type": "Office"
},
{
"street": "1 Hacker Way",
"city": "Menlo Park",
"state": "CA",
"zip": "94025",
"country": "United States",
"country_code": "US",
"type": "Pop-Up"
}
],
"birthday": "1999-01-23",
"emails": [
{
"email": "bjohnson@luckyshrub.com",
"type": "Work"
},
{
"email": "bjohnson@luckyshrubplants.com",
"type": "Work (old)"
}
],
"name": {
"formatted_name": "Barbara J. Johnson",
"first_name": "Barbara",
"last_name": "Johnson",
"middle_name": "Joana",
"suffix": "Esq.",
"prefix": "Dr."
},
"org": {
"company": "Lucky Shrub",
"department": "Legal",
"title": "Lead Counsel"
},
"phones": [
{
"phone": "+16505559999",
"type": "Landline"
},
{
"phone": "+19175559999",
"type": "Mobile",
"wa_id": "19175559999"
}
],
"urls": [
{
"url": "https://www.luckyshrub.com",
"type": "Company"
},
{
"url": "https://www.facebook.com/luckyshrubplants",
"type": "Company (FB)"
}
]
}
]
}'
{ "messaging_product": "whatsapp", "contacts": [ { "input": "+16505551234", "wa_id": "16505551234" } ], "messages": [ { "id": "wamid.HBgLMTY0NjcwNDM1OTUVAgARGBI1RjQyNUE3NEYxMzAzMzQ5MkEA" } ] }