#KEITH LARD
1 messages · Page 1 of 1 (latest)
I think I should be using payment intents instead if I already have the card on file?
Hi there! Yes, you should be using PaymentIntents if you're working with PaymentMethods
PaymentIntents should automatically create the underlying charge(s) so there's no need to make calls to /v1/charges directly
Ah okay that makes sense cool
I have another question if that's okay
In the following scenario what is the best way to charge a card on file.
- Customer creates subscription and passes 3ds
- I charge customers saved card for any extra charges that may happen in the future
Should I pass the additional payments through as MOTO or should it be okay as it's previously passed 3ds? My business is a breakdown recovery company so people cannot always approve any 3ds prompts so we have some MOTO capability.
Or should I just indicate off_session?
Since you're saving the customer's payment details as part of creating the subscription, you could technically reuse the PaymentMethod for later payments but it's hard to say whether banks will be more likely to request additional authentication for those future one-off payments
What you could do instead is, if you know you want to charge customers for subscriptions and future on-off charges that are off session, you could create a SetupIntent to capture the customer's payment details and then create the Subscription with off_session
Ok that make sense thank you
Should you always confirm a payment intent outcome with a webhook or is listening to the initial response robust enough?
👋 Taking over this thread, catching up now
I'd recommend listening to the result of payment intent with a webhook in case if your server has connection issue and fails to get the response
Ok thanks, so should I listen to payment_intent.succeeded or charge.succeeded?
For one-time payments, it'll be payment_intent.succeeded event.
For subscription, it'll be invoice.paid event: https://stripe.com/docs/billing/subscriptions/webhooks#active-subscriptions