#SCIF
1 messages · Page 1 of 1 (latest)
I used 4000000000003220 CC and got weird behavior:
- 3ds was asked on SetupIntent, which was expected
- Subscription was created but not paid and new PI was created
- Customer had to pass 3ds again
Why did that happen? I assume that SI must solve this and the single reason of possible fail — lack of money on customer's CC
👋 Is there a time/gap between the creation + confirmation of the SetupIntent and the creation of the Subscription? Like, if you're immediately charging a customer for the subscription's first invoice, you shouldn't create a separate SetupIntent
also, just because a customer completed 3DS during a SetupIntent doesn't mean they won't be required to complete 3DS in the future. that's ultimately up to the issuing banks.
I'm working on Stripe integration using Connect.
The reason why I use routine of SI + subscription creation, rather just a subscription is: Stripe account has other integrations and some customers have their default PM's but I don't want them to be charged
When you created the subscription, did you pass off_session: true? https://stripe.com/docs/api/subscriptions/create#create_subscription-off_session
Stripe account has other integrations and some customers have their default PM's but I don't want them to be charged
Not sure I follow this
How off_session should change the behavior? I could try right now
Using off_session basically flags this as a subscription that is being created while a customer is not actively within your app
Do you know what Connect is and how it works?
That was clear from the docs, but how the behavior/flow will be changed?
I passed off_session: true and flow didn't change. Was asked second time
Yes, I know what Connect is. When you create a subscription, you can specify which of a customer's payment methods should be used for the subscription: https://stripe.com/docs/api/subscriptions/create#create_subscription-default_payment_method
If you specify a PM ID here, this won't change the customer's default PM
But there is no way to get PM ID unless using SI
Okay, let's slow down. You mentioned this: "some customers have their default PM's but I don't want them to be charged". If you're using SI to collect payment details but plan to create a subscription using the saved PM right after, you should not use SI
taking a step back, the test card ending in 3220 will always require 3DS. You should instead test your flow with card 3155: https://stripe.com/docs/testing#authentication-and-setup
What should I use then?
👋 taking over here
That meant you can simply just create a Subscription and confirm its first PaymentIntent to activate it, without the use of SI
How I would be able to prevent paying by a default PM?
Sorry I think let's step back and review your business scenario again. Could you explain what you want to achieve here?
Let's put it by steps. I see you have Connected Accounts, each of them already has customers with some saved payment method
Now you will want to have new Subscriptions for those customers?
Some of customers accounts could have default PM's created by other integrations (and they have). I want to create a subscription and store PM on subscriptions to avoid affecting existing features/integrations.
Now you will want to have new Subscriptions for those customers?
Yep, that's the idea. To provide customers with ability to input CC (that could be the same or not the same as their default PM) and try to buy the subscription using only this newly input CC
Yeah so it's normal to just create a Subscription and use its latest_invoice.payment_intent.client_secret to collect a new payment method. Any specific issue with it?
It will be paid by a default PM
Hmm even if you use default_incomplete?
Let me check
🤷♂️ May be i just need a few days off :/ Looks like it works exactly as I needed