How to Set Up WhatsApp Business API for Pakistani Companies

If you are trying to get the WhatsApp Business API running for your business in Karachi, Lahore, or anywhere in Pakistan, you have probably run into a wall of rejected documents or declined credit cards. Most online guides make the process sound like a simple five-minute setup. It is not.
The reality of implementing this system in Pakistan involves dealing with State Bank regulations, telecom filters blocking OTPs, and strict Meta verification requirements. This walkthrough shows you exactly how to navigate the setup, verify your system, and troubleshoot the inevitable errors that occur along the way.
The Prerequisites You Must Gather First
Do not click a single button on the Meta developer portal until you have these four assets ready. If you try to wing it, Meta will flag your account, and getting a locked business manager reviewed can take weeks.
- A Dedicated Phone Number: This number must not have an active WhatsApp or WhatsApp Business app account. If you are currently using the number on your phone, you must delete the account inside the app settings. Simply uninstalling the app does not work. The number must be capable of receiving an international SMS or voice call.
- Official Business Registration: You need your National Tax Number (NTN) certificate or SECP registration documents. The business name on these documents must match your Meta Business Portfolio name letter-for-letter. If your NTN says "Ali Enterprises" and your Facebook page says "Ali Tech Solutions", Meta will reject your application.
- A Matching Utility Bill or Bank Statement: Meta needs to verify your physical address. You must provide a PTCL, K-Electric, LESCO, SNGPL bill, or a formal bank statement. The address on this document must match the address on your NTN registry.
- An Internationally Enabled Payment Card: Meta charges you directly in USD. Most Pakistani debit and credit cards block international e-commerce transactions by default. You will need a card from a bank that allows international online spending (like Meezan Bank, Bank Alfalah, or digital wallets like Nayapay and Sadapay) and you must call them to activate international transactions before starting.
Step-by-Step Implementation Guide
We will use the Meta Cloud API route. This is the direct method hosted by Meta, which avoids the monthly platform fees charged by third-party Business Solution Providers (BSPs).
Step 1: Create a Meta Developer Account
Go to the Meta for Developers portal and log in with your personal Facebook account. Do not use a brand new Facebook account created yesterday; Meta's automated systems often flag new accounts attempting developer registrations as spam. Use an established profile.
Click on My Apps in the top right corner, then click Create App. Select Other as your use case, click next, and choose Business as your app type. Give your app a name and link it to your existing Meta Business Portfolio.
Step 2: Add WhatsApp to Your App
Once your app is created, you will see a dashboard with various Meta products. Scroll down to find WhatsApp and click Set up. Meta will ask you to select or create a Meta Business Portfolio. Select the one that matches your NTN registration.
As soon as you complete this, Meta assigns you a temporary access token and a test phone number. This setup allows you to test sending messages to your own phone before adding your real corporate number.
Step 3: Register Your Pakistani Phone Number
Scroll down the WhatsApp setup page to the step labeled "Step 5: Add a phone number". Click Add phone number. Fill in your business profile display name, your category, and your website URL.
Next, enter your phone number starting with the country code (+92). Do not include the leading zero of your local mobile or landline number. For example, if your mobile number is 0300-1234567, enter it as 923001234567.
Select your verification method: SMS or Voice Call. Click Next.
Step 4: The OTP Verification Struggle
This is where many Pakistani setups fail. Telecom operators in Pakistan (Jazz, Zong, Telenor, Ufone) often block international automated SMS messages. If the SMS does not arrive within two minutes, do not keep spamming the resend button. If you click it too many times, Meta will lock the number for 24 hours with an error message saying "Too many attempts".
Instead, wait for the countdown timer to finish and select the Voice Call option. Meta's automated system will call your phone and read the six-digit code aloud. Enter this code to complete the verification.
How to Confirm Your Setup Works
Once your number is registered, you must verify that your API credentials can actually push a message to a real phone. Meta provides a pre-approved template called hello_world for this test.
Open your computer's terminal (or Command Prompt on Windows) and copy the curl command provided in your Meta developer dashboard. It will look like this:
curl -X POST "https://graph.facebook.com/v18.0/YOUR_PHONE_NUMBER_ID/messages" -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{"messaging_product": "whatsapp", "to": "923001234567", "type": "template", "template": {"name": "hello_world", "language": {"code": "en_US"}}}'
Replace YOUR_PHONE_NUMBER_ID and YOUR_ACCESS_TOKEN with the values displayed on your developer dashboard. Replace the phone number in the "to" field with your personal mobile number, formatted with the country code.
Press Enter. If successful, your terminal will return a JSON response containing a message ID and your phone will receive a text message containing the "Hello World" template. The response should look like this:
{ "messaging_product": "whatsapp", "contacts": [ { "input": "923001234567", "wa_id": "923001234567" } ], "messages": [ { "id": "wamid.HBgLOTIzMDAxMjM0NTY3FQIAERg2REUzRj..." } ] }
If you see this response, your core API configuration is live and correct.
What to Do When the Setup Fails
Setting up APIs in Pakistan comes with specific local roadblocks. Here is how to solve the three most common failures.
1. Meta Declines Your Business Verification Documents
If Meta cannot verify your business, your WhatsApp account will be restricted to a limited number of daily conversations. The most common reason for rejection in Pakistan is a mismatch between your NTN and your utility bill.
If your NTN lists your home address but your PTCL bill lists your office address, Meta will reject it. You must upload a document where the name and physical address match your Meta Business Portfolio details exactly. If you do not have a matching utility bill, use a stamped bank statement from a commercial bank that shows your exact business name and registered address.
2. The "Payment Method Declined" Error
Meta requires a valid card on file to cover message costs beyond the free tier. If your card is rejected, the API will stop working.
Pakistani banks frequently block Meta transactions because they classify them as international commercial remittances. If you use a standard consumer debit card, the transaction will fail. You must call your bank's helpline and explicitly ask them to "enable international e-commerce transactions" on your card. Alternatively, use a corporate credit card or a verified digital wallet card from Nayapay or Sadapay, which tend to have higher success rates with Meta billing systems.
3. The "Number is Registered to an Existing Account" Error
If you get an error stating that your number is already in use, you cannot proceed. This happens because the number is still active on a physical phone using the standard WhatsApp application.
To fix this, open WhatsApp on your phone, go to Settings > Account > Delete my account. Confirm the deletion. Wait five minutes, then try the Meta registration process again. Simply deleting the app from your phone does not release the number from Meta's registration servers.
Understanding the Real Cost of Messaging
The WhatsApp API is not free. While Meta does not charge a monthly subscription fee for using the Cloud API directly, they charge you per 24-hour conversation window. A conversation begins the moment you deliver a message to a user.
Meta divides these conversations into four distinct pricing categories:
| Category | Initiated By | Typical Use Case |
|---|---|---|
| Marketing | Business | Promotions, offers, product announcements |
| Utility | Business | Order confirmations, shipping updates, monthly bills |
| Authentication | Business | One-time passwords (OTPs), login verifications |
| Service | User | Customer support queries, general questions |
Marketing conversations are the most expensive, while Service conversations are the cheapest. Meta provides 1,000 free Service conversations per month per business account. Any marketing, utility, or authentication messages you send are charged from the first message. You can find the exact current rates for Pakistani country codes on Meta's official WhatsApp pricing page.
Building Your Tech Stack After Setup
Once your API is working and you have successfully sent a test message, you will realize a major limitation: the API has no visual interface. It is just a channel. You do not have an app to read incoming customer replies or type back to them.
You now have two paths forward to make this usable for your business.
Option A: Build a Custom Integration
If you have an in-house software development team, they can write code to handle messages. They will need to set up a webhook server to listen for incoming messages from Meta. When a customer sends a message, Meta sends a JSON payload to your webhook. Your developers must write code to parse this JSON, display it in a custom-built dashboard, and send replies back using HTTPS POST requests to the Meta API.
Option B: Connect to a Shared Team Inbox
If you do not have a development team or do not want to spend months building a custom chat interface, you can connect your API credentials to a pre-built platform. This is where we can help you at WA Link. We provide a shared team inbox designed specifically for managing WhatsApp API numbers. Your support and sales agents can log in, view incoming chats, assign conversations to specific team members, and send replies using your approved templates.
However, you should know our limits: WA Link is a communication and routing interface. If you require deep, bespoke integrations with complex legacy ERP systems like SAP or localized inventory databases, you will still need a developer to write custom middleware to connect those systems to the API.
Frequently Asked Questions
Do I need to keep a phone switched on with a SIM card inside it to run the API?
No. Once the verification process is complete, the WhatsApp API runs entirely on Meta's cloud servers. You do not need a physical phone, an active internet connection on a mobile device, or even a running SIM card to send and receive messages. The only time you need the SIM card active is to receive the initial verification call or SMS during setup.
Can I use my existing WhatsApp Business app number for the API?
Yes, but you must delete your existing WhatsApp account first. You cannot use the same phone number on both the standard mobile app and the API simultaneously. If you migrate to the API, you will lose your existing chat history on your phone, so back up any critical customer data before deleting the mobile account.
How long does the business verification process take for Pakistani companies?
If your documents are clear and match your business details exactly, Meta's automated system can verify your business within 10 minutes. However, if your documents require manual review by Meta's team, it typically takes between 2 to 5 business days. Ensure your uploaded scans are high-resolution and clearly show your business name, address, and tax registration number.
Can I send bulk messages to cold contacts using the API?
We do not recommend this. While the API allows you to send broadcast messages using approved marketing templates, Meta monitors your quality rating closely. If you import a list of cold contacts and start messaging them, many will click the "Block" or "Report" button. If your quality rating drops below a certain threshold, Meta will automatically restrict your messaging limits or suspend your phone number entirely.