Accepter un virement bancaire
Utilisez l'API Payment Intents pour accepter les paiements par virements bancaires.
La première fois que vous acceptez un paiement par virement bancaire de la part d’un client, Stripe génère un compte bancaire virtuel pour lui, que vous pouvez ensuite partager directement avec lui. Tous les futurs paiements par virement bancaire de ce client seront envoyés vers ce compte bancaire. Dans certains pays, Stripe vous fournit également un numéro de référence de virement unique que votre client doit associer à chaque virement afin de faciliter la comparaison entre le virement et les paiements en attente. Notez que certains pays limitent le nombre de numéros de comptes bancaires virtuels que vous pouvez créer gratuitement.
Le diagramme de séquence suivant propose un aperçu des étapes courantes à suivre lors de l’acceptation d’un paiement par virement bancaire :
Gérer les paiements insuffisants et les trop-perçus
Avec les paiements par virement bancaire, il peut arriver que le montant des fonds envoyés par le client soit inférieur ou supérieur à celui attendu. Si la somme est insuffisante, Stripe règle partiellement le PaymentIntent ouvert. Les factures ne font pas l’objet d’un règlement partiel et restent ouvertes jusqu’à ce que les fonds entrants couvrent l’intégralité de leur montant.
Si le client envoie un montant supérieur au montant attendu, Stripe tente de rapprocher les fonds entrants avec un paiement en cours et conservera le montant excédentaire restant dans le solde de trésorerie du client. Vous trouverez plus de détails sur la manière dont Stripe gère le rapprochement dans la section consacrée aux opérations de rapprochement de notre documentation.
Gérer plusieurs paiements ou factures ouvert(e)s
Vous pouvez avoir plusieurs paiements ou factures ouvert(e)s payables par virement bancaire. Par défaut, Stripe tentera de rapprocher automatiquement le virement bancaire en utilisant certaines informations telles que le code de référence du virement ou le montant viré.
Vous pouvez désactiver le rapprochement automatique et rapprocher manuellement des paiements et des factures. Vous pouvez contourner le rapprochement automatique, selon le client, en définissant le mode de rapprochement sur manuel.
Configurer StripeCôté serveur
Pour commencer, il vous faut un compte Stripe. Inscrivez-vous.
Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :
Créer ou récupérer un clientCôté serveur
Vous devez associer un objet Customer à chaque paiement par virement bancaire à des fins de rapprochement. Si vous possédez déjà un objet Customer, vous pouvez ignorer cette étape. Sinon, créez un nouvel objet Customer.
Créer et confirmer un PaymentIntentCôté serveur
Un PaymentIntent est un objet qui représente votre intention d’encaisser un paiement client et qui suit le cycle de vie du processus de paiement étape par étape. Créez et confirmez un PaymentIntent sur le serveur et précisez le montant à encaisser ainsi que la devise. Vous devez également remplir les paramètres client de la demande de création du Paymentintent. Les virements bancaires ne sont pas disponibles sur les PayentIntents sans client.
Donner les instructions au client afin qu'il effectue le virement bancaireCôté client
Si le solde du client n’est pas assez élevé pour couvrir le montant demandé, le PaymentIntent affiche l’état requires_
. La réponse affiche un champ next_
contenant une valeur type
de display_
. Le hachage next_
contient les informations que vous devez montrer à votre client pour qu’il effectue le virement bancaire.
Note
Dans le mode production, Stripe fournit à chaque client des coordonnées bancaires uniques. En revanche, Stripe propose des coordonnées bancaires non valides à tous les clients en mode test. Contrairement au mode production, ces informations non valides peuvent ne pas être uniques.
Confirmer la réussite du PaymentIntent
Le PaymentIntent reste à l’état requires_
jusqu’à ce que les fonds arrivent sur le compte bancaire. Dès réception du paiement, l’état du PaymentIntent associé passe de l’état requires_
à succeeded
.
Vous devez configurer votre endpoint de webhook pour commencer à recevoir l’événement `payment_intent.partially_funded``.
Vous pouvez ajouter un webhook depuis le Dashboard.
Vous pouvez aussi utiliser l’API Webhook Endpoints pour recevoir l’événement payment_intent.partially_funded.
Au cours du flux de financement du paiement, Stripe envoie les événements suivants lorsque le PaymentIntent est mis à jour.
Événement | Description | Étapes suivantes |
---|---|---|
payment_ | Envoyé pendant la confirmation lorsque le solde du client ne dispose pas de fonds suffisants pour rapprocher le PaymentIntent, le PaymentIntent passe à l’état requires_ . | Demandez à votre client d’effectuer le virement bancaire avec le amount_ . |
payment_ | Le client a fait un virement bancaire qui a été appliqué au PaymentIntent, mais cela n’a pas suffi à finaliser le paiement. Cela peut arriver si le client a transféré un montant trop faible (pour cause de paiement insuffisant par erreur ou de frais facturés par sa banque) ou si un solde client restant a été appliqué à ce PaymentIntent. Les PaymentIntents partiellement remboursés ne sont pas visibles dans le solde de votre compte tant que le paiement n’a pas été effectué. | Demandez à votre client de réaliser un autre virement bancaire correspondant au nouveau amount_ pour finaliser le paiement. Si vous souhaitez effectuer le paiement avec les fonds partiellement appliqués, vous pouvez mettre à jour le champ amount et confirmer à nouveau le PaymentIntent. |
payment_ | Le paiement du client a réussi. | Traitez la commande de biens ou de services de votre client. |
Mise en garde
Lorsque vous modifiez le montant d’un PaymentIntent partiellement financé, les fonds sont reversés sur le solde du client. Si d’autres PaymentIntents sont ouverts, Stripe les finance automatiquement. Si le client est configuré pour le rapprochement manuel, vous devez utiliser les fonds à nouveau.
Nous vous recommandons d’utiliser des webhooks afin de confirmer que le paiement a abouti et pour signaler au client que le paiement a été effectué.
Exemple de code
Consulter les paiements en attente sur le Dashboard
Vous pouvez consulter les PaymentIntents associés à des virements bancaires en attente dans le Dashboard en appliquant le filtre En attente de financement au champ État.
Tester votre intégration
Vous pouvez tester votre intégration en simulant un virement bancaire entrant soit à l’aide du Dashboard, soit à l’aide d’une requête HTTP.
Avec le Dashboard
Pour simuler un virement bancaire à l’aide du Dashboard, accédez à la page du client dans le Dashboard. Dans la section Moyens de paiement, cliquez sur Ajouter et sélectionnez Ajouter des fonds au solde disponible (mode test uniquement).
Avec l'API Stripe
Vous pouvez également simuler un virement bancaire en effectuant un appel à l’API.
Gestion des problèmes de disponibilité temporaires
Les codes d’erreur suivants indiquent que des problèmes temporaires affectent la disponibilité du moyen de paiement :
Code | Description | Gestion |
---|---|---|
payment_ | Un trop grand nombre de requêtes successives ont été effectuées pour ce moyen de paiement, dont les limites sont plus strictes que les limites de débit à l’échelle de l’API. | Lorsque de nombreux clients tentent d’utiliser le même moyen de paiement (par exemple, pendant la période des soldes), ces erreurs peuvent perdurer pendant plusieurs requêtes API. Dans ce cas, demandez à vos utilisateurs de choisir un autre moyen de paiement. |
Mise en garde
Si vous prévoyez une utilisation intensive, que ce soit de manière générale ou pour un événement à venir, veillez à nous prévenir aussitôt que possible.