#ayush_custom-connected-account
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/1415085774281375765
đ Have more to share? Add more details, code, screenshots, videos, etc. below.
Hi there,
sounds like you are following one of our integration guides in the docs? Would you mind sharing which one it is?
I have filled in the details as well in the url
Basic question is what does type custom actually mean for an account, how does that affect the field in controller
Alright, I see. We have basically three types of connected account types: Standard, Express, and Custom. You can read about the differences in our docs here https://docs.stripe.com/connect/accounts
A Custom Connected Account is basically totally invisible to the user. The platform basically controlls the connected account and is responsible for all information collecting for the account, and everything that is happening in the account.
Understood, I have already ready the docs. So basically if I wish to take all liability and customize what I want for each account I should use custom?
This is what I am currently using for the onboarding, is this enough or do I need any other field/feature?
router.post('/account-session', async (req, res) => {
const { connectedAccountId } = req.body;
try {
const accountSession = await stripe.accountSessions.create({
account: connectedAccountId,
components: {
account_onboarding: {
enabled: true,
features: {
disable_stripe_user_authentication: true,
},
},
},
});
res.json({
client_secret: accountSession.client_secret,
});
} catch (error) {
console.error('An error occurred when calling the Stripe API to create an account session', error);
res.status(500);
res.send({ error: error.message });
}
});
Yes, AND if the user does not need it's own dashboard access etc.
For a custom account
If you want to create custtom connected accounts, you would need to define the type property as custom, so Stripe knows what type of connected account you want to create https://docs.stripe.com/api/accounts/create#create_account-type
You can just follow along our guide here https://docs.stripe.com/connect/custom-accounts
This is the part I am a little confused about: https://docs.stripe.com/connect/custom-accounts#identity-verification. I following what is required from https://docs.stripe.com/connect/required-verification-information. What I am asking is that is there anything specific required for a custom account that is not present in https://docs.stripe.com/connect/required-verification-information
Learn what required verification information you need to collect for each country when using Connect.
Learn what required verification information you need to collect for each country when using Connect.
I have filled in the initial form: https://docs.stripe.com/connect/required-verification-information#US+US+none+full+company.multi_member_llc+card_payments,transfers
As long as they fill this form and the account is Enabled, is that good?
On this page, you should be able to find all necessary requirements for the connected account.
Additionally we recommend to listen for the account.updated webhook. The event contains the account's requirements that can change over time.
https://docs.stripe.com/connect/handling-api-verification#verification-process
There are basically three states for requirements that may come into effect: eventually_due, currently_due, and past_due. based on these information you would need to collect the information and update the account.
So basically if I create the account using type: custom. And then create the session using:
router.post('/account-session', async (req, res) => {
const { connectedAccountId } = req.body;
try {
const accountSession = await stripe.accountSessions.create({
account: connectedAccountId,
components: {
account_onboarding: {
enabled: true,
features: {
disable_stripe_user_authentication: true,
},
},
},
});
res.json({
client_secret: accountSession.client_secret,
});
} catch (error) {
console.error('An error occurred when calling the Stripe API to create an account session', error);
res.status(500);
res.send({ error: error.message });
}
});
I should be fine?
Of couse in this scenario they went through all the steps and completed the whole process
An examples of a complete oboarding process
You should be fine. Just make sure, that you set controller.requirement_collection to application when creating the account. We call that out here: https://docs.stripe.com/api/account_sessions/create#create_account_session-components-account_onboarding-features-disable_stripe_user_authentication
I get the following error when I try to use controller and type in the same request:
{
"error": {
"message": "You may not provide the type parameter and controller parameters simultaneously. They are mutually exclusive.",
"request_log_url": "https://dashboard.stripe.com/test/logs/req_UzefMPPdVW1KmH?t=1757452882",
"type": "invalid_request_error"
}
}
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
req_ElwQSHZ50vJAIS
I just did another post, to get a new one if the previous one is not available anymore
I am testing something on my end real quick
Understood
Alright. I created a connected account using these parameters:
capabilities: {
card_payments: {
requested: "true",
},
transfers: {
requested: "true",
},
},
country: "US",
email: "test@mail.com",
controller: {
fees: {
payer: "application",
},
losses: {
payments: "application",
},
stripe_dashboard: {
type: "none",
},
requirement_collection: "application"
},
}
type: custom?
and created the account session with these parameters:
account: panels[0].id,
components: {
account_onboarding: {
enabled: true, // true | false
features: {
disable_stripe_user_authentication: true, //
},
},
}
Would those connected account parameters act like a type custom then?
as we don't mention it
The type property will show none, but the disable_stripe_user_authentication: true will still work because it is technically still a custom connected account, just not of "type"
Perfect, this was my main doubt. So basically following this logic the account will behave like a custom account while it not being explicitly mentioned?
Yes, it is technically called Unified Account. We generally speaking recommend using controller property over types. https://docs.stripe.com/connect/accounts#choosing-approach
I was just referring to it earlier since the error message asked for it. But anyways. The idea behind the controller property for UA accounts is the same as Custom Connected Accounts. You can be just way more granular about the controls and capablities, than using the type property.
Perfect, thank you so much!
No problem.
If you hve any other questions let me know, otherwise I will close the thread if that is ok with you?
Please go ahead and close the thread, I will open another if I have any other questions. Thank you for the help!
Awesome. Have a great rest of the day and good luck with your integration.