← Quick Start
SMS Gateway

SMS Quick Start

Send OTP codes, alerts, and transactional SMS to 190+ countries. Every message returns a delivery receipt so you know it arrived.

Testing without real SMS? Use Sandbox Mode — no real messages sent, predictable OTP codes, and no billing.

1Send an SMS

POST the recipient number and message text. The from field sets the sender ID visible to the user (carrier support varies by country).

POST/api/v1/connect-hub/sms
bash
curl -X POST https://api.novauth.com/api/v1/connect-hub/sms \
  -H "x-api-key: YOUR_API_KEY" \
  -H "x-account-id: YOUR_ACCOUNT_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "to":   "+14155552671",
    "text": "Your verification code is 482951. Valid for 10 minutes.",
    "from": "Novauth"
  }'
200 OK — Response
json
{
  "messageId": "a3f2c1d0-4e5b-6c7d-8e9f-0a1b2c3d4e5f",  // save for delivery check
  "from":      "Novauth",
  "to":        "+14155552671"
}

Text length: SMS messages are capped at 160 characters per segment. Messages up to 4 096 characters are accepted — they are automatically split into concatenated segments and reassembled on the handset.

2Check delivery status

Poll the SDR (SMS Delivery Report) endpoint to verify the message reached the handset. Check shortly after sending — typical delivery is under 5 seconds.

GET/api/v1/connect-hub/sms/{messageId}/sdr
bash
curl https://api.novauth.com/api/v1/connect-hub/sms/a3f2c1d0-.../sdr \
  -H "x-api-key: YOUR_API_KEY" \
  -H "x-account-id: YOUR_ACCOUNT_ID"

3Report the verification outcome

Once your user submits the code they received, POST the result to the webhook endpoint to close the SMS record and record the outcome.

POST/api/v1/connect-hub/sms/webhook
bash
# Report the verification outcome from your backend
curl -X POST https://api.novauth.com/api/v1/connect-hub/sms/webhook \
  -H "x-api-key: YOUR_API_KEY" \
  -H "x-account-id: YOUR_ACCOUNT_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "id":     "a3f2c1d0-...",
    "status": "Success"
  }'

API Reference

POST/smsSend an SMS message
GET/sms/{messageId}/sdrGet SMS delivery report
POST/sms/webhookReport verification outcome
POST/sms/sdrList all SMS records (paginated)

Request body — POST /sms

tostringrequiredRecipient phone in E.164 format
textstringrequiredMessage content (1–4 096 chars)
fromstringoptionalSender ID or number (carrier-dependent)

List all SMS records

bash
# Paginated list of all SMS records
curl -X POST https://api.novauth.com/api/v1/connect-hub/sms/sdr \
  -H "x-api-key: YOUR_API_KEY" \
  -H "x-account-id: YOUR_ACCOUNT_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "page": 1,
    "rows_per_page": 20,
    "sort_by": "created_at",
    "sort_direction": "DESC"
  }'