White-Label & Custom Domain
Brand the panel your sub-users see, and — if you want your own domain — connect it so the whole experience runs under your name, not NumberOTP's.
What gets branded
Sign-up page
Your logo, name, and color at /join/{yourPublicId} — no "Powered by NumberOTP" link.
Dashboard
Your sub-user's tab title, header/footer logo, and "Welcome back to {your brand}" greeting.
Support links
Your own support email everywhere — dashboard sidebar, footer, and emails — instead of support@numberotp.com.
Transactional emails
Magic link, verification code, password reset, and stock-back alerts all use your name/logo/color and drop the NumberOTP footer disclaimer.
Domain (optional)
Your own domain instead of numberotp.com — see the setup steps below.
This only ever applies to your sub-users — your own login to the reseller panel stays on the regular NumberOTP interface, since that's you managing your business, not a customer of it.
1. Set your brand
Open Reseller → Settings
Go to /reseller/settings. Under White-Label Brand, fill in your brand name, a logo URL (a direct link to an image — no upload yet), a primary color, and a support email.
Save
Click Save Changes at the top. This takes effect immediately for every sub-user's next page load or email — no propagation delay, unlike the domain step below.
2. Connect your own domain (optional)
Enter your domain
Still in Reseller → Settings, under Custom Domain, enter the domain or subdomain you want to use — e.g. panel.yourbrand.com — and click Save.
Add two DNS records at your domain provider
Saving generates a one-time verification token and shows you exactly what to add:
# 1. Proves you own the domain Type: TXT Name: _numberotp-verify.panel.yourbrand.com Value: <shown in your settings page> # 2. Points traffic to us Type: CNAME Name: panel.yourbrand.com Value: cname.vercel-dns.com
Using your bare/apex domain (e.g. callerpoint.com itself, not a subdomain) instead of a subdomain? That works too — DNS spec doesn't allow a CNAME at the apex, so use one of these instead of step 2's CNAME:
- An A record pointing to
76.76.21.21— works with every DNS provider. - Or, if your provider offers it, an ALIAS / ANAME record (Cloudflare, Route 53, DNSimple, and a few others) pointing to
cname.vercel-dns.cominstead — behaves like a CNAME but is allowed at the apex.
The TXT record from step 1 stays exactly the same either way.
Using the apex for other things too? Email (MX records) and any subdomains (www., mail., etc.) keep working completely independently of this — only the bare domain's own web traffic routes to the panel. If you want your apex free for a separate marketing site, put the panel on a subdomain instead (e.g. panel.yourbrand.com) — that's why it's the default example above.
Click Verify
DNS changes typically take a few minutes to propagate, sometimes longer depending on your provider. Click Verify — it checks the TXT record directly, and once it matches, your domain is automatically registered and SSL-provisioned.
Done
Once verified, that domain routes to your branded panel. Sub-users who sign up or log in there see your brand throughout.
Common questions
The questions resellers actually ask before setting this up.
What domain/URL will my customers see when they access their panel?
If you've connected a custom domain and it's verified, they see your domain the whole time — sign-up, sign-in, and dashboard. If you haven't set one up, they use numberotp.com, but with your branding (logo, name, colors) applied throughout — see example URLs below.
Will the URL show NumberOTP's domain, or my own?
Your own, once your domain is verified. There's no way to tell from the URL, page content, or emails that NumberOTP is the underlying platform.
If it uses NumberOTP's domain, what's the URL structure?
Without a custom domain: sign-up is numberotp.com/join/{yourPublicId} (find your exact link on your settings page), then numberotp.com/dashboard for ongoing use — branded, but on our domain. With a custom domain: both of those become panel.yourbrand.com/join/{yourPublicId} and panel.yourbrand.com/dashboard.
Will the NumberOTP name appear anywhere — URL, login page, emails, or interface?
No, once you've set a brand name/logo. It's removed from the sign-up page footer, the dashboard header/footer/support links, and every email your sub-users receive. Your own reseller login (managing your business) is the one place that's intentionally still the regular NumberOTP interface.
Can I connect my own domain, like panel.mycompany.com, without building a custom frontend?
Yes — that's exactly what the steps above do. No custom frontend needed; it's the same hosted panel, served on your domain with your branding.
If using a custom domain requires the REST API / a custom frontend, can you confirm that?
It doesn't. The hosted panel handles it. Building your own frontend against the Reseller API is only something you'd need if you want a UI that looks structurally different from NumberOTP's own (not just re-colored/re-logo'd) — most resellers don't need that.