How to connect the WhatsApp Business API in Postman
Postman is the fastest way to prove your WhatsApp Business API integration works before you write a single line of production code. In about ten minutes you can send a real template message to your own phone, inspect the exact JSON Meta returns, and understand the request shape your app will later reuse. This guide walks through connecting to the Graph API through your InfiQ-provisioned WhatsApp number — grabbing an access token, setting the right headers, calling the /messages endpoint, and reading the response so you know it truly went through.
What you'll do
Create a Postman request to the WhatsApp Cloud API /messages endpoint, add your access token as a Bearer header and your phone-number ID in the URL, send a pre-approved template as JSON, and confirm the message ID in the 200 response.Verified business
10:24
Preview · as customers see it
Step 1 — Prepare your credentials in InfiQ
Before Postman can talk to WhatsApp, you need three things from your InfiQ dashboard, all tied to the WhatsApp Business Account (WABA) InfiQ has already provisioned and verified for you. Because InfiQ is an official Meta Business Partner, your number is onboarded through the Cloud API, so the endpoint you call is Meta's own graph.facebook.com — you are simply authenticating against the WABA that InfiQ manages on your behalf. Gather these before opening Postman so you don't have to switch back and forth mid-request.
- Access token — a system-user token scoped to your WABA. Copy it from the InfiQ dashboard; treat it like a password and never commit it to a repo.
- Phone number ID — the numeric ID of the sending number (not the +91 display number). It goes straight into the request URL.
- A test recipient — your own WhatsApp number in full international format (e.g. 919876543210, no +, no spaces), which must have opted in.
- One approved template — for a first send, use the default hello_world utility/marketing template or any template already approved in your InfiQ account.
Step 2 — Build the request in Postman
Create a new request in Postman and set the method to POST. The URL follows the Cloud API pattern https://graph.facebook.com/v21.0/{phone-number-id}/messages — replace {phone-number-id} with the ID from Step 1 and use the current Graph API version. Authentication is a Bearer token, so under the Authorization tab pick 'Bearer Token' and paste your access token, or set the header manually. Getting the two headers exactly right is where most first attempts fail, so double-check them before sending.
- Method: POST — not GET; the /messages endpoint only accepts POST.
- Header Authorization: Bearer YOUR_ACCESS_TOKEN — one space after 'Bearer', no quotes around the token.
- Header Content-Type: application/json — without this, Postman may send form data and Meta rejects the body.
- Tip: store the token and phone-number ID as Postman environment variables ({{token}}, {{phone_id}}) so you never paste secrets into the URL bar.
Step 3 — Send a template message as JSON
In the Body tab choose 'raw' and select JSON, then paste the message payload. WhatsApp only lets you message someone first with an approved template — free-form text is reserved for the 24-hour service window that opens after a customer messages you. So your first Postman call must be a template. The minimal payload for the hello_world template looks like the block below; swap in your recipient number and, for your own templates, the correct template name and language code.
- { "messaging_product": "whatsapp", "to": "919876543210", "type": "template", "template": { "name": "hello_world", "language": { "code": "en_US" } } }
- messaging_product must always be the literal string 'whatsapp' — omitting it is a common cause of a 400 error.
- 'to' is the recipient in international format with no plus sign.
- For your own templates, match the exact name and language code shown in InfiQ template management, and add a 'components' array if the template has variables.
Step 4 — Send, read the response, and confirm delivery
Click Send. A successful call returns HTTP 200 with a JSON body containing a contacts array and a messages array — the message ID inside (a wamid.HBg... string) is your proof that Meta accepted the request. Acceptance is not the same as delivery, though: the API returning 200 means WhatsApp queued the message, while the actual delivered/read status arrives asynchronously on your webhook. For a quick manual test, just watch your own phone. Note that this send is a billable event — Meta charges per delivered message by category (marketing, utility, or authentication), and InfiQ bills that on transparent ₹ pricing tied to Meta's live rate card, ex-GST.
- 200 OK with a wamid message ID = request accepted and queued.
- Check the recipient phone to confirm the template actually arrives.
- Delivery and read receipts are delivered to your configured webhook, not in the Postman response.
- A single template send counts as one billable delivered message in its category once WhatsApp delivers it.
Common errors and how to fix them
When a request fails, Postman shows a non-200 status and Meta returns a helpful error object with a code and message — read it rather than guessing. The vast majority of first-time failures come from a stale token, a wrong ID in the URL, a recipient who hasn't opted in, or a template that isn't approved. Work through the checklist below against the error message before you change anything else.
- 401 / 'invalid OAuth access token' — token expired or mistyped; regenerate it in the InfiQ dashboard and re-paste.
- 400 with 'template name does not exist' — the name or language code doesn't match an approved template exactly (it's case-sensitive).
- 'Recipient phone number not in allowed list' — on unverified test setups you can only message numbers you've registered; add the number or complete verification.
- 131047 / re-engagement message — you tried to send free-form text outside the 24-hour service window; use a template instead.
- No error but nothing arrives — the recipient hasn't opted in, or their number format includes a + or leading zeros.
Frequently asked questions
Do I need the WhatsApp API before I can use Postman?+
Why does my first message have to be a template?+
What Graph API version should I put in the URL?+
Where do I find my access token and phone-number ID?+
Does sending a test message from Postman cost money?+
The response says 200 but the message never arrived — why?+
Do I need to be a developer to do this?+
Can I test receiving messages and webhooks in Postman too?+
Ready to move from Postman to production?
Get your WhatsApp Business API number, access token, and approved templates set up with InfiQ's India-based team so your first live message is only minutes away.