Best Practices: Using Webhooks

Learn about best practices to follow when working with webhooks. Explore information about webhook events, allowlists, retry logic, and security.

Événements

Votre point de terminaison webhook doit être configuré pour recevoir uniquement les types d'événements requis par votre intégration.Écouter des événements supplémentaires (ou tous les événements) mettra une pression excessive sur votre serveur et n'est pas recommandé.

📘

La configuration des événements ne peut être effectuée que par Affirm. Veuillez communiquer avec Affirm via le widget d'assistance.

Allowlists

Affirm uses a number of IP addresses when sending webhook requests and new IPs may be utilized as our systems scale and new resources are brought online. Because of this, we strongly recommend not implementing IP Whitelists for webhook requests because this might cause Affirm's webhook calls to fail.

Réessayer la logique

Affirm doesn't currently resend (or support retry mechanism) a webhook event when your endpoint doesn't successfully receive it.

Sécurité

Authentification

Nous pouvons prendre en charge l'authentification de base dans l'URL.

Exemple : "AB123 :[courriel protégé]/affirm_webhook".

Demandes signées

Affirm signe les demandes de webhook, afin que vous puissiez éventuellement vérifier qu'Affirm envoie la demande, plutôt qu'un tiers prétendant être Affirm. Chaque demande comprend les éléments suivants : un en-tête codé en base-64 et une X-Affirm-Signature. La valeur de l'en-tête est une signature de hachage HMAC-SHA512 calculée à partir de la charge utile de la demande et de votre clé API privée trouvée dans votre tableau de bord Commerçant.

Rejouer la prévention des attaques

Si un tiers intercepte une charge utile d'une demande et sa signature, votre endpoint est susceptible à une attaque par replay. Pour atténuer ces attaques, nous incluons un horodatage dans l'en-tête X-Affirm-Signature Signature. Comme l'horodatage fait partie de la charge utile signée, l'attaquant ne peut pas modifier l'horodatage sans invalider la signature. Si la signature est valide, mais que l'horodatage est ancien, vous devez rejeter la demande. Nous vous recommandons de rejeter une réponse dont l'horodatage est antérieur de 5 minutes à l'heure actuelle.