Webhook
Les articles GetProcess de cette documentation décrivent un moyen d'obtenir le statut d'un processus via un appel à un point de terminaison. De cette manière, un polling est effectué pour recevoir des informations sur les processus qui ont été créés. Cela signifie que le point de terminaison peut être appelé plusieurs fois pour le même processus afin d'obtenir le statut le plus récent.
Avec l'utilisation de webhooks, il est possible de notifier un point de terminaison spécifique chaque fois que le statut d'un processus change.
Qu'est-ce qu'un webhook ?
Un webhook est un service de notification systémique qui permet une intégration asynchrone entre systèmes, où un système notifie l'autre via un déclencheur. Ainsi, les webhooks permettent de maintenir les systèmes à jour avec les informations les plus récentes sans nécessiter de polling constant pour vérifier les mises à jour.
Comment configurer le Webhook
Pour configurer le webhook, les informations suivantes sont requises :
- URL de notification : il s'agit du point de terminaison utilisé par Unico pour les notifications de mise à jour de statut.
- Type d'authentification : il s'agit de la méthode utilisée pour authentifier l'invocation du point de terminaison. Les options suivantes sont disponibles :
- OAuth2 ;
- Basic Authorization ;
- API Key ;
- Aucune authentification.
- Pour OAuth2, les informations suivantes doivent être fournies :
endpointdu Webhook ;URLdu fournisseur OAuth2 ;ClientIddu fournisseur OAuth2 ;Secretdu fournisseur OAuth2.
- Pour Basic Authorization, il est nécessaire d'envoyer les informations au format
user:pass. - Pour API Key, deux formats sont possibles :
header:value, lorsqu'un nom d'en-tête spécifique est souhaité ;value, lorsque l'en-tête souhaité estAuthorization.
- Paramètres de nouvelle tentative : cela indique le nombre de tentatives en cas d'échec lors de l'appel du point de terminaison :
- Nombre maximum de tentatives ;
- Intervalle entre les tentatives (en secondes) ;
- Limite de débit : nombre maximum d'envois simultanés (max : 500) ;
- Délai d'expiration : temps d'attente maximum pour la réponse du point de terminaison (en secondes).
- Statuts à notifier : vous pouvez vous abonner à des statuts spécifiques pour recevoir des notifications. Ceux-ci incluent :
approved: transaction approuvée ;processing: transaction en cours de traitement ;inconclusive: nous n'avons pas pu effectuer une validation concluante ;shared: transaction partagée, en attente de soumission ;skipped: la personne a ignoré la capture biométrique dans le flux ;unknown-share: la personne a indiqué ne pas reconnaître l'achat ;absent-holder: le titulaire de la carte n'est pas présent pour effectuer la capture ;expired: la personne n'a pas terminé la capture dans le délai établi et la transaction a expiré.
L'API peut être protégée par une méthode d'authentification telle que Basic Authentication ou API Key. Une liste d'IP valides pour l'accès peut également être définie pour une protection supplémentaire.
Intégration avec Vérification sans carte présente
Lors de la configuration d'un webhook sur la plateforme, vous pouvez recevoir des informations sur les processus via des notifications envoyées à un point de terminaison de l'API que vous avez développée pour recevoir ces mises à jour.
Les informations envoyées par la plateforme à l'API incluent :
- ID : identifiant de la transaction ;
- Status : statut de la transaction ;
- HasIdentityChanged : indique si un changement d'identité s'est produit dans la transaction (optionnel).
Notez qu'il est possible de choisir les statuts pour lesquels le client souhaite être notifié via la configuration du webhook. Après l'envoi de ces informations, la réponse attendue doit être synchrone.
Requêtes
La requête doit être une méthode POST vers une API REST, ce qui la rend plus simple et plus sécurisée pour envoyer les informations. Tous les champs doivent être obligatoires. Le corps de la requête doit accepter l'identifiant et le statut de la transaction, comme illustré dans l'exemple suivant :
{
"id": "8263a268-5388-492a-bca2-28e1ff4a69f0",
"status": "approved",
"hasIdentityChanged": false
}
Réponse
La réponse doit être synchrone. Le statut des requêtes réussies doit être compris entre 200 et 299. Tout autre statut sera considéré comme un échec, et Vérification sans carte présente effectuera des tentatives de notification supplémentaires (avec un backoff exponentiel entre elles), jusqu'