Scopri come ricevere i dati dei tuoi ordini in tempo reale
I Webhook sono la soluzione perfetta per ricevere informazioni in tempo reale. ShippyPro ti offre la possibilità di ricevere etichette, aggiornamenti di tracking e messaggi di errore per gli ordini quasi istantaneamente.
Sommario:
Scopri di più sulle nostre API nella nostra Documentazione API:
-
Per prima cosa, vai a Integrazioni & API > API e fai click su Aggiungi Webhook.
-
Quindi inserisci l'URL del server in cui desideri ricevere tutte le informazioni per l'Evento o gli Eventi specifici che sceglierai dall'elenco sotto.
-
Potrai scegliere tra: Ordine Spedito, Errore Ordine e Aggiornamenti di Tracking.
-
A questo punto, inserisci il Nome Utente e la Password per l'autenticazione Webhook lato server. Attenzione: l'autenticazione non è un passaggio obbligatorio, se il tuo server non lo prevede puoi decidere di non includerlo.
-
Una volta incluso, decidi se abilitare l'opzione Riprova in caso il Webhooks fallisca. Puoi anche impostare il numero massimo di nuovi tentativi fino a 10 volte.
-
Infine decidi se applicare una Custom Header: di cosa stiamo parlando? Le Custom Header ti danno la possibilità di autenticare le tue richieste Webhook e rifiutare quelle che non contengono queste intestazioni personalizzate.
-
Attiva questa opzione per avere una misura di sicurezza aggiuntiva.
-
Imposta una Key e una Value dell'Header per completare il setup.
-
Quando il tuo Webhook sarà connesso, puoi Modificarlo, Eliminarlo o Testarlo.
-
Cliccando su Test sarai in grado di visualizzare tutte le informazioni trasmesse:
{
"Event": "TRACKING_UPDATE",
"tracking": "WZ116539070",
"date": 1622671204,
"message": "Shipment delivered,
"city": "Florence",
"est_delivery_date": "0",
"first_status_date": "1622152801",
"late": "0",
"code": 6,
"OrderID": "24957298",
"TransactionID": "48572_1",
"TrackingCarrier": "FedEx",
"MarketplaceID": "0",
"MarketplacePlatform": "Manual shipment",
"ExternalLink": "",
"FromAddressCompany": "John Doe srl.",
"ToAddressCompany": "",
"FromAddressCountry": "IT",
"ToAddressCountry": "IT"
}
Alla prima connessione di un nuovo endpoint ShippyPro invia sempre il webhook order_shipped, anche se l'event scelto è differente.
-
Mentre facendo click su Visualizza Log Webhook troverai un elenco di tutti i tuoi Log.
-
Per filtrarli per Endpoint, Evento, Risultato o Nuovo tentativo dovrai solo fare click sui filtri specifici.
Ecco i dati che sarai in grado di consultare da questa sezione:
Data
Data Fine
Order ID
Transaction ID
Carrier
Endpoint
Event
Risultato
Nuovo tentativo
Tempo impiegato
Richiesta
Risposta
Attraverso i Webhook Logs, inserendo il tuo endpoint riceverai una notifica delle modifiche allo stato di consegna e potrai accedere a utili informazioni sugli aggiornamenti del tracking.
I Webhook sono validi anche per i resi!
I file Webhook sono in formato Json.
Posso avere più di un Webhook?
Certo, segui questi passaggi per farlo:
-
Nella barra laterale clicca su API > API.
-
Nella sezione Webhook clicca su Aggiungi Webook.
-
Quando si apre il pop up aggiungi tutte le informazioni necessarie e Salva.
Sto collegando i webhook e ricevo "La risposta HTTP deve essere in formato JSON. Riprovare" nella risposta
Di solito, l'errore compare se il tipo di contenuto della risposta non è stato impostato come application/json. È necessario assicurarsi che la risposta sia formattata come application/json o, in alternativa, restituire un 204 come codice HTTP e nessun corpo della risposta.
Durante l'invio di un webhook verso il mio server ricevo questa risposta:{"success":false,"reason":"CSRF token mismatch"}
Questo è un errore solitamente causato da un firewall che ha bloccato la ricezione del webhook.
Assicurarsi di aver rimosso il blocco verso i nostri ip e provare ad effettuare una nuova chiamata API.
In generale, il test del webhook passa solo se:
codice HTTP compreso tra 200 e 300 + risposta in json
oppure
Codice HTTP 204 (nessun risultato) e risposta non json
Di seguito la lista dei vari stati che potresti ricevere insieme ai loro significati:
- 1xx Informational : Richiesta ricevuta, continua l’elaborazione.
-
100 Continue : Il server ha ricevuto l’header della richiesta e il client deve procedere ad inviare il corpo della richiesta (solitamente nelle richieste di tipo POST).
-
101 Switching Protocols : Il richiedente ha richiesto di cambiare il protocollo in uso e il server è a conoscenza di ciò che dovrà fare.
-
102 Processing
2xx Success : L’azione è stata ricevuta con successo, compresa ed accettata.
-
200 OK : Risposta standard per le richieste HTTP andate a buon fine.
-
201 Created
-
202 Accepted : La richiesta di elaborazione è stata accettata ma non è ancora terminata.
-
203 Non-Authoritative Information
-
204 No Content
-
205 Reset Content
-
206 Partial Content
-
207 Multi-Status : In caso di risposte XML, quando più azioni possono essere richieste, i dettagli dei singoli stati sono dati nel corpo della risposta. Vedi WebDAV (RFC 4918) per le specifiche associate.
-
208 Already Reported
-
226 IM Used
3xx Redirezione : Il client deve eseguire ulteriori azioni per soddisfare la richiesta.
-
300 Multiple Choices
-
301 Moved Permanently : Questa è tutte le future richieste andranno dirette ad un altro URI (specificato nell’header Location).
-
302 Found : Questo è il codice più usato ma anche un classico esempio di non aderenza agli standard nella pratica quotidiana. Infatti, le specifiche di HTTP/1.0 (RFC 1945) richiederebbero che il client esegua redirezioni temporanee (la descrizione originale era “Moved Temporarily”), ma i più diffusi browser l’hanno implementata come 303 descritta di seguito. Perciò, HTTP/1.1 ha aggiunto i codici di stato 303 e 307 per distinguere tra i due comportamenti. Comunque, la maggior parte delle applicazioni e dei framework web ancora usano il codice di stato 302 come se fosse il 303.
-
303 See Other (da HTTP/1.1) : La risposta alla richiesta può essere trovata sotto un’altra URI usando il metodo GET.
-
304 Not Modified
-
305 Use Proxy (da HTTP/1.1) : Molti client HTTP (come Mozilla ed Internet Explorer) non gestiscono correttamente le risposte con questo codice di stato.
-
306 Switch Proxy : Non più usato.
-
307 Temporary Redirect (da HTTP/1.1) : In quest’occasione, la richiesta dovrebbe essere ripetuta con un’altra URI, ma successive richieste possono essere ancora dirette a quella originale. In contrasto con 303, la richiesta di POST originale deve essere reiterata con un’altra richiesta di tipo POST.
-
308 Permanent Redirect
4xx Client Error : La richiesta è sintatticamente scorretta o non può essere soddisfatta.
-
400 Bad Request : La richiesta non può essere soddisfatta a causa di errori di sintassi.
-
401 Unauthorized : Simile a 403/Forbidden, ma pensato per essere usato quando l’autenticazione è possibile ma è fallita o non può essere fornita.
-
402 Payment Required : L’intendimento originale prevedeva un suo utilizzo per realizzare meccanismi di digital cash/micropagamento, ma questo non si è mai verificato ed il codice non è mai stato utilizzato.
-
403 Forbidden : La richiesta è legittima ma il server si rifiuta di soddisfarla. Contrariamente al codice 401 Unauthorized, l’autenticazione non ha effetto.
-
404 Not Found : La risorsa richiesta non è stata trovata ma in futuro potrebbe essere disponibile.
-
405 Method Not Allowed : La richiesta è stata eseguita usando un metodo non permesso. Ad esempio questo accade quando di usa il metodo GET per inviare dati da presentare con un metodo POST.
-
406 Not Acceptable
-
407 Proxy Authentication Required
-
408 Request Timeout : Il tempo per inviare la richiesta è scaduto e il server ha terminato la connessione.
-
409 Conflict
-
410 Gone : Indica che la risorsa richiesta non è più disponibile e non lo sarà più in futuro.
-
411 Length Required : La richiesta non specifica la propria dimensione come richiesto dalla risorsa richiesta.
-
412 Precondition Failed
-
413 Request Entity Too Large : La richiesta è più grande di quanto il server possa gestire.
-
414 Request-URI Too Long : L’URI richiesto è troppo grande per essere processato dal server.
-
415 Unsupported Media Type : L’entità della richiesta è di un tipo non accettato dal server o dalla risorsa richiesta.
-
416 Requested Range Not Satisfiable
-
417 Expectation Failed
-
418 I’m a teapot : Questo è un tipico pesce d’aprile dell’ITEF (RFC 2324). Non si aspettano implementazioni in alcun server HTTP.
-
421 Misdirected Request : indirizzo errato
-
422 Unprocessable Entity : entità non processabile
-
423 Locked
-
424 Failed Dependency
-
426 Upgrade Required (RFC 2817) : Il client dovrebbe cambiare il protocollo ed usare ad esempio il TLS/1.0. 449 Retry With Estensione di Microsoft: The request should be retried after doing the appropriate action.
5xx Server Error : Il server ha fallito nel soddisfare una richiesta apparentemente valida.
-
500 Internal Server Error : Messaggio di errore generico senza alcun dettaglio.
-
501 Not Implemented : Il server non è in grado di soddisfare il metodo della richiesta.
-
502 Bad Gateway
-
503 Service Unavailable : Il server non è al momento disponibile. Generalmente è una condizione temporanea.
-
504 Gateway Timeout
-
505 HTTP Version Not Supported : Il server non supporta la versione HTTP della richiesta.
-
506 Variant Also Negotiates
-
507 Insufficient Storage
-
508 Loop Detected
-
509 Bandwidth Limit Exceeded : Questo codice di stato, benché usato da molti server, non è un codice di stato ufficiale in quanto non è specificato in alcuna RFC.
-
510 Not Extended
-
511 Network Authentication Required
-
599 Network Connect Timeout Error
Se l'errore che ricevi è HTTP response code is 500, it must be 200, l'errore 500 indica che il webhook aggiunto non è raggiungibile.
Il codice status HTTP 500 è una risposta di errore generica. Significa che il server ha riscontrato una condizione inaspettata che gli ha impedito di soddisfare la richiesta, ovvero che il server non è raggiungibile.
Per maggiori informazioni su come viene calcolato il costo, visita la pagina dedicata alle tariffe.