Meta now charges per message, not per conversation — and those charges never pass through us. See what that means 
VartaAPI

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

  1. Free-form text, images, videos and documents inside the 24-hour window after a customer writes
  2. Authentication templates with a one-time code and its Copy code button
  3. Add or update a contact and their opt-in, and list your contacts
  4. List your approved templates, so your software offers only ones Meta has approved
  5. Refuse to send to someone who has opted out (a setting you switch on), with a clear reason your software can show
  6. 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?
Yes. Upload the file with POST /v1/media and send a template with a document header. The customer receives the PDF itself in WhatsApp.
Does it work with Tally?
Through a Tally add-on, or any program that can make an HTTPS request: it uses the API the same way any ERP does.
What happens if my software sends the same invoice twice?
The customer would get it twice: the send endpoint has no duplicate check. Record in your software that an invoice was sent, and check that before sending.
Will the message come from our own number?
Yes. You connect your own WhatsApp number to VartaAPI through Meta, with your business name and logo, and every API message goes from it.
How many invoices can we send a day?
The API takes up to 60 sends a minute per key. Meta separately sets how many people your number can message in a day; it starts low and rises as your quality stays good and your business is verified.

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.