If you run a business in India or Pakistan, you already know that email invoices get ignored. Your customers do not check their inboxes, but they do check WhatsApp within minutes.
Automating your invoices on WhatsApp sounds simple. However, if you try to do it by running a python script that controls WhatsApp Web or by using an unofficial Android gateway, Meta will block your number. To send automated invoices safely, you must use the official WhatsApp Cloud API.
Here is exactly how the system works, what it costs, and how to set it up without getting your business number banned.
The Real Cost of Sending Automated Invoices
Meta does not let businesses send automated messages for free. Every message sent from the API is charged based on "conversations." A conversation is a 24-hour window that starts the moment your message is delivered.
Because invoices are transactional, Meta classifies them as
Utility Conversations.
The rates depend on the country code of the recipient's phone number. Here is what you can expect to pay per 24-hour utility conversation:
| Recipient Country | Approximate Meta Cost Per Utility Conversation | Billing Currency |
|---|
| India (+91) | INR 0.1129 | INR |
| Pakistan (+92) | USD 0.0160 | USD |
If you send an invoice to a customer in Karachi, and they reply, any further messages you send within 24 hours are covered under that single charge. If you message them again 48 hours later with a payment reminder, that counts as a new conversation and costs another fee.
You must also know that Meta's 1,000 free conversations per month tier
no longer applies to Utility templates. It only applies to Service (user-initiated) conversations. If you send even one automated invoice to a customer who has not messaged you first, you will be billed for it.
The Strict Rules for WhatsApp Invoice Templates
You cannot write a free-form message to send an invoice. Meta requires you to submit a "Message Template" for approval before you can send it to customers.
If your template contains marketing language, Meta will classify it as "Marketing" and charge you a higher rate. To keep it classified as "Utility," your template must only contain transactional data.
Here is what a standard approved utility template looks like:
"Dear {{1}}, your invoice for order {{2}} is ready. The total amount due is {{3}} by {{4}}. You can download your PDF invoice below."
The double curly brackets represent variables that your software will replace dynamically for each customer.
The PDF Attachment Requirement
To send the actual invoice file, your template must have a
Document Header.
When you trigger the API, you do not upload a PDF file directly from your computer. Instead, you must host the PDF on a secure, public server and send Meta the direct URL to that PDF. Meta’s servers will download the file from your link and deliver it as a native PDF inside the customer's WhatsApp chat.
If your server has a firewall that blocks Meta's IP addresses, or if your URL requires a login session, the message will fail. The PDF must be publicly accessible via the link, even if the link is a long, unguessable hash for security.
How to Set Up the Automation
To connect your billing software (like Tally, Zoho Books, or a custom ERP) to WhatsApp, you need to go through a few technical steps.
Step 1: Set Up Your Meta Developer Account
Go to the Meta for Developers portal and create an app. Select "Business" as the app type and link it to your Meta Business Portfolio.
If you do not want to go through the verification process immediately, you can start sending messages in developer mode. Read about
using WhatsApp API without business verification to understand the temporary limits of this approach.
Step 2: Register Your Phone Number
You must add a phone number to your WhatsApp Business API setup.
This number cannot be active on a normal WhatsApp or WhatsApp Business app on your phone. If the number is currently active on your phone, you must delete the account from the mobile app first. Once registered on the API, all incoming and outgoing messages are managed via API calls, not a physical phone.
Step 3: Submit Your Invoice Template for Approval
Go to your WhatsApp Manager, navigate to Message Templates, and create a new template.
- Category: Utility
- Name: invoice_delivery
- Language: English (or your preferred local language)
- Header: Media (Select "Document")
- Body: Add your text with variables.
Meta usually approves utility templates within two to ten minutes.
Step 4: Write the Integration Code
Once approved, your developer can trigger the API whenever an invoice is generated in your system. Here is a standard JSON payload that your system must POST to the Meta API endpoint:
POST /v20.0/YOUR_PHONE_NUMBER_ID/messages HTTP/1.1
Host: graph.facebook.com
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "923001234567",
"type": "template",
"template": {
"name": "invoice_delivery",
"language": {
"code": "en"
},
"components": [
{
"type": "header",
"parameters": [
{
"type": "document",
"document": {
"link": "https://yourdomain.com/invoices/inv-9872.pdf",
"filename": "Invoice-9872.pdf"
}
}
]
},
{
"type": "body",
"parameters": [
{ "type": "text", "text": "Zahid Khan" },
{ "type": "text", "text": "INV-2024-089" },
{ "type": "text", "text": "PKR 18,450" },
{ "type": "text", "text": "15th October 2024" }
]
}
]
}
}
For a deeper dive into making your first API call, you can follow this
step-by-step developer's guide to sending WhatsApp messages.
When Automated WhatsApp Invoices are a Bad Idea
This setup is not right for every business. Before you spend time and money building this, consider these situations where it fails:
1. Low Volume Businesses
If you send fewer than 50 invoices a month, do not build this. The developer hours required to configure the API, handle webhooks, and maintain the server will cost more than the time saved. Just use WhatsApp Web and send the PDFs manually.
2. Poor Mobile Internet Areas
If your customers are in rural areas with poor 3G or 2G connections, sending large PDF invoices will frustrate them. The download will fail repeatedly. If your PDF is larger than 2MB, compress it first. Better yet, send a simple text invoice with a payment link instead of a heavy document.
3. No Opt-In Management
If you send invoices to people who did not explicitly agree to receive messages on WhatsApp, they will report your message as spam. When Meta sees a high spam-to-delivery ratio, they will block your number instantly. To protect your business, read about
why Meta bans WhatsApp business numbers and how to fix it.
How WA Link Helps (And What It Cannot Do)
At WA Link, we provide tools to help businesses in Pakistan and India manage their WhatsApp APIs. We help you set up your API credentials, manage your approved templates, and route conversations to your team when customers reply to their invoices.
However, we do not generate your invoices. Your accounting software, ERP, or custom database must still create the PDF and generate the public URL. We act as the bridge that safely delivers that data to Meta's infrastructure without your developers having to write complex middleware from scratch.
Common Questions About WhatsApp Invoicing
Can I send invoices using my personal WhatsApp number?
No. You cannot use personal numbers for automated API integrations. If you use automated scripts on a personal account, Meta's automated detection systems will flag and ban your SIM card within hours.
What happens if a customer replies to an invoice message?
Since the invoice is sent from an API, the reply will not go to your phone. It goes to a webhook. You must configure a chat tool or use a platform like WA Link to view and reply to these incoming messages, or they will be lost.
How do I handle tax requirements (like GST or FBR)?
The PDF you send via WhatsApp must be the official invoice that complies with your local tax laws (like the Federal Board of Revenue in Pakistan or the GST Council in India). The WhatsApp message itself is just a delivery vehicle; the tax compliance lies entirely within the PDF document you generate.
What is the maximum file size for a PDF invoice?
While Meta technically allows document sizes up to 100MB, you should never exceed 2MB for an invoice. Mobile users on limited data plans will block your number if you force them to download huge files.