POST
https://api.instvia.com/api/v1/instances/dac3a956-4e8b-4d76-8caf-fed98dfc8b05/webhook
Criar / substituir webhook
Cria ou substitui o webhook da instância. Cada POST gera um `secret` novo (rotaciona o anterior). O valor em texto puro aparece somente nesta resposta — guarde-o para validar a HMAC. Para mudar só URL/eventos sem rotacionar, use PATCH. `localhost` e IPs privados são rejeitados (SSRF).
Parâmetros de path
| Nome | Exemplo |
|---|---|
instance |
dac3a956-4e8b-4d76-8caf-fed98dfc8b05 |
Request
Headers
{
"Accept": "application/json",
"Authorization": "Bearer sk_live_0123456789abcdef0123456789abcdef0123456789abcdef",
"Content-Type": "application/json"
}
Body (JSON)
{
"url": "https://erp.exemplo.com/hooks/instvia",
"events": [
"instance.connected",
"instance.disconnected",
"message.received",
"message.sent"
]
}
Exemplos de código
curl -sS -X POST "https://api.instvia.com/api/v1/instances/dac3a956-4e8b-4d76-8caf-fed98dfc8b05/webhook" \
-H "Accept: application/json" \
-H "Authorization: Bearer sk_live_0123456789abcdef0123456789abcdef0123456789abcdef" \
-H "Content-Type: application/json" \
-d '{
"url": "https://erp.exemplo.com/hooks/instvia",
"events": [
"instance.connected",
"instance.disconnected",
"message.received",
"message.sent"
]
}'
const response = await fetch('https://api.instvia.com/api/v1/instances/dac3a956-4e8b-4d76-8caf-fed98dfc8b05/webhook', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: 'Bearer sk_live_0123456789abcdef0123456789abcdef0123456789abcdef',
},
body: JSON.stringify({"url":"https://erp.exemplo.com/hooks/instvia","events":["instance.connected","instance.disconnected","message.received","message.sent"]}),
});
const data = await response.json();
console.log(data);
<?php
$payload = array (
'url' => 'https://erp.exemplo.com/hooks/instvia',
'events' =>
array (
0 => 'instance.connected',
1 => 'instance.disconnected',
2 => 'message.received',
3 => 'message.sent',
),
);
$ch = curl_init('https://api.instvia.com/api/v1/instances/dac3a956-4e8b-4d76-8caf-fed98dfc8b05/webhook');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Accept: application/json',
'Authorization: Bearer sk_live_0123456789abcdef0123456789abcdef0123456789abcdef',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode($payload),
]);
$body = curl_exec($ch);
curl_close($ch);
\$data = json_decode($body, true);
Response 201
{
"success": true,
"data": {
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"url": "https://erp.exemplo.com/hooks/instvia",
"events": [
"instance.connected",
"instance.disconnected",
"message.received",
"message.sent"
],
"status": "ACTIVE",
"secret": "AbCdEfGhIjKlMnOpQrStUvWxYz0123456789AbCdEfGhIj"
}
}
Response 422
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Webhook URL is not allowed."
}
}