Rembourser des transactions
Annulez ou remboursez des paiements avec Stripe Terminal.
Stripe Terminal prend en charge les captures automatiques ainsi que manuelles.
Lorsque le SDK renvoie un PaymentIntent confirmé à votre application, le paiement est autorisé, mais pas capturé. Vous pouvez annuler des paiements autorisés mais non capturés. Si le PaymentIntent a déjà été capturé, vous devez rembourser le paiement sous-jacent créé par le PaymentIntent à l’aide de l’API Refunds ou de votre Dashboard.
Nous vous recommandons de rapprocher les paiements sur votre back-end après une journée d’activité afin d’éviter les autorisations involontaires et les problèmes de fonds non collectés.
Disponibilité
L’annulation des paiements est disponible pour les cartes Visa, Mastercard, American Express, Discover et girocard. Pour les moyens de paiement à message unique comme Interac et eftpos, les PaymentIntents sont automatiquement capturés. Au lieu d’annuler le PaymentIntent, votre application doit permettre d’initier un remboursement à la fin du tunnel de paiement.
Les remboursements en ligne sont disponibles sur tous les réseaux de cartes à l’exception d’Interac.
Les remboursements par TPE ne sont disponibles que sur Interac.
Annuler des paiements Client-sideServer-side
Vous pouvez annuler un PaymentIntent card_
à tout moment avant sa capture. L’annulation d’un PaymentIntent débloque tous les fonds non capturés, et un PaymentIntent annulé ne peut plus être utilisé pour effectuer des paiements.
Utilisez cette option si, par exemple, votre client décide d’utiliser un moyen de paiement différent ou de payer en espèces une fois que le paiement a été traité. Dans l’interface utilisateur de votre application, vous pouvez envisager de permettre à l’utilisateur d’annuler le paiement après sa confirmation, avant de finaliser le paiement et de notifier votre backend de le capturer.
Côté client
Pour annuler un PaymentIntent
dans votre client à l’aide du SDK iOS, Android ou React Native :
Note
L’annulation d’un PaymentIntent
côté client est possible avec les SDK iOS, Android et React Native. Si vous utilisez une intégration pilotée par serveur, annulez le PaymentIntent
côté serveur.
Côté serveur
Si vous utilisez le SDK JavaScript ou une intégration pilotée par serveur, vous devez annuler les PaymentIntent
sur votre serveur. Pour les autres SDK clients, vous pouvez annuler le PaymentIntent
sur votre serveur lorsque les informations requises pour initier un paiement ne sont pas immédiatement disponibles dans votre application.
Effectuer des remboursements Server-side
Lorsque vous utilisez un PaymentIntent pour encaisser le paiement d’un client, Stripe crée un paiement en arrière-plan. Pour rembourser le paiement du client une fois que le PaymentIntent a été traité avec succès, créez un remboursement en transmettant l’ID du PaymentIntent ou l’ID du paiement. Vous pouvez aussi rembourser une partie du paiement en spécifiant un montant.
Vous pouvez effectuer des remboursements à l’aide de l’API ou via le Dashboard. Pour les transactions Interac au Canada, les lecteurs BBPOS WisePOS E et Stripe S700 prennent en charge les remboursements par TPE.
Pour les remboursements en ligne, le titulaire de la carte n’a pas besoin de la présenter à nouveau au point de vente. L’exemple suivant montre comment créer un remboursement intégral en transmettant l’ID du PaymentIntent.
Pour effectuer un remboursement partiel d’un PaymentIntent, saisissez un paramètre amount
, qui devra être un nombre entier exprimé en centimes (ou dans la plus petite unité de la devise du paiement) :