Drop-in JS widget
A single script tag mounts the entire verify flow — phone input, code capture, retry, voice fallback. No design work, no state machines to wire up.
MyOTP.App is the pre-built verify widget that paste-installs into web and mobile apps. Phone input, code capture, retry, voice fallback and anti-fraud — all on BroadNet's operator-direct OTP routes, all behind one script tag.
The widget is the integration. Underneath, every verification rides BroadNet's OTP-only routes — sub-5s median delivery, HLR pre-validation, and voice fallback already wired in.
12kB JS widget mounts on any data-myotp div. Phone input, theme, locale read from data-* attributes. No state machine to write.
Widget calls BroadNet's verification service with your app key. Origin-checked, CORS-pinned, rate-limited per IP and per session.
Channel chosen by your account policy. HLR pre-validation kills dead numbers; voice fallback fires if SMS DLR misses the window.
Auto-complete from the SMS notification on iOS and Android. Six-digit input, accessible, RTL-aware for Arabic and Hebrew.
On verify success, widget hands you a short-lived JWT (5-min default). Verify the signature on your server before granting session.
12kB JS widget mounts on any data-myotp div. Phone input, theme, locale read from data-* attributes. No state machine to write.
Widget calls BroadNet's verification service with your app key. Origin-checked, CORS-pinned, rate-limited per IP and per session.
Channel chosen by your account policy. HLR pre-validation kills dead numbers; voice fallback fires if SMS DLR misses the window.
Auto-complete from the SMS notification on iOS and Android. Six-digit input, accessible, RTL-aware for Arabic and Hebrew.
On verify success, widget hands you a short-lived JWT (5-min default). Verify the signature on your server before granting session.
Mount the widget, point it at your app ID, and ship. Everything below is in the box — themed, localised, and wired to the same OTP delivery path the rest of BroadNet's network runs on.
A single script tag mounts the entire verify flow — phone input, code capture, retry, voice fallback. No design work, no state machines to wire up.
First-party SDKs for React, React Native, Flutter, iOS and Android — same verification surface as the web widget, native rendering on every platform.
Register an alphanumeric sender ID in regions that allow it; numeric long-codes and short-codes elsewhere. Codes arrive from your name, not a shared shortcode.
If SMS doesn't return a delivery receipt inside your window, the widget escalates to a spoken voice call automatically — same session, same code.
Velocity caps, geo rules, IP reputation and HLR pre-validation block OTP toll-fraud and signup-pumping before a single message leaves the platform.
Verification success, channel mix, drop-off by country and median delivery time — live in the dashboard, exportable to your warehouse.
The widget self-mounts on any element marked data-myotp. On success it returns a short-lived JWT — verify it on your server and start the session.
1<!-- 1 · Drop the script on any page2 (the widget script URL is issued with your app_id) -->3<script src="MYOTP_WIDGET_SCRIPT_URL" async></script>4 5<!-- 2 · Mount the verify flow -->6<div7 data-myotp8 data-app-id="app_8f2c9b1e"9 data-locale="en"10 data-theme="light"11 data-on-verified="onUserVerified"12></div>13 14<!-- 3 · Handle the signed result -->15<script>16 function onUserVerified(result) {17 // result.token — short-lived JWT, verify on your server18 // result.phone — E.16419 // result.channel — "sms" | "voice"20 fetch("/api/session", {21 method: "POST",22 body: JSON.stringify({ token: result.token }),23 });24 }25</script>Every verification carries an event trail. Retention and residency are configurable per workspace — including MENA-resident options for Gulf-regulated workloads.
On a static page, under 5 minutes from app-ID creation to first verified user — paste the script tag, drop a div, write one callback. On a SPA (React/Vue/Next.js), 15–30 minutes including the SDK install and the JWT verification on your server. Mobile SDKs are a 30–60 minute integration depending on your build setup.
Theme (light/dark/custom CSS variables), brand colour, logo URL, accent colour, font-family, copy for every UI string in every locale, sender ID per country, voice fallback timing, retry policy, and CSS overrides for the modal frame itself. The widget is a Shadow DOM web component — your page CSS never leaks in.
Yes. No 'powered by MyOTP' badge. Your sender ID delivers the code, your domain hosts the iframe (CNAME setup), your logo and brand colours render the modal. The only mention of MyOTP is inside your own dashboard.
30+ at last count: English, Arabic (with full RTL), French, Spanish, Portuguese (PT and BR), German, Italian, Dutch, Polish, Turkish, Russian, Ukrainian, Hindi, Urdu, Bangla, Tamil, Indonesian, Malay, Thai, Vietnamese, Japanese, Korean, Simplified and Traditional Chinese, Hebrew, Greek, Romanian, Czech, Hungarian, Swedish, Norwegian, Danish, Finnish. You can override any string per locale.
Per verified user, with a free tier to evaluate on. Indicative production pricing starts around $0.05/verification on standard sender IDs and drops with volume; high-volume and enterprise tiers are quoted against your country mix and monthly commit. Voice fallback bills separately, per connected call. These figures are illustrative and vary by route — final rates are set in your commercial agreement.
Always. The widget hands the browser a short-lived JWT but also POSTs a webhook to your server with the same verification event. You should treat the client JWT as a hint and the webhook as authoritative — that's the integration pattern in every code sample.
Built-in: per-phone velocity caps, per-IP velocity caps, geo allow/deny, IP reputation gating, HLR pre-validation against ported-out and disconnected numbers, and a destination risk score against known toll-fraud prefixes. All configurable in the dashboard; pumping attacks are blocked before they bill.
Named technical account manager, dedicated app-ID with custom rate-limits, white-label CNAME and custom subdomain, on-prem JWT signing-key rotation, 99.99% widget-availability SLA with automatic credits, and a shared Slack channel with our engineering team for incident response.
Question not here? Ask our engineering team
Paste one script tag, mount one div, and the widget runs the rest — phone capture, code entry, voice fallback, anti-fraud, analytics. Free tier, no card.
Go deeper on the concepts behind this product.