- Templates
- Practitioner
- Developers
- Marketers
Template Language
Also called: Template translation · Template locale · Template language code
The language code a WhatsApp template is created in. One name can hold many translations, and each send must name an approved one exactly.
Reviewed
What is template language?
Every WhatsApp message template is created in one language, identified by a code from Meta's supported list — en, en_US, en_IN, hi, ta, bn and many more. Template names are not unique: you can create several templates with the same name in different languages, and together they act as translations of one message. Meta translates nothing; you write and submit every language version yourself, with example values in that language.
Each translation is a separate template in every way that matters. It has its own template ID, goes through review on its own, carries its own status and quality rating, and counts separately against the WABA's template limit. One name can therefore be approved in English, rejected in Tamil and still in review in Hindi at the same time.
When you send, the language object in the request picks the translation: "language": { "code": "hi" }. The match is exact — deterministic is the only language policy — so there is no automatic fallback to English or to a related locale. If no approved template exists under that name in that language, the send fails with error 132001 (the template does not exist in the specified language or has not been approved). en and en_US are different codes, and so are bn and bn_IN.
Template language is about localising within one WABA. It is different from template migration, which copies approved templates from one WABA to another, and from language detection, which works out what language a customer writes in so your system can choose the right code to send.
Key takeaways
- Template language is the code a WhatsApp template is created in; one name can hold many translations, each its own template.
- Each translation has its own ID, review, status and quality rating, and counts separately against the template limit.
- Sends match template.language.code exactly: there is no fallback, and a missing or unapproved translation fails with 132001.
- Meta's list has 111 codes, including en_IN, hi, bn, gu, kn, ml, mr, pa, ta, te and ur; Odia and Assamese are not on it.
- en and en_US are different codes, so create and send with the same one or the send fails.
Interactive stop
Which translation does each send land on?
Only agents with the required skill are eligible; the least busy of them wins.
Incoming · 0 left
- All 8 conversations have been routed.
Conversation 8 of 8 · Skills-based
Imran · en_IN(needs en_IN)goes toEnglish · en_IN
Skills: needs en_IN, and only English · en_IN has it.
English · en_IN
2 of 4 open
- en_IN
- Arjun · en_INneeds en_IN
- Imran · en_INneeds en_IN
Tamil · ta
2 of 4 open
- ta
- Lakshmi · taneeds ta
- Kavya · taneeds ta
Hindi · hi
2 of 4 open
- hi
- Farah · hineeds hi
- Meera · hineeds hi
Waiting · 2
- Suresh · teneeds te
- Rohan · enneeds en
| Strategy | Routed | Waiting | Skill mismatches |
|---|---|---|---|
| Skills-based | 6 | 2 | 0 |
| Round-robin | 8 | 0 | 6 |
Conversation 8 of 8, Imran · en_IN: Skills: needs en_IN, and only English · en_IN has it.
How does template language work?
Pick exact codes
Choose codes from Meta's supported-languages list and settle on one per language. For English alone,
en,en_US,en_GBanden_INare separate codes.Create each translation under the same name
Submit one template per language with the same
name, its ownlanguagecode, and body text and samples written in that language. Keeping the same variables and buttons in every version lets one send payload shape serve them all.Track status per language
Each translation is reviewed and rated separately. List templates with
fields=name,language,statusand treat only rows that areAPPROVEDas sendable.Resolve the language before sending
Map each customer's preference — from your CRM, their first message or an explicit choice — to a code you have approved, with a deliberate, logged default such as
en_INwhen there is no match.Send with that exact code
Put the code in
template.language.code. A code with no approved translation fails with 132001; WhatsApp never substitutes another language for you.
Template language in code
curl -X POST "https://graph.facebook.com/v26.0/{PHONE_NUMBER_ID}/messages" \-H "Authorization: Bearer {ACCESS_TOKEN}" \-H "Content-Type: application/json" \-d '{"messaging_product": "whatsapp","to": "919812345678","type": "template","template": {"name": "policy_renewal_due","language": { "code": "hi", "policy": "deterministic" },"components": [{ "type": "body", "parameters": [{ "type": "text", "text": "Farah" },{ "type": "text", "text": "24 October" }] }]}}'
The code must match an approved translation exactly; `policy` is optional and deterministic is its only value.
Example: Four languages and a resolver at a Chennai insurance broker
A Chennai insurance broker sends renewal reminders as policy_renewal_due in en_IN, ta, te and hi. Its CRM stores each customer's preferred language, and a small resolver maps it to an approved code, falls back to en_IN when the preferred translation is not approved, and logs every fallback. When the Telugu version was rejected for a weak sample, the resolver routed Telugu-speaking customers to English overnight instead of letting about 4,000 sends fail with 132001. The team fixed the sample and resubmitted the translation the next morning, and Telugu sends resumed once it was approved.
Common mistakes with template language
Assuming WhatsApp falls back to English
It does not. A send names one language and either finds an approved template in exactly that code or fails with 132001. Build any fallback into your own code.
Mixing near-identical codes
enanden_US, orbnandbn_IN, are different templates. Creating in one and sending with the other fails, so standardise on one code per language.Deleting by name to fix one translation
A delete by
nameremoves every language version. Pass the translation'shsm_idwith the name, or edit that translation instead.Careless translation and samples
Meta expects the text and example values in the template's own language. Hindi body text with English samples, or a machine translation nobody has read, invites rejection; have a native speaker check each version.
Forgetting the template limit
Ten languages of one template use ten slots. On an unverified portfolio's 250-template cap, translations run out fast.
Template language: key facts and limits
- Supported codes
- 111 language codes on Meta's list (October 2026)
- Indian languages
- hi, bn, gu, kn, ml, mr, pa, ta, te, ur, plus en_IN
- Unit of review
- Each language version separately
- Template limit
- Each translation counts as one template
- Send field
- template.language.code (exact match)
- Language policy
- deterministic only — no fallback
- Missing or unapproved translation
- Error 132001
Why does template language matter?
Customers in India read WhatsApp in a dozen scripts, and a template in the right language is read more and misread less. But every extra language multiplies the review work, the template count and the chances of a send going out with a code that has no approved version. Treating each translation as its own template — and resolving the code before you send — is what keeps a multilingual programme from turning into a stream of 132001 errors.
Best practices for template language
- Keep a table of template name × language × status and alert on any row that is not
APPROVED. - Store each customer's language as a Meta code, not a free-text label, so the send never has to guess.
- Translate your highest-volume utility templates first; long-tail marketing copy can follow.
- Check Meta's supported list before planning regional copy — Odia and Assamese were not on it when this page was reviewed.
Template Language FAQs
Do I need a separate template for every language?+
What happens if I send a template in a language that isn't approved?+
Does Meta translate templates automatically?+
Which Indian languages can WhatsApp templates use?+
Talk to InfiQ
From definition to your first message
InfiQ is an official Meta Business Partner. Start a 7-day free trial — no card needed — and see this running on your own number.