Accepter un paiement Affirm
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.
Si vous souhaitez continuer à configurer manuellement les moyens de paiement proposés à vos clients avec Checkout, utilisez ce guide (par exemple, pour accepter des paiements en mode abonnement). Sinon, migrez vers le 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
Lorsque vous créez une session Checkout, vous devez :
- Ajoutez
affirm
à la listepayment_method_types
. - Veiller à ce que tous vos
line_items
utilisent votre devise locale. - Nous vous recommandons de collecter les adresses de livraison en ajoutant votre pays au paramètre
shipping_address_collection[allowed_countries]
. Si vous ne souhaitez pas collecter l’adresse de livraison avec Checkout, vous pouvez également la fournir à l’aide depayment_intent_data[shipping]
. Ces informations sont utiles pour le calcul des taux d’approbation de prêt.
Traiter vos commandes
Utilisez une méthode telle que les webhooks pour gérer l’exécution 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_payment_method . | Contactez votre client par e-mail et demandez-lui de passer une nouvelle commande. |
Comprendre le traitement 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_action
à 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, cliquez sur Échec du paiement test. Votre PaymentIntent bascule alors de l’état requires_action
à requires_payment_method
.
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_payment_method
.
Hormis le refus d’un paiement, pour un PaymentIntent d’Affirm avec un état requires_action
, 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_payment_method
.
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_amount_too_small | Saisissez un montant compris dans les limites de transaction par défaut d’Affirm pour le pays donné. |
invalid_amount_too_large | Saisissez un montant compris dans les limites de transaction par défaut d’Affirm pour le pays donné. |
missing_required_parameter | Consultez le message d’erreur pour en savoir plus sur le paramètre requis. |
nonexistent_country | Dans les informations de livraison et de facturation, entrez un code pays ISO à deux lettres valide pour la propriété country . |
payment_intent_invalid_currency | Saisissez la devise appropriée. Affirm ne prend en charge que les paiements dans votre devise locale. |
payment_intent_redirect_confirmation_without_return_url | Spécifiez une URL de retour return_url lors de la confirmation d’un PaymentIntent avec Affirm. |
payment_method_invalid_parameter | Consultez le message d’erreur pour en savoir plus sur le paramètre. |