curl --request GET \
--url https://api.wabox.me/instances/{instance_id}/token/{token}/webhooksconst options = {method: 'GET'};
fetch('https://api.wabox.me/instances/{instance_id}/token/{token}/webhooks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.wabox.me/instances/{instance_id}/token/{token}/webhooks"
response = requests.get(url)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.wabox.me/instances/{instance_id}/token/{token}/webhooks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.wabox.me/instances/{instance_id}/token/{token}/webhooks"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"use_workspace_webhooks": false,
"received_url": "https://example.com/wabox/received",
"delivery_url": "https://example.com/wabox/delivery",
"message_status_url": "https://example.com/wabox/message-status",
"connected_url": "https://example.com/wabox/connected",
"disconnected_url": "https://example.com/wabox/disconnected",
"chat_presence_url": null,
"single_url_enabled": false,
"single_url": null,
"notify_sent_by_me": false,
"ignore_groups": false,
"ignore_private": false,
"ignore_text": false,
"ignore_image": false,
"ignore_video": false,
"ignore_audio": false,
"ignore_document": false,
"ignore_received_callback": false,
"ignore_delivery_callback": false,
"ignore_message_status_callback": false,
"ignore_connected_callback": false,
"ignore_disconnected_callback": false,
"ignore_chat_presence_callback": false,
"secret": "whsec_9f8e7d6c5b4a39281706f5e4d3c2b1a0"
}{
"error": {
"code": "instance_not_found",
"message": "Instance not found or invalid token"
}
}URLs de cada tipo de webhook (*_url, null = desativado) ou uma única para todos (single_url_enabled + single_url), filtros (notify_sent_by_me, ignore_*) e o secret de assinatura. use_workspace_webhooks: true (padrão em instâncias novas) = a instância usa as URLs, filtros e o secret do workspace (painel › Webhooks ou GET /partner/webhooks) e ignora os campos próprios. secret assina toda entrega: header X-Wabox-Signature: t=<unix em segundos>,v1=<hex> onde v1 = HMAC-SHA256(secret, "<t>.<corpo bruto>"). Valide recalculando sobre o corpo bruto da requisição e rejeite timestamps com mais de alguns minutos. secret é null quando as entregas não são assinadas.
curl --request GET \
--url https://api.wabox.me/instances/{instance_id}/token/{token}/webhooksconst options = {method: 'GET'};
fetch('https://api.wabox.me/instances/{instance_id}/token/{token}/webhooks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.wabox.me/instances/{instance_id}/token/{token}/webhooks"
response = requests.get(url)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.wabox.me/instances/{instance_id}/token/{token}/webhooks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.wabox.me/instances/{instance_id}/token/{token}/webhooks"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"use_workspace_webhooks": false,
"received_url": "https://example.com/wabox/received",
"delivery_url": "https://example.com/wabox/delivery",
"message_status_url": "https://example.com/wabox/message-status",
"connected_url": "https://example.com/wabox/connected",
"disconnected_url": "https://example.com/wabox/disconnected",
"chat_presence_url": null,
"single_url_enabled": false,
"single_url": null,
"notify_sent_by_me": false,
"ignore_groups": false,
"ignore_private": false,
"ignore_text": false,
"ignore_image": false,
"ignore_video": false,
"ignore_audio": false,
"ignore_document": false,
"ignore_received_callback": false,
"ignore_delivery_callback": false,
"ignore_message_status_callback": false,
"ignore_connected_callback": false,
"ignore_disconnected_callback": false,
"ignore_chat_presence_callback": false,
"secret": "whsec_9f8e7d6c5b4a39281706f5e4d3c2b1a0"
}{
"error": {
"code": "instance_not_found",
"message": "Instance not found or invalid token"
}
}Path Parameters
Id da instância (dashboard › instância › Credenciais).
Token da instância. Trate como senha.
Response
Configuração de webhooks.
true = usa as URLs e filtros do workspace (painel › Webhooks) e ignora os campos abaixo; o secret é sempre da instância.
URL http(s) ou null (desligado).
URL http(s) ou null (desligado).
URL http(s) ou null (desligado).
URL http(s) ou null (desligado).
URL http(s) ou null (desligado).
URL http(s) ou null (desligado).
true = todos os eventos vão para single_url; as *_url por tipo são ignoradas.
URL única para todos os eventos (quando single_url_enabled).
Chave HMAC do header X-Wabox-Signature quando a instância usa a própria configuração; null = entregas não assinadas. Herdando do workspace (use_workspace_webhooks), as entregas usam o secret do workspace.