Meta Tech Provider

Sending a template with variables

Template variables are positional, not named. You send a list of parameters per component, in order, and the count has to match exactly what the template defines. Three different errors come from getting this wrong, and each points at a different mistake.

132000

The error for a parameter count that does not match the template.

132012

The error for parameters whose format does not match.

132001

The error when the template name and language do not resolve.

How parameters are matched

By position, not by name. The first parameter in the body list fills the first placeholder, the second fills the second, and so on. There is no way to name a variable, and swapping two parameters produces a message that sends successfully with the values in the wrong places.

That last case is the dangerous one, because nothing fails. A customer receives an order confirmation with the date where the amount should be, and no error is logged anywhere.

Components are separate lists

A header variable and a body variable do not share a list. Each component carries its own parameters, and merging them produces a count mismatch.

  • Header parameters go in a header component, and there is at most one.
  • Body parameters go in a body component, in order.
  • Button URL parameters go in a button component, indexed by button.
  • Sending one flat list for all of them returns error 132000.

Getting the language right

A template is identified by name and language together, so the same name in two languages is two templates. Sending en where the template was created as en_US does not fall back, it fails with error 132001, which reads as the template not existing.

List the templates on the number and copy the exact language string rather than assuming its shape. This is the single most common template error and the least descriptive.

Typed parameters

Most parameters are plain text. Some are not, and sending them as text fails with error 132012.

  • Currency parameters carry an amount, a currency code and a fallback string.
  • Date and time parameters carry a structured object with a fallback.
  • Media header parameters carry a media id or a link, not a filename.
  • The fallback string is what shows if the recipient's app cannot format the value.

Which error means what

The three failures are distinguishable, which saves a lot of guessing if they are logged separately rather than grouped as a template error.

Error 132001 means the name and language pair did not resolve, so check the language first. Error 132000 means the count is wrong, so compare against the template's own definition. Error 132012 means a value's format is wrong, which is usually a typed parameter sent as a plain string.

Common mistakes

  • Assuming en falls back to en_US. It does not, and the error reads as a missing template.
  • Merging header and body parameters into one list. They are separate components.
  • Sending a currency or date as plain text. Typed parameters have a defined shape.
Doing this with EasyCoexistence

EasyCoexistence lists templates with their exact names and language codes through the dashboard and the MCP connector, so a send uses the values Meta actually stored.

Frequently asked questions

Are template variables named?

No. They are positional, so the order of the parameters is the whole contract.

Why does my template not exist?

Usually the language code. A template is identified by name and language together, and there is no fallback.

What if I send too many parameters?

Error 132000. Too many fails the same way as too few.

How do I send an amount?

As a currency parameter with an amount, a currency code and a fallback string, not as plain text.

Keep reading

Ready to get started?

Set up WhatsApp Coexistence in minutes, not months. The app keeps working on the phone.

Start Free Trial

Verified on

Sending a Template With Variables