← Quick Start
WhatsApp API

WhatsApp Quick Start

Deliver OTP codes over WhatsApp with end-to-end encryption. Reach 2B+ users in markets where SMS has low delivery rates.

The user must have WhatsApp installed and their number registered. The message will appear in their WhatsApp inbox — no opt-in is required for OTP messages sent through Novauth.

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

1Send a WhatsApp OTP message

POST the recipient's number and the OTP code in the text field. Novauth wraps it in a branded delivery template before sending — pass only the numeric code, not a full sentence.

POST/api/v1/connect-hub/whatsapp/otp
bash
curl -X POST https://api.novauth.com/api/v1/connect-hub/whatsapp/otp \
  -H "x-api-key: YOUR_API_KEY" \
  -H "x-account-id: YOUR_ACCOUNT_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "to":   "+14155552671",
    "text": "482951"
  }'
200 OK — Response
json
{
  "uuid": "01JQHM3P7KXNV8W2QF5DG6TYAB",  // save for delivery tracking
  "to":   "14155552671"                     // no + prefix
}

2Check delivery status

Fetch the WDR (WhatsApp Delivery Report) to track message progress through the WhatsApp network: sent → delivered → read.

GET/api/v1/connect-hub/whatsapp/{uuid}/wdr
bash
curl https://api.novauth.com/api/v1/connect-hub/whatsapp/01JQHM.../wdr \
  -H "x-api-key: YOUR_API_KEY" \
  -H "x-account-id: YOUR_ACCOUNT_ID"

3Report the verification outcome

After the user submits the code shown in their WhatsApp, POST the result to close the message record and record the outcome.

POST/api/v1/connect-hub/whatsapp/webhook
bash
# Report verification outcome after the user submits the code
curl -X POST https://api.novauth.com/api/v1/connect-hub/whatsapp/webhook \
  -H "x-api-key: YOUR_API_KEY" \
  -H "x-account-id: YOUR_ACCOUNT_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "uuid":   "01JQHM...",
    "status": "Success"
  }'

API Reference

POST/whatsapp/otpSend WhatsApp OTP message
GET/whatsapp/{uuid}/wdrGet WhatsApp delivery report
POST/whatsapp/webhookReport verification outcome
POST/whatsapp/wdrList all WA records (paginated)

Request body — POST /whatsapp/otp

tostringrequiredRecipient phone in E.164 format
textstringrequiredOTP code to deliver (e.g. 482951). Novauth wraps it in a branded message template.