Développeur 7 min de lecture

Webhooks et résultats asynchrones de la Verification of Payee

Une intégration Verification of Payee robuste prévoit aussi la requête qui ne revient pas en 300 millisecondes. Voici comment utiliser webhooks et callbacks pour gérer les résultats asynchrones sans figer votre checkout.

Par Verification of Payee EU · propulsé par RoxPay

Webhooks et résultats asynchrones de la Verification of Payee

À retenir

  • Traitez la VoP comme habituellement synchrone mais occasionnellement asynchrone : concevez un état « en attente » dès le premier jour.
  • Utilisez un webhook pour recevoir le résultat final lorsqu'un PSP répondeur répond en retard.
  • Vérifiez toujours les signatures des webhooks et rendez les gestionnaires idempotents pour survivre aux relances.

Une requête de Verification of Payee renvoie généralement un résultat en temps réel, assez vite pour l'afficher avant que le payeur n'autorise un virement. Mais la VoP est un appel réseau vers une autre banque, et les réseaux ne sont pas parfaitement fiables. Un PSP répondeur peut être lent, une connexion peut tomber, ou une requête peut atterrir dans une file. Une intégration de niveau production a besoin d'un plan pour la réponse qui arrive quelques secondes — ou quelques minutes — en retard.

Pourquoi un appel VoP peut devenir asynchrone

Le schéma définit une fenêtre de réponse serrée, mais le trafic réel produit tout de même des cas limites que vous devez gérer avec élégance plutôt que de les traiter comme des erreurs dures :

  • Le PSP répondeur est temporairement surchargé et répond juste au-delà de votre délai synchrone.
  • Une panne réseau transitoire déclenche une relance qui se termine après le retour de votre requête initiale.
  • Vous soumettez de nombreuses vérifications en lot (par exemple une remise de paiements) et collectez les résultats au fur et à mesure.

Concevoir le flux webhook

Le modèle le plus propre est de donner à chaque vérification un identifiant stable, de renvoyer un statut « en attente » quand la fenêtre synchrone expire, et de laisser un webhook livrer le résultat final.

  1. 1 Soumettez la vérification et stockez son ID de requête en regard du paiement que vous êtes sur le point d'effectuer.
  2. 2 Si aucune réponse n'arrive dans votre budget synchrone, montrez au payeur un état « en attente » plutôt qu'une erreur.
  3. 3 Recevez le résultat final (correspondance, correspondance partielle, absence de correspondance ou non-disponible) sur votre endpoint webhook.
  4. 4 Rapprochez la charge utile du webhook de l'ID de requête stocké et mettez à jour la décision de paiement.

Sécurisé et idempotent par défaut

Vérifiez la signature de chaque webhook avant de lui faire confiance, et rendez votre gestionnaire idempotent : le même résultat peut être livré plus d'une fois. Clé votre traitement sur l'ID de requête pour qu'une livraison en double n'agisse jamais deux fois sur un paiement.

RoxPay renvoie un résultat synchrone chaque fois qu'elle le peut et se replie sur un webhook signé lorsqu'un PSP répondeur est lent, pour que votre checkout reste réactif et vos enregistrements complets.

FAQ

Questions fréquentes

Pas strictement, mais c'est fortement recommandé. Sans chemin asynchrone, un PSP répondeur lent vous force à bloquer le payeur ou à jeter un résultat valide. Un webhook permet de capturer proprement les réponses tardives.

Rendez votre gestionnaire de webhook idempotent. Clé le traitement sur l'ID de requête de vérification et ignorez une charge utile déjà appliquée, car le même résultat peut être livré plus d'une fois.

Montrez un état neutre « en attente » plutôt qu'un échec, et évitez d'auto-confirmer un virement à haut risque jusqu'à l'arrivée du résultat ou l'atteinte de votre délai de politique.

Construisez une intégration VoP résiliente

Parlez à RoxPay de résultats synchrones avec un repli webhook pour les PSP répondeurs lents.