Template v1 or v2?
- v2 — /v2/whatsapp/message/template (recommended by the docs): body placeholders are named, an array of objects like {"name": "..."}. Supports carousel templates (content.templateData.cards) and an optional scheduledAt (a future ISO date-time) per message to schedule instead of sending now.
- v1 — /whatsapp/message/template: body placeholders are positional — a flat array of values matched in order to the template's variables. Carousel is not supported on v1.
- Both take a messages array, so one request can send to several recipients. AUTHENTICATION (OTP) templates use their own endpoint — see the API docs.
- For a DOCUMENT header, pass templateData.header with type, mediaUrl and filename (e.g. "invoice.pdf") so WhatsApp shows a readable file name.
When you need a template
The WhatsApp 24-hour window, which Meta calls the customer service window, starts when a customer messages your business and resets with every new message from them. While it is open you can send normal replies without approval. Once 24 hours pass with no customer message, you can only send pre-approved templates. The 24-hour window explained →

