#BildaCat - Connect
1 messages · Page 1 of 1 (latest)
Hello! It would be the Customer ID on the connected account (since that's where the payment will live).
No object IDs are shared across different Stripe accounts, so you can't specify a Customer ID from the platform account when creating the Payment Intent on the connected account.
Ok -- so it sounds like I need to store in my application the customer ID on the platform account, and a customer_id/customer_acct table so I can keep track of those as well (so when they return next time, I don't need to make another token/create customer account)
Yep. A lot of people use metadata to help with this: https://stripe.com/docs/api/metadata
You could, for example, create the Customer on the connected account and set metadata on that Customer that indicates the associated Customer ID on the platform.
Got it - ok, thanks -- just need to think how I want to structure this, since I'm already saving the platform customer_id to my database.
I think I'm still missing something.
A brand new user who hasn't bought from me before:
I create their account on the platform, generate a stripe token so that I can create their account on the connected account, then fire off the payment intent. The problem is the token is failing as there are no payment methods saved. The user hasn't hit that point in the flow where they'd be adding a payment, I'm using the PaymentSheet code in my iOS app.
hmmm why are you using Token in that case since that has been deprecated for multiple years now. With PaymentIntent you also want PaymentMethods
https://stripe.com/docs/connect/cloning-customers-across-accounts
That's what I had found -- I make the user on my platform account, and then make a token so as to make them a customer account and do the charge.
Is this really what you are trying to do? Do you want to store the customer's card on the platform first and then use direct charges?
I believe so -- I'm trying to use the payment sheet (https://stripe.com/docs/payments/accept-a-payment) in combination with connected accounts. The customer could in theory buy from multiple vendors on my platform.
Just very confusing as this doesn't even mention creating a customer at all: https://stripe.com/docs/connect/enable-payment-acceptance-guide
Let's take it one step at a time, this flow is really complex
What type of connected accounts are you using
Okay, so you need to first collect PaymentMethod details via a SetupIntent on the platform. Have you done that?
That's step 1.
No -- I must have missed that, I just went with implementing the PaymentSheet stuff in my iOS app.
Ahh ok -- I think I had just decided to skip saving the cards for now. Given how many of my mobile customers will just use apple/android pay, I think that's fine. So we don't need to store payment details.
but you just said you wanted to store payment details
I thought it was necessary for the payment sheet -- since I can't create a token to save the customer on the connected account without it. That's what I'm confused about here, feels like a chicken/egg thing. Is the payment sheet stuff compatible with connected accounts?
I had it set to do a charge, but it was doing it on the platform account, and then would fail when the user hit pay, because the customer was supposed to be on the connected account.
the problem is that you seem confused and saying 2 opposite things
So step 1: Are you collecting payment details more than once, once per seller?
I don't have to, no. My goal is to just make this is easy as possible, especially from the mobile app side of things, which is why I wanted/am using the paymentSheet.
sure sure, but this is more a yes/no question
it's crucial since it changes completely how you integrate
If I buy a product from 2 sellers, do I enter my card details twice, once per seller, or only once?
twice, once per seller. right now nothing is being stored.
and that's fine -- the chances of them buying from multiple sellers is super super low.
cool
so really you don't need any of that flow at all
and your integration will be so much easier
You are basically using what we call a direct charge: https://stripe.com/docs/connect/direct-charges
It means you collect card details and create a charge straight on the connected account for the whole flow
And what you want in that case is to initialize the mobile SDK with the connected account id as documented here: https://stripe.com/docs/connect/authentication#adding-the-connected-account-id-to-a-client-side-application
Ok, great. I think I must have been almost there and took a complete left turn and started making this harder than it had to be.
Looks like I don't need to be saving customers at all, so I can rip all that out.
yeah. The flow is still doable by saving cards first but waaaay more complex
Got it - thanks so much, and appreciate you being patient with me since I was throwing a lot of (wrongly assumed) info at you.
Of course! We're used to this kind of confusion, especially with Connect. The "problem" is your earlier question was super clear, and it seemed like you really wanted this flow (which is complex but quite common)
yeah -- i think it's largely unneeded for us, especially at this point. thanks!