Sandbox Mode

Test your entire integration without connecting to real MNO infrastructure or incurring charges.

Enable Sandbox

Use your sandbox API key (prefix pk_test_) for all requests:

$curl -X POST "https://api.voicebip.com/v1/agents" \
> -H "Authorization: Bearer pk_test_xxx" \
> -H "Content-Type: application/json" \
> -d '{"display_name": "Test Agent"}'

What Works in Sandbox

  • Create agents, provision numbers, configure webhooks
  • POST /v1/calls — simulates full call lifecycle (call.initiated fires immediately, call.transcription after 2 seconds, call.completed after 5 seconds)
  • POST /v1/messages — simulates SMS delivery (DLR events fire)
  • POST /v1/webhooks/test — sends synthetic events with valid HMAC signatures
  • All webhook signatures are real HMAC-SHA256 (same verification code works)

What Doesn’t Work in Sandbox

  • Real phone calls (no SIP/RTP connections)
  • Real SMS delivery (no SMPP to MNO SMSCs)
  • Real billing charges (all usage tracked at NGN 0)

Sandbox Numbers

Sandbox provisions from a reserved test pool:

TypeRange
Mobile virtual (test)+234800000xxxx
Lagos DID (test)+234100000xxxx

These numbers are not reachable from real phones.

Switching to Production

Replace pk_test_ with pk_live_ in your Authorization header. That’s it. Your webhook handlers, signature verification, and event processing code work identically in both modes.