---
title: "Request the WhatsApp verification code for a number"
method: POST
path: "/v1/phone-numbers/{id}/whatsapp/request-code"
tags: ["Phone Numbers"]
---

# Request the WhatsApp verification code for a number

`POST /v1/phone-numbers/{id}/whatsapp/request-code`

Starts (or restarts) WhatsApp verification of a Zernio-hosted number:
adds it to Meta's pre-verified pool when needed and asks Meta to send
the verification code, which Zernio captures on the number itself.
Used to connect WhatsApp on a number bought for calls or SMS.
`/v1/whatsapp/phone-numbers/{id}/request-code` is a deprecated alias
with the same contract.

When Meta refuses the number for WhatsApp (Meta error 136021):
a number that is already live (`active` or `suspended`) is left
untouched and keeps working for calls and SMS, and the call answers
409 `number_not_whatsapp_eligible`; buy a new number with WhatsApp
enabled instead. A number that was never live (still verifying) is
replaced at no extra cost with a WhatsApp-eligible number on the same
record, answered as 200 with `replaced: true`.

## Path parameters

- `id` string, required

## Request body

- object
  - `method` 'SMS' | 'VOICE' — Delivery method for the code. Omit to let Zernio pick (SMS when the number can receive it, else VOICE).

## Response `200`

Code requested, or the number was already verified, or a never-live number was replaced.

- object
  - `message` string
  - `method` 'SMS' | 'VOICE'
  - `alreadyVerified` boolean — Meta already reports the number as verified. No code is sent and the number is activated.
  - `replaced` boolean — Meta refused the original number, which had never been live, so it was replaced on the same record.
  - `newPhoneNumber` string — The replacement number, present when `replaced` is true.

## Other responses

- `400` — Invalid request
- `401` — Missing or invalid API key. `code` is `missing_credentials` when no Authorization header was sent and `invalid_credentials` when the key is unknown, revoked or expired.
- `404` — Resource not found
- `409` — The number cannot be verified for WhatsApp right now. `code` says why: - `number_not_whatsapp_eligible`: Meta does not allow this already-live number on WhatsApp. It keeps working for calls and SMS and is not replaced. Buy a new number for WhatsApp. - `whatsapp_number_in_use`: Meta reports the number is registered to another WhatsApp account. - `META_INVALID_NUMBER`: Meta refused a never-live number and no replacement could be sourced. - `PENDING_REGULATORY`: the number is still in carrier regulatory review.
- `429` — Meta paused verification for this number. `retryAt` says when it lifts.
- `503` — The number is not ready for verification yet, retry shortly.

## Changes

- **2026-10-06** `f8c8f34fb41a` — 3 warning
  - added the new `account` enum value to the `details/budgetScope` response property for the response status `400`
  - added the new `account` enum value to the `details/budgetScope` response property for the response status `401`
  - added the new `account` enum value to the `details/budgetScope` response property for the response status `409`
- **2026-10-02** `d556591af3f6` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/phone-numbers/:id/whatsapp/request-code/post.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/664b218652be?raw)
