Webhook
I webhook ti permettono di ricevere callback HTTP in tempo reale quando si verificano eventi sulle tue istanze WhatsApp. Invece di interrogare continuamente l’API, Wappfy invia gli eventi al tuo server nel momento in cui si verificano.Eventi supportati
Wappfy supporta 12 tipi di eventi webhook:Eventi dei messaggi
Eventi dei messaggi
| Evento | Descrizione |
|---|---|
message.received | Un nuovo messaggio in arrivo e stato ricevuto. |
message.sent | Un messaggio in uscita e stato inviato con successo. |
message.delivered | Un messaggio inviato e stato consegnato al dispositivo del destinatario (doppia spunta). |
message.read | Un messaggio inviato e stato letto dal destinatario (spunte blu). |
message.failed | L’invio di un messaggio in uscita e fallito. |
message.reaction | Qualcuno ha reagito a un messaggio con un emoji. |
Eventi delle istanze
Eventi delle istanze
| Evento | Descrizione |
|---|---|
instance.connected | Un’istanza si e connessa con successo a WhatsApp. |
instance.disconnected | Un’istanza ha perso la connessione a WhatsApp. |
instance.qr | Un nuovo codice QR e disponibile per la scansione. |
Eventi di gruppi e contatti
Eventi di gruppi e contatti
| Evento | Descrizione |
|---|---|
group.joined | Un partecipante si e unito a un gruppo (incluso il bot stesso). |
group.left | Un partecipante ha lasciato un gruppo. |
contact.created | Un nuovo contatto e stato salvato o rilevato. |
Creare un webhook
Registra un endpoint webhook per iniziare a ricevere eventi.Opzioni di configurazione
| Campo | Tipo | Predefinito | Descrizione |
|---|---|---|---|
url | string | obbligatorio | L’URL HTTPS che ricevera le richieste POST del webhook. |
events | string[] | obbligatorio | Array dei tipi di evento a cui iscriversi. |
instance_id | string | null | Limita il webhook a un’istanza specifica. Se null, riceve eventi da tutte le istanze. |
secret | string | null | Segreto utilizzato per generare firme HMAC per la verifica del payload. |
retry_count | number | 3 | Numero di tentativi in caso di errore nella consegna (0-5). |
timeout_ms | number | 10000 | Timeout della richiesta in millisecondi (1000-30000). |
Il campo
instance_id e opzionale. Se omesso, il webhook ricevera eventi da tutte le istanze del tuo account.Elencare i webhook
Aggiornare un webhook
Aggiorna l’URL, gli eventi o la configurazione di un webhook esistente.Eliminare un webhook
Formato del payload di consegna
Quando si verifica un evento, Wappfy invia una richiesta POST all’URL del tuo webhook con la seguente struttura:Campi del payload
| Campo | Descrizione |
|---|---|
id | ID univoco della consegna. Usalo per la deduplicazione. |
event | Il tipo di evento che ha attivato questa consegna. |
instance_id | L’istanza che ha generato l’evento. |
timestamp | Timestamp ISO 8601 del momento in cui si e verificato l’evento. |
data | Payload specifico dell’evento. Il contenuto varia in base al tipo di evento. |
Verifica della firma HMAC
Se fornisci unsecret durante la creazione del webhook, ogni consegna includera un header X-Wappfy-Signature contenente una firma HMAC-SHA256 del corpo della richiesta.
Verifica sempre questa firma per assicurarti che la richiesta provenga da Wappfy e non sia stata alterata.
Esempi di verifica
Comportamento dei tentativi
Se il tuo server non risponde con un codice di stato2xx entro il timeout_ms configurato, Wappfy ritentera la consegna.
| Tentativo | Ritardo |
|---|---|
| 1o tentativo | 10 secondi |
| 2o tentativo | 60 secondi |
| 3o tentativo | 5 minuti |
| 4o tentativo | 30 minuti |
| 5o tentativo | 2 ore |
I tentativi si fermano quando viene ricevuta una risposta
2xx o quando il retry_count e esaurito. Il numero predefinito di tentativi e 3.Visualizzare lo storico delle consegne
Controlla il log delle consegne di un webhook per vedere i tentativi passati e i relativi risultati.Esempi di payload degli eventi
message.received
message.received
message.delivered
message.delivered
message.read
message.read
message.reaction
message.reaction
instance.connected
instance.connected
instance.qr
instance.qr
group.joined
group.joined
Buone pratiche
Rispondi rapidamente
Restituisci uno stato
200 entro 5 secondi. Elabora l’evento in modo asincrono per evitare timeout.Deduplica
Usa l’
id della consegna per rilevare e saltare le consegne duplicate causate dai tentativi.Verifica le firme
Valida sempre l’header
X-Wappfy-Signature se hai configurato un segreto.Usa HTTPS
Gli URL dei webhook devono utilizzare HTTPS. Gli endpoint HTTP verranno rifiutati.