Integration · All integrations
Webhook to WhatsApp: start a message from any software
If a piece of software can send a webhook, it can send a WhatsApp message through VartaAPI. Your flow gets a private address; whenever your billing software, website form, Zapier, Pabbly Connect or n8n posts a JSON message to it, the flow runs and the customer gets a WhatsApp message with the details filled in.
Plan: Comet and above (it is a chatbot flow) · Updated 7 October 2026
How it works
- Make a flow and choose the trigger "another system sends us something (Webhook)".
- Add the steps: usually a Send template step, because the customer has probably not written to you in the last 24 hours.
- Save it and copy the webhook address, https://api.vartaapi.com/hooks/ followed by a private code. The code is the only key, so treat the address like a password.
- Tell your other software to POST to that address whenever something happens: an invoice raised, an order shipped, an appointment booked.
What to send
Any JSON object up to 100 KB, in whatever shape your software already produces. There is no fixed format. The one thing VartaAPI needs is the customer's mobile number with its country code. It looks for a field called phone, mobile, contact or whatsapp, at the top or inside customer; or you tell the trigger exactly where it is.
{ "customer": { "name": "Ramesh Kumar", "phone": "919876543210" },
"invoice": { "number": "INV-1042", "total": 12980,
"pdf_url": "https://yourserver.in/inv/INV-1042.pdf" } }Every field becomes a blank you can use in the message by its path: {{customer.name}}, {{invoice.number}}, {{invoice.total}}. A template with a document header can take the file from a link in the data, such as {{invoice.pdf_url}}, so the customer gets the invoice PDF itself on WhatsApp. If the data holds a list, a "Repeat for each" step can send a message for each item, up to 20.
You do not have to guess the paths. The flow keeps a list of the last 20 calls; open one, click a field, and its {{path}} is copied for you.
Works with the tools you already use
Anything that can make an HTTP POST with JSON can start a flow: your own billing or ERP software, a website form handler, a WordPress or Shopify webhook, Zapier (with its Webhooks step), Pabbly Connect, Make, or n8n's HTTP Request node. You don't need a VartaAPI app inside those tools; the address is the connection.
For Razorpay there is a ready-made choice that also checks Razorpay's signature and stops duplicates: see Razorpay to WhatsApp.
What comes back
Your software gets an answer it can act on:
- 200 with sentTo: the flow ran for that number.
- 422 with a reason it can fix: no_number (no phone field found), bad_number (too short or no country code), not_connected (no WhatsApp number connected yet) or empty_flow.
- 404: wrong address, or the flow is switched off.
- 429: more than 60 calls a minute to one address. Wait and send again.
- 500: our side failed. Safe to try again a little later.
A 422 or 404 will not fix itself, so don't retry it. And keep your own note of what you have sent: the address does not check for repeats, so if your software can fire twice for one invoice, it should check before sending.
Questions
Quick answers.
Do I need an API key for a webhook?
Can I send the invoice PDF itself?
Is there a Zapier or n8n app for VartaAPI?
What is the difference between this and the REST API?
How fast is it?
Read next: Send invoices from your ERP with the REST API · Razorpay to WhatsApp · The flow builder
Try it on your own number.
Start on the free plan, connect your WhatsApp number, and upgrade when you need it.