All articles
Guide

WhatsApp API Number Not Registered: Fix It India 2026

Approved in your dashboard but unregistered on Meta means the number sends nothing. What the /register call and the 6-digit PIN actually do.

RichAutomate Editorial
9 min read 0 views
WhatsApp API Number Not Registered: Fix It India 2026

A WhatsApp Business API number that is approved but not registered can neither send nor receive a single message. Approval and registration are two separate events: approval is Meta clearing your number for the API, registration is the one API call that actually binds that number to Cloud API infrastructure with a 6-digit PIN — and until it succeeds, the number is inert no matter how green your dashboard looks.

This page is about the registration step specifically: what /register does, why a number silently reverts to pending without it, and how the two different PINs in the WhatsApp stack get confused. If you have not reached this stage yet, start with the WhatsApp Business API setup guide for India. If your number is registered and messages still are not landing, that is a different failure class — see message delivery troubleshooting.

Direct answer — why your number is "not registered"

A number reaches the API through a sequence, and most teams stop one step early:

#StepWhat it provesCan you send after it?
1Number added to the WhatsApp Business AccountThe number exists in your WABANo
2Ownership verified by SMS or voice codeYou control the SIMNo
3Display name reviewedThe name customers see is clearedNo
4Registered on Cloud API with a 6-digit PINThe number is bound to messaging infrastructureYes

Steps 1 to 3 are what dashboards show you. Step 4 is an API call that many onboarding flows — including, at one point, our own direct-signup path — quietly skipped. The result is a number that reads as approved everywhere a human looks, and fails every send.

What the register call actually does

Registration is a single POST against the phone number node:

POST https://graph.facebook.com/v24.0/{phone-number-id}/register

{
  "messaging_product": "whatsapp",
  "pin": "<your 6-digit PIN>"
}

Two things happen when it succeeds. The number is bound to Cloud API hosting, so inbound webhooks start firing and outbound sends stop rejecting. And the PIN you passed becomes the number's two-step verification PIN — the credential you will be asked for the next time the number is registered anywhere, including a migration to another provider.

Three properties of this call matter operationally:

  • It is idempotent in practice, not in status code. Calling it on an already-registered number returns an error, not a success. Sane implementations inspect the error and treat "already registered" as a pass — ours does exactly that, so a re-run of onboarding does not blow up on a number that is already live.
  • It requires the number to be verified first. Registration is not a substitute for the SMS or voice code step. An unverified number cannot register.
  • It is per phone number, not per WABA. Adding a second number to an existing WABA means a second register call with its own PIN.

The trap: APPROVED in your dashboard, UNREGISTERED on Meta

This is the failure worth internalising, because it is self-concealing. Most BSP dashboards — ours included, before we fixed it — write a status row when Meta approves the number, then display that row. Registration state is a different field on a different node. Nothing forces the two to agree.

So the number sits at APPROVED in the platform you are looking at, while Meta considers it unregistered. Every template send fails. Every inbound message is dropped before it reaches your webhook. And then the second-order effect: the next time your platform syncs status from Meta, the authoritative unregistered state overwrites the local one and the number drops back to pending. Teams read that as "Meta un-approved us" and open a support ticket about approval, which is the wrong problem entirely.

The tell is asymmetric failure. If both directions are dead — nothing sends, nothing arrives, no webhook fires at all — suspect registration. If sends fail but inbound still works, or only some sends fail, you are looking at an account-level block or a per-message delivery issue instead.

How to check registration state without guessing

Read the phone number node directly rather than trusting a dashboard:

GET https://graph.facebook.com/v24.0/{phone-number-id}
    ?fields=verified_name,code_verification_status,quality_rating,
            certificate,messaging_limit_tier

What the fields tell you:

FieldReads asInterpretation
code_verification_statusVERIFIEDOwnership step done. Registration may still be missing.
code_verification_statusEXPIREDThe verification aged out. Common on numbers onboarded long ago; re-verification may be required before a fresh register call.
code_verification_statusNOT_VERIFIEDStep 2 never completed. Registration will fail until it does.
messaging_limit_tierPresent, e.g. a tier valueMeta is treating this as a live messaging number — a strong signal registration went through.
certificatePresentThe display-name certificate exists. Needed for on-premise-style registration flows.

Note what is not in that list: there is no single boolean called "registered". You infer it. The most reliable practical test is behavioural — attempt a register call and read what comes back. An "already registered" error is the cleanest possible confirmation that the number is live.

Two different PINs, one word

Almost every registration support thread is really a PIN vocabulary problem. There are two distinct credentials and they are routinely conflated:

Registration / two-step PINVerification code
Length6 digits6 digits
Who creates itYou choose itMeta generates it
How you get itYou set it in the register callSent to the number by SMS or voice call
LifetimePersists on the number until changedExpires in minutes, single use
Where it bites you laterMigrating the number to another BSP; re-registering after a moveOnly during initial verification

Both are six digits and both arrive during onboarding within minutes of each other, which is why teams store the wrong one. The one you must record in your own credential store is the PIN you chose. Lose it and you cannot cleanly re-register or migrate the number — the recovery path runs through Meta support and costs days. Treat it as infrastructure credential material, not as an onboarding scratch value: unique per number, stored in your secrets manager, never a shared default across a fleet.

Stop overpaying on WhatsApp

Get a 1-minute BSP audit on WhatsApp

Drop your WhatsApp number — we line-item your current invoice against Meta India rates in under 60 seconds. India-hosted, DPDP-compliant.

DPDP-compliant · India-hosted · 1-min reply

When registration fails — reading the error properly

The registration endpoint returns errors in the 133xxx family, and the numeric code alone is a weak signal. Our own integration deliberately matches on the error message rather than the code when deciding whether "failure" actually means "already done", because the code attached to an already-registered number has not been stable across API versions.

Practical triage, in the order worth checking:

  1. Message mentions "already registered". Not a failure. The number is live. Continue onboarding.
  2. Wrong PIN. The number carries a two-step PIN from a previous registration — often set by a previous BSP. You need that PIN, or you need it disabled from the account that holds it before you can set a new one.
  3. Number not verified. code_verification_status is not VERIFIED. Complete the SMS or voice code step and retry.
  4. Number still attached elsewhere. A number in use on the consumer WhatsApp app, WhatsApp Business app, or another WABA cannot be registered here. It must be deleted from that surface or deregistered from that account first.
  5. Rate limiting. Repeated registration attempts against the same number get throttled. Back off rather than retrying in a loop — hammering the endpoint extends the lockout.

Retry loops are the standard mistake here. Registration is not a flaky call that succeeds on the fourth attempt; each of the failure classes above is deterministic. If it failed, something is genuinely wrong, and the fix is upstream.

The India-specific parts

Two things bite Indian businesses on this step more than most.

The number is usually already on WhatsApp. Indian SMBs almost universally run the business number on the WhatsApp Business app before moving to the API. That number cannot be registered on Cloud API while the app still holds it — it has to be deleted from the app, and the chat history on that phone does not come with it. The full trade-off is covered in using an existing number for the WhatsApp Business API.

OTP delivery to Indian mobile numbers is unreliable enough to plan around. DND registrations, operator filtering, and international-sender-ID rules mean the SMS verification code frequently does not arrive. The voice-call option is the fallback and it works more consistently — choose it early rather than burning three SMS attempts and hitting the retry cooldown. Keep the SIM physically in hand for the call; forwarding to a different device defeats the check.

Deregistration — the reverse operation

Deregistering releases the number from Cloud API. It is the correct move in exactly two situations: you are retiring the number, or you are moving it to a different WABA or provider. It is not a troubleshooting step, and using it as one is how teams turn a broken send into a broken account.

What it costs you: the number goes dead for messaging immediately, and re-registering is a fresh register call with the PIN. What survives: the number itself and its ownership verification. What is at risk on a move: templates and quality history do not automatically follow the number to a new account — see migrating your WhatsApp BSP for what actually transfers and what you rebuild.

One sequencing rule worth stating plainly: never deregister a production number to "reset" it during business hours. There is no guaranteed re-registration window, and if the PIN turns out to be wrong or the verification has expired, you have converted a partial outage into a total one with no rollback.

Registration checklist

  1. Confirm code_verification_status is VERIFIED, not EXPIRED.
  2. Confirm the number is not active on the WhatsApp or WhatsApp Business app on any handset.
  3. Choose a unique 6-digit PIN per number and write it to your secrets store before the call, not after.
  4. Call /register with messaging_product and the PIN.
  5. Treat an "already registered" error as success.
  6. Re-read the phone number node — messaging_limit_tier appearing is your confirmation.
  7. Send one real template message to a number you control. This is the only test that proves the whole chain.
  8. Confirm your display name is what you expect while you are in there — see changing a WhatsApp display name, since the live name is frequently not the one teams assume.

Step 7 is not optional. Every field check above is an inference; a delivered message is evidence.

Frequently asked questions

If the number is registered and inbound messages still never appear, the silence is on the webhook side — see the five checkpoints an inbound event must survive.

That is the sender side of the problem. When it is the recipient that will not resolve, see WhatsApp API invalid phone number errors.

Further reading

Get the number live without the guesswork

RichAutomate runs the register call as part of onboarding, records the PIN against the number, and reconciles registration state against Meta rather than trusting a local status row — which is precisely the gap that leaves numbers approved-but-dead elsewhere. If you have a number stuck between approved and working, talk to us and we will read the actual state on Meta before anyone touches anything.

Ready to ship this?

Get the full migration playbook on WhatsApp

A founder-led 1-minute reply with the migration steps, template approval timeline, and a 14-day pilot offer. DPDP-compliant. India-hosted. No spam.

DPDP-compliant · India-hosted · 1-min reply
Tagged
WhatsApp Business APICloud APIRegistrationOnboardingIndia
Written by
RichAutomate Editorial
Editorial team at RichAutomate. We build the WhatsApp Business automation platform Indian D2C brands, fintechs, and agencies use to ship campaigns and flows on the official Meta Cloud API.
FAQ

Frequently asked questions

Why does my WhatsApp API number say approved but cannot send messages?
Approval and registration are separate events. Your platform records approval when Meta clears the number, but the number is only usable after a register call binds it to Cloud API with a 6-digit PIN. Until that call succeeds the number can neither send nor receive, and a later status sync from Meta will typically drop it back to pending.
What is the 6-digit PIN for WhatsApp Business API registration?
It is a PIN you choose and pass in the register call, and it becomes the number's two-step verification PIN. It is not the SMS or voice verification code Meta sends you — that one expires in minutes and is single use. Store the PIN you chose in your secrets manager: you need it to re-register or migrate the number later, and recovering a lost PIN runs through Meta support.
How do I check whether my WhatsApp number is registered on Cloud API?
There is no single registered boolean. Read the phone number node for code_verification_status, messaging_limit_tier and certificate — a present messaging_limit_tier is a strong signal the number is live. The most conclusive test is to attempt the register call: an already registered error confirms the number is bound. Then send one real template message, because only a delivered message proves the whole chain.
What does code_verification_status EXPIRED mean?
The ownership verification on that number has aged out. It is common on numbers onboarded long ago and does not by itself stop an already-registered number from sending, but it can block a fresh register call. If you need to re-register or migrate the number, expect to redo the SMS or voice code step first.
Can I register a number that is already on the WhatsApp Business app?
No. The number has to be deleted from the WhatsApp or WhatsApp Business app first, and the chat history stored on that phone does not transfer to the API. This affects most Indian SMBs, since the business number is usually already running on the app before the move to the API.
Should I deregister my number to fix a sending problem?
No. Deregistration is for retiring a number or moving it to a different account, not for troubleshooting. It kills messaging immediately with no guaranteed re-registration window, so if the PIN turns out to be wrong or verification has expired you have turned a partial outage into a total one with no rollback.
RichAutomate · WhatsApp BSP for India 2026

Ship WhatsApp campaigns + flows on a transparent, compliance-ready BSP.

₹0 platform fee. DPDP audit log included. Visual flow builder. Multi-tenant from day one.

Start free trial
Want this for your brand?

Get a free 24-hour BSP audit

Send us your last invoice. We line-item it against Meta's published rates and benchmark against three alternatives.

Limited Spots Available

Get a Free
Automation Audit

Stop leaving revenue on the table. Get a custom roadmap to automate your growth.

Secure & Confidential

Continue reading

All articles
Guide

WhatsApp API Invalid Phone Number: Fix It India 2026

The digits looked fine but the send failed? Validation proves a number is plausible — only a send proves anyone is there. Four recipient states, decoded.

Read article
Technical Guide

WhatsApp Template Parameter Mismatch: Fix It India 2026

Template approved but the send still fails? Parameters match by position, not by name — and one empty value shifts every placeholder after it.

Read article
Engineering Guide

WhatsApp API Media Upload Failed: Fix It India 2026

Media never arrives, or inbound images break? Three separate paths fail identically. Upload ids, public links and the handle that expires in an hour.

Read article
Engineering Guide

WhatsApp Webhook Not Receiving Messages: Fix India 2026

Webhook verified but zero events? Verifying the URL is not subscribing the account. The five checkpoints an inbound WhatsApp event must survive.

Read article
Guide

How to Get WhatsApp Business API in India 2026: Setup Guide

The complete 2026 guide to getting the WhatsApp Business API in India. Prerequisites (Meta Business Manager, a verified business, a number not on the WhatsApp app), the two paths (Cloud API direct vs no-code BSP and when to pick which), the exact step-by-step setup from verification to your first template, realistic timeline, real cost (Rs 0 platform fee with RichAutomate, Client Pay Rs 0.10/msg + Meta direct or SaaS Pay Rs 1.20/Rs 0.30, 14-day trial + 100 credits), common rejection reasons with fixes, and the green tick after. Go live in 24 to 48 hours.

Read article
Product

WhatsApp Coexistence 2026: App + API, Same Number

WhatsApp Coexistence lets you run the WhatsApp Business app and Cloud API on the same number at once. How it works, chat sync, limits, and setup in 2026.

Read article