Paiements par prélèvement automatique Bacs
Acceptez les paiements par prélèvement automatique Bacs de clients titulaires d'un compte bancaire au Le Royaume-Uni.
Les utilisateurs de Stripe au Royaume-Uni peuvent utiliser Checkout en mode paiement pour accepter les paiements par prélèvement automatique Bacs.
Une session Checkout représente les détails de l’intention d’achat de votre client. Vous créez une session Checkout lorsque votre client souhaite effectuer un paiement. Après avoir redirigé votre client vers une session Checkout, Stripe affiche un formulaire de paiement qui permet à votre client d’effectuer son achat. Une fois le paiement finalisé, Stripe redirige le client vers votre site.
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 des produits et des tarifs
Pour pouvoir utiliser Checkout, vous devez d’abord créer un produit et un tarif. Vous devez créer un produit pour chacune de vos marchandises ou chacun de vos niveaux de service. Un produit peut être associé à un ou plusieurs tarifs.
Par exemple, vous pouvez créer un produit T-shirt associé à deux tarifs dans deux devises différentes : 20 GBP et 25 EUR. Vous pouvez ainsi modifier et ajouter des tarifs sans devoir changer les détails des produits sous-jacents. Il est possible de créer un produit et un tarif via l’API ou dans le Dashboard.
Si vous déterminez votre tarif au moment du paiement (par exemple si le client fixe le montant d’une donation) ou si vous ne souhaitez pas créer de tarif en amont, vous pouvez également créer des tarifs ponctuels au moment de la création d’une session Checkout pour un produit existant.
Mise en garde
Si vous disposez d’une intégration Checkout existante qui n’utilise pas Prices, l’API Checkout a évolué depuis l’introduction de Prices. Vous pouvez utiliser ce guide de migration pour procéder à une mise à niveau, ou bien conserver votre intégration existante en l’état.
Remarque
Les produits créés dans un environnement de test peuvent être copiés vers le mode production afin d’éviter de les recréer. Dans la vue détaillée du produit dans le Dashboard, cliquez sur Copier en mode production dans le coin supérieur droit. Vous pouvez copier plusieurs fois un même produit de l’environnement de test vers le mode production. Chaque copie crée un produit distinct en production, et les mises à jour ultérieures du produit de test ne sont pas répercutées sur les copies déjà créées en production.
Vérifiez que vous êtes dans un environnement de test, puis définissez les articles que vous souhaitez vendre. Pour créer un nouveau produit et un nouveau prix :
- Accédez à la section Produits du Dashboard.
- Cliquez sur Ajouter un produit.
- Sélectionnez Ponctuel lors de la définition du tarif.
Le nom de produit, la description et l’image que vous indiquez sont présentées aux clients dans Checkout.
Créer une session CheckoutCôté clientCôté serveur
Ajoutez sur votre site Web un bouton de paiement qui appelle un endpoint côté serveur afin de créer une session Checkout.
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
Créez une session Checkout avec line_items. Les postes de facture représentent la liste des articles achetés par le client.
Lorsque votre client effectue son paiement avec succès, il est redirigé vers le success_, une page de votre site web qui informe le client que les informations de paiement ont été correctement collectées et que son paiement est en cours de traitement.
Lorsque votre client clique sur votre logo dans une session Checkout sans effectuer de paiement, Checkout le redirige vers le site Web que le client consultait avant d’être redirigé vers Checkout.
Checkout peut accepter un paiement et enregistrer le moyen de paiement utilisé pour réutilisation ultérieure. Les moyens de paiement enregistrés ainsi peuvent être utilisés pour de futurs paiements à l’aide d’un PaymentIntent. Une fois la session Checkout créée, redirigez votre client vers l’URL renvoyée dans la réponse.
curl https://api.stripe.com/v1/checkout/sessions \ -u: \ -d "line_items[][price]"="{{PRICE_ID}}" \ -d "line_items[][quantity]"=1 \ -d "mode"="payment" \ -d "customer"="{{CUSTOMER_ID}}" \ -d "payment_intent_data[setup_future_usage]"="off_session" \ -d "success_url"="https://example.com/success?session_id={CHECKOUT_SESSION_ID}"sk_test_VePHdqKTYQjKNInc7u56JBrQ
Remarque
Les règles applicables aux prélèvements automatiques Bacs prévoient l’envoi obligatoire au client d’une notification de prélèvement par e-mail à la collecte initiale de ses informations de paiement et lorsque son compte est débité. Par défaut, ces e-mails sont envoyés automatiquement par Stripe.
La création d’une session Checkout renvoie un ID de session. Mettez l’ID de session à disposition sur votre page de confirmation en incluant le modèle de variable {CHECKOUT_ dans l’URL success_, comme illustré ci-dessus.
Mise en garde
Ne vous fiez pas uniquement à la redirection vers success_ pour détecter l’initiation d’un paiement, car :
- Des utilisateurs malveillants pourraient accéder directement au
success_sans payer et obtenir l’accès à vos biens ou à vos services.url - Après un paiement réussi, les clients peuvent fermer l’onglet de leur navigateur avant d’être redirigés vers
success_.url
Gérer les événements post-paiementCôté serveur
Une fois que votre client a mené à bien son paiement, Stripe le redirige vers l’URL que vous avez spécifiée dans le paramètre success_. En général, il s’agit d’une page de votre site Web qui l’informe que son paiement a abouti.
Cependant, le prélèvement automatique Bacs est un moyen de paiement à notification différée, ce qui signifie que les fonds ne sont pas immédiatement disponibles. Un paiement par prélèvement Bacs Direct Debit prend généralement 3 jours ouvrables pour que les fonds soient disponibles. Pour cette raison, vous voudrez différer le traitement de la commande jusqu’à ce que les fonds soient disponibles. Une fois le paiement réussi, le statut sous-jacent du PaymentIntent passe de processing à succeeded.
Les événements Checkout 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 par prélèvement en envoyant le formulaire Checkout. | Attendez que le paiement aboutisse ou échoue. |
| checkout.session.async_payment_succeeded | Le paiement du client a abouti. | Traitez la commande de biens ou de services du client. |
| checkout.session.async_payment_failed | Le paiement du client a été refusé, ou il a échoué pour une autre raison. | Contactez le client par e-mail et demandez-lui de passer une nouvelle commande. |
Votre code de webhook doit gérer ces trois événements Checkout.
La charge utile de chaque webhook Checkout inclut l’objet Session Checkout, qui contient des informations sur l’objet Customer et le PaymentIntent.
Le webhook checkout. est envoyé à votre serveur avant que votre client ne soit redirigé. Votre acceptation du webhook (tout code d’état 2xx) déclenche la redirection du client vers la page success_. Si Stripe ne reçoit pas de confirmation dans les 10 secondes suivant un paiement ayant abouti, votre client est automatiquement redirigé vers la page success_.
Sur votre page success_, affichez un message de confirmation à votre client, en l’informant du délai de quelques jours qui vous sera nécessaire pour le traitement de sa commande, compte tenu du fait que les prélèvements automatiques Bacs ne sont pas instantanés.
Si vous acceptez les paiements instantanés (par carte bancaire, par exemple) en plus des paiements à notification différée, vous devrez modifier votre endpoint de webhook de façon à ce que les deux types de paiements soient gérés lors de la réception d’un événement checkout..
# Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. client = Stripe::StripeClient.new() # You can find your endpoint's secret in your webhook settings endpoint_secret = 'whsec_...' # Using Sinatra post '/webhook' do payload = request.body.read event = nil # Verify webhook signature and extract the event # See https://stripe.com/docs/webhooks#verify-events for more information. sig_header = request.env['HTTP_STRIPE_SIGNATURE'] begin event = Stripe::Webhook.construct_event( payload, sig_header, endpoint_secret ) rescue JSON::ParserError => e # Invalid payload status 400 return rescue Stripe::SignatureVerificationError => e # Invalid signature status 400 return end case event['type'] when 'checkout.session.completed' session = event['data']['object'] # Check if the order is paid (for example, from a card payment) payment_intent = client.v1.payment_intents.retrieve(session.payment_intent) # A delayed notification payment will have the status 'processing' order_paid = payment_intent.status == "succeeded" # Save an order in your database, marked as 'awaiting payment' create_order(session) if order_paid fulfill_order(session) end when 'checkout.session.async_payment_succeeded' session = event['data']['object'] # Fulfill the purchase... fulfill_order(session) when 'checkout.session.async_payment_failed' session = event['data']['object'] # Send an email to the customer asking them to retry their order email_customer_about_failed_payment(session) end status 200 end'sk_test_VePHdqKTYQjKNInc7u56JBrQ'
Vous pouvez obtenir des informations concernant le client et le paiement en récupérant les objets Customer et PaymentIntent référencés par les propriétés customer, payment_ dans la charge utile du webhook.
Test des webhooks en local
Pour tester des webhooks localement, vous pouvez utiliser l’interface de ligne de commande Stripe. Après l’avoir installée, vous pouvez transférer les événements à votre serveur :
stripe listen --forward-to localhost:4242/webhook Ready! Your webhook signing secret is '{{WEBHOOK_SIGNING_SECRET}}' (^C to quit)
En savoir plus sur la configuration des webhooks.
Tester l'intégration
À ce stade, vous disposez théoriquement d’une intégration de prélèvement automatique Bacs de base, capable de recueillir les coordonnées bancaires de vos clients et d’accepter leurs paiements.
Il existe plusieurs numéros de compte bancaire de test que vous pouvez utiliser dans un environnement de test pour vérifier que cette intégration est prête. Vous pouvez également utiliser le token correspondant pour éviter la saisie manuelle des informations du compte.
| Code guichet | Numéro de compte | Token | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
108800 | 00012345 | pm_ | Le paiement aboutit et l’état du PaymentIntent passe de processing à succeeded. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
108800 | 90012345 | pm_ | Le paiement aboutit au bout de trois minutes et l’état du PaymentIntent passe de processing à succeeded. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
108800 | 33333335 | pm_ | Le paiement est accepté, puis échoue immédiatement avec le code d’échec debit_, et le PaymentIntent passe de l’état processing à l’état requires_. Le Mandat devient inactive et le PaymentMethod ne peut plus être réutilisé. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
108800 | 93333335 | pm_ | Le paiement échoue après trois minutes avec le code d’échec debit_, et le PaymentIntent passe de l’état processing à l’état requires_. Le Mandat devient inactive et le PaymentMethod ne peut plus être utilisé. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
108800 | 22222227 | pm_ | Le paiement échoue avec un code d’échec insufficient_ et le PaymentIntent bascule de processing à requires_. L’objet Mandate reste active et le PaymentMethod peut à nouveau être utilisé. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
108800 | 92222227 | pm_ | Le paiement échoue au bout de trois minutes avec un code d’échec insufficient_ et le PaymentIntent bascule de processing à requires_. L’objet Mandate reste active et le PaymentMethod peut à nouveau être utilisé. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
108800 | 55555559 | pm_ | Le paiement aboutit au bout de trois minutes et l’état du PaymentIntent passe de processing à succeeded, mais un litige est immédiatement créé. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
108800 | 00033333 | pm_ | La création du moyen de paiement aboutit, mais le mandat est refusé par la banque du client et passe immédiatement à l’état inactive. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
108800 | 00044444 | — | La demande de configuration du prélèvement automatique Bacs échoue immédiatement en raison d’un numéro de compte invalide, et le client est invité à mettre à jour ses informations avant de soumettre à nouveau. Aucune donnée de paiement n’est collectée, donc aucun token synthétique ne correspond à ce scénario. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
108800 | 34343434 | pm_ | Le paiement échoue avec un code d’erreur charge_, car le montant du paiement entraîne un dépassement de la limite hebdomadaire de volume de paiement du compte. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
108800 | 12121212 | pm_ | Le paiement échoue avec le code d’échec charge_ en raison d’un montant supérieur à la limite de volume de transactions du compte. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Pour vos tests, vous pouvez utiliser l’un des numéros de compte fournis ci-dessus. Cependant, dans la mesure où le traitement des paiements par prélèvement automatique Bacs prend plusieurs jours, privilégiez les numéros de compte de test qui fonctionnent avec un délai de trois minutes, de manière à mieux simuler le comportement en situation réelle.
Remarque
Par défaut, Stripe envoie automatiquement des e-mails de notification au client lors de la collecte initiale de ses données de paiement et chaque fois qu’un débit est ensuite effectué sur son compte. Ces notifications ne sont pas envoyées dans les environnements de test.
Échecs de paiement
Un paiement peut échouer pour de nombreuses raisons. Le motif d’un échec est indiqué par son charge.failure_code. Seuls les paiements présentant certains codes d’échec peuvent être retentés. Lorsqu’une nouvelle tentative n’est pas possible, il convient de contacter votre client pour lui demander de renouveler son règlement avec un compte bancaire ou un moyen de paiement différent.
Les codes d’échec que nous envoyons actuellement pour les prélèvements automatiques Bacs sont indiqués ci-dessous. Cette liste est susceptible d’être enrichie à tout moment, et il importe donc de ne pas la considérer comme exhaustive dans le cadre du développement et de la maintenance de votre code.
| Code d’échec | Description | Nouvelle tentative possible |
|---|---|---|
account_ | Le compte bancaire a été clôturé. | Non |
bank_ | Le compte a été transféré vers un nouveau prestataire de paiement (PSP). Vérifiez si on vous a communiqué les coordonnées du nouveau PSP. Sinon, vous devez obtenir un nouveau mandat de la part du client. | Non |
debit_ | Le client a informé sa banque que le paiement n’était pas autorisé ou la banque payeuse ne détient aucun mandat. | Non |
generic_ | Ce paiement n’a pas pu être traité. | Oui |
insufficient_ | Le compte du client ne dispose pas de fonds suffisants pour couvrir le paiement. | Oui |
invalid_ | Le numéro de compte n’est pas valide. Cela peut signifier qu’il ne s’agit pas d’un compte en GBP ou que le compte ne peut pas traiter les paiements par prélèvement automatique. | Non |
Pour effectuer une nouvelle tentative de paiement, confirmez le PaymentIntent à nouveau à l’aide du même PaymentMethod.
Pour mettre toutes les chances de votre côté que le paiement aboutisse, nous vous conseillons de contacter le payeur avant la nouvelle tentative.