WhatsApp template rules — what Meta actually approves

The most common reason a template gets rejected is not a broken payload — it is a payload that passed an API's own, looser validation and then met Meta's stricter review hours later. The numbers below are the ones that matter: what Meta approves, not just what gets accepted.

Short answer: a header tops out at 60 characters at Meta, a footer at 60, and 3 buttons is the practical maximum — build to these, not to whatever your API happens to accept.

Two sets of limits

An API validates loosely. Meta reviews strictly. Anything in the gap between the two columns below is accepted, submitted, and rejected hours later by a human reviewer.

LimitA typical API accepts up toMeta approves up to
Header text102460
Body text10241024
Footer text102460
Number of buttons103Meta allows more only for specific button mixes.
Button label2525

Components, formats and categories

Components

A template is built from up to four parts: a header (0–1), a body (exactly 1, the only required one), a footer (0–1), and one buttons block (0–1) holding up to 3 buttons in practice.

Header formats

TEXT, IMAGE, VIDEO, DOCUMENT, LOCATION. A text header cannot contain a variable filled at send time — keep it static. A media header (image, video or document) needs a sample uploaded before submission.

Button types

URL, QUICK_REPLY, PHONE_NUMBER, COPY_CODE. Meta restricts which types can appear together in one template — quick replies generally don't mix freely with call-to-action buttons like URL or phone number.

Categories

MARKETING
Promotions, offers and announcements. The most heavily reviewed category, and the most expensive to send.
UTILITY
Order updates, confirmations and reminders tied to something the customer already did.
AUTHENTICATION
One-time passwords and login codes, with the most restricted formatting of the three.

Building or sending templates through the API?

The full developer reference — every component payload, example-value shapes and a complete template — is in the docs.