Instvia Instvia Developers
v1.0.0 Abrir console
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

NomeExemplo
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."
    }
}