Features Pricing Use cases Compare Blog

Every Status a WhatsApp Template Can Be In, and What Each One Costs You

12 min read

The short answer

Meta's template status webhook publishes fourteen event values, not the four most dashboards show. Alongside APPROVED, REJECTED, PAUSED and DISABLED sit ARCHIVED, UNARCHIVED, DELETED, FLAGGED, LOCKED, IN_APPEAL, REINSTATED, PENDING, PENDING_DELETION and LIMIT_EXCEEDED. ARCHIVED means archival through inactivity, and Meta schedules those templates for deletion 28 days later unless you unarchive them.

Templates screen showing a green New template button above a searchable table listing template name, category, language, an approval status of Approved, Pending or Rejected, the date each row was last updated, and a column of per-row actions.

How long does template approval usually take?

Meta's own template review documentation gives one figure: "It can take up to 24 hours for an approval decision to be made" (Meta - Template review). While that decision is pending, the template sits in the PENDING state, and nothing about it is sendable yet.

That 24-hour figure is a ceiling, not an average, and Meta does not publish a typical or minimum turnaround anywhere in that documentation. Plan a launch around the ceiling, not around whatever happened to clear quickly last time.

The same page gives a second, easily confused number for a different step: if a template is rejected and you appeal instead of editing it, "the appeal will be reviewed and a decision made within 24 hours" (Meta - Template review). Initial review and an appeal on a rejection are two separate 24-hour clocks, not one.

Checked against Meta's documentation on 4 September 2026.

What are the fourteen statuses a template can hold?

Most integrations are written against four states: approved, pending, rejected, and maybe paused. Meta's actual webhook reference for a WhatsApp Business Account documents fourteen possible event values for message_template_status_update, grouped below by what each one means for whoever is trying to send the template, not by Meta's own internal ordering.

Status Band What it means What your code should do
PENDING In review Template submitted, awaiting a decision Wait; do not schedule sends against it yet
IN_APPEAL In review A rejection is under appeal Wait; keep the appealed content, do not silently re-edit it
APPROVED Live Cleared review, sendable Safe to schedule and send
UNARCHIVED Live Restored from ARCHIVED to its previous status Re-verify it reads APPROVED before resuming sends
REINSTATED Live No longer flagged or disabled Safe to resume, but watch quality rating closely
FLAGGED Restricted Negative feedback received; at risk of disabling Alert a human; consider pausing voluntarily
PAUSED Restricted Temporarily blocked from sending after low quality Stop sending; do not retry blindly, see below
LOCKED Restricted Cannot be edited Block edit attempts in your own UI rather than let Meta 400 them
LIMIT_EXCEEDED Restricted The account has hit its template limit Delete unused templates before creating more
REJECTED Ending Failed review Surface the reason; offer edit-and-resubmit or appeal
DISABLED Ending Sending is blocked after repeated quality failures Stop sending; needs edit-and-resubmit, not a retry
ARCHIVED Ending Archived through inactivity Unarchive within 28 days or it is deleted
PENDING_DELETION Ending Deleted via WhatsApp Manager Remove local references; nothing to recover
DELETED Ending Permanently gone Remove local references; nothing to recover

The diagram below groups the same fourteen statuses into the same four bands, with the archive-to-deletion window drawn as the one time-based transition in the picture, because it is the only one with a clock a reader has to act against.

Fourteen WhatsApp template statuses stacked into in-review, live, restricted and ending bands, with a 28-day timeline running from archived to deleted
The fourteen message_template_status_update event values, grouped by consequence rather than by Meta's own ordering

Eight of these fourteen also carry a reason value, covered next, and five carry a separate other_info/title value, covered further down. Checked against Meta's documentation on 4 September 2026.

Which rejection reasons does Meta actually publish?

The same webhook reference publishes eight values for the reason field that can accompany a status change, most commonly alongside REJECTED or DISABLED:

Reason What it names
ABUSIVE_CONTENT Content that violates WhatsApp's policies
INCORRECT_CATEGORY The declared category does not match the actual content
INVALID_FORMAT A formatting problem with the template itself
NONE Sent when the status is a plain pause with no policy reason attached
PROMOTIONAL Content that violates WhatsApp's policies (Meta's description here is identical to the wording it gives for ABUSIVE_CONTENT and SCAM — it does not publish a promotional-specific rule)
SCAM Content identified as a scam
TAG_CONTENT_MISMATCH Content does not match its category, a variant of the mismatch above
CATEGORY_NOT_AVAILABLE (deprecated) An authentication template submitted for a region that does not support it

INCORRECT_CATEGORY is the one worth a second look, because it is not really a rejection reason in the ordinary sense — Meta's template categorization documentation describes it as the outcome of Meta re-deciding what category a template actually belongs to, independent of what you selected. The mechanics of that reassignment, including the 60-day window to contest it, are their own subject: see what happens when a template gets recategorised from utility to marketing.

Checked against Meta's documentation on 4 September 2026.

What does ARCHIVED mean, and what is the 28-day clock?

Meta's webhook reference is specific about both halves of this: the event fires because the template was "archived due to inactivity," and once it does, "archived templates are scheduled for deletion after 28 days unless unarchived" (Meta - WhatsApp Business Account webhook reference).

A template you have not sent in a while can go from working to permanently deleted with no rejection, no policy violation, and no human decision anywhere in the chain — only elapsed time. Nobody edits the template, nobody violates a policy, and the WhatsApp Manager UI shows nothing alarming until the day it is simply gone.

Unarchiving inside the 28 days restores the template to whatever status it held before archival — UNARCHIVED in the table above — which for a template that was healthy beforehand generally means it goes back to APPROVED. Miss the window and there is no previous status left to restore; DELETED is not reversible.

Checked against Meta's documentation on 4 September 2026.

What is the difference between LOCKED, PAUSED and DISABLED?

These three sound like synonyms for "you cannot use this template right now," and Meta's documentation treats them as three distinct mechanisms with three distinct recovery paths.

PAUSED is a quality-rating consequence, and Meta's template pausing documentation gives an escalating schedule: "Paused for 3 hours" the first time a template's quality rating drops to Active - Low quality, "Paused for 6 hours" the second time, and on the third instance the template is disabled outright (Meta - Template pausing). The same page notes that under Meta's Template Pacing system, in effect for all businesses since October 2023, a paused template must be manually unpaused through the API or WhatsApp Manager rather than recovering on its own once the clock runs out — worth confirming against your own account rather than assuming a pause will clear itself.

DISABLED is what a third low-quality instance turns into, or what Meta's webhook reference separately calls out as disabling "due to user feedback." Unlike a pause, there is no timer; Meta's template review documentation says the recovery path is the same as for a rejection — edit and resubmit for approval.

LOCKED is the odd one out: Meta's webhook reference defines it only as a template that "cannot be edited," and neither that page nor Meta's template quality or template pausing documentation states what specifically triggers it. Treat it as: whatever the cause, do not build a retry loop that assumes editing will succeed — check the status again before attempting a change, and if it persists, that is a case for Meta's own support channel rather than a guess in your own code.

Status Trigger Meta documents Recovery Meta documents
PAUSED Quality rating drops to Low, first or second time 3 hours, then 6 hours, or manual unpause under Template Pacing
DISABLED Third low-quality instance, or negative user feedback Edit and resubmit for approval
LOCKED Not documented Not documented; wait and re-check status

Checked against Meta's documentation on 4 September 2026.

When does Meta send rejection detail alongside the status?

Most reason values above arrive as a bare label — PROMOTIONAL, SCAM, ABUSIVE_CONTENT — with no further structure attached. One reason is different: when reason is INVALID_FORMAT, Meta's webhook reference documents a companion rejection_info object carrying its own reason and recommendation fields, giving actionable detail about what specifically was malformed and what to change.

That asymmetry matters for how you design an alert. A handler written to always expect rejection_info will find it absent for every other reason value; one written to never expect it will silently drop the one payload actually useful enough to route straight into a fix-it message for whoever built the template. Branch on the reason value first, and only read rejection_info when it is INVALID_FORMAT.

Checked against Meta's documentation on 4 September 2026.

What does IN_APPEAL change while it lasts?

Meta's webhook reference lists IN_APPEAL as its own event value, meaning a rejected template that its owner chose to contest rather than edit. Meta's template review documentation adds the timing commitment: "the appeal will be reviewed and a decision made within 24 hours."

What Meta's documentation does not state is whether the original rejected content becomes sendable at any point during that window, or whether IN_APPEAL is purely a waiting state with the same restrictions as REJECTED. Nothing in either page addresses it, so this article will not guess at it either — assume the template stays unsendable until the appeal resolves one way or the other, because that is the safer default and the only one Meta's own text supports.

An appeal that succeeds should produce an APPROVED (or REINSTATED, depending on what triggered the appeal) event on the same webhook field; one that fails presumably returns to REJECTED, though Meta's documentation does not spell out the exact terminal event for a failed appeal either. Log the transition either way rather than assuming which one it will be.

Why does your vendor dashboard show fewer states than this?

Every WhatsApp management tool sits between you and this webhook, and every one of them has to collapse fourteen raw event values into something a template list can render in one column. WabaCRM's own templates screen is no exception — it shows Approved, Pending and Rejected as the visible states on the row, which is a deliberate simplification of the same fourteen values documented above, not a smaller set that Meta itself publishes.

Templates table listing template name, category, language, an Approved status badge, last updated date and per-row action controls
A templates list rendering the underlying webhook events as a compact status column

That simplification is reasonable for a table row — nobody wants a LIMIT_EXCEEDED badge sitting next to a TAG_CONTENT_MISMATCH one in the same visual language as Approved — but it is exactly why this reference page needed writing. A dashboard that only ever shows three or four states cannot tell you a template was archived for inactivity, locked against editing, or sitting in an appeal, because none of those has anywhere to render. The underlying data exists in Meta's webhook regardless of what any dashboard chooses to surface, and a handler subscribed directly to message_template_status_update sees all fourteen whether or not the UI in front of it does.

Which statuses should trigger an alert in your own system?

Not every one of the fourteen values needs a human notified. Some are routine, some are informational, and a handful genuinely need attention before they turn into a missed send.

Needs a human alerted Informational only
REJECTED PENDING
DISABLED APPROVED
PAUSED UNARCHIVED
FLAGGED REINSTATED
LOCKED
LIMIT_EXCEEDED
ARCHIVED
PENDING_DELETION
IN_APPEAL (worth a note, not urgent)

Everything in the left column either stops a template from sending right now, or starts a clock that ends in permanent deletion. Everything on the right is either the normal outcome of a submission or a recovery you already asked for. Wiring an alert only to the left-hand list keeps the signal-to-noise ratio sane on an account running more than a handful of templates.

How do you stop a working template being deleted for inactivity?

The 28-day archive clock is the one failure mode in this whole list that costs nothing to prevent and nothing to notice if you never look. Two approaches, and they are not mutually exclusive.

The reactive approach is watching the webhook: subscribe to message_template_status_update, catch the ARCHIVED event the moment it fires, and unarchive immediately if the template is still one you intend to keep using. This works, but it depends on nobody muting or ignoring that specific alert — which circles back to the previous section's point about deciding in advance which events deserve a human's attention.

The preventive approach is simpler: a template that is actually being sent regularly never accumulates the inactivity Meta is archiving against in the first place. If a template only fires occasionally — a seasonal promotion, an annual renewal notice — that irregular cadence is exactly the shape Meta's archival logic is watching for, so build a periodic check (monthly is enough) against WhatsApp Manager or the API for any template whose usage is naturally sparse, rather than discovering the gap only when a campaign against it fails. A campaign that depends on a template stalling mid-send because the template quietly disappeared weeks earlier is a slower version of the failures covered in what actually caps a WhatsApp broadcast — the send never even reaches the point where a rate limit would matter.

None of this needs a paid feature to solve; it needs the webhook wired up and someone reading it. Whether that reading happens through Meta's own WhatsApp Manager, your own code against the API, or a shared inbox product that surfaces template health on the same screen your team already checks daily, the underlying fourteen-value contract from Meta is identical either way — see the templates and message catalogue overview for how that surfaces day to day, and what a Tech Provider does and does not bill for if the next question is what fixing a broken template costs beyond the time.

Every Meta quotation on this page was read from Meta's own documentation on 4 September 2026. Meta changes that documentation without notice; the linked pages are authoritative and this one is not.

Questions people also ask

How many templates can I have on one WhatsApp Business Account?

Meta documents two limits. An account in an unverified business portfolio is capped at 250 message templates. Once the portfolio is verified and has an approved display name, the same WhatsApp Business Account can hold up to 6,000 templates. Either way, creation itself is rate-limited to a maximum of 100 new templates per WhatsApp Business Account per hour, so a bulk import of hundreds of variants in one sitting will queue rather than fail outright. If a template submission comes back with the LIMIT_EXCEEDED event, the fix is deleting unused templates, not appealing, because the account has genuinely hit its ceiling for its current verification tier.

Does an archived template keep its approval when I unarchive it?

Meta's webhook reference lists UNARCHIVED as restoring the template to its previous status, which for most archived templates means the APPROVED state it held before inactivity archived it. Nothing in Meta's documentation describes a fresh review being triggered by an unarchive action itself. Treat the 28-day window as the real constraint: unarchive before it elapses, because past that point Meta's own text is explicit that the template is deleted outright and there is no previous status left to restore it to.

Can I edit a rejected template instead of creating a new one?

Yes. Meta's template review documentation states plainly that if a template is rejected, you can edit it and resubmit it for approval, or appeal the decision instead. Editing and resubmitting sends the template back through PENDING as if it were new, so the same variable-formatting or policy-language checks apply again. Appealing keeps the original submission in play and, per the same documentation, is reviewed with a decision inside 24 hours. Neither path requires abandoning the template name and starting over, which matters because a customer-facing integration referencing that template name by ID keeps working once it clears review.

Why did a template that passed once get rejected on resubmission?

The most documented cause is category reassignment: Meta evaluates a template's actual content against its declared category independently of whether an earlier version of the same wording was once approved. A template edited and resubmitted is a new review, not a re-stamp of the old one, so wording that cleared review under a stricter or looser policy read at the time can land differently now. This is specifically what INCORRECT_CATEGORY covers, and the mechanics of that reassignment, including the 60-day appeal window, are covered in full at [when a template gets recategorised from utility to marketing](/blog/whatsapp-template-utility-to-marketing) rather than repeated here.

Does a rejected template count against my account standing?

Meta's policy enforcement documentation names "template misclassifications" as one of the patterns, alongside sending spam and high-risk policy categories, that can lead to account-level enforcement when they repeat. That is a documented statement about a pattern of misclassification, not about any single REJECTED or DISABLED event on one template. Meta does not publish a stated threshold, so there is no confirmable number of rejections that trips a restriction. What is confirmable is the general path: see [what actually gets a WhatsApp Business Account restricted](/blog/whatsapp-account-restricted) for the documented account-level triggers.

How do I get notified when a template status changes?

Meta's own description of the field is direct: "the message_template_status_update webhook notifies you of changes to the status of an existing template." Subscribing to it is done from the App Dashboard's WhatsApp Configuration panel, and every one of the fourteen events in this article arrives through that one webhook field, not through fourteen different ones. Outside the webhook, WhatsApp Manager also surfaces the current status on the template's own row, but that is a state you have to go and look at, where the webhook pushes the change to you the moment Meta records it.

Keep reading

Your customers are already on WhatsApp

Free for your first 1,000 contacts, with no time limit and no card. Setting up the workspace takes minutes; connecting a number takes as long as Meta's own review of it.

Sign up with your company email address. No sales call, no onboarding fee, nothing to schedule.

Why this is safe to point your customer list at

Payments are processed by Razorpay on their own checkout — your card details are never entered on, or stored by, WabaCRM. Every inbound WhatsApp webhook is checked against its signature before it is trusted.

Tech Provider is a Meta platform access tier — not a partnership, a reseller agreement or an endorsement.