#canopus1io-bacs-savedpm
1 messages ยท Page 1 of 1 (latest)
Hello! We'll be with you shortly. Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.
- canopus1io, 1 hour ago, 9 messages
Hi ๐
So you want to save a BACs debit Payment Method using the Paymetn Element for later use?
yes, correct
Oh...wait. You mean with the Payment Element
yes
Hmm...our docs only have a guide on this flow using Checkout https://docs.stripe.com/payments/bacs-debit/save-bank-details
Let me check with a colleague
Unfortunately it looks like this is currently unsupported with the Payment Element.
ohh, for sure? not just undocumented or for special cases where you have to contact support?
"Request req_1bihhhd22X5NPt: Your account is not configured to directly use SetupIntents to create Mandates for Bacs Direct Debits. See https://stripe.com/docs/payments/payment-methods/bacs-debit to learn more, or contact bacs-debits@stripe.com."
this is the error I got while trying to create the SetupIntent server side
seems to imply its possible
I recommend reaching out to the email address provided to get a definitive answer
I already emailed them 2 hours ago, waiting on a response, my deadline for evaluation of adding support for bacs_debit is in a couple hours
any way you can accelerate a response?
Unfortunately no
๐ข
All the documentation I am able to find suggests it isn't possible but I agree the wording of the error message implies otherwise
The team at that email woud have the definitive answer though
ok, so what are the options then for adding this type of payment method?
- Wait for a response
- Send another email
or 3. Integrate with Checkout
I will do 1 and 2.
due to my deadline, lets explore 3
can I integrate with checkout only to add the payment method without processing a payment?
You can use either the Checkout Session or Payment Element to accept a payment with Bacs Debit
https://docs.stripe.com/payments/bacs-debit/accept-a-payment
But you can only use Checkout to save a Payment Method
https://docs.stripe.com/payments/bacs-debit/save-bank-details
canopus1io-bacs-savedpm
what does the customer UX look like when using Payment Element to process a payment?
You can test this out yourself here: https://docs.stripe.com/payments/payment-element
In the preview screen on the top, change the Customer location to United Kingdom. Then you can select the Bacs Direct Debit payment method and see for youself
wait, I don't see an amount, where do you set that
The Payment Element does not display an amount. It only collects the payment method details
so, then this makes me think it is possible to do what I want, no?
add this payment payment method type for later use without processing a payment
Not with the Payment Element.
isn't this the payment element?
Yes that is what it will look like if you use the Payment Element to collect a payment
But you cannot create a Setup Intent with the Bacs Debit payment method
ohh wait, is this how it looks when you use Payment Element to collect a payment?
https://docs.stripe.com/payments/payment-element#appearance
Yes. This particular section is focusing on how you can style the Payment Element using the Appearance API.
But the Payment Element looks the same whether you are collecting a payment or saving a payment method
I'm confused, is the Pay button part of the Payment Element or is it part of another Stripe Element?
does it automatically show if you create a PaymentIntent?
THe pay button is not part of the element. You need to build it. This section is for the Appearance API and so is showing you how you could match styling with the rest of your payment page
I see, so we implement the button, which will call our backend, and finalize the PaymentIntent server side
Not necessarily. Our canonical integration finalizes client-side.
Even our deferred intent flow still finalizes client side: https://docs.stripe.com/payments/accept-a-payment-deferred
But we do have a payment flow guide that finalizes on the server: https://docs.stripe.com/payments/finalize-payments-on-the-server
gotcha.
ok, so regarding
https://docs.stripe.com/payments/bacs-debit/save-bank-details
If I understand this correctly, you have to:
- create a customer
- create a checkout session (mode: setup, presumably this will create a SetupIntent)
- have the user navigate to the resulting url (session.url once the session is created)
- user fills out the payment method details / accepts the mandate
- clicks submit, which redirects you back to the specificed success/cancel url
- once the user reaches the success_url with the checkout_session_id in the url, we can fetch the checkout session which will contain a SetupIntent, and the payment method will be attached to the customer for later use
Correct.
You can also listen for the checkout.session.succeeded, or setup_intent.succeeded webhook events.
also, we can use this payment method for sparatic one time payments and also for ongoing recurring payments by creating PaymentIntent's in the future, yes?
Correct.
I have also been looking at acss_debit which is a Canada specific direct debit payment method, for that we have to specify payment_method_options something like:
payment_method_options = {
"acss_debit": {
"currency": "CAD",
"verification_method": "instant",
"mandate_options": {
"payment_schedule": "combined",
"transaction_type": "personal",
# free form to explain to the user when they will be charged
"interval_description": 'when any invoice becomes due',
},
},
}
is this only required for acss_debit and not bacs_debit or au_becs_debit?
Each payment method has some unique requirements, especially when it comes to saving payment methods for later use. You can review the payment_method_options for each payment method in our reference docs here: https://docs.stripe.com/api/payment_intents/create#create_payment_intent-payment_method_options
just checking, but I can pass payment_method_options to stripe.checkout.Session.create(), right?
with mode: setup
Yes, that parameter can be viewed here: https://docs.stripe.com/api/checkout/sessions/create#create_checkout_session-payment_method_options
also, we are a platform account, so when we call stripe.checkout.Session.create() we would pass stripe_account with our Connected Account's id, correct?
If you are using Direct Charges, yes.
cool, I think that's everything.
thank you so much ๐ , I really appreciate your help answering all my questions and validating my understanding of how all this works.