Building an SMS verification panel on the Noir SMS API
Quick answer
A reseller panel needs four pieces: your own user accounts and balances, a catalog read from GET /services, an order flow that calls POST /api/v1/numbers and stores the number id, and a webhook endpoint that writes the code when sms.received arrives. Refund your customer when a number expires or is canceled, because Noir SMS refunds you in that case. You're responsible for abuse on your platform and your customers must follow the same Acceptable Use Policy.
Resellers are welcome to build on the API. Here's an architecture that holds up when you have many customers.
Architecture
- Users and balances in your own database.
- A catalog job that caches GET /services?country=xx every few minutes.
- Orders table: your user, number id, phone, service, country, your price, status, code.
- A webhook endpoint for sms.received and a slow fallback poll.
Order lifecycle
| Noir SMS status | Your action |
|---|---|
| waiting | Show the number and a countdown to expires_at |
| received | Show the code; offer resend |
| canceled / expired | Refund your customer |
Safety and abuse
- Require sign-up and verify emails.
- Rate-limit orders per user.
- Block categories you don't want to serve, and act on reports.
- Follow our Acceptable Use Policy; accounts used for fraud or bulk account creation are closed.
Frequently asked questions
Can I set my own prices?
Yes. You pay the Noir SMS price and charge what you like.
Is there a reseller discount?
The API uses the same prices as the dashboard. If you sell medium or high volume, open a ticket in the Support area of your dashboard and we will review special conditions for your account.
Services in this guide
Keep reading
A Telegram bot for SMS verification resellers
A minimal Telegram bot that buys a temporary number from the Noir SMS API and replies with the SMS code. Python example plus what to add for production.
Read the guide →DevelopersHow to price virtual numbers when you resell them
How resellers set prices for SMS verification numbers: cost from the API, refunds, payment fees, support time and why live prices beat fixed tables.
Read the guide →DevelopersAutomate receiving SMS codes: polling or webhooks
Two ways to receive SMS verification codes automatically with the Noir SMS API: polling GET /numbers/{id} or a signed sms.received webhook. Code included.
Read the guide →DevelopersUsing virtual numbers to test SMS flows
How QA teams use real virtual numbers to test SMS sign-up and OTP flows end to end, when to use them vs test numbers, and how to automate with an API.
Read the guide →DevelopersReceive SMS verification codes with Python
Buy a temporary number and read the SMS verification code from Python with the Noir SMS REST API. Full example with requests, polling and errors.
Read the guide →DevelopersReceive SMS verification codes with Node.js
Buy a temporary number and read SMS verification codes from Node.js with fetch and the Noir SMS REST API. Complete example with error handling.
Read the guide →