← Quick Start
Sandbox

Sandbox Mode

Test all four verification channels without sending real messages, making real calls, or incurring charges. Go from signup to a working integration in under five minutes.

No real messages sent
No carrier connections
No billing
100 test calls / day

1Get your test credentials

Sandbox API keys start with sk_test_. Create one from the dashboard under Sandbox Keys. Use your sandbox key with the dedicated /sandbox endpoints — see the code examples in Step 3.

api key
production  BTEL_xxxxxxxxxxxxxxxx
sandbox     sk_test_xxxxxxxxxxxxxxxx

Sandbox requests go to dedicated /sandbox endpoints (e.g. /call/flash/sandbox), not the production paths. A sk_test_ key on a production endpoint will be rejected — always use the sandbox URL.

2Use a test phone number

Any number in the +1 555 000 xxxx range is a test number. Each channel recognises four special numbers with distinct behaviours — see the per-channel table in Step 3.

3Send a test verification

Pick a channel below. Every sandbox request to a test number responds with a predictable mock payload — no real network calls are made.

Replace sk_test_xxxxxxxxxxxxxxxx with your actual sandbox key from the dashboard.

POST/api/v1/connect-hub/call/flash/sandbox
bash
curl -X POST https://api.novauth.com/api/v1/connect-hub/call/flash/sandbox \
  -H "x-api-key: sk_test_xxxxxxxxxxxxxxxx" \
  -H "x-account-id: YOUR_ACCOUNT_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "callee":        "+15550000001",
    "max_ring_time": 20
  }'
200 OK — Sandbox Response
json
{
  "uuid":    "test_fc_01JQHM7P3K2NX4Y8",
  "caller":  "+15550482951",
  "callee":  "+15550000001",
  "sandbox": true
}

In sandbox the call is never placed. The response caller +15550482951 encodes the OTP in its last 6 digits — your app reads 482951.

Test numbers for Verify Call:

NumberBehaviourStatus
+15550000001Success — caller ID +15550482951 encodes OTP 482951200
+15550000002Success — no sync failure equivalent for verify-call200
+15550000003SIP gateway not connected503
+15550000004Internal server error500

Report the verification outcome using the same webhook as production. See the channel quickstart for the webhook step.

Limits & billing

Daily limit100 test verifications across all channels
BillingNever charged — sandbox is always free
ChannelsVerify Call, SMS, WhatsApp, Telegram OTP
Test numbers+1 555 000 xxxx range — behaviour varies per channel
CDR retention7 days (same as production)

When you exceed the daily limit the API returns 429 Too Many Requests with the message Sandbox daily limit of N verifications reached. Resets at midnight UTC. Wait until 00:00 UTC or use a different account.

Ready to go live? See pricing — swap sk_test_ for your BTEL_ key and update the endpoint paths to drop /sandbox.