Trocar o segredo de um webhook
POST/v1/webhooks/{hook_id}/rotate-secret
Gera um segredo novo para a assinatura das entregas — para quando o atual vazou. A resposta é a única vez em que ele aparece. O anterior deixa de valer assim que cada número recebe a troca (pending). Aceito também com a conta em modo leitura ou suspensa.
Requer#
- Escopo da chave
- Gerenciar webhooks
managementComo os escopos funcionam - Recurso do plano
- API e webhooks
apiVer os planos que incluem - Formato
- Próprio do Synergy. Erros em
{ "error": "…" }.
Parâmetros#
No caminho#
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| hook_id | string | obrigatório | O id do webhook. |
Cabeçalhos#
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| Authorization | string | obrigatório | Sua chave de API, no formato Bearer <chave>. Veja Autenticação. |
Respostas#
| Status | Código | Quando acontece |
|---|---|---|
| 200 | — | Segredo trocado |
| 401 | — | Chave revogada ou desconhecida |
| 401 | 190 | Chave malformada ou forjada |
| 403 | — | A chave não tem o escopo management |
| 403 | — | O plano da organização não inclui a API |
| 404 | — | Webhook não encontrado |
| 413 | — | Corpo grande demais |
| 429 | — | Limite de taxa |
Os erros no formato da Meta trazem o código em error.code. Ver todos os erros.
Corpo da resposta 200#
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| secret | string | obrigatório | O segredo novo. O anterior deixa de assinar assim que cada número recebe a alteração. |
| pending | integer | obrigatório | Quantos números ainda não receberam esta alteração. A Synergy repete o envio sozinha; 0 = já vale em todos. |
Limites de taxa#
- Gestão: 30 requisições a cada 60 s por chave (API_MGMT_LIMIT).
Notas#
- A troca conta como alteração do webhook: recomeça a saúde dele em cada número (um webhook suspenso volta a receber).
Requisição
curl
curl -X POST 'https://api.synergyconnect.com.br/v1/webhooks/7c1f0c7e-4b53-4c7b-9a51-3f6f0a2d9e10/rotate-secret' \
-H "Authorization: Bearer $SYNERGY_API_KEY"JavaScript
const res = await fetch('https://api.synergyconnect.com.br/v1/webhooks/7c1f0c7e-4b53-4c7b-9a51-3f6f0a2d9e10/rotate-secret', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SYNERGY_API_KEY}`,
},
});
console.log(res.status, await res.json());Python
import os
import requests
res = requests.post(
"https://api.synergyconnect.com.br/v1/webhooks/7c1f0c7e-4b53-4c7b-9a51-3f6f0a2d9e10/rotate-secret",
headers={
"Authorization": f"Bearer {os.environ['SYNERGY_API_KEY']}",
},
)
print(res.status_code, res.json())Resposta
200
{
"secret": "1a3c5e7f9b0d2f4a6c8e0b2d4f6a8c0e",
"pending": 0
}401
{
"error": "Invalid or revoked key"
}Há 2 casos com este status; veja a tabela de respostas.
403
{
"error": "This key lacks the management scope"
}Há 2 casos com este status; veja a tabela de respostas.
404
{
"error": "Webhook not found"
}413
{
"error": "The body is too large (16 KB max)"
}429
{
"error": "Rate limit hit"
}Ficou com dúvida? Escreva para suporte@synergyconnect.com.br.