#JamesJ
1 messages · Page 1 of 1 (latest)
At a high level: intents are stateful containers for taking payment or collecting payment details with potentially multiple steps or retries
Payment Intents are used when you want to actually take payment
Setup Intents are for when you need to collect payment details but not take a payment
In the Subscriptions context, whether you use setup intents or payment intents depend primarily on whether you take an immediate payment at the start of a subscription or not.
ie, if you want the customer to pay for the first period right away, you'd be using a Payment Intent to start the subscription following our integration guide:
https://stripe.com/docs/billing/subscriptions/build-subscriptions?ui=elements#create-subscription
If you start you subscriptions with a trial period and don't require a payment up front, you'd make use of the pending_setup_intent to collect the payment details. This is described in Scenario 2 here:
https://stripe.com/docs/billing/migration/strong-customer-authentication#scenario-2
You should also read about how payment failures and authentication requirements work with subscription payments: https://stripe.com/docs/billing/subscriptions/overview#how-payments-work-subscriptions
Thanks for that! I'll try and wrap my head around this
NP -- I suggest trying things out in test mode to see how it works in the various combinations, and if you have questions about what you see while doing that then come on back here and we can help 🙂
Using a combination of our test cards, including 3DS test cards, and Billing Test Clocks you can set up subscriptions that you expect to fail payment or require authentication on renewal then advanced time to see that happening without having to wait in real time for a renewal:
https://stripe.com/docs/testing?testing-method=card-numbers#regulatory-cards
https://stripe.com/docs/billing/testing/test-clocks