curl --request GET \
--url https://api.hubmessage.io/v1/channels/{channelId}/webhooks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.hubmessage.io/v1/channels/{channelId}/webhooks"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.hubmessage.io/v1/channels/{channelId}/webhooks', 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.hubmessage.io/v1/channels/{channelId}/webhooks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.hubmessage.io/v1/channels/{channelId}/webhooks"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.hubmessage.io/v1/channels/{channelId}/webhooks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubmessage.io/v1/channels/{channelId}/webhooks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": "A1B2C3D4E5F6789012345678901234AB",
"channelId": "019E4C54B1B375A28970B605CA9B03C3",
"instanceId": "019E4C54B1B375A28970B605CA9B03C3",
"url": "https://app.suaempresa.com/webhooks/hubmessage",
"description": "Webhook principal de produção",
"events": [
"MESSAGE_RECEIVED",
"MESSAGE_STATUS"
],
"status": "ENABLED",
"signing": true,
"auth": {
"type": "BEARER",
"configured": true
},
"payloadFormat": "DEFAULT",
"customAttributes": {},
"createdAt": "2025-01-15T10:30:00.000+0000",
"updatedAt": "2025-01-15T10:30:00.000+0000"
},
{
"id": "B2C3D4E5F6789012345678901234AB12",
"channelId": "019E4C54B1B375A28970B605CA9B03C3",
"instanceId": "019E4C54B1B375A28970B605CA9B03C3",
"url": "https://app.suaempresa.com/webhooks/eventos-conexao",
"description": "Eventos de conexão",
"events": [
"CONNECTED",
"DISCONNECTED"
],
"status": "ENABLED",
"signing": false,
"auth": {
"type": "NONE",
"configured": false
},
"payloadFormat": "DEFAULT",
"customAttributes": {},
"createdAt": "2025-01-16T08:00:00.000+0000",
"updatedAt": "2025-01-16T08:00:00.000+0000"
}
]{
"error": 401,
"message": "Unauthorized"
}{
"error": 422,
"message": "This action requires ENTERPRISE role"
}Listar webhooks
Liste todos os webhooks de um canal
curl --request GET \
--url https://api.hubmessage.io/v1/channels/{channelId}/webhooks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.hubmessage.io/v1/channels/{channelId}/webhooks"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.hubmessage.io/v1/channels/{channelId}/webhooks', 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.hubmessage.io/v1/channels/{channelId}/webhooks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.hubmessage.io/v1/channels/{channelId}/webhooks"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.hubmessage.io/v1/channels/{channelId}/webhooks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubmessage.io/v1/channels/{channelId}/webhooks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": "A1B2C3D4E5F6789012345678901234AB",
"channelId": "019E4C54B1B375A28970B605CA9B03C3",
"instanceId": "019E4C54B1B375A28970B605CA9B03C3",
"url": "https://app.suaempresa.com/webhooks/hubmessage",
"description": "Webhook principal de produção",
"events": [
"MESSAGE_RECEIVED",
"MESSAGE_STATUS"
],
"status": "ENABLED",
"signing": true,
"auth": {
"type": "BEARER",
"configured": true
},
"payloadFormat": "DEFAULT",
"customAttributes": {},
"createdAt": "2025-01-15T10:30:00.000+0000",
"updatedAt": "2025-01-15T10:30:00.000+0000"
},
{
"id": "B2C3D4E5F6789012345678901234AB12",
"channelId": "019E4C54B1B375A28970B605CA9B03C3",
"instanceId": "019E4C54B1B375A28970B605CA9B03C3",
"url": "https://app.suaempresa.com/webhooks/eventos-conexao",
"description": "Eventos de conexão",
"events": [
"CONNECTED",
"DISCONNECTED"
],
"status": "ENABLED",
"signing": false,
"auth": {
"type": "NONE",
"configured": false
},
"payloadFormat": "DEFAULT",
"customAttributes": {},
"createdAt": "2025-01-16T08:00:00.000+0000",
"updatedAt": "2025-01-16T08:00:00.000+0000"
}
]{
"error": 401,
"message": "Unauthorized"
}{
"error": 422,
"message": "This action requires ENTERPRISE role"
}Conceituação
Retorna todos os webhooks cadastrados em um canal. O campoauth.configured indica se credenciais de autenticação estão definidas, mas as credenciais em si não são retornadas por segurança.
O campo secret (assinatura HMAC) também não é retornado na listagem — ele só está disponível no momento da criação ou atualização com signing: true.
Autorizações
Secret Key gerada no painel de Segurança do Hub Message
Parâmetros de caminho
ID do canal
"019E4C54B1B375A28970B605CA9B03C3"
Resposta
Lista de webhooks do canal
ID único do webhook
"A1B2C3D4E5F6789012345678901234AB"
ID do canal ao qual o webhook pertence
"019E4C54B1B375A28970B605CA9B03C3"
Descontinuado — use channelId
"019E4C54B1B375A28970B605CA9B03C3"
URL de destino dos eventos
"https://app.suaempresa.com/webhooks/hubmessage"
Descrição do webhook
"Webhook principal de produção"
Tipos de evento configurados
["MESSAGE_RECEIVED", "MESSAGE_STATUS"]
Status atual do webhook
ENABLED, DISABLED "ENABLED"
Indica se a assinatura HMAC está habilitada
true
Resumo da autenticação configurada — credenciais não são retornadas por segurança
Show child attributes
Show child attributes
Formato do payload entregue
DEFAULT "DEFAULT"
Atributos extras configurados
{}
Data de criação
"2025-01-15T10:30:00.000+0000"
Data da última atualização
"2025-01-15T10:30:00.000+0000"