Contacts and Location Messages
Use the message node to send contacts or location messages.
You can only send a contact or location message up until 24 hours after receiving a message from the user. If you have not received a message from the user within this time, you will need to start a new conversation by sending a Template message.
Before sending a message to a number, you can check contact availability alongside preloading contact information before sending a message to the number. We recommend the preloading of contact information before sending messages in large volumes, for improved performance. You can find more information about this process in the official WhatsApp documentation.
Starting in v2.39 and above, you do not have to call the contacts node before sending a message sending a message.
Regardless of whether a user has WhatsApp, it will always return valid for status in the response and a wa_id. There is no guarantee that the returned wa_id will be valid. These changes are applicable for both direct responses, as well as webhook responses for non-blocking calls Ensure your code avoids relying on status and wa_id returned in the contacts node.
post
https://waba.360dialog.io
/v1/contacts
Check Contacts Endpoint
{
"blocking": "wait",
"contacts": [
"+55123456789"
],
"force_check": true
}
{
"contacts": [
{
"input": "+55123456789",
"status": "valid",
"wa_id": "55123456789"
}
],
"meta": {
"api_status": "stable",
"version": "2.35.4"
}
}
The response will contain a wa_id. You may use this or another valid wa_id when sending messages using the below request(s).
To block a contact, you must have received a message from them within the last 24 hours.
Submit an API call to
/v1/contacts/{phone_number}/block
with a reason for blocking another business account.POST / v1 / contacts /+ 16315551000 / block
{ "reason" : "Optional string(0;60). Freeform block reason. Will be used when another business account is being blocked" }
When successful, the response will have HTTP status
200
and will come without the "errors" object. The failed response looks like this:{ "errors" : [ { "code" : 2048 , "title" : "Not engaged contact" , "details" : "Invalid Request. This contact has not engaged with you in the last 24 hrs." } ] }
The following parameters are supported by POST calls to
/v1/contacts/{phone_number}/block
:Settings | Description |
---|---|
reason | Optional. Blocking reason in free text format. It will be used during the process of blocking another business account. Must be less than 60 characters. |
phone_number | Mandatory. Numbers can be in any phone number format. The recommended format for contact phone numbers includes a plus sign (+) and country code. |
To unblock a contact, send an API call to
/v1/contacts/{phone_number}/unblock
POST / v1 / contacts /+ 16315551000 / unblock
When successful, the response will have HTTP status
200
and will come without the "errors" object.The failed response looks like this:
{ "errors" : [ { "code" : 1009 , "title" : "Parameter value is not valid" , "details" : "Provided WhatsApp ID is not valid. Please provide a valid WhatsApp ID or a phone number with a country code" } ] }
The following parameters are supported by POST calls to
/v1/contacts/{phone_number}/unblock
:Settings | Description |
---|---|
phone_number | Mandatory. Numbers can be in any phone number format. The recommended format for contact phone numbers includes a plus sign (+) and country code. |
Here's how to get a list of your blocked contacts.
Send an API call to
/v1/contacts/blocklist
to receive a paginated list of your blocked contacts.GET / v1 / contacts / blocklist ? limit = 10 & offset = 0
You will receive a response with a page from your block list and paging information.
{ "contacts" : [ { "wa_id" : "[email protected]" } ], "pagination" : { "limit" : 10 , "offset" : 0 , "total" : 1 } }
The following parameters are supported for GET calls to
/v1/contacts/blocklist
:Settings | Description |
---|---|
limit | Optional. Accepted range is (0;200]. Default: 100. |
offset | Optional. Default: 0. |
To report a contact, you must have received a message from them within the last 24 hours.
Send an API call to
/v1/contacts/{phone_number}/report
including a reason if you are blocking another business account.POST / v1 / contacts /+ 16315551000 / block
{ "reason" : "Optional string(0;60). Freeform block reason. Will be used when another business account is being blocked" , "block" : "true | false optional boolean with default of false" , "message_id" : "message-id. Optional reported message id" }
When successful, the response will have HTTP status
200
and will come without the "errors" object.The failed response looks like this:
{ "errors" : [ { "code" : 2048 , "title" : "Not engaged contact" , "details" : "Invalid Request. This contact has not engaged with you in the last 24 hrs." } ] }
The following parameters are supported by POST calls to
/v1/contacts/{phone_number}/report
:Settings | Description |
---|---|
reason | Optional. Blocking reason in free text format. It will be used during the process of blocking another business account. Must be less than 60 characters. |
block | Optional. The default is False .If you just want to report or also block the contact. |
message_id | Optional. The ID of the message to be reported. If not specified, the last 5 messages will be sent to WhatsApp. |
phone_number | Mandatory. Numbers can be in any phone number format. The recommended format for contact phone numbers includes a plus sign (+) and country code. |
Currently, it is not possible to block or unblock contacts in the Cloud API. Please refer to Meta's Support regarding this limitation.
If you block a number in On-premise and then migrate to Cloud API, the number will remain blocked without the option to unblock it.
Last modified 1mo ago