#ed_best-practices
1 messages · Page 1 of 1 (latest)
đź‘‹ Welcome to your new thread!
⏲️ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.
⏱️ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.
đź”— This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1399436021074231407
📝 Have more to share? Add more details, code, screenshots, videos, etc. below.
Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.
- ed_docs, 3 days ago, 17 messages
Hi đź‘‹
Destination Charges https://docs.stripe.com/connect/destination-charges are created on the Platform account. The Customer object must also exist on the Platform.
Also "subaccounts" are not a Stripe concept. We do have Connected Accounts and I encourage you to use that terminology to avoid confusion
Sorry let me rewrite my question:
If I use Stripe with destination charges, do I need to create a new customer per connected account? I will be using on_behalf_of
Furthermore, if I use on_behalf_of, do I need to create a setupintent per-connected account? If so, how do I keep track of if I already created a setupintent per-connected account?
My first answer still applies
Destination charges and all the related objects are created on the Platform account
So the customers & setup intents would all be created on the Platform and the Connected Accounts would only see the transfers as payments coming into their accounts
So therefore, I only need 1 Customer object and 1 setup intent even though I'm using on_behalf_of ?
Why is this different ? Because if I understand correctly, in stripe standard, I need to have 1 Customer per connected account and therefore 1 setupintent per connected account, right?
But on_behalf_of still puts the connected account as the merchant of record
I recommend you review the differences between Direct Charges and Destination Charges
This is fundamental to the difference between the two and our docs do a good job of describing them
I read through the doc5 times
And I still don’t understand
I understand roughly the difference, but I don’t understand why in this case I don’t need to create a new customer
Sorry but this is the most basic aspect of how these work
- Direct Charges - all records exist on the Connected Account
- Destination Charges - all records exist on Platform Account
I don’t really think so. If I use on behalf of I’m no longer the merchant of record
I don’t think data being stored is the important part though
I come from using NMI and other processors. If I have a MIT for a connected account, I must create a separate CIT on that connected account.
How does Stripe fulfill these CIT/MIT requirements if I only have 1 customer and only create 1 setupintent
Where the data is stored is the fundamental apsect of which flows require objects on which accounts
I definitely believe you're right that data is an important aspect, but Mastercard & Visa regulate that in order for a merchant initiated transaction (hotel charging the card on file), the card must initially have a customer initiated transaction tied to the specific merchant of record (i.e. tied to the connected account). So if I only ever create 1 setupintent, sure the data flow model makes sense, but how does Stripe remain compliant with Mastercard & Visa?
We cannot speak to compliance issues here on this server.
What I can tell you is that we have many platforms using Destination Charges with on-behalf-of setting the Connected Account as the merchant of record but only creating Customers/Payments on the Platform Account
Ok and to confirm since it’s on the platform, I only need to create one setupintent ever, right? Is there a way I can lookup if a setupintent has already been created for a paymentmethod?
That wording doesn't really make sense. Setup Intents are only intended to create the Payment Method.
Here on the setup intent docs (https://docs.stripe.com/api/setup_intents/object)
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
There is the parameter:
Setup intent has more than just creating a payment method. It should also trigger 3DS and authorization. this is standard across other payment processors. You create a card in a vault then perform authorization on it - those are typically separate steps on other systems, but stripe likes to combine them together.
But allow me to ask the question in a different way: If I use the setupintent api once, do I ever need to pass the payment method through the setupintent api again, especially if I will be using on_behalf_of with my connected accounts?
Hi there, I'm taking over from my colleague Snufkin. No, you do not have to pass the PaymentMethod through the SetupIntent APU multiple times. You only need to use it once. Our docs on working with SetupIntents will be a good place to read up on [0].
[0] https://docs.stripe.com/treasury/moving-money/working-with-bankaccount-objects#setupintents
Hi @vestal ore thanks for your help! So in the rest of the payments processor world (NMI, adyen, etc), my impression is that if I am working with different connected accounts, who are the actual merchant of record, I need to create a setupintent per-connected account. Can you help understand how with stripe and different connected accounts each with their own MoR, I only have to create 1 setupintent? 🙂
Looks like my colleague explained the flow to you.
Are you referring to the data comment?
You as the Platform using Destination Charges w/ on_behalf_of the Customer's and PaymentMethod's reside on the Platform and that is where the SetupIntent will need to be created. You can then create PaymentIntents and pass the on_behalf_of parameter which will make the connected account the merchant of record [0].