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
| Field | Type | Required | Description |
|---|---|---|---|
| to | string | Yes | Destination 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
}
| status | Meaning |
|---|---|
| pending | Queued, waiting for the assigned device to pick it up |
| initiated | Device has placed the call, not yet finished |
| ended | Call finished — terminal, cost is final |
| failed | Call failed (device offline, no signal, etc.) — terminal, nothing charged |
Error codes
| Status | Meaning |
|---|---|
| 402 | Insufficient wallet balance, or no flash-verification rate configured for that destination |
| 404 | Unknown callId, or it belongs to a different account |
| 422 | No active voice gateway device assigned to your account yet — contact support |