Comment connecter des Webhooks ?

Découvrez comment obtenir des informations en temps réel sur vos commandes

Mis à jour il y a plus d’une semaine

Les Webhooks sont la solution parfaite pour recevoir des informations en temps réel. ShippyPro vous offre la possibilité de recevoir des étiquettes, des mises à jour de suivi et des messages d'erreur de commande presque instantanément. ✨

Sommaire:

Apprenez-en davantage sur nos API dans notre documentation sur les API.

1. Connecter le Webhook

  • Tout d'abord, allez dans Intégrations et API > API et cliquez sur Ajouter un Webhook.

  • Saisissez ensuite l'URL du serveur sur lequel vous souhaitez recevoir toutes les informations relatives à l'événement ou aux événements spécifiques de la liste ci-dessous.

  • Vous pourrez choisir entre : Commande expédiée, Erreur de commande et Mises à jour du suivi.

  • Ensuite, saisissez votre nom d'utilisateur et votre mot de passe pour l'authentification côté serveur de votre Webhook. Note : l'authentification n'est pas une étape obligatoire.

  • Si votre serveur ne l'a pas, vous pouvez décider de ne pas l'inclure.

  • Une fois ajouté, décidez si vous voulez activer l'option Réessayer en cas d'échec des Webhooks.

  • Vous pouvez également définir jusqu'à 10 tentatives de renvoi.

  • Enfin, décidez d'appliquer un en-tête personnalisé : qu'est-ce que c'est ?

💡 Les en-têtes personnalisés donnent la possibilité d'authentifier vos demandes de Webhooks et de rejeter celles qui ne contiennent pas ces en-têtes personnalisés.

  • Activez cette option si vous souhaitez une mesure de sécurité supplémentaire.

  • Définissez ensuite une clé et une valeur de l'en-tête pour terminer la configuration.

  • Lorsque votre Webhook sera connecté, vous pourrez soit le modifier, le supprimer ou le tester.

  • En cliquant sur Test, vous pourrez afficher toutes les informations transmises :

{

"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"

}

📌 À la première connexion d'un nouveau endpoint, ShippyPro envoie toujours le webhook order_shipped, même si l'event choisi est différent.

En cliquant sur Afficher les connexions des Webhooks, vous trouverez une liste de toutes vos connexions. Pour les filtrer par Point d'accès, Événement, Résultat ou Renvoi, vous n'aurez qu'à cliquer sur les filtres spécifiques.

Voici les informations que vous pourrez afficher dans cette section :

Date

Date de fin

ID Commande

ID Transaction

Transporteur

Point d'accès

Événement

Résultat

Renvoi

Délai écoulé

Requête

Réponse

📌 Remarque : les Webhooks fonctionnent aussi sur les retours !

📌 Les fichiers de Webhooks sont au format Json.

2. Erreurs & Troubleshooting

Je suis en train de connecter des webhooks et je reçois "HTTP response must be in JSON format. Please Retry" dans la réponse

Généralement, l'erreur apparaît si le type de contenu de la réponse n'a pas été défini comme application/json. Vous devez vous assurer que la réponse est formatée en application/json ou bien renvoyer un code HTTP 204 sans corps de réponse.

Lorsque j'envoie un webhook à mon serveur, je reçois la réponse suivante : {"success":false, "reason" : "CSRF token mismatch"}

Il s'agit d'une erreur généralement causée par un pare-feu qui a bloqué la réception du webhook.

Assurez-vous d'avoir supprimé le blocage de notre IP et essayez de faire un nouvel appel API.

En général, le test du webhook ne passe que si :

code HTTP entre 200 et 300 + réponse en json

ou

code HTTP 204 (pas de résultat) et réponse non json

Vous trouverez ici une liste des statuts qui peuvent être affichés ainsi que leur signification:

1×× Information

  • 100 Continue

  • 101 Switching Protocols

  • 102 Processing

2×× Succès

  • 200 OK

  • 201 Created

  • 202 Accepted

  • 203 Non-authoritative Information

  • 204 No Content

  • 205 Reset Content

  • 206 Partial Content

  • 207 Multi-Status

  • 208 Already Reported

  • 226 IM Used

3×× Redirection

  • 300 Multiple Choices

  • 301 Moved Permanently

  • 302 Found

  • 303 See Other

  • 304 Not Modified

  • 305 Use Proxy

  • 307 Temporary Redirect

  • 308 Permanent Redirect

4×× Erreur Client

  • 400 Bad Request

  • 401 Unauthorized

  • 402 Payment Required

  • 403 Forbidden

  • 404 Not Found

  • 405 Method Not Allowed

  • 406 Not Acceptable

  • 407 Proxy Authentication Required

  • 408 Request Timeout

  • 409 Conflict

  • 410 Gone

  • 411 Length Required

  • 412 Precondition Failed

  • 413 Payload Too Large

  • 414 Request-URI Too Long

  • 415 Unsupported Media Type

  • 416 Requested Range Not Satisfiable

  • 417 Expectation Failed

  • 418 I'm a teapot

  • 421 Misdirected Request

  • 422 Unprocessable Entity

  • 423 Locked

  • 424 Failed Dependency

  • 426 Upgrade Required

  • 428 Precondition Required

  • 429 Too Many Requests

  • 431 Request Header Fields Too Large

  • 444 Connection Closed Without Response

  • 451 Unavailable For Legal Reasons

  • 499 Client Closed Request

5×× Erreur Serveur

  • 500 Internal Server Error

  • 501 Not Implemented

  • 502 Bad Gateway

  • 503 Service Unavailable

  • 504 Gateway Timeout

  • 505 HTTP Version Not Supported

  • 506 Variant Also Negotiates

  • 507 Insufficient Storage

  • 508 Loop Detected

  • 510 Not Extended

  • 511 Network Authentication Required

  • 599 Network Connect Timeout Error

Si l'erreur que vous recevez est le code de réponse HTTP response code is 500, it must be 200, l'erreur 500 indique que le webhook ajouté est inaccessible.
Le code de statut HTTP 500 est une réponse d'erreur générique. Cela signifie que le serveur a rencontré une condition inattendue qui l'a empêché de répondre à la demande, c'est-à-dire que le serveur est inaccessible.

Si vous avez besoin de plus d'informations sur le fonctionnement de la tarification, consultez notre page de tarification. 🚀

Avez-vous trouvé la réponse à votre question ?