Unlike with the prior (OAuth) onboarding flow, the current ("Account Links") flow creates an account at the start of onboarding, and cannot be restarted by re-entering the flow (following the recommendation in this doc).
We've seen a number of reports of the merchant needing to return to an earlier point in the KYC flow (to change country or business type, for instance). We've also seem reports of merchants getting emails from Stripe due to not completing the flow, and asking for the account to be deleted.
We could solve both cases simply by allowing the merchant to delete their existing account, perhaps in some post-onboarding cases as well (see https://github.com/Automattic/woocommerce-payments/issues/2459) but particularly when the onboarding isn't complete, which would restore the prior ability to start the onboarding anew.
Here is one proposed way of presenting this action, though it's wide open to design review:
Since a) the button should only show up when there is an existing account, b) the server doesn't currently return any indication for accounts that haven't completed onboarding, and c) it's likely not possible to return such a (non-empty) indication from GET /accounts in a backwards-compatible way, we'll just have to decide on some way to encode the not-fully-onboarded state in the server response and have it depend on a plugin version check.
An alternative design that doesn't need this information could be simpler to implement – for instance, a less prominent action (in WooCommerce » Status » Tools?) that just resets the account whether it's already reset or not – but would be less discoverable.
h/t @ricardo for raising this in p1638242085417400-slack-C01BZUL57SQ – some discussion ongoing in that thread.
Right now we have the existing deletion endpoint that is used for builder accounts. We need to modify it to also allow live accounts that onboarding hasn't been finished (details_submitted:false)
Unlike with the prior (OAuth) onboarding flow, the current ("Account Links") flow creates an account at the start of onboarding, and cannot be restarted by re-entering the flow (following the recommendation in this doc).
We've seen a number of reports of the merchant needing to return to an earlier point in the KYC flow (to change country or business type, for instance). We've also seem reports of merchants getting emails from Stripe due to not completing the flow, and asking for the account to be deleted.
We could solve both cases simply by allowing the merchant to delete their existing account, perhaps in some post-onboarding cases as well (see https://github.com/Automattic/woocommerce-payments/issues/2459) but particularly when the onboarding isn't complete, which would restore the prior ability to start the onboarding anew.
Here is one proposed way of presenting this action, though it's wide open to design review:
Since a) the button should only show up when there is an existing account, b) the server doesn't currently return any indication for accounts that haven't completed onboarding, and c) it's likely not possible to return such a (non-empty) indication from
GET /accounts
in a backwards-compatible way, we'll just have to decide on some way to encode the not-fully-onboarded state in the server response and have it depend on a plugin version check.An alternative design that doesn't need this information could be simpler to implement – for instance, a less prominent action (in WooCommerce » Status » Tools?) that just resets the account whether it's already reset or not – but would be less discoverable.
h/t @ricardo for raising this in p1638242085417400-slack-C01BZUL57SQ – some discussion ongoing in that thread.