#tonyball333-setup-intent
1 messages ยท Page 1 of 1 (latest)
Hi ๐ this is expected since setup intents do not have amounts associated with them.
In your flow, will you immediately be making a payment with the new payment method?
Not immediately and more importantly not while the customer is on the other end of the process. In the client web app, we have just told the customer how much they will pay (i.e. immediately prior to the customer entering their CC details)
We use a synchrous payment flow similar to https://stripe.com/docs/payments/accept-a-payment-synchronously
The zero amount really confuses the customer
Ah, if you were you could use a Payment Intent with setup_future_usage to charge you customer and save their payment method for later use simultaneously.
I can understand how that is confusing, but the setup intent is essentially doing a zero-dollar charge so what the modal is showing is accurate for the flow.
So how do I incorporate that in my flow? Do I create a PaymentIntent server side and then use that in a different Stripe Elements call?
Yeah, you use a Payment Intent instead of a Setup Intent, and use a different method when confirming (confirmPayment vs confirmSetup). This guide walks through the basics of that flow:
https://stripe.com/docs/payments/save-during-payment?platform=web
Will the Bank be aware that its an off-session payment though. I want all the autorisation to take place whilst the customer is in the process
The initial payment? It wouldn't be with that flow. The customer would be present during the first payment (to complete authentications) but the payment method would also be prepared for use with future off-session payments if you set setup_future_usage to off_session.
Sorry Toby, I understand the purpose of the setup_future_usage enum now. However, the confirmPayment Stripe elements call looks like it will take the payment at that point. Is that the case?
It will confirm the payment at that point, yes. If you don't want to take the funds immediately, then you can incorporate this process into your flow so initially there is just an authorization for the funds and then you can actually capture them up to 7 days later.
https://stripe.com/docs/payments/capture-later
So the CaptureMethod = "manual" setting on the PaymentIntent creation does this? From the sounds of it, I am going to need 2 payment flows; one for Upfront Payments and the other for Card as Security scenarios (i.e. where a charge is only applied if the customer does not turn up).
Hello. Taking over for toby as they have to step out. Give me a moment to catch up here
Yeah capture method set to manual achieves this
If you are also accepting payments up front (charging the customer on-session), then yeah you would have to account for either scenario. PaymentIntents alone should cover you though
All payments will be off session. I think that the PaymentIntent method will work for upfront payments i.e. that we are controlling the point that the charge is taken. For Card as Security scenarios I suspect that I will need to still use SetUpIntents. We don't want a charge to be held against the card i.e. the credit card details are taken for security and that card is only charged if the customer does not turn up for the event. In that scenario the customer pays for the service directly at the venue.
You could still use PaymentIntents for that. Unless you explicitly capture the funds, the card won't be charged, so you could just never capture the funds on that PaymentIntent in that scenario
Or is the concern just that the customer will have a pending authorization charge on their card (that will eventually be canceled)
Yes, it is the pending authorization charge and the 7 day limit
Gotcha if that really is a concern, then SetupIntents might be the way then
You could also look at cancelling the auth: https://stripe.com/docs/api/payment_intents/cancel
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
I really want to use the SetUpIntent as it gives us the flow we need and was something that we worked through with Strip support when the SCA changes were annouced a couple of years ago. The issue is purely the display of the zero charge in the bank authorisation screen. I don't understand why I can't tell the bank that the intention is to charge the customer amount X.
I also have an issue with using the Stripe call confirmPayment. I need a call with a .then option. We are not using web hooks.
i.e. we currently use the Stripe elements call Stripe.handleCardSetup to get card details and authenticate.
Gotcha. You can use this for PI: https://stripe.com/docs/js/payment_intents/confirm_card_payment
But unfortunately, with SI, there isn't a way to specify a specific amount
The idea being that, for future usage, you could charge different amounts (multiple times even)
Thank you for the assistance with this. Lots to digest and try. ๐