All articles
Compliance

WhatsApp API Audit Log: Who Sent What (India 2026)

A WhatsApp API audit log records who sent which message, from which number, when, and under whose consent. Here is the minimum trail Indian teams need.

RichAutomate Team
11 min read 2 views
WhatsApp API Audit Log: Who Sent What (India 2026)

A WhatsApp API audit log is the record that answers, for any single message, who sent it, from which number, to whom, at what time, and on what consent. If your team cannot reconstruct those five facts for a message sent three months ago, you do not have an audit log — you have a chat window.

This matters in India for three unrelated reasons that happen to converge on the same table. A customer raises a grievance and you must show what was actually sent. Meta or your BSP opens an account review and asks for opt-in evidence. Or your own finance team disputes a bill and wants to know which campaign consumed the conversations. All three questions are answered by the same log, or by none.

Most teams discover the gap at the worst moment: a complaint lands, five people had access to the same WhatsApp number, and the platform shows the message but not the person. This guide covers what a usable trail contains, what the platform keeps for you, what you must write yourself, and how long to hold it.

What an audit log has to answer, in plain terms

Start from the questions rather than the schema. A WhatsApp audit trail earns its keep only if it answers these without a developer:

  • Who sent this? A named human, or a named automation — never "the system".
  • To whom, and from which number? Multi-number accounts make this non-obvious.
  • When, in what timezone? Store UTC, display IST, never mix.
  • Under what permission? The opt-in that allowed this send, and whether it was still valid.
  • What was the exact content? Template name plus the variables that filled it, not a paraphrase.
  • What happened after? Delivered, read, failed, blocked, reported.
  • Who else touched this conversation? Reassignments, note edits, exports, deletions.

The last one is the one almost everyone skips, and the one an investigation always needs.

The seven fields a usable audit record carries

FieldExample valueWhy an investigation needs it
Actor identityagent_id 41 (Priya S.) / api_key "erp-sync"Separates a human decision from an automated one. "Shared login" destroys this field.
Sending numberphone_number_id 10192…899Multi-number tenants otherwise cannot tell which brand identity spoke.
Recipient+91XXXXXXXXXX (hashed in exports)The subject of any grievance or deletion request.
Timestamp (UTC)2026-09-14T13:42:07ZIST-only storage breaks the moment a server or a vendor sits elsewhere.
Content referencetemplate "order_shipped_v3" + {order: 88421, courier: "…"}Proves what the customer actually saw, without storing a second copy of everything.
Consent referenceoptin_id 9310, source "checkout_form", captured 2026-03-02This is the field Meta and a DPDP grievance both ask for.
Outcomedelivered → read / failed code 131049Distinguishes "we never sent it" from "it was sent and refused".

Seven fields. Nothing exotic. The work is not in the schema — it is in making sure every send path writes a row, including the ones nobody remembers.

What the platform keeps versus what you must log yourself

A common and expensive assumption is that WhatsApp or the BSP is keeping all of this. Broadly, the platform holds the message-transport facts; almost everything about intent, identity and permission is yours to record. The split below is the practical shape most Indian teams find — confirm the exact retention terms with your own BSP contract, because they differ and they change.

RecordTypically held by the platform / BSPMust be logged by you
Message delivered / read statusYes, via webhooks, for a limited windowPersist it — the webhook is a notification, not an archive
Template approval and version historyYes, in the template managerWhich version was live on a given date
Which staff member pressed sendNoYes — the platform sees one business, not your org chart
Opt-in capture (when, where, wording)NoYes — this is entirely your record
Opt-out / STOP handlingPartially, as a block signalYes — the timestamp and the suppression that followed
Contact exports and bulk deletionsNoYes — the highest-risk action, least often logged
API key creation, rotation, revocationNoYes, with the human who did it

Read that right column again. Every row in it is a question a regulator, an auditor or an angry customer can ask, and none of them are answerable from a platform dashboard alone. Pair this with your WhatsApp chat data retention policy so the trail and the messages expire on deliberate, matching schedules rather than by accident.

Shared number, many agents: attribution is the hard part

One WhatsApp Business number, six people answering it. That is the normal Indian setup, and it is exactly where audit trails quietly fail. The failure mode is not technical — it is that everyone signs in as "support@company" because it was faster on day one.

Three rules fix most of it:

  1. One login per human, always. A shared credential converts every future investigation into a guess. If your multi-agent WhatsApp team inbox supports per-user accounts, the cost of using them is ten minutes of setup.
  2. Log assignment changes, not just messages. "Conversation moved from Priya to Rahul at 16:05" explains a tone shift that the message log alone makes look erratic.
  3. Name your automations like people. An automated reply should log as bot:after_hours_v2, not as a blank actor. When a customer says "your team told me X at midnight", you want to know instantly whether a human did.

Attribution also changes behaviour before anything goes wrong. Agents who know their sends are attributable send more carefully — a bigger practical win than most detection controls.

Stop overpaying on WhatsApp

Get the DPDP WhatsApp checklist

A founder-led WhatsApp reply with the DPDP consent + audit-log checklist for WhatsApp Business messaging. India-hosted. No spam.

DPDP-compliant · India-hosted · 1-min reply

Consent and opt-out events belong in the same trail

Teams tend to keep two separate systems: a message log in the chat tool, and consent records somewhere in the CRM. Under pressure, the join between them is manual, slow and wrong. Keep the consent reference on the message row itself.

The events worth their own audit rows:

  • Opt-in captured — with source, exact wording shown, and timestamp.
  • Opt-in scope changed — a customer agreeing to order updates is not agreeing to offers.
  • Opt-out received — including the raw inbound text, because "STOP", "stop bhejo" and "band karo" all count.
  • Suppression applied — the moment sending actually stopped, which is the fact that matters.
  • Deletion or erasure request executed — what was removed and what was lawfully retained.

The last three are the difference between a defensible position and an apology. Our guides on DPDP Act opt-in compliance and on the opt-in evidence a Meta audit expects cover the capture side in detail; this page is about proving, later, that you honoured it.

Automations and API keys need an identity too

Once an ERP, a website form and a scheduler can all trigger WhatsApp sends, "the API did it" stops being an answer. Give every integration a distinct key, and log the key on every message it produces.

Automation eventLog thisWhat it prevents
Key createdWho created it, when, what scopeOrphan keys nobody can explain at review time
Key used to sendKey name on every resulting message rowA runaway integration blamed on the support team
Key rotated or revokedTimestamp and the human who did itSilent access after an employee exit
Bulk job launchedJob id, audience size, template, requesterThe "who approved a 40,000-message blast" conversation
Webhook endpoint changedOld and new URL, actorMessage data quietly redirected elsewhere

That last row is a genuine security event, not an ops detail. Treat a webhook URL change with the seriousness of a password change.

How long to keep the trail

Audit records and message content deserve different clocks. Message bodies carry personal data and should expire relatively quickly once no obligation holds them. The audit trail — who did what, when — is far smaller, far less sensitive, and far more useful years later.

A defensible default many Indian teams settle on: keep message content to a documented short window driven by actual business need, and keep the metadata trail materially longer because its privacy cost is low and its evidential value is high. There is no single statutory number that covers WhatsApp chat logs generally — retention is driven by whichever obligation genuinely applies to you, such as tax records, sectoral rules, or live litigation. Confirm the periods that bind your business with your CA or counsel, and then write the policy down: an undocumented practice is not a retention policy, and an auditor will treat it as one more thing to investigate.

Whatever you choose, apply it automatically. A retention rule enforced by someone remembering to run a cleanup script is a rule that has already failed.

When someone asks for the log: the 24-hour pull

Requests arrive with deadlines. A grievance under DPDP, a BSP asking why a number's quality dropped, a customer's lawyer. Rehearse the pull before you need it.

  1. Scope it. One contact, one date range, or one campaign — resist exporting everything.
  2. Pull messages with their consent reference attached. Two disconnected spreadsheets invite the follow-up question you cannot answer.
  3. Include the outcome codes. A failed send is evidence in your favour; do not filter it out.
  4. Include actor identity. Anonymous rows read as evasion even when they are not.
  5. Log the export itself. Who pulled the data, when, why, and where it went.
  6. Redact in the export, not in the source. Never edit the underlying trail to make an answer look tidier.

If the request arrives alongside a suspected breach, the notification clock is separate and much less forgiving — see CERT-In and DPDP breach notification duties before anything else. And if the trigger was a platform action against your account, the same trail is what you will attach to a WhatsApp Business account restriction appeal.

What to switch on this week

You do not need a project for this. In rough order of payoff per hour spent:

  1. Kill shared logins. One account per human, today.
  2. Make sure the actor is stored on every outbound message, including automated ones.
  3. Put the opt-in reference on the message row, not in a separate system.
  4. Start logging exports, deletions and API key changes — the events nobody records until they need them.
  5. Write the retention periods down, then automate them.
  6. Do a dry run: pick a random contact from four months ago and try to answer all seven questions. Whatever you cannot answer is your backlog.

That dry run is the whole audit in one exercise, and it takes about twenty minutes. On RichAutomate, per-agent identity, message-level attribution and consent references are part of the standard conversation record rather than an add-on — pricing stays usage-only with no setup or monthly fee, which you can check on the WhatsApp API pricing page.

The short version

An audit log is not a compliance ornament. It is the difference between answering a hard question in ten minutes with evidence, and spending three days assembling a story you cannot fully prove. Seven fields, written on every send, by every path, kept on a schedule you wrote down.

Ready to ship this?

Get the DPDP WhatsApp checklist

A founder-led WhatsApp reply with the DPDP consent + audit-log checklist for WhatsApp Business messaging. India-hosted. No spam.

DPDP-compliant · India-hosted · 1-min reply
Tagged
WhatsApp API audit logWhatsApp message audit trail Indiawho sent WhatsApp message trackingDPDP audit log requirementsWhatsApp Business API compliance loggingagent attribution shared WhatsApp number
Written by
RichAutomate Team
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

What is a WhatsApp API audit log?
It is the stored record that lets you reconstruct, for any past message, who sent it, from which business number, to whom, at what time, under which opt-in, what the content was, and what happened to it afterwards. The chat view alone does not qualify, because it usually cannot tell you which member of your team pressed send or which consent authorised it.
Does WhatsApp or my BSP already keep these logs for me?
Only partly. The platform side generally holds transport facts such as delivery and read status and template approval history, for a limited window. Staff attribution, opt-in capture, opt-out handling, contact exports and API key changes are yours to record. Retention windows differ by BSP contract, so confirm yours rather than assuming.
How do we track who sent a message when six agents share one number?
Give every person their own login instead of a shared account, store the agent identity on the message row itself, and log conversation reassignments as their own events. Automations should log under a named identity too, so an after-hours automated reply is never mistaken for a human decision.
How long should we keep WhatsApp audit logs in India?
There is no single statutory period covering WhatsApp chat logs generally. Message content should expire on a documented, fairly short schedule once no obligation holds it, while the metadata trail can reasonably be kept longer because it carries less personal data and more evidential value. Confirm the periods that actually bind your business with your CA or counsel, write them into a policy, and enforce them automatically.
What should be in an audit export if a customer or regulator asks?
Scope it to the specific contact, date range or campaign; include the consent reference alongside each message, the outcome or failure codes, and the actor identity. Log the export itself — who pulled it, when and why — and redact within the export rather than editing the underlying trail.
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