Come funziona
- Registri uno o più endpoint dal pannello admin o con la
Admin API (
POST /admin/webhooks, permessosystem), scegliendo gli eventi. - Vellaro effettua una
POSTal tuo URL a ogni evento sottoscritto, con un payload JSON che descrive l’evento e la risorsa. - La richiesta è firmata: verifica la firma con il tuo secret prima di fidarti del contenuto.
- Rispondi
2xxentro 10 secondi per confermare la ricezione; gli invii falliti vengono ritentati.
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
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 suevent,data.ideoccurred_at). - Rispondi subito
2xxe 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.
Per la consegna dei prodotti digitali non servono webhook: dopo il pagamento l’API
emette link di download firmati, documentati nella API Reference.