-
Notifications
You must be signed in to change notification settings - Fork 15
Description
📝 Description:
Hi Stripe team,
We’ve encountered a UX issue when using the ConnectAccountOnboarding
component with the following configuration:
<ConnectAccountOnboarding
collectionOptions={{
fields: 'eventually_due',
futureRequirements: 'include',
}}
/>
In some cases, especially when a required document (like representative_document
) is missing, the onboarding flow does not display the document upload step at the correct place in the flow.
Instead, the missing upload is only shown at the summary
step, where the user is prompted to “modify” their information to satisfy the requirements.
⚠️ Problem
This is very counter-intuitive for the user, because:
- They have just gone through the entire onboarding flow without skipping anything.
- Nothing in the flow indicated that a document was required.
- When they land on the
summary
step, the prompt to fix the missing document appears, but only via a “modify” action, which is not obvious or expected.
In short: the upload step for required fields can be silently skipped, and shown only at the end, making it confusing for users to understand why their onboarding is incomplete.
✅ Additional information
If we reload the onboarding component with the same state, Stripe correctly lands us on the upload step directly (e.g. representative_document
) without going through the summary, which proves the step is registered as required but wasn’t shown during the normal linear onboarding.
📷 Optional reproduction steps
- Create an Express account where
representative_document
is infuture_requirements.eventually_due
- Mount the
ConnectAccountOnboarding
with the config above - Go through onboarding: no upload step shown
- Land on summary → asked to modify
- Reload the component → document upload step is shown correctly
🙏 Expected behavior
- The onboarding flow should never skip required steps, especially document uploads.
- The user should be guided directly to the missing requirement before reaching the summary.
Let me know if you'd like a working reproduction (we use it in production, and can provide test account IDs privately).
Thanks! 🙌