01 · Definition
What is a test phone number?
A test phone number is a WhatsApp business number that Meta provides when you add the WhatsApp product to an app in the App Dashboard. It arrives with a test WhatsApp Business Account (WABA), its own phone number ID and WABA ID, a pre-approved hello_world template and a temporary access token, so a developer can make a first Cloud API call within minutes — before buying a number, completing business verification or registering anything. No payment method is needed to send from it.
Its defining limit is the recipient list. Under WhatsApp → API Setup you add up to five recipient phone numbers, and each must confirm with a code delivered on WhatsApp before it can receive anything. Messages to any other number fail with error 131030 (recipient phone number not in allowed list). Inside that list the normal rules apply: the first message to a recipient must be a template, and once the recipient replies a 24-hour customer service window opens, so free-form text, media and interactive messages go through.
A test number is not a production number. A production number is one you control: it is verified by SMS or voice call, goes through phone number registration with POST /{PHONE_NUMBER_ID}/register and sits in your own WABA with an approved display name; it can message anyone who has opted in, within the portfolio's messaging limits & tiers and subject to its quality rating. The test number cannot be converted into one, so keep its phone number ID, WABA ID and token in configuration, ready to be swapped for production values without touching code.
Key takeaways
- A test phone number is a business number Meta creates with your app's WhatsApp product, so you can send before registering a real number.
- It can message at most five recipient numbers, each added in API Setup and confirmed with a code delivered on WhatsApp.
- It starts with the pre-approved hello_world template; free-form messages work once a recipient replies and opens a window.
- Sending to any other number fails with error 131030, recipient phone number not in allowed list.
- It is for development only: production traffic needs your own registered number, and the same code then runs on its phone number ID.
02 · Specifications
A test phone number: key facts and limits
| Recipients | Up to 5, each verified with a WhatsApp code |
|---|---|
| Starter template | hello_world (en_US), pre-approved |
| Unlisted recipient | Error 131030 |
| Temporary token | Expires within about 24 hours |
| Payment method | Not needed to send from it |
| Customer traffic | Not allowed: register your own number |
03 · Code samples
A test phone number in code
curl -X POST "https://graph.facebook.com/v26.0/{TEST_PHONE_NUMBER_ID}/messages" \-H "Authorization: Bearer {ACCESS_TOKEN}" \-H "Content-Type: application/json" \-d '{"messaging_product": "whatsapp","to": "919812345678","type": "template","template": { "name": "hello_world", "language": { "code": "en_US" } }}'
The recipient must already be one of the five verified numbers on the API Setup page.
04Playground
A working model of Test Phone Number. Use its controls to replay it step by step.
Play a first conversation from the test number
Today
- WhatsApp notice: +91 98123 45678 added and verified as recipient 1 of 5.
- Test Number: Hello WorldWelcome and congratulations!! This message demonstrates your ability to send a WhatsApp message notification from the Cloud API, hosted by Meta.WhatsApp Business Platform sample message10:31Read
- Customer: Got it! Testing replies 👋10:32
- Test Number: Reply received. Free-form messages work now that your window is open.10:33Delivered
- Test Number: Which flow should we test next?10:34ReadOrder update (chosen)OTPSupport
- Customer: Order update10:35
- WhatsApp notice: Send to +91 90000 11111 failed: error 131030, recipient phone number not in allowed list.
Message 7 of 7
WhatsAppSystem notice
Any number outside the five verified recipients is rejected.
A notice WhatsApp itself shows in the chat — not a message from either side.
Message 7 of 7: WhatsApp, System notice. Any number outside the five verified recipients is rejected.
05 · Operation
How does a test phone number work?
Add WhatsApp to an app
In the App Dashboard, create or open a business app and add the WhatsApp product. Meta creates the test WABA and test number and shows both IDs on the API Setup page.
Add and verify recipients
In the recipient (To) field, add your own or a teammate's WhatsApp number and enter the code it receives on WhatsApp. Repeat for up to five numbers.
Send hello_world
With the temporary token (it expires within about a day) or a system user token, call
POST /v26.0/{TEST_PHONE_NUMBER_ID}/messageswithtype: template,name: hello_worldandlanguage.code: en_US, from cURL, a Postman collection or Graph API Explorer.Reply and test free-form messages
Reply from the recipient's phone. The reply reaches your webhook and opens a 24-hour window, so text, media, buttons and lists can now be sent to that number.
Point webhooks at your server
Set the callback URL, subscribe to the
messagesfield and watch each status arrive with the samewamidthe send call returned. For webhook testing on a laptop, expose the local port through an HTTPS tunnel.Swap in production values
Once your own number is registered, change only the phone number ID, WABA ID and token in configuration. Request and webhook shapes stay identical.
06 · Cautions
Common mistakes with a test phone number
Hard-coding the test IDs
The phone number ID, WABA ID and token all change when you go live. Read them from configuration from the first commit.
Sending free-form text first
A plain text message to a recipient with no open window fails with error 131047 (re-engagement message). Send
hello_worldor another approved template first, or reply after the recipient writes.Building on the temporary token
It expires within a day, so tests break the next morning. Create a system user access token for your development app early on.
Reading test results as production behaviour
The test number proves your integration works, not how a real number behaves under messaging limits, quality rating and throughput. Run volume tests on a registered number with internal, opted-in recipients.
07 · Questions and answers
Test Phone Number FAQs
- How many numbers can a WhatsApp test number message?
- Five. Each recipient must be added in API Setup and confirmed with a code sent on WhatsApp; messages to any other number fail with error 131030.
- Can I use the test phone number with real customers?
- No. It is restricted to five verified recipients and exists only for development. Register your own number on your own WABA for customer traffic.
- Why does my test message fail with error 131030?
- Because the recipient is not on the test number's allowed list. Add the number under WhatsApp → API Setup, confirm the code it receives on WhatsApp, and resend.
- Can I send templates other than hello_world from the test number?
- Yes. Create templates in the test WABA and send them once they are approved. hello_world is simply the one that exists from the start.
- Do I need business verification to use the test number?
- No. It works as soon as WhatsApp is added to the app. Verification matters later, when you move to your own number and want higher messaging limits.
08 · Rationale
Why does a test phone number matter?
The test number removes every blocker between a developer and a first working request. Webhook handlers, template rendering, button payloads and status tracking can all be built and demonstrated against real WhatsApp delivery while the business is still gathering verification documents or choosing which number to use. And because Meta enforces the five-recipient list, a bug in a loop cannot spam customers from it, which makes it the safest place to learn the API's request and webhook shapes.
09 · Worked example: A Pune startup's first demo
Example: A Pune startup's first demo
A two-person Pune startup building appointment reminders for clinics has no verified business yet. The developer adds WhatsApp to their Meta app, verifies her own number and her co-founder's as recipients, sends hello_world and wires the webhook to a local tunnel. By evening the co-founder has replied, received an interactive reply-button message, and tapped a button, and both the delivery statuses and the button tap have reached their backend. A month later, with verification done and a dedicated number registered, they change three configuration values and the same code starts sending to real patients.
10 · Recommended practice
Best practices for a test phone number
- Verify each developer's own number as a recipient so everyone sees real rendering on a phone.
- Keep a separate Meta app, with its own test number, for staging so production webhooks never receive test traffic.
- Use the test number to record App Review screencasts of your sending flow.
- Remove recipients nobody uses any more; five slots fill quickly in a team.