#mgreenw - Express Connect
1 messages · Page 1 of 1 (latest)
Hello! I thought it would always succeed, but let me check to make sure...
Looks like those requests only fail if the account is invalid or you supply a bad parameter.
An account can be invalid for a number of reasons, like the account not being an Express account, a live mode/test mode mismatch, or Express onboarding not being complete.
So assuming those things are true (it's an express account and you're using the correct api key / account id), then if details_submitted=true the user will always, without exception, be able to access their stripe express dashboard via stripe.accounts.createLoginLink, even if Stripe is still reviewing the account details and payouts_enabled=false?
I believe that's the case, yes. Are you seeing something different?
I'm not seeing something different, but it's just hard to tell what the behavior will be based on the docs. I'm sure you've seen them, but it's this section of the docs that could use additional explanation
https://stripe.com/docs/connect/express-accounts#handle-users-not-completed-onboarding
Thanks so much @sour grove 🙏
To clarify what those docs are saying, the idea is that you would create an Account Link for them to complete onboarding if it's not complete.
Otherwise, if they have completed onboarding, you can give them an Express Dashboard link.
So if details_submitted=true and payouts_enabled=false, what is the recommend behavior of account link vs login link in these two cases (and how do you tell the difference?):
- New account that is onboarding for the first time
- Account that previously onboarding and was manually rejected by the platform
If details_submitted is set to true that indicates onboarding has taken place, so you would not give them an Account Link for onboarding. Instead you would send them to the Express Dashboard.
Payouts being enabled or not doesn't really factor into things as far as I know.
Ok great, so it really all hinges on details_submitted.
To clarify what those docs are saying, the idea is that you would create an Account Link for them to complete onboarding if it's not complete.
Totally, I think the docs are just poorly worded. It potentially shouldn't even mention charges_enabled as that's not really the point here.
Here's my take on what those docs should say, and please feel free to clarify if this is not correct:
A user that’s redirected to your
return_urlmight not have completed the onboarding process. Retrieve the user’s account and check fordetails_submitted=trueto see if they’ve completed the onboarding process. If the account isn’t fully onboarded (details_submitted=false), provide UI prompts to allow the user to continue onboarding later. The user can complete their account activation through a new account link (generated by your integration).Once
details_submitted=true, create a login link to direct the user to the Stripe Express Dashboard. At this point, the account may still be under review or may have other information that needs to be submitted, so be sure to check the relevantrequirements,payouts_enabled, andcharges_enabledproperties depending on the capabilities you requested to see if the account is in good standing. If not, provide the user with a warning and prompts to go to the Express Dashboard to update their information.
That's not a bad suggestion! I think the docs are worded the way they are now because they need to fit a very broad array of use cases, and most of those use cases hinge on charges_enabled being true or not, but I'll flag your version internally for review! 🙂