Recevoir un webhook

Dès lors qu’un webhook a été configuré, LicenceToBill pourra émettre une requête HTTP POST sur l’URL spécifiée à chaque fois que l’événement associé au webhook se produit.

Les paramètres de la requête POST contiennent des données (au format XML / JSON ) pertinentes relatives à l’événement qui est survenu.

Répondre un webhook

Votre application doit reconnaître qu‘elle a reçu la notification avec une réponse 200 OK . Toute réponse en dehors de la gamme 200 indiquera à LicenceToBill que vous n’avez pas reçu votre webhook.

LicenceToBill enverra la notification jusqu’à obtenir une réponse 200 OK.

Vérifier qu’un webhook provient de LicenceToBill

Les Webhooks créés par LicenceToBill peuvent être vérifiées par le calcul d’une signature numérique. Parmi les paramètres de l’entête de la requête HTTP POST que votre application reçoit, vous trouverez les paramètres suivant :

  • X-Ltb-Key ( Cette clé est unique à chaque webhook )
  • X-Ltb-Signature

Méthode de vérification :

  • concaténer X-LTB-Key et la clé business ( La clé Business est présente dans le backoffice -> « Paramètre généraux »)
  • Hasher le tout (avec SHA-1)
  • Encoder le hash en base64.

Si le résultat est identique à X-Ltb-Signature, la notification provient de LicenceToBill

Exemple de code PHP pour vérifier qu’un webhook provient bien de LicenceToBill

<?php
function verify_webhook ($keyRequest, $keyBusiness, $keySignature )
{
$calculated_hash = base64_encode(sha1($keyRequest.$keyBusiness,true));
return ($keySignature == $calculated_hash); }
?>

Structure des données d’un webhook ‘Deal’

Dans le corps de la requête HTTP POST que votre application reçoit, vous trouverez les paramètres suivant :

Type de notification :

  • DealFirstStart
  • DealRenewal
  • DealSuspendedPaymentMissing
  • DealTerminated
  • DealHistory
  • DealTerminatedRevoked

Status : voir le détail https://api.licencetobill.com/v2/deals/users/{key_user}

Ex :

{
"id_notification": "106238",
"date_notification": "2014-04-29T15:51:22.9515239Z",
"type_notification": "DealFirstStart",
"signature": "f1f48eff-1f85-46eb-9896-cb24e1dc9802",
"deal": {
"key_deal": "7902340c-1fa9-4df2-a65b-f94cef55ae3a",
"key_offer": "7f934eb7-6f7a-440d-aa0c-d5fd553c79c5",
"key_user": "12838",
"status": "Running",
"title": "Offre Premium",
…
}

 

Structure des données d’un webhook ‘Deal’

Dans le corps de la requête HTTP POST que votre application reçoit, vous trouverez les paramètres suivant :

Type de notification :

  • PermissionExpires30days
  • PermissionExpires7days
  • PermissionExpires1day
  • PermissionCardUpdated

Ex :

{
"id_notification": "105848",
"date_notification": "2014-04-25T08:29:13.256885Z",
"type_notification": "PermissionCardUpdated",
"signature": "f7ff3b85-6752-43a8-9474-8135354484f7",
"permission": {
"key_user": "12636",
"date_expiration": "2015-02-01T00:00:00",
"indication": "xxxx-xxxx-xxxx-1161",
"type_permission": "Paybox"
}
}