On Message Received - Sent by Me
curl --request PUT \
--url https://api.z-api.io/instances/{instanceId}/token/{token}/update-webhook-received-delivery \
--header 'Client-Token: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"value": "<string>"
}
'import requests
url = "https://api.z-api.io/instances/{instanceId}/token/{token}/update-webhook-received-delivery"
payload = { "value": "<string>" }
headers = {
"Client-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Client-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({value: '<string>'})
};
fetch('https://api.z-api.io/instances/{instanceId}/token/{token}/update-webhook-received-delivery', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.z-api.io/instances/{instanceId}/token/{token}/update-webhook-received-delivery",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'value' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Client-Token: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.z-api.io/instances/{instanceId}/token/{token}/update-webhook-received-delivery"
payload := strings.NewReader("{\n \"value\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Client-Token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.z-api.io/instances/{instanceId}/token/{token}/update-webhook-received-delivery")
.header("Client-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"value\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.z-api.io/instances/{instanceId}/token/{token}/update-webhook-received-delivery")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Client-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"value\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyWebhooks
On Message Received - Sent by Me
Webhook callback for received messages
PUT
/
instances
/
{instanceId}
/
token
/
{token}
/
update-webhook-received-delivery
On Message Received - Sent by Me
curl --request PUT \
--url https://api.z-api.io/instances/{instanceId}/token/{token}/update-webhook-received-delivery \
--header 'Client-Token: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"value": "<string>"
}
'import requests
url = "https://api.z-api.io/instances/{instanceId}/token/{token}/update-webhook-received-delivery"
payload = { "value": "<string>" }
headers = {
"Client-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Client-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({value: '<string>'})
};
fetch('https://api.z-api.io/instances/{instanceId}/token/{token}/update-webhook-received-delivery', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.z-api.io/instances/{instanceId}/token/{token}/update-webhook-received-delivery",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'value' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Client-Token: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.z-api.io/instances/{instanceId}/token/{token}/update-webhook-received-delivery"
payload := strings.NewReader("{\n \"value\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Client-Token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.z-api.io/instances/{instanceId}/token/{token}/update-webhook-received-delivery")
.header("Client-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"value\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.z-api.io/instances/{instanceId}/token/{token}/update-webhook-received-delivery")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Client-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"value\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyThe
ReceivedCallback webhook can be configured in two ways: receiving only messages sent by other users, or also receiving messages sent by you.When you configure the webhook through the
On Message Received - Sent by Me endpoint, the API automatically starts giving priority to the URL configured there. This means that even if you already have a webhook configured on the On Message Received endpoint, it remains saved, but stops being used while this one is active.To go back to using the URL configured on the On Message Received endpoint and stop receiving messages sent by you, you need to disable the Notify Sent by Me option through the Update Notify Sent by Me endpoint.Overview
This webhook works like the standard callback for received messages, with one difference from the regular On Message Received: when configured, it updates the receiving webhook URL so that messages sent by you are also notified.Z-API only accepts HTTPS webhooks.
Media files remain available for 30 days in Z-API storage. To see all callback examples by message type, check the Callback Examples page.
Update webhook
Header
string
required
Your instance ID. Available in the Z-API panel under Instances.
string
required
Your Z-API instance token.
Body
string
required
Receiving webhook URL
Request Body
{
"value": "https://your-system-address.com/instance/YOUR_INSTANCE/receive-delivery"
}
Response
200
{
"value": true
}