Zernio
Zernio
API Reference

Phone Numbers

Numbers

List phone numbersGETGet phone numberGETPurchase phone numberPOSTResolve a number claimGETRelease phone numberDELETE

Availability

List offerable number countriesGETCheck country availabilityGETSearch available numbersGET

Stock Watches

List stock watchesGETWatch an out-of-stock countryPOSTStop watching a countryDELETE

KYC

Get KYC form specGETSubmit KYCPOSTPre-validate KYC addressPOSTPre-review a KYC packetPOSTUpload a KYC documentPOSTView a KYC document on fileGETCreate a hosted KYC linkPOST

Remediation

Get declined requirementsGETResubmit a declined numberPOSTReply to the regulatory reviewerPOSTRespond to the regulatory reviewer (message + corrections)POST

Porting

Check portabilityPOSTCountry porting requirementsGETPort numbers inPOSTList port-in ordersGETResolve a port claimGETA port-in order's pending requirementsGETUpload a porting documentPOSTCancel a port-inDELETE

Other

Request the WhatsApp verification code for a numberPOST
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Phone Numbers

Request the WhatsApp verification code for a number

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.


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

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Path Parameters

id*string

Phone number record ID (from GET /v1/phone-numbers).

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.phonenumbers.requestPhoneNumberWhatsAppCode({  path: {    id: 'abc123',  },  body: {    method: 'SMS',  },});console.log(data);
{  "message": "string",  "method": "SMS",  "alreadyVerified": true,  "replaced": true,  "newPhoneNumber": "string"}
Was this page helpful?

Cancel a port-in

Cancel an in-flight port (wrong number, staying with the old carrier). Only orders that haven't ported can be cancelled; a completed port is a normal number release instead. The carrier may report `cancel-pending` briefly while the losing carrier acknowledges; it settles to `cancelled`.

List pre-approved call reasons

The carrier catalogue of call reasons that pass vetting automatically. Any other wording is allowed on an identity but is vetted by hand.

method?string

Delivery method for the code. Omit to let Zernio pick (SMS when the number can receive it, else VOICE).

Value in

  • "SMS"
  • "VOICE"