Finance & Accounting
Connect Tally and WhatsApp Business API
Overdue invoices from TallyPrime, chased on WhatsApp at the frequency each customer warrants.
- Connects
- Tally and WhatsApp Business API
- Data flows
- 4 automated, two-way where safe
- Built with
- TallyPrime, WhatsApp Business API, Retool
- Timeline
- Live in 3 to 5 business days from scope
- Owned by
- You. Accounts, credentials and code in your name.
In short
Connecting TallyPrime to WhatsApp Business API means outstanding invoices are read from Tally, overdue amounts worked out after part payments, and reminders sent on WhatsApp as an image or PDF. SBD built this for a home appliance distributor with thousands of customers on long credit cycles, plus a daily report for each salesperson.
The workflows
What runs between Tally and WhatsApp Business API.
Each line is one automated workflow. An event in one tool, the checks and mapping in between, the action in the other, and the person who hears about it.
-
Overdue worked out after part payments
WhenThe scheduled read of outstanding bills from TallyPrime
Automation- Verify and validate
- Map and normalise
- Upsert by key
ThenCalculate the overdue amount per bill after part payments, against each customer credit cycle
And- Audit log entry
- Alert if it fails or goes quiet
- Review queue if unsure
-
Colour-coded reminders by credit cycle
WhenA customer falls into the green, amber or red band
Automation- Verify and validate
- Map and normalise
- Upsert by key
ThenSend the reminder template as an image or multi-page PDF, daily, weekly or monthly by band
And- Audit log entry
- Alert if it fails or goes quiet
- Review queue if unsure
-
Daily incentive report per salesperson
WhenEach working day
Automation- Verify and validate
- Map and normalise
- Upsert by key
ThenSend each salesperson a report of what their customers owe and the incentive for collecting it
And- Audit log entry
- Alert if it fails or goes quiet
- Review queue if unsure
-
No reminders on stale balances
WhenTally has not answered since the last run
Automation- Verify and validate
- Map and normalise
- Upsert by key
ThenHold reminders and alert the admin instead of sending on old balances
And- Audit log entry
- Alert if it fails or goes quiet
- Review queue if unsure
Every record passes through the same stages
- 1Receive
Webhook or polling from the source tool, with a signed payload and a replay log.
- 2Validate
Required fields present, types right, record key found. Anything else goes to the review queue.
- 3Map
Fields translated to the destination schema. Enumerations, currencies and dates normalised.
- 4Upsert
Written against the record key, so a retry updates rather than duplicates.
- 5Confirm
Outcome logged. Alert if the count goes quiet. Reconciliation run nightly.
Read this first
Why the obvious route breaks.
A one-step Zap connects Tally and WhatsApp Business API in an afternoon. This is what goes wrong once real volume and real edge cases arrive.
Tally only answers while it is running
TallyPrime integrations work over XML sent by HTTP to a port such as 9000, and Tally documents two prerequisites: TallyPrime must be running on that port, and at least one company must be loaded. If the machine is off at reminder time, there is no fresh data, and reminders must wait rather than go out on yesterday’s balances.
Part payments change what is overdue
A bill can be part paid, and credit cycles of 60 or 90 days differ by customer. Reminding on the invoice total, or on the invoice date alone, chases money already received. The overdue amount has to be calculated per bill after allocations, against each customer’s terms.
Reminders are business-initiated, so templates rule
Outside the 24-hour window opened by a customer message, WhatsApp only allows approved template messages. Every reminder format, the image version and the PDF version, is a template submitted and approved before it can be sent.
Long statements need a document, not a message
A customer with many open bills does not fit in one text. WhatsApp accepts JPEG or PNG images up to 5 MB and PDF documents up to 100 MB, so short balances go as a colour-coded image and long ones as a multi-page PDF.
What it costs today
The gap, as the team feels it and as the engineer sees it.
In the team
- Two people read the ledgers every day to see who owes what
- Reminders are calls and messages written one at a time
- Customers on 60 and 90 day terms are tracked by hand
- Salespeople do not know which invoices to chase
- Part-paid bills get chased for the full amount
Under the hood
- TallyPrime must be running with the company loaded
- Part payments decide the real balance per bill
- Business-initiated sends need approved templates
- 5 MB image and 100 MB PDF limits on WhatsApp media
- Phone numbers in ledgers are rarely clean
What we wire up
The data flows.
- 01 When
The scheduled read of outstanding bills from TallyPrime
ThenCalculate the overdue amount per bill after part payments, against each customer credit cycle
- 02 When
A customer falls into the green, amber or red band
ThenSend the reminder template as an image or multi-page PDF, daily, weekly or monthly by band
- 03 When
Each working day
ThenSend each salesperson a report of what their customers owe and the incentive for collecting it
- 04 When
Tally has not answered since the last run
ThenHold reminders and alert the admin instead of sending on old balances
Used for
- Overdue worked out after part payments
- Colour-coded reminders by credit cycle
- Daily incentive report per salesperson
- No reminders on stale balances
- TallyPrime outstanding to WhatsApp
- Payment reminders on WhatsApp from Tally
- Receivables follow-up for distributors
- Customer statements as WhatsApp PDFs
- Credit terms and reminder frequency set by the admin
- Collections on long credit cycles
Built with
Data map
What becomes what, and what it is keyed on.
| In Tally | In WhatsApp Business API | Matched on | Direction |
|---|---|---|---|
| Outstanding bills and part payments | Reminder line with overdue amount | Ledger and bill reference | one-way |
| Party ledgers | Customer with phone, credit terms and salesperson | Ledger name | one-way |
| Overdue band | Image or PDF template send | Customer and run date | one-way |
| Message delivery status | Reminder log per customer | Message ID | one-way |
Field-level mapping is agreed in the blueprint and written into the runbook. Two-way rows carry loop protection so a write from the sync never re-triggers the sync.
In every build
What you get with the sync, whichever pair.
Under the hood
- Upserts keyed on the record
Every write is matched on the source ID. A retry or a re-fire updates the existing record instead of creating a second one.
- Retries with backoff
Rate limits and timeouts are retried with increasing delays, then parked for review, never dropped.
- Idempotent, loop-safe writes
Two-way flows carry a marker so a change written by the sync does not re-trigger the sync.
- Reconciliation
A nightly job compares counts and totals on both sides and lists any record that differs.
- Audit log
Every run records input, mapping result, action taken and who or what triggered it. Searchable by record.
- Error monitoring
Loud failures alert within minutes. Quiet ones are caught by an outcome count that alerts when it stops moving.
- Review queue
Records the sync is not sure about land in a screen a person can read, correct and release.
- Scoped credentials
One credential per connection, limited to the objects it needs, stored encrypted, in your account.
For the team
- Slack or email notifications
The alerts go to a named person, not a channel nobody reads. You choose Slack, email, WhatsApp or all three.
- A runbook
One document per integration: what it does, what each alert means, and what to do in the first ten minutes.
- Training
A live session with the people who will use the review queue, recorded for whoever joins later.
- Handover
Admin access, billing and code sit in accounts in your name from day one. If we leave, it keeps running.
- Sixty days of hypercare
The engineers who built it stay on call after go-live, fix what breaks and tune what the team asks for.
- A monthly report
Runs, records synced, exceptions handled, and what changed. Plain language, one page.
Security and your data
Where the data goes, and who holds the keys.
- Accounts
- Every platform account is created in your name. We work through managed access you can revoke.
- Credentials
- Stored encrypted in the orchestration layer. Scoped per connection. Rotated on handover.
- Data in transit
- TLS everywhere. Webhooks verified by signature before anything is processed.
- Data at rest
- Only what the sync needs. No copies of your customer data on our machines.
- AI steps
- Where an integration uses a model, it is through a business API that does not train on your data.
- Retention
- Run logs kept 90 days by default, adjustable. Payloads redacted of card and ID numbers.
- Agreements
- DPA and NDA on request. Regional rules covered in our privacy policy.
Keys and sensitive data
How API keys, tokens and personal data are handled.
- Keys live in a vault, never in code
API keys and tokens are stored in the orchestration layer's encrypted credential store or the platform's secret manager. None are written into workflows, repos, spreadsheets or chat.
- One credential per connection
Each integration gets its own key, scoped to the objects and actions it needs. A lead sync cannot read invoices. Revoking one key stops one thing.
- Service accounts, not personal logins
Connections use a dedicated service user in your account, so nothing breaks when a person leaves and nothing runs under someone's name.
- Two-factor on every account
Every platform account we set up has two-factor authentication on, with recovery codes handed to you, not kept by us.
- Rotation on handover and on request
Keys are rotated when the build is handed over, when anyone with access leaves, and at any time you ask.
- Secrets never reach the logs
Audit logs redact tokens, card numbers, government IDs and anything you flag as sensitive before a line is written.
- Webhooks verified before processing
Inbound calls are checked against the sending tool's signature. Unsigned or stale payloads are dropped and counted.
- Access you can see and revoke
Our access is through managed roles in your accounts. You can list it, limit it, and remove it in one click without touching the build.
Engineering decisions
Decided before the first workflow is written.
- Rate limits and backoff
Every API has a ceiling. Calls are batched, queued and retried with increasing delays so a busy hour does not become a failed one.
- Backfill and pagination
The first run has to load history, not just new events. Backfills page through the source in order, resume after interruption, and never double-write.
- Out-of-order and duplicate events
Webhooks arrive twice and out of sequence. Each event carries a version or timestamp, and older versions never overwrite newer state.
- Schema changes
A renamed field or a new dropdown value is the most common silent failure. Payloads are validated against a contract, and a mismatch stops the run and raises a flag.
- Time zones, currencies, units
Dates are stored in UTC and shown local. Money carries its currency. Quantities carry their unit. Conversions happen once, in the map step.
- Sandbox first
Builds run against sandbox or test accounts with seeded data before they touch production. Go-live is a switch, not a rewrite.
- Versioned and reversible
Workflows and code are version-controlled. A release can be rolled back in minutes without losing the records processed since.
- API deprecations watched
Tools retire API versions on a schedule. We track the dates for every connection in the runbook and upgrade before the cut-off.
- Cost per run known
Each workflow has a cost per execution, including any model calls, logged alongside the run. You see the bill before it arrives.
- Metrics, not just errors
Runs per hour, records in and out, exception rate and latency are charted. Trends show a problem before an alert does.
The offer
Hire SBD to connect Tally and WhatsApp Business API.
A fixed scope, agreed in a discovery call, and live in three to five business days. Accounts in your name. The engineers who built it on call for sixty days after.
- ScopeOne call to agree the flows, the fields and the owner. Written up the same day.
- Build4 workflows, the data map above, validation, upserts, retries and reconciliation.
- Go-liveSandbox first, then a switch. Day three to five from scope for most pairs; longer only if a tool needs approval, such as WhatsApp templates.
- HandoverRunbook, training session, alerts to a named owner, admin access and code in your accounts.
- AfterSixty days of hypercare, then a care plan or run it yourself.
Questions
What people ask about this pair.
Does TallyPrime need to be left on?
Yes, at the times it is read. Tally integrations need TallyPrime running on its configured port with the company loaded. We schedule the read for when the machine is on, keep the port reachable only from the integration, and stop reminders if a read is missed.
Who decides how often a customer is reminded?
Management, in the admin panel. In the distributor build, customers, credit terms and notification settings are edited by the admin, and reminder frequency is set by how overdue the account is, from daily to monthly.
Is a payment reminder a marketing message?
Meta defines utility templates as transactional or informational, and marketing templates as promotional. A reminder about a specific bill fits the utility definition, but Meta reviews the category, so we write the template to stay factual and free of offers.
Can this work with Zoho Books or QuickBooks instead?
Yes. The reminder logic does not depend on Tally. Other accounting systems such as Zoho Books, QuickBooks or Xero can be connected the same way, through their own APIs.
Related
-
Tally and Airtable
Tally stays the book of record. Your team finally gets to see what is in it without asking.
-
WhatsApp and Airtable
Reach customers where they reply, with the conversation logged against the record.
-
WhatsApp Business API and Zoho Books
The invoice raised where the accountant expects it, and everyone who moves the order told on WhatsApp.
- Solution
Finance and accounting
Every workflow we automate for this kind of team.
Keep exploring
Related to this page
- BuildOutstanding invoice reminders on WhatsApp
- IntegrationWhatsApp Business API and Zoho Books Automation
- SolutionManufacturing automation, built around how your floor runs
- SolutionDistribution automation for stock, deliveries and cash
- IntegrationTally and Airtable Automation
- BuildBuilt with WhatsApp Business API
Tally and WhatsApp
Overdue in Tally, reminded on WhatsApp, at the right pace.
Outstanding bills read from TallyPrime, overdue worked out after part payments, colour-coded reminders by customer and a daily report to each salesperson, built in three to five business days after templates are approved.
Start with a discovery call