Webhook
Compte concerné :

MyDelivengo utilise la technologie des webhooks pour vous notifier automatiquement des nouveaux statuts de suivi dès leur obtention. Cette technologie permet aux développeurs d’imaginer et de créer des applications et des automatismes s'appuyant sur les informations de suivi des objets.

Introduction :

Un webhook est une fonction de rappel HTTP : il s'agit d'un POST HTTP qui survient lorsqu'un évènement apparaît, c'est à dire une notification sous forme d'un POST HTTP.

Dans MyDelivengo, les webhooks sont utilisés afin de pouvoir notifier un utilisateur des changements de statut sur un objet envoyé, dès obtention de ces nouveaux statuts. Lorsque les statuts d'un objet changent, alors MyDelivengo peut notifier une URL via un POST HTTP.

Grâce à cela, vous pouvez récupérer au plus vite les changements de statuts, sans avoir besoin d'interroger fréquemment l'API GET /plis/{ID_PLI} sur l'ensemble de vos numéros sans savoir si ceux-ci ont obtenu de nouveaux statuts depuis votre dernière requête. L'information vient à vous automatiquement dès qu'elle est rendue disponible, vous n'avez pas besoin d'aller la chercher.

Le paramétrage d'un webhook impacte automatiquement l'ensemble des plis en cours de distribution de votre compte, même ceux créés avant la création du webhook. Pas besoin de paramétrer l'utilisation des webhooks pli à pli, le paramétrage est global.

(Pour en savoir plus, nous vous invitons à consulter la page wikipedia dédiée)

Mécanisme :

Si vous avez défini une URL dans le paramétrage (voir ci-dessous), alors dès l'obtention de nouveaux statuts pour les objets déposés depuis votre compte, un POST HTTP contenant les informations détaillées du pli (sour forme d'objet JSON) sera réalisé sur l'URL définie. Ces POST sont effectués 7j/7, 24h/24. Le système analyse les réponses à ses POST et dès lors, sait s'il doit reposter des numéros ou attendre si votre serveur ne répond pas correctement. Dans le détail, cela donne :

  • Si l'application reçoit un code 200/201, alors le processus continue et passe aux numéros suivants qui nécessitent notification.
  • Si l'application reçoit une erreur (≠200/201), alors le processus arrête de poster les informations de ce numéro durant 5 minutes minimum et passe aux numéros suivants qui nécessitent notification.
  • Si pour un même numéro, l'application reçoit 5 erreurs consécutives, alors le processus cesse de poster les informations de votre compte durant 30 minutes. Une fois les 30 minutes écoulées, le processus redémarre normalement.

Paramétrage :

Pour accéder au paramétrage de vos webhooks, aller dans le menu "Paramétrages" -> "Webhooks"

Pour paramétrer votre webhook, cliquez sur "Créer un webhook"

Note : actuellement, vous ne pouvez créer qu'un webhook par compte.

Vous pouvez alors saisir l'URL de votre serveur sur laquelle les requêtes POST seront adressées. Pour des raisons de sécurité, cette URL doit obligatoirement être en HTTPS, ce qui signifie que vous devez mettre en place un certificat sur votre frontal pour utiliser la fonctionnalité.

Vous pouvez également définir l'évènement déclencheur et la langue. Actuellement, seuls la mise à jour du suivi des numéros et la langue française sont disponibles.

Enfin, vous pouvez activer ou désactiver votre webhook.

Vous avez également la possibilité de définir des éléments d'entête POST personnalisés, notamment utile si vous disposez d'une couche supplémentaire d'authentification ou souhaitez que les POST véhiculent des valeurs et attributs particuliers.

Lorsque vos données sont saisies, vous pouvez enregistrer via le bouton Enregistrer. Votre webhook apparait alors dans la liste et est immédiatement actif.

Une fois votre webhook enregistré, vous pouvez le modifier ou accéder à une fonctionnalité de test via le bouton "Détails". En appuyant sur le bouton "Test les paramètres", MyDelivengo va envoyer une requête test à l'URL paramétrée et vous afficher le détail de cette requête et le résultat obtenu. Cela vous permet de vérifier la réponse renvoyée par votre serveur et de vous assurer que tout est conforme de votre coté, que vous voyez bien passez le POST de test et que vous êtes en mesure d'en exploiter le contenu.

Pré-requis :

Pour utiliser les webhooks, vous devez posséder ou mettre en place un frontal REST accessible par le web, disposant d'un certificat SSL afin de pouvoir être adressé en HTTPS, et répondant avec les retours standards HTTP.

Exemple de JSON envoyé :

{
  "numbers": [
    {
      "number": "LD032015369FR",
      "date_insert": "2018-02-01T02:43:07+01:00",
      "date_update": "2018-02-05T18:26:51+01:00",
      "final": true,
      "status": [
        {
          "status_sequence": 0,
          "status_code": 1,
          "status_date": "2018-02-01T16:00:42+01:00",
          "status_label": "Votre paquet est prêt à être déposé à La Poste",
          "localization_code": "",
          "localization_label": "",
          "summary": {
            "code": "DEP",
            "title": "Déposé"
          }
        },
        {
          "status_sequence": 0,
          "status_code": 3,
          "status_date": "2018-02-02T09:28:00+01:00",
          "status_label": "Pris en charge",
          "localization_code": "932440",
          "localization_label": "ROISSY HUB BSCC PIC",
          "summary": {
            "code": "PEC",
            "title": "Pris en charge"
          }
        },
        {
          "status_sequence": 1,
          "status_code": 33,
          "status_date": "2018-02-02T22:51:00+01:00",
          "status_label": "Arrivée au bureau d'échange du pays d'expédition",
          "localization_code": "932440",
          "localization_label": "ROISSY HUB BSCC PIC",
          "summary": {
            "code": "ENC",
            "title": "En cours"
          }
        },
        {
          "status_sequence": 2,
          "status_code": 26,
          "status_date": "2018-02-03T05:30:00+01:00",
          "status_label": "Départ du bureau d'échange du pays d'expédition",
          "localization_code": "DE",
          "localization_label": "ALLEMAGNE",
          "summary": {
            "code": "ENC",
            "title": "En cours"
          }
        },
        {
          "status_sequence": 3,
          "status_code": 27,
          "status_date": "2018-02-03T16:03:00+01:00",
          "status_label": "Arrivée au bureau d'échange du pays destinataire",
          "localization_code": "DE",
          "localization_label": "ALLEMAGNE",
          "summary": {
            "code": "ENC",
            "title": "En cours"
          }
        },
        {
          "status_sequence": 4,
          "status_code": 61,
          "status_date": "2018-02-05T13:33:00+01:00",
          "localization_label": "ALLEMAGNE",
          "localization_code": "DE",
          "status_icon": "map-marker",
          "status_label": "Distribué",
          "summary": {
            "code": "DST",
            "title": "Distribué"
          }
        }
      ]
    }
  ]
}

Si vous souhaitez des renseignements complémentaires sur cette fonctionnalité, prenez contact avec votre interlocuteur commercial MyDelivengo. Vous pouvez également utiliser le formulaire de contact pour obtenir de l'aide ou des informations sur ces fonctionnalités avancées.