Description
What is error 132000?
Error 132000 (Parameter Count Mismatch) is the WhatsApp Cloud API error returned when the number of variable parameter values in a template message doesn't match the number of variables defined in the approved template. Meta's title for it is “Number of parameters does not match the expected number of params”. If the approved body reads “Hi {{1}}, your EMI of {{2}} is due on {{3}}” and the request supplies two body parameters, the send is rejected.
The count is checked component by component. A template's header (a text variable or a media item), its body variables, and each button that carries a variable, such as a dynamic URL button's suffix or a copy-code value, each need their own entry in the components array with exactly as many parameters as the template defines; a button entry also needs its sub_type and zero-based index. Static components need no entry at all. With named parameters ({{first_name}}), each value also carries a parameter_name that must match.
132000 is a template-mapping error, which separates it from error 100 (Invalid Parameter), the generic error for malformed or unknown fields. Its neighbours in the 132xxx range include 132001 (the template doesn't exist in that language or hasn't been approved), 132012 (a parameter's format doesn't match the template, such as text where an image is expected) and 132015 or 132016 (the template is paused or disabled). It is normally returned on the send request itself, so no message is created and nothing is charged.
Key takeaways
- Error 132000 means the parameter count in a template send doesn't match the variables in the approved template.
- Counts are checked per component: the header, the body and each button with a variable are matched separately.
- The send is rejected before anything is delivered or billed; fix the payload rather than retrying it.
- Build parameters from the approved template's own components, never from memory or a stale copy.
- 132001 means no approved template exists in that language, 132012 a parameter in the wrong format; error 100 is a malformed request.
Mechanics
How does error 132000 work?
step 1 — Read the approved template
Fetch it with
GET /{WABA_ID}/message_templates?name={name}and note each component: the header format, the body text, and every button with its type.step 2 — Count variables per component
Count the
{{1}}or{{name}}placeholders separately for the header, the body and each URL or copy-code button. Each message template variable needs exactly one value.step 3 — Build one entry per variable-bearing component
Add a
header,bodyorbuttonobject tocomponentswith that manyparameters, in order. Button entries needsub_type(for exampleurl) and the button'sindex.step 4 — Match types and names
Use the type the template expects (
text,currency,date_time,image,document,video) and includeparameter_namefor named parameters.step 5 — Validate before sending
Compare counts in code against the cached template, so a mismatch fails in your tests rather than on every customer's send.
Properties
Error 132000: key facts and limits
- Code and title
- 132000 · Number of parameters does not match
- Checked
- Per component: header, body, each variable button
- When
- On the send request, before delivery
- Billing
- Not sent, not charged
- Button entry needs
- type button, sub_type, zero-based index
- Neighbours
- 132001 no such template · 132012 wrong format · 100 malformed
Usage
Error 132000 in code
{"name": "emi_due","language": "en","category": "UTILITY","components": [{ "type": "HEADER", "format": "TEXT", "text": "EMI reminder for {{1}}" },{ "type": "BODY", "text": "Hi {{1}}, your EMI of {{2}} is due on {{3}}." },{ "type": "FOOTER", "text": "Reply STOP to opt out" },{ "type": "BUTTONS", "buttons": [{ "type": "URL", "text": "Pay now", "url": "https://pay.example.in/emi/{{1}}" }]}]}
One header variable, three body variables, one URL-button variable, a static footer.
Example
Example: An EMI reminder after a template edit in Indore
A lender in Indore edits its emi_due utility template to add the due amount, turning two body variables into three, and the new version is approved. The sending service still builds two parameters, so every reminder that evening, about 4,000 of them, fails with 132000. The immediate fix is a one-line change. The lasting one is structural: the service now loads each approved template's components at startup, counts the placeholders, and refuses to deploy if its payload builder produces a different count.
Caveats
Common mistakes with error 132000
Counting variables across the whole template
A template with one header variable and two body variables needs a header entry with one parameter and a body entry with two, not one list of three.
Forgetting button parameters
A dynamic URL button or copy-code button needs its own
buttoncomponent withsub_typeandindex. It's the parameter people miss most often.Building from a stale copy after an edit
Editing an approved template can change its variables. Refresh cached definitions when the template status webhook reports a change, and redeploy builders that depend on them.
Mixing positional and named parameters
A template created with named parameters expects
parameter_nameon every value. Sending positional values, or names that differ from the template, fails the send.Padding counts with placeholders
Filling a missing value with “-” to make the count match delivers a broken message to the customer. Fix the data source, or don't send.
Why it matters
Why does error 132000 matter?
Template payloads drift. Someone edits a template in WhatsApp Manager to add a variable, a new language version has a slightly different structure, or a developer copies the payload of a sibling template, and every send of that template starts failing at once. Because the failure is total and immediate, 132000 often reaches support as “WhatsApp is down” when the fix is one missing parameter. Building payloads from the approved template's definition removes the whole class of bug.
Questions
Error 132000 (Parameter Count Mismatch) FAQs
- What does “Number of parameters does not match the expected number of params” mean?
- It is error 132000: your template send supplied more or fewer variable values than the approved template defines for at least one component. Match the counts component by component.
- Do I need to send a parameter for a URL button?
- Yes, if the button's URL ends in a variable. Add a component with
type: button,sub_type: url, the button's zero-basedindexand one text parameter for the URL suffix. - Why did a working template suddenly start failing with 132000?
- Usually because the template was edited or a different language version was used. Its variable count changed, but the code that builds the payload didn't.
- Is error 132000 the same as error 100?
- No. Error 100 means the request is malformed: a missing, misspelled or wrongly typed field. Error 132000 means a well-formed template request has the wrong number of variable values.
Notes
Best practices for error 132000
- Cache each approved template's components and generate payloads from them with a typed builder.
- Add a contract test that sends every template to a test number after each deploy.
- Keep the same variable structure across all language versions of a template.
- Use the sample values from template submission as fixtures in your tests.