Verify the phone number at signup because an unverified number is only a guess. A typo, a fake or someone else's number all look identical in your database until a code is sent and returned.
What you gain
- A contact channel you know works for receipts, alerts and recovery
- A small cost for people who create accounts in bulk
- Cleaner data, since mistyped numbers are caught immediately
What to watch
Ask for the number when it is needed, not before. If the product has value before login, let people look around first and verify when they commit to something.
Keep the step short: one field, one code, a clear resend option, and an error message that says whether the code was wrong or expired. Every extra screen costs you people who meant to sign up.
With Tambua you can verify using send and verify endpoints, and free test keys return the code in the API response so you can build the flow without sending real messages.