Limited this week15-min demo = Rs 500 voucher + 200 credits Book demo
All articles
Integrations

ERPNext WhatsApp Integration 2026: Invoices & Order Alerts

Connect ERPNext to WhatsApp via frappe_whatsapp or a signed Webhook to a BSP. Invoice PDFs, order alerts, templates, INR costs and a setup checklist.

RichAutomate Editorial
11 min read 1 view
ERPNext WhatsApp Integration 2026: Invoices & Order Alerts

To set up an ERPNext WhatsApp integration, either install the open-source frappe_whatsapp app and connect it directly to Meta's WhatsApp Cloud API, or create an ERPNext Webhook that posts each submitted Sales Invoice, Payment Entry or Delivery Note to a WhatsApp Business API platform, which sends an approved template. The first route suits teams with a Frappe developer who will own the Meta app. The second suits businesses that want templates, a shared inbox and delivery tracking handled outside ERPNext.

ERPNext is popular with Indian manufacturers, distributors and service companies because it is open source, handles GST invoicing and runs on Frappe Cloud or your own server. Customers in India, though, read WhatsApp far more reliably than email. So the request every ERPNext partner hears sooner or later is: when we submit an invoice, can the customer get it on WhatsApp automatically?

This guide covers what ERPNext and the Frappe framework already provide, the three realistic routes, a working Webhook JSON body, how to verify the webhook signature, which documents to automate first, template and opt-in rules, Frappe Cloud versus self-hosted differences and a monthly cost example in INR. Everything about Frappe here comes from docs.frappe.io, the Frappe Cloud marketplace and the frappe_whatsapp repository as checked in November 2026. Field names and menu labels can vary between versions, so confirm them on your own instance.

What ERPNext already gives you for WhatsApp

Three building blocks in the Frappe framework matter for WhatsApp work.

  • Notification doctype. Frappe's Notification lets you send alerts on events such as New, Save/Submit/Cancel, Days Before, Days After, Value Change and Method, with optional conditions like doc.status == "Unpaid" and a Jinja message using {{ doc.field_name }}. Its channels include Email, Slack, System Notification, SMS and WhatsApp, but the docs say the WhatsApp channel needs separate setup with Twilio numbers. It is not a direct link to Meta's Cloud API.
  • Webhook doctype. Under Integrations, a Webhook fires on a chosen doctype and doc event, such as on_submit for a Sales Invoice. It can be limited by a condition and posts to any request URL, either as form fields or as a JSON body you write in Jinja. A webhook request log is created for each successful request.
  • Server Scripts. Document Event scripts can run After Submit, After Save and similar triggers. The Script API lists frappe.make_post_request, so a script can call an external API. From version 15, Server Scripts are disabled by default and have to be enabled with bench --site yoursite set-config server_script_enabled true.

None of these sends a WhatsApp Business API template on its own. You need either an app that talks to Meta or an external platform that receives ERPNext's data and does the sending.

Three routes compared

RouteHow it worksEffortBest forMain limits
Manual wa.me linkA custom button or print link opens WhatsApp with a prefilled message to the customer's numberVery lowA few invoices a day from one deskA person sends each one, no templates, no delivery status, no automation
frappe_whatsapp, direct to Cloud APIAn app inside ERPNext stores your Meta credentials and sends templates on doc eventsMedium, needs a Frappe developerTeams that want everything inside ERPNextYou own the Meta app, token, webhook and upgrades. Support comes from the community
ERPNext Webhook to a BSPERPNext posts JSON on submit, and the WhatsApp platform maps it to an approved template and sends itLow to mediumBusinesses that want a team inbox, campaigns and reporting outside ERPNextA small receiver or flow is needed to map fields. Platform fee per message

Many companies start with the webhook route because it keeps WhatsApp operations, replies from customers and template management away from the ERP. Teams with in-house Frappe skills often prefer frappe_whatsapp. Both use the same Meta templates and the same Meta pricing.

Route A: the frappe_whatsapp app

frappe_whatsapp is an MIT-licensed app by Shridhar Patil, listed free on the Frappe Cloud marketplace for versions 14, 15 and 16. It connects to Meta's WhatsApp Cloud API with no third-party provider in between. According to its README, it can:

  • create WhatsApp templates, submit them for Meta approval and sync existing ones from Meta;
  • send notifications on doctype events such as Submit, Save or Cancel, on a schedule or relative to a date field;
  • map template parameters to document fields, add Python conditions and attach print PDFs;
  • log incoming messages as WhatsApp Message documents through its own webhook;
  • send bulk, interactive button and list messages, with multi-account support.

Setup is bench get-app and install-app on self-hosted benches, or an install from the marketplace on Frappe Cloud. You then fill the WhatsApp Account doctype with your access token, phone number ID, business account ID, app ID and a webhook verify token, and point your Meta app's webhook at /api/method/frappe_whatsapp.utils.webhook.webhook on your site.

The trade-offs are operational rather than technical. You create and maintain the Meta developer app, a long-lived system-user token, the webhook subscription and the app upgrades across ERPNext releases. Free-form messages only work inside the 24-hour customer service window, which is a Meta rule, so everything business-initiated must be a template. A chat screen for staff comes from a separate add-on, WhatsApp Chat, which requires frappe_whatsapp.

Route B: ERPNext Webhook to a WhatsApp platform

Here ERPNext only announces what happened, and the WhatsApp platform does the sending. Create a Webhook for the Sales Invoice doctype, choose the on_submit doc event, set a condition such as doc.contact_mobile so invoices without a number are skipped, choose the JSON request structure and add your request URL. A minimal JSON body:

{
  "event": "sales_invoice_submitted",
  "invoice": "{{ doc.name }}",
  "customer": "{{ doc.customer_name }}",
  "mobile": "{{ doc.contact_mobile }}",
  "posting_date": "{{ doc.posting_date }}",
  "due_date": "{{ doc.due_date }}",
  "grand_total": "{{ doc.grand_total }}",
  "currency": "{{ doc.currency }}"
}

Set a Webhook Secret too. Frappe then adds an X-Frappe-Webhook-Signature header, a base64-encoded HMAC-SHA256 of the payload made with your secret. Your receiver should reject any request whose signature does not match. A minimal Node.js receiver:

const crypto = require("crypto");

function isFromErpnext(rawBody, header, secret) {
  const expected = crypto.createHmac("sha256", secret).update(rawBody).digest("base64");
  const a = Buffer.from(expected);
  const b = Buffer.from(header || "");
  return a.length === b.length && crypto.timingSafeEqual(a, b);
}

// POST /erpnext/invoice  (read the raw body before JSON parsing)
// 1. if (!isFromErpnext(raw, req.headers["x-frappe-webhook-signature"], SECRET)) return 401
// 2. data = JSON.parse(raw); normalise data.mobile to 91XXXXXXXXXX
// 3. check the customer has WhatsApp opt-in on record
// 4. send the approved "invoice_issued" utility template with
//    {{1}} = data.customer, {{2}} = data.invoice, {{3}} = data.grand_total
// 5. return 200 quickly; retry sends from your own queue

On RichAutomate, steps 3 and 4 run through the developer API or a no-code flow in Make, Zapier or n8n, and delivery and read statuses come back for every message. RichAutomate does not ship a native ERPNext app; ERPNext's own Webhook doctype is the connector. For the receiving side in more depth, see our WhatsApp Business API webhook setup guide.

Free 2026 comparison

Get the India 2026 WhatsApp BSP price comparison

Wati vs AiSensy vs Interakt vs RichAutomate: Meta rates, platform fees and hidden costs, side by side. We send it to your WhatsApp in a minute.

By submitting, you agree RichAutomate may contact you on WhatsApp about this enquiry, per our DPDP-compliant privacy policy. No spam.

DPDP-compliant · India-hosted · 1-min reply
Rather try it yourself? Start free

If your build team prefers code over configuration, a Document Event Server Script on After Submit can call frappe.make_post_request with the same payload. A Webhook is usually easier to audit, because anyone with access can see the URL, condition and body in one form.

Want to test the webhook route on real templates? Start a 14-day RichAutomate trial, submit an invoice template and point a test ERPNext Webhook at it before you touch production.

Which ERPNext events to automate first

Start with the documents that bring cash in or stop "has it been dispatched?" calls. Each needs a Meta template in the right category, because category decides approval and price.

ERPNext triggerWhatsApp templateKey variablesCategory
Sales Invoice, on_submitInvoice issued, with PDF headercustomer_name, name, grand_total, due_dateUtility
Payment Entry, on_submitPayment received, thank youparty_name, paid_amount, reference numberUtility
Sales Order, on_submitOrder confirmedcustomer_name, name, delivery_dateUtility
Delivery Note, on_submitDispatched, with transporter and LR no.name, transporter_name, lr_noUtility
Overdue invoice, scheduled (Days After due_date, or a daily script)Payment remindername, outstanding_amount, days overdue, payment linkUtility
Manual list from ERPNext customer dataFestive scheme or new price listcustomer_name, offerMarketing

For overdue reminders, the webhook route needs a scheduled trigger, because a Webhook only fires on document events. A daily Scheduler script, a frappe_whatsapp date-relative notification or a nightly report export can all supply the list of unpaid invoices. Keep reminders factual about one specific bill: an amount, an invoice number and a UPI or payment link. Wording that pushes offers turns a utility template into a marketing one.

Sending the GST invoice PDF safely

Customers want the actual tax invoice, not just an amount. ERPNext renders PDFs from a Print Format, and a whitelisted method, frappe.utils.print_format.download_pdf, returns the PDF for a given doctype, document name and print format. It checks print permission, so call it with an API key and secret for a restricted integration user, never by making invoices public.

On the webhook route, the receiver fetches the PDF with that integration user's token, uploads it as the template's document header and sends it, so the customer gets the file without any login. On the frappe_whatsapp route, the app's attach-print option does this inside ERPNext. Either way, use your GST-compliant Print Format with GSTIN, HSN or SAC codes and the e-invoice IRN and QR code where your turnover requires e-invoicing. Our guide to GST invoice automation on WhatsApp covers the invoice-side rules in more detail.

Templates, opt-in and category rules

  • Collect opt-in first. Add a WhatsApp consent checkbox and date to the Customer or Contact doctype with a custom field, and set your Webhook condition to require it. Consent can come from the order form, onboarding or a customer messaging your business number.
  • Clean mobile numbers. ERPNext stores numbers on Contacts and Addresses in whatever format staff typed. Normalise to 91 plus ten digits before sending, and fix contacts with landlines or two numbers in one field.
  • Pick the right category. Invoice, receipt, order, dispatch and reminder messages are utility. Promotions are marketing. Meta can recategorise a template it thinks is mislabelled, which changes the price.
  • Watch quality. Blocks and reports lower your number's quality rating and can cap how many customers you can reach in a day. Never upload bought lists, and include a simple way to stop messages.
  • Verify the business. Going live on the WhatsApp Business API in India needs Meta business verification, typically with GST or MSME/Udyam registration. You can build and test templates during a trial before that.

No provider can promise a number will never be restricted. Consent, honest templates and a weekly look at quality are what protect it.

Frappe Cloud vs self-hosted ERPNext

The route you pick partly depends on where ERPNext runs.

  • Frappe Cloud. frappe_whatsapp can be installed from the marketplace. The Webhook doctype is part of the core framework, so the BSP route depends least on what your plan allows. Server Scripts are off by default from version 15 on shared benches, so check with Frappe Cloud whether your plan lets you enable them before you design around them.
  • Self-hosted. You can install any app with bench and enable Server Scripts yourself, but you also own SSL, backups, background workers and upgrades. Make sure your site URL is publicly reachable over HTTPS if you use frappe_whatsapp, because Meta must reach its webhook.
  • Partner-managed. If an ERPNext partner hosts and customises your instance, agree who owns the Meta app, the template list and the webhook secret before go-live.

Using more than one system? The same event-to-template logic appears in our Tally WhatsApp integration guide and our Odoo WhatsApp integration guide.

What it costs each month in India

Meta charges per delivered template message. Its approximate 2026 India rates, excluding GST, are ₹0.86 per marketing message, ₹0.115 per utility message and ₹0.115 per authentication message. On frappe_whatsapp, Meta's charges are your only per-message cost, but you carry the build and maintenance. On RichAutomate's Client Pay model you pay a ₹0.10 platform fee per message, and Meta bills its own charges directly to your business account.

A hypothetical Pune engineering-goods distributor on ERPNext, sending every document event above for a month:

MessageVolumeMeta chargePlatform feeMonthly total
Sales Invoice PDFs (utility)800₹92₹80₹172
Sales Order confirmations (utility)400₹46₹40₹86
Delivery Note dispatch alerts (utility)300₹34.50₹30₹64.50
Payment Entry receipts (utility)300₹34.50₹30₹64.50
Overdue reminders (utility)250₹28.75₹25₹53.75
Festive scheme broadcast (marketing)500₹430₹50₹480
Total2,550₹665.75₹255₹920.75

Without the broadcast, the transactional workflow alone is 2,050 messages and about ₹441 a month. Meta's figures exclude 18% GST. Monthly plans are optional: Starter is ₹499, Pro ₹899 and White-label ₹1,199 a month, with ₹0 setup. Model your own volumes with the WhatsApp API cost calculator or compare plans on the RichAutomate pricing page.

Rollout checklist

  1. Clean contacts. Export Customers and Contacts, normalise mobile numbers and add a WhatsApp opt-in field.
  2. Choose a number. Use a number not active on the regular WhatsApp app, or plan a migration.
  3. Verify the business. Connect the number to Meta and complete verification with GST or Udyam details.
  4. Submit three templates. Invoice with PDF header, payment reminder and dispatch alert, all factual utility wording.
  5. Pick the route. frappe_whatsapp if a Frappe developer will own it, or a Webhook with a secret pointed at your WhatsApp platform.
  6. Test on a copy. Submit test invoices on a staging site and check names, amounts and PDFs against ERPNext exactly.
  7. Go live in stages. Invoices first, then receipts and dispatch, then reminders. Check the Webhook Request Log and delivery reports after each step.
  8. Review monthly. Compare days-sales-outstanding and inbound calls before and after, and retire templates nobody reads.

Smaller teams on a mobile billing app can read our myBillBook send GST invoice on WhatsApp guide instead.

Evaluating SAP as well? Read our SAP Business One WhatsApp integration setup with INR cost math per document.

Which route should you pick?

If you have a Frappe developer on hand and want everything inside ERPNext, frappe_whatsapp is a capable, free starting point. If you would rather treat ERPNext as the system of record and let a WhatsApp platform handle templates, replies, campaigns and delivery tracking, an ERPNext Webhook with a signed JSON body is usually the route with the least build work. Either way, start with invoices, prove it on a few customers and then widen it.

Ready to connect ERPNext? Create your RichAutomate account, start the 14-day free trial and send your first invoice template from a test webhook.

What will this cost you?

Get a ₹ cost estimate for your WhatsApp volume

Tell us your monthly message volume on WhatsApp and get a line-item ₹ estimate: Meta charges, platform fee, GST. 1-minute reply from a real person.

By submitting, you agree RichAutomate may contact you on WhatsApp about this enquiry, per our DPDP-compliant privacy policy. No spam.

DPDP-compliant · India-hosted · 1-min reply
Rather try it yourself? Start free
Tagged
ERPNext WhatsApp integrationFrappe WhatsAppERPNext webhookWhatsApp invoiceWhatsApp Business APIGST invoiceIndia 2026
Written by
RichAutomate Editorial
Editorial team at RichAutomate. We build the WhatsApp Business automation platform Indian D2C brands, fintechs, and agencies use to ship campaigns and flows on the official Meta Cloud API.
FAQ

Frequently asked questions

Does ERPNext have a built-in WhatsApp integration?
Frappe's Notification doctype lists WhatsApp as a channel, but it needs a separate Twilio setup and is not a direct link to Meta's Cloud API. For approved templates and invoice PDFs, most teams use the frappe_whatsapp app or an ERPNext Webhook pointed at a WhatsApp Business API platform.
How do I send an ERPNext Sales Invoice on WhatsApp automatically?
Trigger on Sales Invoice submit. Either configure a frappe_whatsapp notification with attach-print enabled, or create a Webhook on the on_submit event that posts the invoice details as JSON to your WhatsApp platform, which fetches the PDF and sends an approved utility template.
What is frappe_whatsapp and is it free?
frappe_whatsapp is an MIT-licensed open-source app by Shridhar Patil that connects ERPNext directly to Meta's WhatsApp Cloud API. It is listed free on the Frappe Cloud marketplace, but you still pay Meta's per-message charges and maintain the Meta app, token and webhook yourself.
How do I verify that a webhook really came from ERPNext?
Set a Webhook Secret on the ERPNext Webhook. Frappe then sends an X-Frappe-Webhook-Signature header containing a base64-encoded HMAC-SHA256 of the payload, which your receiver recomputes with the same secret and compares before acting.
Are ERPNext invoice and payment reminder messages utility or marketing?
Invoice, payment receipt, order confirmation, dispatch and factual payment reminder templates are utility. Offers, schemes and price-list broadcasts are marketing and cost more, around ₹0.86 per message in India versus about ₹0.115 for utility, excluding GST.
How much does ERPNext WhatsApp automation cost per month?
On RichAutomate Client Pay you pay ₹0.10 per message plus Meta's own charges. A distributor sending about 2,050 utility messages a month for invoices, orders, dispatch, receipts and reminders pays roughly ₹441 in message costs, before GST on Meta's share.
RichAutomate · WhatsApp BSP for India 2026

Ship WhatsApp campaigns + flows on a transparent, compliance-ready BSP.

₹0 platform fee. DPDP audit log included. Visual flow builder. Multi-tenant from day one.

Start free trial
Want this for your brand?

Get a free 24-hour BSP audit

Send us your last invoice. We line-item it against Meta's published rates and benchmark against three alternatives.

Limited Spots Available

Get a Free
Automation Audit

Stop leaving revenue on the table. Get a custom roadmap to automate your growth.

Secure & Confidential