What you configure
1
Pick a test number
Any number you control the behaviour of in staging. It never receives a real SMS, so it doesnât need to be a number you own with a carrier.
2
Whitelist it in your staging backend
Make your OTP endpoint accept that number without sending anything, and accept one fixed code for it. Most teams already have this for their own manual QA.
3
Put both on the profile
In App settings â Test accounts, open the profile, turn on Phone login and fill Phone number (international format,
+33612345678) and Static OTP code (the fixed code you pinned).The static code is stored encrypted and masked in the dashboard, same as a password. Itâs never echoed in run reports, Slack messages, or fix prompts.
The generic case
The shape of the change is the same whatever your stack: when the request is for a whitelisted test number, skip the send and accept a known code.- Staging only. Gate the list behind an environment flag so a whitelisted number can never be used against production data.
- One code per number. Donât accept âany codeâ for a test number. If verification stops asserting anything, your login story stops testing login.
If youâre on Twilio Verify
Thereâs no shortcut here: Twilio ships no test mode for Verify. Its test credentials only cover phone numbers, calls, and messages. A Verify request made with them comes back403. The magic numbers you may have seen (+15005550006 and friends) are fixtures for the Messages API, not Verify recipients.
So the allowlist above is still the answer, you just put it one step earlier: short-circuit before you call Verify, in both your request and your check handler. Your production path stays exactly as it is.
If you canât configure it
Tell us. It changes what we build next. Until then, a story that needs a phone-OTP login and has no configured number and code doesnât fail with a mystery. Mini skips it and the run report names the missing configuration, so you can tell âthe app is brokenâ apart from âthe test account isnât set upâ. Other stories in the run are unaffected. The obvious alternative is a pool of Minitap-owned numbers Mini can read SMS from. Weâve deliberately not built it: it makes us a phone-number vendor, adds carrier delivery as a failure mode inside every run, and still wouldnât work for apps that pin an account to a number. If your app canât whitelist a test number, say so and weâll look at it again with your case in hand.Related
- Anatomy of a user story: what else lives on a profile.
- What Mini can and canât do: the full list of verification flows Mini handles.

