Integration · All integrations
Send invoices on WhatsApp from your ERP or billing software
Your customers read WhatsApp, not email. With VartaAPI's REST API, your ERP or billing software can send each invoice as a PDF on WhatsApp the moment it is raised, then check that it was delivered and read. Two requests: upload the file, send the template.
Plan: Orbit and above (the REST API) · Updated 7 October 2026
Two requests per invoice
First upload the PDF. Send the file's bytes as they are, with its content type; no base64 and no form fields, so even old desktop software that can only post a file can do it. The answer is a media ID that stays valid for 30 days.
curl -X POST "https://api.vartaapi.com/v1/media?filename=INV-1042.pdf" \ -H "Authorization: Bearer vk_live_…" \ -H "Content-Type: application/pdf" \ --data-binary @INV-1042.pdf
Then send an approved template with a document header, using that media ID. The body blanks are filled in order: customer name, invoice number, amount, due date or whatever your template asks for.
The send
curl -X POST https://api.vartaapi.com/v1/messages \
-H "Authorization: Bearer vk_live_…" \
-H "Content-Type: application/json" \
-d '{"to":"919876543210",
"template":{"name":"invoice_share","language":"en",
"headerFormat":"DOCUMENT","headerMediaId":"<id from the upload>",
"headerFilename":"INV-1042.pdf",
"bodyParams":["Ramesh","INV-1042","₹12,980"]}}'The answer carries the message ID. Ask GET /v1/messages/{id} later and you get sent, delivered, read or failed, with the times. Every message your software sends also appears in the shared inbox, so when the customer replies "received, thanks" or "please send the ledger", your team sees the invoice above it and answers.
What else the API does
- Free-form text, images, videos and documents inside the 24-hour window after a customer writes
- Authentication templates with a one-time code and its Copy code button
- Add or update a contact and their opt-in, and list your contacts
- List your approved templates, so your software offers only ones Meta has approved
- Refuse to send to someone who has opted out (a setting you switch on), with a clear reason your software can show
- Check a key with GET /v1/ping before you go live
Keys are made and revoked by you in the app, shown once and stored hashed. Send them as a Bearer token or an x-api-key header. Sending is limited to 60 messages a minute per key and everything else to 600 requests a minute. The full list of endpoints, with examples, is in the app under API & webhooks, and the developer page has the overview.
Already in use
Vertex ERP, the accounting software from the team behind VartaAPI, sends its invoices this way: a business pastes a VartaAPI key into the software's sending setup, and each invoice goes to the customer's WhatsApp as a PDF. Any ERP, Tally add-on, school or clinic system can do the same.
What it costs
An invoice is a utility message. Meta charges ₹0.115 per utility message in India and bills you directly; VartaAPI adds nothing per message. The REST API is on Orbit (₹2,499 a month plus GST) and Nova. If you would rather not write code at all, a webhook can start a flow from the Comet plan.
Questions
Quick answers.
Can my software send the invoice PDF, not just a link?
Does it work with Tally?
What happens if my software sends the same invoice twice?
Will the message come from our own number?
How many invoices can we send a day?
Read next: Webhooks: start WhatsApp messages from any software · The developer page · Guide: WhatsApp API errors explained
Try it on your own number.
Start on the free plan, connect your WhatsApp number, and upgrade when you need it.