Signature du Webhook
- Sécurisé avec la signature HMAC-SHA256.
- L’en-tête Sezzle-Signature contient un hachage du corps du webhook, généré à l’aide de la clé privée du marchand.
- Vérifiez toujours que la signature correspond aux données du webhook pour confirmer qu’elle provient de Sezzle.
Livraison des Webhooks et réseau
- Les webhooks sont des requêtes HTTP POST de serveur à serveur, envoyées depuis l’infrastructure de Sezzle directement vers votre point de terminaison.
- Elles ne proviennent pas d’un navigateur ni d’un nom d’hôte Sezzle résolvable, il n’existe donc aucun domaine à ajouter à une liste d’autorisation.
- Les requêtes portent un user-agent serveur standard et aucun des en-têtes envoyés par un navigateur, tels que les cookies,
RefererouAccept-Language. Les règles anti-bots de certains WAF et CDN évaluent les requêtes sur ces signaux et peuvent bloquer les livraisons.
Sezzle-Signature dans votre application comme décrit ci-dessus.
Il s’agit de deux étapes distinctes. Une règle qui laisse passer toute requête portant un en-tête Sezzle-Signature n’authentifie rien par elle-même, car n’importe quel appelant peut donner à cet en-tête la valeur de son choix. La sécurité vient du recalcul du HMAC sur le corps de la requête avec votre clé privée, et du rejet des requêtes dont la signature ne correspond pas. Réalisée ainsi, la vérification de la signature confirme qu’un événement provient bien de Sezzle, ce que le filtrage par adresse IP source ne permet pas à lui seul.
Si votre politique de sécurité exige une liste d’autorisation d’adresses IP sources, contactez votre gestionnaire de compte. Nos adresses de sortie ne sont pas publiées ici afin que nous puissions prévenir directement les marchands concernés avant toute modification de notre infrastructure.
Charge utile de l’événement Webhook
- Options
- Modèle
string
Identifiant unique pour l’événement webhook.
string
Horodatage (ISO 8601) indiquant quand l’événement a été généré.
string
Type d’événementOptions disponibles :
customer.tokenized, order.authorized, order.captured, order.refunded, dispute.merchant_input_requested, dispute.deadline_approaching, dispute.closed.customer_win, dispute.closed.merchant_win, dispute.closed.neutralstring
Type de données associé à l’événement.Options disponibles :
customer, order, disputeobject
Données de charge utile spécifiques au type d’événement. Voir les options dans l’accordéon applicable ci-dessous.
Exemples par événement
customer.tokenized
customer.tokenized
order.captured
order.captured
- Le
"uuid"est l’UUID du webhook - Le
"data.uuid"est l’UUID de la commande qui peut être utilisé dans l’appel API pour obtenir les détails de la commande - Le
"data.capture.uuid"est l’UUID pour la capture
order.refunded
order.refunded
- Le
"data.uuid"est l’UUID de la commande qui peut être utilisé dans l’appel API pour obtenir les détails de la commande
source field:- Si la valeur est
"dashboard", c’est initié depuis le tableau de bord du marchand - Si la valeur est
"gateway", c’est via l’API de la passerelle
dispute
dispute
Ce qui suit s’applique aux webhooks suivants :
dispute.merchant_input_requesteddispute.deadline_approachingdispute.closed.customer_windispute.closed.merchant_windispute.closed.neutral
Acceptation et nouvelles tentatives des Webhooks
- Considéré comme livré lors de la réception de toute réponse HTTP 2xx, par exemple 200, 202 ou 204.
- Toute autre réponse déclenche de nouvelles tentatives :
- Plusieurs tentatives dans la première heure.
- Quelques tentatives tout au long de la journée.
- Dernières tentatives un jour et trois jours plus tard, s’étalant sur cinq jours au total.
- Si la dernière tentative échoue, l’abonnement au webhook est supprimé pour tous les événements.
- Pour reprendre la réception des webhooks, recréez le webhook.
- Les webhooks peuvent ne pas arriver dans l’ordre chronologique, car de nouveaux peuvent être envoyés avant les nouvelles tentatives des anciens.
- Les webhooks relancés utilisent la clé privée actuelle du marchand pour la signature, donc la signature peut différer de l’originale si la clé a changé.