# Verification Call Capture

> How Edesy catches Meta's WhatsApp voice verification call on your virtual number and forwards it to your phone, so numbers that cannot receive SMS can still be verified.

Source: https://edesy.in/docs/whatsapp-number/getting-started/verification-call-capture

When Meta verifies a WhatsApp number by voice, it calls that number and reads a 6-digit code. Edesy points your virtual number's incoming calls at a short-lived forwarding rule, so Meta's call rings the phone you choose. You hear the code, type it in the wizard, and Edesy restores the number's normal call routing.

## Facts

| Item | Detail |
|---|---|
| Used in | The manual path ([Bring Your Own WABA](https://edesy.in/docs/whatsapp-number/getting-started/bring-your-own-waba)) |
| Method | Meta voice call (`VOICE`), not SMS |
| Who rings | The phone you enter as **Your Phone Number** |
| Caller ID you see | Your Edesy virtual number |
| Code | 6 digits |
| Session lifetime | 10 minutes from the code request |
| Attempts | Up to 3 per session |
| Your normal inbound routing | Restored after the number is verified, the session is cancelled, or setup fails |
| Works with | Mobile, landline-style and other virtual numbers on your Edesy account |

## How it works

1. **You click Request Verification Code.** Edesy creates a verification session and points the number's incoming calls at the forwarding rule.
2. **Edesy asks Meta for a voice code.** Meta calls your Edesy number.
3. **The call is forwarded** to your phone, showing your virtual number as the caller.
4. **You answer and listen** for the 6-digit code.
5. **You type the code** and click **Verify Code**. Edesy submits it to Meta.
6. **Routing is restored.** The number goes back to its previous incoming-call setup, and WhatsApp messaging is enabled.

If the call does not come, click **Resend Code**. The wizard shows a 10-minute countdown.

## Verification API

Base URL: `https://voice-api.edesy.in/v1/whatsapp`. Auth: `Authorization: Bearer sk_...`.

| Method | Path | Description |
|---|---|---|
| `POST` | `/verify/start` | Start a session. Body: `pool_number_id`, `waba_id`, `meta_phone_id`, `access_token`, `display_name`, `forwarding_number` |
| `GET` | `/verify/{session_id}` | Session status |
| `POST` | `/verify/{session_id}/code` | Submit the code. Body: `{"code": "123456"}` |
| `POST` | `/verify/{session_id}/resend` | Ask Meta to call again |
| `DELETE` | `/verify/{session_id}` | Cancel and restore routing |

Session `status` values: `pending`, `code_requested`, `verified`, `failed`, `expired`.

Error codes: `VERIFICATION_NOT_FOUND`, `VERIFICATION_ALREADY_ACTIVE`, `VERIFICATION_EXPIRED`, `MAX_ATTEMPTS_EXCEEDED`, `INVALID_VERIFICATION_STATUS`, `INVALID_CODE`.

## FAQ

### Can I put WhatsApp on a landline number?
Yes, if it is a number on your Edesy account. Meta verifies by voice call and Edesy forwards that call to your phone.

### Why not use SMS verification?
Many virtual and landline-style numbers cannot receive SMS. The voice call works on any number that can take calls.

### What number shows on my phone when the call comes in?
Your Edesy virtual number.

### How long is the code valid?
The session expires 10 minutes after the code is requested. Resend if it runs out.

### How many times can I try?
Up to 3 attempts per session. After that, cancel and start a new session.

### Will my IVR or call forwarding on this number break?
Only for the few minutes of verification. Edesy restores the number's previous incoming-call routing when verification finishes, is cancelled or fails.

### Does Edesy record or read the code for me?
No. The call is forwarded to you live. You listen and type the code.

### Can I start two verifications for the same number?
No. Only one active session per number is allowed. Cancel the existing one first.
