Skip to content
SMSRay
SoonVoice OTP and missed-call verification

SMS and OTP, delivered.
One API for every network.

One API for one-time passwords, order updates, alerts and two-way replies, built to work with any mobile network. Text any Nepal mobile number today, with more countries on the way. We handle delivery; you get delivery reports, signed webhooks and a dashboard you will actually enjoy.

Already a customer? Log in · Read the docs

6-digit
OTP in one call
NPR 0.50
per SMS on Business
Every network
carrier-grade delivery
Illustration: your app calls POST /sms/otp/send. The request goes to the SMSRay platform, which delivers it over the customer's mobile network to their phone. The phone shows "YourApp: 482913 is your verification code. Valid for 5 minutes. Do not share it." The status moves from queued to sent to delivered. Timings are illustrative.

How it works

From your server to their screen in four steps

No paperwork with networks, nothing to host. You call the API; SMSRay delivers over local mobile networks and reports back on every message.

  1. Step 1 of 4

    Connect

    We set up your workspace. Create an API key in the dashboard, with scopes, an IP allowlist, a daily cap and test mode, then call one REST endpoint from your server.

    curl https://api.smsray.com/api/sms/v1/sms/send \
      -H "x-api-key: $SMSRAY_API_KEY" \
      -H "content-type: application/json" \
      -H "Idempotency-Key: order-1042-shipped" \
      -d '{ "to": "9779801234567", "text": "Your order #1042 has shipped." }'
  2. Step 2 of 4

    Approve a template

    Five templates are ready from day one. Send us your own wording with {{variables}} for the parts that change; we aim to review it within one business day.

  3. Step 3 of 4

    Send

    One POST with the number and the text. SMSRay checks it against your template, counts the SMS and answers straight away with a message id.

  4. Step 4 of 4

    Track

    Watch the status move to delivered in the dashboard, poll it by id, or get a signed webhook on your server. Analytics and alerts show the bigger picture.

For developers

A REST API you can learn over coffee

Five endpoints, one header, one error shape. Base URL api.smsray.com/api/sms/v1.

  • Safe retries

    Send an Idempotency-Key and replays within 24 h return the original response — never a second SMS.

  • Signed webhooks

    HMAC-SHA256 with a timestamp, 8 attempts with backoff, and zero-downtime secret rotation.

  • Honest segments

    GSM-7 vs Unicode counted exactly — Nepali text, emoji and escape characters never split mid-character.

curl https://api.smsray.com/api/sms/v1/sms/send \
  -H "x-api-key: $SMSRAY_API_KEY" \
  -H "content-type: application/json" \
  -H "Idempotency-Key: order-1042-shipped" \
  -d '{ "to": "9779801234567", "text": "Your order #1042 has shipped." }'

200 OK

{ "success": true, "messageId": "2b1f6c1e-…", "status": "queued",
  "segments": 1, "encoding": "GSM7" }

Build the flow

Pick an industry. Watch the flow build itself.

Your system decides when to send; SMSRay sends, tracks and reports back. Every step marked live works today. Workflow automation, for scheduled sends, keyword auto-replies and webhook-triggered SMS, is being built now.

Confirm every order the moment it is placed and keep your CRM in sync.

  1. Order placed

    Your app calls POST /sms/send

    Live today
  2. “Order confirmed” SMS

    Prebuilt approved template

    Live today
  3. Delivery report

    queued → sent → delivered

    Live today
  4. Webhook to your CRM

    Signed message.status event

    Live today
  5. “Out for delivery” on dispatch

    Webhook-triggered SMS

    Coming soon
Live today: the API, templates, reports, webhooks, replies, opt-outs and alert rules Coming soon: scheduled sends, keyword auto-replies and webhook-triggered SMS

Built to land once

You send. We make sure it lands.

Every message is queued, retried when an attempt stumbles, tracked to a delivery receipt and reported to your server. A message that finally fails is credited back.

  • OTP hashing

    Only a SHA-256 hash of each code is stored.

  • API key scopes

    Keys stored as hashes, limited to what they need.

  • IP allowlists

    Accept requests only from your servers.

  • Audit log

    Every portal change: who, what and when.

In their language

The same message, in Nepali or English

Devanagari is sent as Unicode and counted exactly. Flip each message and see how many SMS it uses.

  1. Schools

    10:42Messages
    YourSchool

    Text message · now

    YourSchool: Dear parent, Aarav's Kartik fee of Rs 4,500 is due by the 15th. Please pay at the school office. Thank you.
    GSM-7 · 119 chars1 SMS

    Fee reminder. Sent from an approved template.

  2. Banks & BFIs

    10:42Messages
    YourBank

    Text message · now

    YourBank: 482913 is your verification code. Valid for 5 minutes. Do not share it.
    GSM-7 · 81 chars1 SMS

    Sign-in code. Sent from an approved template.

  3. Clinics

    10:42Messages
    YourClinic

    Text message · now

    YourClinic: Reminder: your appointment with Dr. Sharma is tomorrow at 10:30 AM. Reply 1 to confirm, 2 to reschedule.
    1
    GSM-7 · 116 chars1 SMS

    Appointment reminder. The reply reaches you as a message.inbound webhook.

  4. Shops

    10:42Messages
    YourStore

    Text message · now

    YourStore: Good news! Order #1042 has shipped and will reach you today by 6 PM.
    GSM-7 · 79 chars1 SMS

    Order shipped. Sent from an approved template.

  5. Salons

    10:42Messages
    YourSalon

    Text message · now

    YourSalon: Your booking with Anisha is confirmed for Saturday, 2:00 PM. Reply 2 to reschedule.
    2
    GSM-7 · 94 chars1 SMS

    Booking confirmed. The reply reaches you as a message.inbound webhook.

Example messages written for illustration under generic brand names. Message counts are calculated live for the text shown.

Pricing

Simple monthly plans, in rupees

1 SMS = up to 160 English (GSM-7) characters, or up to 70 characters in Nepali/Unicode. Longer messages use more SMS (153 or 67 characters per part).

Starter

NPR 3,000 / month

4,500 SMS · ≈ NPR 0.67 per SMS

OTP and transactional SMS

Business

Most popular

NPR 5,000 / month

10,000 SMS · NPR 0.50 per SMS

OTP and transactional SMS

Enterprise

Contact us

Custom volume and pricing

OTP, transactional and promotional SMS

Every plan includes the REST API, dashboard, delivery reports and webhooks, the OTP send and verify API, and analytics. Unused SMS expire at the end of each monthly period.

Free tools

Preview your OTP. Price your message.

Type your brand name to see the exact verification text your customers receive. The SMS calculator counts parts for English and Nepali and shows the cost per message on each plan.

  • Six digits, valid for 5 minutes
  • Built-in template, already approved

GSM-7 · 80 characters · 1 SMS

Preview: YourApp: 482913 is your verification code. Valid for 5 minutes. Do not share it.

The dashboard

See every message, every status, every second

Search the log, send a test, manage API keys and teammates, check your balance, see analytics and watch delivery live, from a laptop or your phone.

Phone or email sign-in

One-time codes, no passwords to leak.

Full audit trail

Every change recorded with who, when and where.

Live status

Watch messages move from queued to delivered.

Coming soon

Voice is next: missed-call verification, call alerts and voice OTP

The same platform that delivers your SMS will soon verify numbers with a missed call and ring customers for urgent alerts. Same key, same dashboard.

See what’s coming

Send your first SMS this week

Plans from NPR 3,000 a month. Tell us what you send and we'll set up your account, so OTP works on day one.

Already a customer? Log in