Webhook
Invia eventi a Discord, Slack, n8n o ai tuoi sistemi
I webhook inviano gli eventi da Predite al tuo server nel momento esatto in cui accadono — senza bisogno di polling. Quando un bot esegue un trade, scatta uno stop-loss o lo scanner trova un nuovo edge, Predite invia una richiesta HTTP POST a un URL che controlli tu. I webhook sono una funzionalità del piano Bot e si gestiscono da Impostazioni, nella pagina Webhooks.
Creare un webhook
Ti servono tre cose: un URL che accetti richieste POST, un'etichetta per distinguere i tuoi webhook e almeno un evento a cui iscriverti.
Il tuo URL deve essere https in produzione. Predite rifiuta di consegnare a indirizzi privati, di loopback o di rete interna, e non segue i redirect — questo protegge il tuo account dal rischio che un endpoint mal configurato venga usato per raggiungere l'interno della nostra infrastruttura.
Eventi
Esistono sei eventi. Quattro sono attivi oggi:
- •ev_signal — lo scanner ha pubblicato un nuovo segnale di Expected Value. Inviato a ogni iscritto (non è specifico per utente).
- •arb_opportunity — è stata trovata una nuova opportunità di arbitraggio cross-platform. Anch'esso inviato a ogni iscritto.
- •bot_trade_executed — uno dei tuoi bot ha aperto una posizione, live o paper.
- •stop_loss_triggered — una delle tue uscite protettive (stop-loss, take-profit o trailing stop) ha chiuso una posizione.
Altri due sono riservati e nella dashboard sono contrassegnati come soon — whale_move e resolution_imminent. Puoi iscriverti anche oggi, ma per ora non consegnano nulla.
Gli eventi che riguardano la tua attività vengono inviati soltanto a te. Gli eventi di mercato vengono inviati a tutti coloro che vi si sono iscritti.
Formato del payload
Ogni consegna è una POST con un body JSON di questa forma:
- •event — il nome dell'evento, per esempio bot_trade_executed
- •timestamp — quando è avvenuto l'evento, in formato ISO-8601
- •data — un oggetto con i dettagli di quell'evento
Insieme al body, Predite invia questi header:
- •X-Predite-Event — il nome dell'evento
- •X-Predite-Timestamp — lo stesso timestamp
- •X-Predite-Signature — la firma, nel formato sha256=<hex>
Verificare la firma
Ogni webhook ha un proprio secret, mostrato nella dashboard, che inizia con whsec_. La firma è un HMAC-SHA256 del body grezzo della richiesta, con quel secret come chiave, codificato in esadecimale e preceduto da sha256=.
Per verificarla, calcola l'HMAC del body che hai ricevuto e confrontalo con l'header X-Predite-Signature. Se non coincidono, rifiuta la richiesta — non arriva da noi. Verifica sempre prima di agire su un payload e usa sempre il body grezzo, non una versione riserializzata del JSON già parsato.
Consegna, fallimenti e disattivazione automatica
- •Ogni evento viene consegnato con un singolo tentativo e un timeout di 5 secondi. Non ci sono retry automatici — progetta il tuo endpoint perché risponda in fretta e faccia il lavoro lento dopo.
- •Qualsiasi risposta non 2xx, timeout o errore di connessione conta come fallimento.
- •Dopo 10 fallimenti consecutivi il webhook viene disattivato automaticamente e appare come AUTO-DISABLED. Un solo successo azzera il contatore.
- •Riabilitare dalla dashboard un webhook disattivato azzera il conteggio dei fallimenti.
Ogni tentativo viene registrato, quindi la dashboard mostra il totale delle consegne, i fallimenti consecutivi, l'ultimo successo, l'ultimo fallimento e il motivo per cui è fallito.
Da sapere
- •Rispondi 2xx appena hai memorizzato l'evento; qualsiasi cosa più lenta rischia il timeout di 5 secondi.
- •Poiché non ci sono retry, tratta i webhook come un canale di notifica rapido e non come un registro garantito — riconcilia con la Public API se ti serve certezza.
- •Puoi mettere in pausa un webhook in qualsiasi momento invece di eliminarlo.