Docs API & Developer Flash-Call Reachability Check (voice/otp/send)

Flash-Call Reachability Check (voice/otp/send)

Confirm a phone number is real and reachable via a flash call, billed a flat per-attempt fee. Reachability only, not ownership proof.


Flash-Call Reachability Check (voice/flash-verify)

Places a flash call (rings ~4 seconds, never answered) to confirm a phone number is a real, live, reachable line — billed a flat per-attempt fee rather than a per-minute rate. Requires a Voice Gateway device assigned to your account by 6X support first (contact support to have one set up).

Not the same product as Phone Verification's voice channel, even though both bill a flat per-attempt "flash rate" now. This flash-call product is wholesale-only (needs a Voice Gateway device on your own account), never speaks anything, and only proves the line is real and reachable. Phone Verification's voice channel is available to any business, places a real call, and speaks an enterable code aloud - use it when you need the customer to actually prove they answered, not just that the number rings.

Important — this proves reachability only, not ownership. Because the call is placed from a real physical SIM, its caller ID is fixed and cannot encode a per-attempt code the way SMS/email can. It confirms "this number is a real, live line," not "the person who submitted this number is holding the phone." If you need to confirm the customer actually owns the number, use Phone Verification (a real enterable SMS code) instead.

POST /api/v1/voice/otp/send

FieldTypeRequiredDescription
tostringYesDestination phone, international format

Example request

curl -X POST https://app.6xcom.com/api/v1/voice/otp/send \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to":"+2348011234567"}'

Response

{
  "success": true,
  "callId": "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "status": "queued"
}

GET /api/v1/voice/otp/status/{callId}

Poll for the result, or (recommended) subscribe to the flash_verification.completed webhook event instead of polling.

curl https://app.6xcom.com/api/v1/voice/otp/status/d290f1ee-6c54-4b01-90e6-d701748f0851 \
  -H "X-API-Key: YOUR_API_KEY"
{
  "success": true,
  "callId": "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "type": "flash",
  "status": "ended",
  "durationSeconds": 4,
  "cost": 0.05,
  "error": null
}
statusMeaning
pendingQueued, waiting for the assigned device to pick it up
initiatedDevice has placed the call, not yet finished
endedCall finished — terminal, cost is final
failedCall failed (device offline, no signal, etc.) — terminal, nothing charged

Error codes

StatusMeaning
402Insufficient wallet balance, or no flash-verification rate configured for that destination
404Unknown callId, or it belongs to a different account
422No active voice gateway device assigned to your account yet — contact support
Was this article helpful?