Skip to main content
Torna ai Docs
🔌Automazione & API

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 soonwhale_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.