PreviewCodes and alerts, billed to the application that sent them.

Each application gets its own tenant on the fleet SMS router with its own SMS Nepal or Twilio account. Set provider credentials and routing from the console, send a test, and verify one-time codes — the router refuses to bill one application from another’s account.

console · send a test code
POST /v1/applications/{id}/sms/verify/send
{ "to": "+9779800000000", "purpose": "login" }

→ { "verification_id": "ver_1b9e…", "provider": "smsnepal", "expires_in": 300 }

POST /v1/applications/{id}/sms/verify/check
{ "verification_id": "ver_1b9e…", "code": "482913" }

→ { "status": "approved" }

What you get · preview

SMS, without running it.

Served from sms.api.devsewa.com and managed from the console. Backed by SMS_ROUTER, mediated by the DevSewa control plane. In preview: it opens for early-access customers as the fleet pairing for their account completes.

  • Your own provider account per application: SMS Nepal, Twilio and more
  • Routing by country prefix with a primary provider and optional fallback
  • OTP send and verify with per-tenant rate budgets
  • Test and live environments never share a provider account
  • Send a test message from the console before you wire anything
  • Every provider change and test send is audited

Isolation

How it stays yours.

Routing
Live uses <tenant>; test stops in the DevSewa simulator and creates no router tenant
Credentials
Stored by the router under your tenant; the console shows a masked preview only
Money safety
A tenant with no account of its own is refused, never billed to the fleet

Add SMS to your application.

Create an account, register a test application and exchange your first ticket in under ten minutes.