Accepter un paiement Affirm
Comment accepter les paiements Affirm, un moyen de paiement qui permet aux clients d'acheter tout de suite et de payer plus tard.
Mise en garde
Stripe propose automatiquement à vos clients des options de moyens de paiement selon leur devise, les restrictions sur les moyens de paiement et d’autres paramètres. Nous vous recommandons de configurer vos moyens de paiement à partir du Dashboard Stripe en suivant les instructions indiquées dans Accepter un paiement.
If you want to continue manually configuring the payment methods you present to your customers with Checkout, use this guide. Otherwise, update your integration to configure payment methods in the Dashboard.
Affirm est un moyen de paiement à usage unique et à notification immédiate avec lequel le client doit authentifier son paiement. Les clients sont redirigés vers le site d’Affirm, ils acceptent alors les conditions d’un plan de paiement échelonné. Une fois que le client a accepté les conditions, les fonds sont garantis et transférés vers votre compte Stripe. Le client rembourse directement Affirm au fil du temps.
Note
Avant de commencer l’intégration, assurez-vous que votre compte est admissible à Affirm en vous rendant dans vos paramètres des moyens de paiement.
Déterminer la compatibilité
Une session Checkout doit remplir toutes les conditions suivantes pour prendre en charge les paiements Affirm :
- Vous ne pouvez utiliser que les postes ponctuels. Affirm ne prend pas en charge les plans d’abonnement récurrents.
- Les tarifs doivent être exprimés dans la devise locale.
Accepter un paiement
Note
Ce guide s’appuie sur l’intégration de base de Checkout permettant d’accepter un paiement.
Suivez ce guide pour savoir comment activer Affirm et découvrir les différences entre l’acceptation d’un paiement par carte bancaire et l’utilisation d’Affirm.
Activer le moyen de paiement Affirm
Lors de la création d’une nouvelle session Checkout, vous devez :
- Ajoutez
affirm
à la listepayment_
.method_ types - Veiller à ce que tous vos
line_
utilisent votre devise locale.items - Nous vous recommandons de collecter les adresses de livraison en ajoutant votre pays au paramètre
shipping_
. Si vous ne souhaitez pas collecter l’adresse de livraison avec Checkout, vous pouvez également la fournir à l’aide deaddress_ collection[allowed_ countries] payment_
. Ces informations sont utiles pour le calcul des taux d’approbation de prêt.intent_ data[shipping]
Traiter vos commandes
Utilisez une méthode telle que les webhooks pour gérer le traitement de la commande plutôt que d’attendre que votre client revienne sur la page de l’état du paiement.
Les événements suivants sont envoyés lorsque l’état du paiement change :
Nom de l’événement | Description | Étapes suivantes |
---|---|---|
checkout.session.completed | Le client a autorisé le paiement en envoyant le formulaire Checkout. | Attendez que le paiement aboutisse ou échoue. |
payment_intent.succeeded | Le paiement du client a abouti. Le PaymentIntent bascule à l’état succeeded . | Traitez la commande de biens ou de services du client. |
payment_intent.payment_failed | Le paiement du client a été refusé, ou le paiement a échoué pour un autre motif. Le PaymentIntent revient à l’état requires_ . | Contactez votre client par e-mail et demandez-lui de passer une nouvelle commande. |
En savoir plus sur la réalisation des commandes.
Tester votre intégration
Lors du test de votre intégration Checkout, sélectionnez le moyen de paiement Affirm, puis cliquez sur le bouton Payer.
Testez votre intégration Affirm en affichant la page de redirection à l’aide de vos clés API de test. Vous pouvez tester la réussite de paiement en l’authentifiant sur la page de redirection. Le PaymentIntent passe alors de l’état requires_
à succeeded
.
Pour tester un échec d’authentification de l’utilisateur, utilisez vos clés API de test et accédez à la page de redirection. Sur cette page, fermez la fenêtre modale Affirm et vérifiez que le paiement a échoué. L’état du PaymentIntent passe de requires_
à requires_
.
Lorsque le système vous redirige vers l’environnement de test d’Affirm, Affirm peut vous demander les quatre derniers chiffres de votre SSN. Affirm suggère d’utiliser '0000'
ou '5678'
.
Pour les PaymentIntents à capture manuelle en mode test, le PaymentIntent non capturé expire automatiquement 10 minutes après l’aboutissement de l’autorisation.
Échecs de paiement
Affirm prend en compte de nombreux facteurs pour accepter ou refuser une transaction (par exemple, la durée d’utilisation d’Affirm par le client, le montant restant que le client doit rembourser et la valeur de la commande actuelle).
Présentez toujours des options de paiement supplémentaires telles que card
dans votre tunnel de paiement, car les paiements Affirm ont un taux de refus supérieur aux autres moyens de paiement. Dans ces cas, le PaymentMethod est détaché et l’état de l’objet PaymentIntent passe automatiquement à requires_
.
Hormis le refus d’un paiement, pour un PaymentIntent d’Affirm avec un état requires_
, les clients doivent effectuer le paiement sous 12 heures une fois que vous les avez redirigés vers le site d’Affirm. Si aucune action n’est prise par le client sous 12 heures, le PaymentMethod est détaché et l’état de l’objet PaymentIntent passe automatiquement à requires_
.
Dans ce cas, informez votre client pour réessayer avec une option de paiement différente présentée dans votre tunnel de paiement.
Codes d'erreur
Voici les codes d’erreur courants et les actions recommandées correspondantes :
Code d’erreur | Action recommandée |
---|---|
invalid_ | Saisissez un montant compris dans les limites de transaction par défaut d’Affirm pour le pays donné. |
invalid_ | Saisissez un montant compris dans les limites de transaction par défaut d’Affirm pour le pays donné. |
missing_ | Consultez le message d’erreur pour en savoir plus sur le paramètre requis. |
nonexistent_ | Dans les informations de livraison et de facturation, entrez un code pays ISO à deux lettres valide pour la propriété country . |
payment_ | Saisissez la devise appropriée. Affirm ne prend en charge que les paiements dans votre devise locale. |
payment_ | Spécifiez une URL de retour return_ lors de la confirmation d’un PaymentIntent avec Affirm. |
payment_ | Consultez le message d’erreur pour en savoir plus sur le paramètre. |