Guide · updated November 2026

Using virtual numbers to test SMS flows

By the Noir SMS team3 min read

Quick answer

Most SMS providers offer test credentials or magic numbers for unit tests, but they don't prove real delivery. For end-to-end checks of your own app's OTP flow, a real temporary number shows whether codes actually arrive, how fast, and how the message looks. Noir SMS numbers can be bought and read through the REST API, so a test can buy a number, trigger your app's SMS and read the code automatically. Use them only for apps you own or are authorized to test.

SMS bugs tend to show up in production: wrong sender ID, codes cut off, slow delivery in one country. A small set of real-number tests catches them earlier.

Test numbers vs real numbers

Provider test numbersReal temporary numbers
Proves real deliveryNoYes
CostFreePer number, refunded if no SMS
SpeedInstantSeconds, like real users
Good forUnit and CI testsPre-release and smoke tests

What to check

  • The code arrives in each target country.
  • Message text, sender and length look right.
  • Your resend and expiry logic works.

Automating

Use the Noir SMS API: POST /api/v1/numbers to buy, then poll GET /api/v1/numbers/{id} or receive the sms.received webhook. In your app, choose the "Any other" service when testing your own product.

Frequently asked questions

Is there a sandbox?

No separate sandbox. GET endpoints are free to call, and numbers without an SMS are refunded.

What's the rate limit?

120 requests per minute per API key.

Services in this guide

Keep reading

Ready to receive your code?

Create a free account, add funds from $5 and get your first verification code in under a minute.