Accepter un paiement Afterpay ou Clearpay
Comment accepter Afterpay (aussi connu sous le nom de Clearpay au Royaume-Uni), un moyen de paiement utilisé aux États-Unis, au Canada, au Royaume-Uni, en Australie, et en Nouvelle-Zélande.
Mise en garde
Le contenu de cette section fait référence à un produit antérieur. Vous devez plutôt consulter le guide relatif à l’acceptation d’un paiement pour en savoir plus sur le chemin d’intégration le plus récent. Stripe prend toujours en charge ce produit, néanmoins cette prise en charge peut prendre fin si le produit devient obsolète.
Les utilisateurs de Stripe peuvent utiliser l’API Payment Intents, un chemin d’intégration unique pour la création de paiements à l’aide de tout moyen pris en charge, pour accepter les paiements avec Afterpay des clients dans les pays suivants :
- Australie
- Canada
- Nouvelle-Zélande
- Royaume-Uni
- États-Unis
Afterpay est un moyen de paiement à usage unique et à notification immédiate pour lequel le client doit authentifier son paiement. Les clients sont redirigés vers le site d’Afterpay, sur lequel ils acceptent les conditions d’un plan de versements échelonnés. 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 Afterpay au fil du temps.
Remarque
Avant de commencer l’intégration, assurez-vous que votre compte est admissible à Afterpay en vous rendant dans vos paramètres des moyens de paiement.
Pour commencer, il vous faut un compte Stripe. S’inscrire.
Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :
Un PaymentIntent est un objet qui représente votre intention de collecter un paiement auprès d’un client et qui suit le cycle de vie du processus de paiement à chaque étape. Créez tout d’abord un PaymentIntent
sur votre serveur, puis indiquez le montant à encaisser ainsi que la devise. Si votre intégration inclut déjà l’API Payment Intents, ajoutez afterpay_
à la liste des types de moyens de paiement valides pour votre PaymentIntent
.
Vous pouvez gérer les moyens de paiement depuis le Dashboard. Stripe gère le renvoi des moyens de paiement admissibles en fonction de facteurs tels que le montant de la transaction, la devise et le tunnel de paiement. L’exemple ci-dessous utilise l’attribut automatic_payment_methods, mais vous pouvez répertorier afterpay_
dans les types de moyens de paiement. Dans la dernière version de l’API, le paramètre automatic_
est facultatif, car Stripe l’active déjà par défaut. Quelle que soit l’option choisie, veillez à activer Afterpay Clearpay dans le Dashboard.
Récupérer la clé secrète du client
Le PaymentIntent contient une clé secrète à utiliser côté client pour finaliser le processus de paiement en toute sécurité. Vous pouvez adopter différentes approches pour transmettre cette clé secrète côté client.
Options supplémentaires du moyen de paiement
Vous pouvez préciser un paramètre reference
facultatif dans les options des moyens de paiement pour votre PaymentIntent
qui définit un identifiant de commande interne pour le paiement. Bien que ces informations ne soient généralement pas visibles ni par l’entreprise ni par le consommateur, l’équipe d’assistance interne d’Afterpay peut y accéder lors des demandes d’assistance manuelles. L’identifiant est limité à 128 caractères et ne doit contenir que des lettres, des chiffres, des traits de soulignement, des barres obliques inversées et des tirets.
À cette étape, vous effectuerez les paiements avec Afterpay côté client en utilisant Stripe.js.
Configurer Stripe.js
Lorsqu’un client clique pour payer avec Afterpay, nous vous recommandons d’utiliser Stripe.js pour soumettre le paiement à Stripe. Stripe.js est notre bibliothèque JavaScript de base pour créer les tunnels de paiement. Elle gère automatiquement les opérations complexes telles que la redirection décrite ci-dessous, et vous permettra de facilement étendre votre intégration à d’autres moyens de paiement à l’avenir. Incluez le script Stripe.js sur votre page de paiement en l’ajoutant en haut de votre fichier HTML.
Créez une instance de Stripe.js avec le code JavaScript suivant sur votre page de paiement.
Au lieu de transmettre au client l’objet PaymentIntent dans son intégralité, utilisez la clé secrète du client de l’étape 2. Cette clé est différente de vos clés API qui servent à authentifier les requêtes envoyées aux API Stripe.
La clé secrète du client doit être utilisée avec prudence, car elle peut servir à finaliser le paiement. Ne l’enregistrez pas, ne l’intégrez pas dans des URL et ne la dévoilez à personne d’autre que votre client.
Utilisez stripe.confirmAfterpayClearpayPayment pour exécuter la redirection hors de votre page et effectuer le paiement. Ajoutez une adresse return_url à cette fonction pour indiquer à Stripe vers quelle page rediriger l’utilisateur une fois le paiement effectué sur le site web ou l’application mobile Afterpay.
Lorsque votre client effectue un paiement, Stripe le redirige vers l’URL return_
et inclut les paramètres de requête d’URL suivants. La page de redirection peut utiliser ces paramètres pour récupérer l’état du PaymentIntent et ainsi afficher l’état du paiement pour le client.
Lorsque vous spécifiez une URL return_
, vous pouvez également ajouter vos propres paramètres de requête à utiliser sur la page de redirection.
Paramètre | Description |
---|---|
payment_ | Identifiant unique du PaymentIntent . |
payment_ | La clé secrète du client de l’objet PaymentIntent . Pour les intégrations d’abonnements, le client_secret est également exposé sur l’objet Invoice via confirmation_ |
Lorsque le client est redirigé vers votre site, vous pouvez utiliser le payment_
pour interroger le PaymentIntent et communiquer l’état de la transaction à votre client.
Vous pouvez, à titre facultatif, accepter des données de postes de facture afin de fournir à Afterpay davantage d’indications en termes de risques. Cette fonctionnalité est actuellement en version bêta privée. Veuillez nous contacter pour y accéder.
Contrairement à l’autorisation et à la capture distinctes pour les paiements par carte, Afterpay débite le client du montant du premier versement au moment de l’autorisation. Vous disposez ensuite d’un maximum de 13 jours après l’autorisation pour capturer le reste du paiement. Si vous ne capturez pas le paiement dans le délai imparti, le premier versement échelonné est remboursé au client, et ce dernier ne sera pas débité pour les autres versements. Dans ce cas, Stripe annule également le PaymentIntent et envoie un événement payment_intent.canceled.
Si vous savez que vous ne pouvez pas capturer le paiement, nous vous recommandons d’annuler le PaymentIntent plutôt que d’attendre la fin de la période de 13 jours. L’annulation proactive du PaymentIntent déclenche le remboursement immédiat du premier versement échelonné à votre client, ce qui permet d’éviter toute confusion éventuelle concernant les paiements sur son relevé.
Indiquer à Stripe d’uniquement autoriser
Pour indiquer que vous voulez séparer l’autorisation de la capture, définissez la valeur de l’option capture_method sur manual
lorsque vous créez le PaymentIntent. Ce paramètre indique à Stripe d’autoriser uniquement le montant sur le compte Afterpay du client.
Une fois l’autorisation accordée, Stripe envoie un événement payment_intent.amount_capturable_updated. Consultez notre guide des événements pour de plus amples informations utiles.
Capturer les fonds
Une fois l’autorisation réussie, l’état du PaymentIntent passe à requires_
. Pour capturer les fonds autorisés, faites une demande de capture du PaymentIntent. Le montant total autorisé est capturé par défaut. Vous ne pouvez pas capturer un montant supérieur à cette valeur, mais vous pouvez capturer un montant inférieur.
Facultatif Annuler l’autorisation
Si vous devez annuler une autorisation, vous pouvez annuler le PaymentIntent correspondant.
Nous vous recommandons de recourir à Stripe.js pour gérer les redirections et paiements Afterpay côté client avec confirmAfterpayClearpayPayment
. L’utilisation de Stripe.js permet d’ajouter d’autres moyens de paiement à votre intégration. Cependant, vous pouvez aussi rediriger vos clients manuellement sur votre serveur en procédant comme suit :
Créez et confirmez un PaymentIntent de type
afterpay_
. Vous devez fournir la propriétéclearpay payment_
requise par Afterpay.method_ data. billing_ details payment_
est facultatif, mais recommandé pour améliorer les taux d’authentification. Lorsque vous spécifiez le paramètreintent. shipping payment_
, Stripe crée un PaymentMethod et l’utilise immédiatement avec le PaymentIntent.method_ data Vous devez également fournir dans le champ
return_
l’URL de redirection pour votre client une fois qu’il a finalisé son paiement. Vous pouvez fournir vos propres paramètres de requête dans cette URL. Ces paramètres seront inclus dans l’URL finale à l’issue du flux de redirection.url Le
PaymentIntent
créé a l’étatrequires_
et le type deaction next_
estaction redirect_
.to_ url Redirigez le client vers l’URL fournie dans la propriété
next_
. L’exemple de code fourni ici n’a qu’une valeur illustrative : la méthode de redirection peut différer sur votre framework Web.action. redirect_ to_ url. url
Lorsque le client a terminé le processus de paiement, il est redirigé vers le return_
configuré à l’étape 1. Les paramètres de requête d’URL payment_
et payment_
sont inclus et vous pouvez transmettre vos propres paramètres de requête, comme décrit ci-dessus.
Nous vous recommandons d’utiliser des webhooks afin de confirmer l’état du paiement.
Stripe envoie un événement payment_intent.succeeded à l’issue du paiement. Utilisez le Dashboard, un webhook personnalisé ou une solution partenaire pour recevoir ces événements et exécuter des actions, comme envoyer une confirmation de commande par e-mail à votre client, enregistrer la vente dans une base de données ou lancer un workflow de livraison.
Plutôt que d’attendre un rappel de votre client, écoutez ces événements. En effet, côté client, l’acheteur pourrait fermer la fenêtre de son navigateur ou quitter l’application avant l’exécution du rappel. Des personnes malveillantes peuvent en profiter pour manipuler la réponse. Si vous configurez votre intégration de manière à écouter les événements asynchrones, cela vous permettra également d’accepter de nouveaux moyens de paiement plus facilement à l’avenir. Apprenez-en davantage sur les différences entre les différents moyens de paiement pris en charge.
Gérer les événements manuellement dans le Dashboard
Utilisez le Dashboard pour afficher vos paiements de test dans le Dashboard, envoyer des reçus par e-mail, gérer les virements ou réessayer les paiements échoués.
Créer un webhook personnalisé
Créez un gestionnaire de webhook personnalisé pour écouter les événements et créer des tunnels de paiement asynchrones personnalisés. Testez et déboguez votre intégration de webhook localement avec la CLI Stripe.
Intégrer une application prédéfinie
Gérez les événements commerciaux courants, tels que l’automatisation ou le marketing et les ventes, en intégrant une application partenaire.
Testez votre intégration Afterpay 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 passera 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, cliquez sur Échec du paiement test. Votre PaymentIntent bascule alors de l’état requires_
à requires_
.
Pour les PaymentIntents à capture manuelle en mode test, le PaymentIntent non capturé expirera automatiquement 10 minutes après l’aboutissement de l’autorisation.
Le composant Payment Method Messaging Element est un composant d’interface utilisateur intégrable qui permet à vos clients de savoir quelles options de paiement différé leur seront proposées, directement depuis vos pages de produit, de panier ou de paiement.
Pour ajouter le composant Payment Method Messaging Element à votre site Web, veuillez consulter le guide dédié.

Échecs de paiement
Afterpay prend en compte de nombreux facteurs pour accepter ou décliner une transaction (par exemple, la durée d’utilisation d’Afterpay par le client, le montant restant que le client doit rembourser, ou encore la valeur de la commande actuelle).
Vous devez toujours présenter des options de paiement supplémentaires telles que card
dans votre tunnel de paiement, car les paiements Afterpay ont un taux de refus supérieur aux autres moyens de paiement. Dans ces cas, le PaymentMethod est dissocié et l’état de l’objet PaymentIntent passe automatiquement à requires_
.
Pour un PaymentIntent Afterpay portant l’état requires_
, les clients doivent effectuer le paiement dans les 3 heures suivant leur redirection vers le site d’Afterpay (ceci ne s’applique pas aux paiements refusés). Si aucune action n’est effectuée dans ce délai de 3 heures, le PaymentMethod est dissocié et l’état de l’objet PaymentIntent passe automatiquement à requires_
.
Dans ces 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 |
---|---|
payment_ | Erreur générique indiquant l’échec du paiement Afterpay. Il peut également s’agir d’un refus qui n’apparaît pas sous la forme d’un code d’erreur de refus. |
payment_ | Afterpay a refusé le paiement du client. Le client doit désormais contacter Afterpay pour obtenir plus d’informations. |
payment_ | Le client n’a jamais finalisé le paiement sur la page de paiement Afterpay, et la session de paiement a expiré. Stripe abandonne automatiquement les PaymentIntents qui n’ont pas été autorisés avec succès 3 heures après la création initiale du paiement. |
payment_ | Afterpay a rencontré une erreur liée au service et n’est pas en mesure de répondre à la demande. Réessayez ultérieurement. |
amount_ | Saisissez un montant compris dans les limites de transaction par défaut d’Afterpay pour chaque pays. |
amount_ | Saisissez un montant compris dans les limites de transaction par défaut d’Afterpay pour chaque pays. |