Skip to content
Bulk SMS, SMS API & OTP for Nepal

Bulk SMS and OTP, built for Nepal

Send verification codes to NTC and Ncell numbers, in English or Nepali, from one dashboard or one API request. You see what happened to every message, and pay only for the segments you send.

  • No setup fees
  • English & नेपाली
  • NTC & Ncell
  • Billed by the real segment
  • NTC & NcellEvery number checked and its operator detected
  • English & नेपालीGSM-7 and Unicode, detected automatically
  • Billed by the segmentThe same 160/153 · 70/67 rules the network uses
  • A status for every numberFilter, break down by operator, export to Excel
Try it

See exactly what a message costs

Type in English or Nepali. The counter uses the same rules as your bill: 160 characters per segment in English, 70 in Nepali, fewer once a message runs long.

Encoding
GSM-7
English
Characters
94
160 per segment
Segments
1
billed per number
Room left
66
in this segment
Sending to
numbers

uses 500 credits

Under the hood

What happens after you press send

Every message goes through the same four steps, whether it came from the dashboard or your own code.

  1. Step 1

    You send

    Write once in the dashboard, or make one request from your own system. English or Nepali, to one number or ten thousand.

    Dashboard

    Send to: Class 9 parents Class 10 parents

    भोलि विद्यालय बन्द रहनेछ।

    or

    POST /api/v1/sms/send
    { "to": [...], "message": "..." }
  2. Step 2

    We check every number

    Invalid numbers and duplicates are removed before anything is charged. Each number's operator is detected, and the message's real segment count is worked out.

    • 9841XXXXXX NTC
    • 9801XXXXXX Ncell
    • 9841XXXXXXduplicate
    • 12345not a mobile number
    • 9862XXXXXX NTC

    3 valid · 2 removed before billing · 1 segment each

  3. Step 3

    It's routed, with failover

    Messages go out through our upstream routes. If a route refuses a batch, the next one takes it automatically, so one provider's bad day isn't yours.

    Route ARefused
    handed to the next route automatically
    Route BAccepted
    Verification codes also get a delivery check, and are re-sent if stuck.
  4. Step 4

    You see what happened

    Every number has a status in your reports, broken down by NTC and Ncell. Your system can get webhooks, and anything that fails to send is refunded.

    Report
    9841XXXXXXNTCSent
    9801XXXXXXNcellSent
    9862XXXXXXNTCFailed · refunded
    Webhook sent to your server
For developers

Send from your own code in one request

A small REST API over the same sending, billing and reporting the dashboard uses. Get a token from your account and send your first message in minutes.

  • Idempotency keys: a retried request is applied once, never sent twice
  • Tokens you can restrict to your server's IPs, domains and sender IDs
  • HMAC-signed webhooks for your integration's events
  • Every response tells you exactly how many segments were billed
POST /sms/send
curl -X POST https://api.bulletsms.com/api/v1/sms/send \
  -H "Authorization: Bearer $BULLETSMS_TOKEN" \
  -H "Idempotency-Key: order-4821-shipped" \
  -H "Content-Type: application/json" \
  -d '{
    "to": ["9801234567"],
    "message": "Your order #4821 has shipped.",
    "senderId": "BulletSMS"
  }'

Response · 200

{
  "success": true,
  "data": {
    "campaignId": "cm2x8k1q40001…",
    "queued": 1,
    "billedUnits": 1,
    "invalidNumbers": [],
    "duplicatesRemoved": 0,
    "balanceRemaining": 4999
  }
}
OTP API

Verification codes people actually receive

Login and sign-up codes go out under your approved business name, in an approved format, through a route built for codes.

  1. Code requestedYour system calls /otp/send with the number and the code it generated.
  2. Sent immediatelyCodes skip the campaign queue, so they never wait behind a bulk send.
  3. Checked, re-routed if stuckIf the first route hasn't delivered it, the same code goes out once more through another.
  4. Delivered, and you're toldThe status shows in your OTP log, and an otp.delivered webhook reaches your server.
Explore the OTP API
Solutions

Built for the messages Nepal actually sends

Schools, clinics, shops, banks, associations and municipalities each send something different. Here's what that looks like.

For resellers

Sell SMS under your own brand

Bring your own clients, set their rates, top up their balances. Try it: this is the dashboard your clients would see.

Your brand colour

The dashboard your clients use carries your name, logo and colour instead of ours.

Why Bullet SMS

What changes when you switch

The same messages you send today, priced and tracked the way they should have been from the start.

Typical bulk SMS

  • Billed a flat rate however long the message is
  • No idea which numbers failed, or why
  • Credit lost on messages that never went out
  • Separate tools for contacts, templates and reports
  • No way to send from your own systems

With Bullet SMS

  • Billed by the real segment, exactly as the network counts it
  • A status for every number, broken down by NTC and Ncell
  • Anything that fails to send is refunded automatically
  • Contacts, templates, campaigns and reports in one place
  • A REST API with idempotency keys and signed webhooks
Pricing

Pay for what you send, nothing else

No subscription, no setup fee, no feature tiers. Your per-segment rate is set for your account from the volume you expect to send.

Prepaid creditTop up once, then every message draws down your balance by exactly its segment count.
Top up locallyPay by bank transfer or QR; your balance updates as soon as the deposit is verified.
Refunds are automaticA message that fails to send, or a campaign you cancel, gives its credits back.
FAQ

Questions before your first send

Billing, coverage and the API: what people ask before they sign up.

Send your first SMS today

Create an account and verify your number. Once it's approved and topped up, send from the dashboard or from your own code.