SMS gateway by NexusSec · early access

Every message. A stronger connection.

Turn your own Android phone into an SMS gateway for your application. One API request sends a sign-in code, an order update or an alert through your SIM, and signed webhooks tell your systems what happened next.

  • HTTP API
  • Signed webhooks
  • Scheduled sending
  • Two-way SMS

Not open to the public yet. Ask for access and we will contact you.

POST/v1/messages/send
POST https://sms-api.nxsvs.com/v1/messages/send
x-api-key: <your API key>
Idempotency-Key: <a unique ID for this request>
Content-Type: application/json

{
  "from":    "<your connected phone number>",
  "to":      "<recipient's phone number>",
  "content": "<your message>"
}
What happens to it
  1. pending
  2. sending
  3. sent
  4. delivered

Or failed / expired. "Delivered" appears where the recipient's network reports delivery.

Your phone, your numberMessages leave from your SIM, and recipients see your own number.
One request per messageSend from any language over HTTPS with an API key.
Events, not pollingStatus changes and replies arrive at your webhook.
VerifiableEvery webhook is signed and timestamped.
How it works

The path of a message.

NXSVS SMS sits between your application and your phone. It checks your key, queues the message and tracks it; your phone does the sending, over your own mobile operator.

  1. Your applicationSends an HTTPS request with your API key.
  2. NXSVS SMSChecks the key, queues the message and tracks its status.
  3. Your Android phoneThe NXSVS SMS Gateway app sends it from your SIM.
  4. Your mobile operatorCarries the SMS, under your SIM's plan.
  5. Your customerSees your number, and can reply to it.

And back: sent, delivered, failed and expired messages, replies, and your phone going offline or online reach your application as signed webhooks.

Platform

Built for systems, not just phones.

The controls a team needs to run messaging from its own software.

Signed webhooks for every event

Your endpoint hears about each change as it happens, signed with HMAC-SHA256 so you can prove it came from NXSVS SMS.

  • message.phone.sent
  • message.phone.delivered
  • message.send.failed
  • message.send.expired
  • message.phone.received
  • phone.heartbeat.offline
  • phone.heartbeat.online

Scoped API keys

Give each application its own key, starting nx_, instead of sharing your account key. Keys are sent in the x-api-key header.

Scheduled sending

Set send_at to queue a message up to 20 days ahead.

Safe retries

Send an Idempotency-Key header, and a retried request never sends the same message twice.

Two-way messaging

Texts your phone receives reach your account and your webhook.

Phone monitoring

Get an event when a phone drops offline, and another when it comes back.

Dual-SIM

On a dual-SIM phone, choose which SIM a message goes from.

Your own references

Attach a request_id to trace each message back to your own records. Include attachment URLs to send MMS.

Developers

An API you can read in a minute.

Versioned under /v1, authenticated with one header, and answered with the queued message straight away. Full guides and an interactive API reference open with the service.

Message statuses
pendingAccepted and queued.
sendingYour phone has picked it up.
sentYour phone handed it to the mobile network.
deliveredThe recipient's network reported delivery. Not every network reports it.
failedIt could not be sent.
expiredIt was not sent in time.
Send a message · values in <angle brackets> are yours
POST https://sms-api.nxsvs.com/v1/messages/send
x-api-key: <your API key>
Idempotency-Key: <a unique ID for this request>
Content-Type: application/json

{
  "from":       "<your connected phone number>",
  "to":         "<recipient's phone number>",
  "content":    "<your message>",
  "send_at":    "<optional: an ISO time up to 20 days ahead>",
  "request_id": "<optional: your own reference>"
}
The reply: the message, queued
200 OK
{
  "status":  "success",
  "message": "message added to queue",
  "data": {
    "id":      "<message id>",
    "owner":   "<your phone number>",
    "contact": "<recipient's phone number>",
    "status":  "pending"
  }
}
Every webhook delivery carries
X-Webhook-Event-Id:  <unique event ID>
X-Webhook-Timestamp: <timestamp>
X-Webhook-Signature: v1=<hex HMAC-SHA256 of
                     timestamp + "." + body>

Recompute the signature with your webhook's secret,
compare it, and use the event ID to skip repeats.
Security and control

Plain about what is protected.

What NXSVS SMS does to keep your keys, events and messages under your control, and one honest note on what SMS itself cannot do.

Keys you can scope

A separate key per application, so one leaked key does not expose the whole account.

Signed, timestamped webhooks

Verify the HMAC-SHA256 signature on every delivery, and use the timestamp and event ID to reject replays and repeats.

Your data, scoped to your account

Messages, phones and keys are looked up within the account that owns them.

Retries without duplicates

Idempotency keys make a network retry safe: the same request never sends twice.

Optional content encryption

Message content can be encrypted between your application and your phone. The SMS itself still travels as ordinary text on the mobile network.

Phones you pair yourself

A phone joins your account by scanning a QR code from your own dashboard.

What you need

One phone, one SIM, one app.

NXSVS SMS sends through a phone you own. That phone has to stay ready to send.

  • An Android phoneRunning Android 9 or newer.
  • An active SIMOne that can send SMS. On a dual-SIM phone, either SIM works.
  • The NXSVS SMS Gateway appPaired with your account by scanning a QR code.
  • Power and a connectionKept on and online over Wi-Fi or mobile data, with battery optimisation off for the app.
Pricing

Start free. Scale on request.

Plans are set up by our team while NXSVS SMS is in early access. SMS charges are separate: your mobile operator bills them under your SIM's plan.

Free

Free plan

  • One phone number
  • Up to 200 messages a month
Request access
SMS charges

Your operator's rates

Texts go out through your own SIM, so your mobile operator charges for them under your plan. Your NXSVS SMS plan covers the platform: the account, the API, webhooks and the queue.

Questions

Before you ask for access.

Short, straight answers. Anything else, ask us.

Is NXSVS SMS live?

Not yet. It is in early access: ask for access and we will contact you when your account is ready.

Can messages show my brand name instead of a number?

No. Messages are sent from your phone's own number. There is no alphanumeric sender ID.

Who charges for the SMS?

Your mobile operator, under your SIM's plan. Your NXSVS SMS plan covers the platform: the account, the API, webhooks and the queue.

What if my phone goes offline?

Your webhook receives phone.heartbeat.offline, and phone.heartbeat.online when it is back. A message your phone cannot send in time is marked expired, and you are told by webhook.

Will I know a message was delivered?

You will know when your phone has sent it. "Delivered" appears when the recipient's network reports delivery, and not every network does.

Is it for bulk or marketing messages?

No. It sends from an ordinary SIM, which is not a bulk route. It is made for the messages your own customers expect from you: codes, updates and alerts.

Your code. Your phone. Your number.

Tell us what you want to send, and we will get back to you with access and a quote.

Request early access