Feature Comparison
Migrating your existing users
Existing users are not moved over in bulk. Each one re-onboards through the standard onboarding flow — the same endpoints, the sameGET /user/onboarding polling loop, the same status values. There is no migration-specific endpoint to integrate and no migrated flag to branch on.
What changes is how much the user has to do. When Gnosis Pay recognises the user as an existing customer, their identity verification is carried over in the background and the onboarding status machine simply never returns the steps they already completed.
What the user goes through
1
Sign in with the right wallet
The user authenticates with SIWE as usual. Recognition happens on this wallet address, so it must be a wallet from their existing account — specifically one that is a current owner of their existing Safe.This wallet becomes the only sign-in wallet and the only owner of the new account, and it cannot be changed later.
2
Verify email and register
Standard email OTP and
POST /user. Recognition happens here and only here — if the user registers with an unrecognised wallet, they are treated as a brand new customer and there is no way to retroactively migrate them.3
Accept the Terms of Service — action_accept_tos
Always required. The new terms are different from the old ones, so previous acceptance does not carry over.
4
Wait while verification is carried over — waiting_kyc_setup
Keep polling as you normally would. Gnosis Pay pulls the existing verification data in the background; this is usually quick but is asynchronous, so don’t assume a fixed duration.
5
KYC and Source of Funds — usually skipped
This is where the migrated journey diverges.
action_complete_kyc is skipped entirely — the user never opens the KYC provider’s SDK again. action_complete_sof is skipped too when their existing answers still map onto the current questionnaire; if they don’t, the user answers the questionnaire normally.Build for both outcomes and let the polled status decide, rather than hardcoding the skip.6
Create the account, verify phone, create a card
Identical to a new user from here on. The user creates their account, a new Safe is deployed, and phone verification applies if you require it.