Vai al contenuto principale
Vellaro può notificare il tuo backend quando succede qualcosa nel negozio (ordine creato, pagato, spedito, prodotto modificato), così puoi sincronizzare ERP, gestionali o pipeline esterne senza polling.

Come funziona

  1. Registri uno o più endpoint dal pannello admin o con la Admin API (POST /admin/webhooks, permesso system), scegliendo gli eventi.
  2. Vellaro effettua una POST al tuo URL a ogni evento sottoscritto, con un payload JSON che descrive l’evento e la risorsa.
  3. La richiesta è firmata: verifica la firma con il tuo secret prima di fidarti del contenuto.
  4. Rispondi 2xx entro 10 secondi per confermare la ricezione; gli invii falliti vengono ritentati.
La risposta contiene il secret di firma (whsec_...), mostrato una sola volta: salvalo subito. Le letture successive mostrano solo secret_last_four.

Regole dell’URL

L’URL deve essere https verso un host pubblico, senza credenziali nell’URL. Il controllo vale al salvataggio (con una verifica DNS) e di nuovo a ogni consegna: Una consegna verso una destinazione che nel frattempo risolve su una rete interna risulta failed, senza nuovi tentativi. I redirect non vengono seguiti: un 3xx conta come errore.

Eventi

GET /admin/webhooks/events restituisce l’elenco degli eventi sottoscrivibili: Gli invii di prova portano l’evento webhook.test, che non si può sottoscrivere.

Payload

Per gli eventi product.*, data contiene id, name, slug e is_active. Per avere il dettaglio completo, rileggi la risorsa con la Admin API.

Verifica della firma

Ogni richiesta porta questi header: Calcola la firma sui byte ricevuti, non su un JSON ri-serializzato, confrontala in tempo costante e scarta i timestamp troppo vecchi.

Tentativi e idempotenza

  • Ogni risposta diversa da 2xx (redirect compresi), un timeout o un errore di rete è un tentativo fallito. La consegna viene ritentata con attesa crescente (1, 2, 4, 8 e 16 minuti).
  • I tentativi della stessa consegna hanno lo stesso X-Vellaro-Delivery. Un rinvio manuale crea invece una consegna nuova con lo stesso payload: rendi idempotente l’elaborazione (per esempio su event, data.id e occurred_at).
  • Rispondi subito 2xx e fai il lavoro pesante in coda.

Strumenti di gestione

Tutte le rotte sono sotto /admin/webhooks/{id} (permesso system); un webhook di un altro negozio risponde 404. Ogni consegna del registro ha event_type, status, attempt, response_status, next_retry_at, delivered_at e response_body: un estratto sicuro della risposta del tuo endpoint (al massimo 256 caratteri stampabili), utile per riconoscere l’errore.
Dopo rotate-secret le firme usano subito il secret nuovo e quello vecchio smette di verificare. Prepara il tuo endpoint ad accettare entrambi i secret, ruota, poi togli il vecchio.
Per la consegna dei prodotti digitali non servono webhook: dopo il pagamento l’API emette link di download firmati, documentati nella API Reference.