{"id":789,"date":"2026-10-29T13:29:03","date_gmt":"2026-10-29T13:29:03","guid":{"rendered":"https:\/\/vectalk.com.br\/blog\/erro-132000-template-whatsapp\/"},"modified":"2026-10-29T13:29:10","modified_gmt":"2026-10-29T13:29:10","slug":"erro-132000-template-whatsapp","status":"publish","type":"post","link":"https:\/\/vectalk.com.br\/blog\/erro-132000-template-whatsapp\/","title":{"rendered":"Erros 132000 e 132012 na API do WhatsApp: par\u00e2metros do template n\u00e3o batem"},"content":{"rendered":"\n<p><em>Atualizado em 29\/10\/2026<\/em><\/p>\n\n\n\n<p>O erro 132000 da API do WhatsApp significa que a quantidade de par\u00e2metros enviada n\u00e3o bate com a quantidade de vari\u00e1veis definida no template. O erro 132012 \u00e9 o primo dele: a quantidade at\u00e9 est\u00e1 certa, mas o formato de algum valor n\u00e3o \u00e9 o que o template espera. Os dois se resolvem do mesmo jeito: ler a estrutura do template aprovado e montar o payload a partir dela, n\u00e3o de mem\u00f3ria.<\/p>\n\n\n\n<p>Este guia mostra o que cada erro da fam\u00edlia 132xxx quer dizer, exemplos de payload errado e corrigido, e uma fun\u00e7\u00e3o de valida\u00e7\u00e3o para rodar antes de cada envio.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A fam\u00edlia 132xxx: o que cada c\u00f3digo significa<\/h2>\n\n\n\n<p>Os c\u00f3digos 132xxx tratam de problemas com templates (modelos de mensagem). A tabela abaixo resume os que mais aparecem no envio, conforme a <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/support\/error-codes\" target=\"_blank\" rel=\"noreferrer noopener\">tabela oficial de c\u00f3digos de erro da Meta<\/a>:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>C\u00f3digo<\/th><th>O que a Meta diz<\/th><th>Causa mais comum na pr\u00e1tica<\/th><\/tr><\/thead><tbody><tr><td>132000<\/td><td>O n\u00famero de par\u00e2metros enviados n\u00e3o corresponde ao n\u00famero de vari\u00e1veis do template<\/td><td>Faltou ou sobrou um item em <code>parameters<\/code>, ou o componente certo (header, body, bot\u00e3o) ficou de fora<\/td><\/tr><tr><td>132001<\/td><td>O template n\u00e3o existe no idioma pedido ou n\u00e3o foi aprovado<\/td><td>Nome digitado errado, <code>language.code<\/code> diferente do aprovado (<code>pt_BR<\/code> x <code>pt<\/code>) ou template ainda em an\u00e1lise<\/td><\/tr><tr><td>132005<\/td><td>O texto traduzido ficou longo demais<\/td><td>Tradu\u00e7\u00e3o do template incompleta ou longa demais no idioma enviado<\/td><\/tr><tr><td>132007<\/td><td>O conte\u00fado do template viola uma pol\u00edtica do WhatsApp<\/td><td>Template reprovado ou conte\u00fado enviado que fere a pol\u00edtica<\/td><\/tr><tr><td>132012<\/td><td>Os valores dos par\u00e2metros est\u00e3o no formato errado<\/td><td>Tipo de par\u00e2metro diferente do definido (texto onde \u00e9 imagem, por exemplo) ou nome de par\u00e2metro que n\u00e3o existe<\/td><\/tr><tr><td>132015<\/td><td>Template pausado por baixa qualidade<\/td><td>Muitos bloqueios ou den\u00fancias dos destinat\u00e1rios<\/td><\/tr><tr><td>132016<\/td><td>Template desativado de vez depois de pausas repetidas<\/td><td>\u00c9 preciso criar outro template<\/td><\/tr><tr><td>132018<\/td><td>Erro de valida\u00e7\u00e3o do template<\/td><td>Algum par\u00e2metro com problema; o detalhe vem na resposta<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Os c\u00f3digos 132015 e 132016 n\u00e3o t\u00eam a ver com o payload, e sim com a qualidade do template. Tratamos deles em <a href=\"https:\/\/vectalk.com.br\/blog\/template-pausado-whatsapp\/\">template pausado ou desativado<\/a>. Para a lista geral de c\u00f3digos da API, veja <a href=\"https:\/\/vectalk.com.br\/blog\/erros-api-whatsapp\/\">erros da API do WhatsApp<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Como a resposta de erro chega<\/h2>\n\n\n\n<p>O erro pode chegar de dois jeitos. No caso mais comum, a chamada a <code>POST \/&lt;PHONE_NUMBER_ID&gt;\/messages<\/code> j\u00e1 volta com status HTTP de erro e um objeto <code>error<\/code> no corpo. O exemplo abaixo \u00e9 ilustrativo; os campos s\u00e3o os do formato de erro da Graph API:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"error\": {\n    \"message\": \"(#132000) ...\",\n    \"type\": \"OAuthException\",\n    \"code\": 132000,\n    \"error_data\": {\n      \"messaging_product\": \"whatsapp\",\n      \"details\": \"&lt;descri\u00e7\u00e3o do problema, com o componente e a contagem&gt;\"\n    },\n    \"fbtrace_id\": \"A1b2C3d4E5f6\"\n  }\n}<\/code><\/pre>\n\n\n\n<p>O campo que resolve o problema \u00e9 <code>error_data.details<\/code>. \u00c9 ali que a Meta descreve o problema com mais detalhe. Registre sempre o corpo inteiro da resposta de erro no log, n\u00e3o s\u00f3 o c\u00f3digo.<\/p>\n\n\n\n<p>O texto exato da mensagem e do <code>details<\/code> varia; use o <code>code<\/code> para a l\u00f3gica do seu sistema e o <code>details<\/code> para quem vai depurar. Em alguns casos a chamada \u00e9 aceita e a falha aparece depois, no webhook de status, com <code>status: \"failed\"<\/code> e o mesmo c\u00f3digo dentro de <code>errors<\/code>. O artigo sobre <a href=\"https:\/\/vectalk.com.br\/blog\/status-mensagem-webhook-whatsapp\/\">status de mensagem via webhook<\/a> mostra esse formato.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Erro 132000: par\u00e2metros a mais ou a menos<\/h2>\n\n\n\n<p>Pegue um template de utilidade aprovado com este corpo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"type\": \"BODY\",\n  \"text\": \"Ol\u00e1 {{1}}, seu pedido {{2}} saiu para entrega.\"\n}<\/code><\/pre>\n\n\n\n<p>S\u00e3o duas vari\u00e1veis no corpo. O payload abaixo manda s\u00f3 uma e recebe 132000:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"messaging_product\": \"whatsapp\",\n  \"to\": \"5511999999999\",\n  \"type\": \"template\",\n  \"template\": {\n    \"name\": \"pedido_em_rota\",\n    \"language\": { \"code\": \"pt_BR\" },\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          { \"type\": \"text\", \"text\": \"Maria\" }\n        ]\n      }\n    ]\n  }\n}<\/code><\/pre>\n\n\n\n<p>A vers\u00e3o correta tem um item para cada vari\u00e1vel, na ordem em que elas aparecem no texto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"messaging_product\": \"whatsapp\",\n  \"to\": \"5511999999999\",\n  \"type\": \"template\",\n  \"template\": {\n    \"name\": \"pedido_em_rota\",\n    \"language\": { \"code\": \"pt_BR\" },\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          { \"type\": \"text\", \"text\": \"Maria\" },\n          { \"type\": \"text\", \"text\": \"#4821\" }\n        ]\n      }\n    ]\n  }\n}<\/code><\/pre>\n\n\n\n<p>As causas de 132000 que mais vemos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Template editado depois que o c\u00f3digo foi escrito.<\/strong> Algu\u00e9m acrescentou <code>{{3}}<\/code> no texto, a Meta aprovou a nova vers\u00e3o e o sistema continua mandando dois valores.<\/li>\n\n\n<li><strong>Header ou bot\u00e3o esquecido.<\/strong> Se o cabe\u00e7alho tem vari\u00e1vel (<code>Pedido {{1}}<\/code>) ou o bot\u00e3o de URL tem sufixo din\u00e2mico, cada um precisa do pr\u00f3prio componente no payload. O cabe\u00e7alho de texto aceita no m\u00e1ximo uma vari\u00e1vel; o bot\u00e3o de URL tamb\u00e9m aceita uma, no fim da URL.<\/li>\n\n\n<li><strong>Valor vazio removido pelo c\u00f3digo.<\/strong> Algumas rotinas filtram par\u00e2metros com valor nulo antes de enviar. O resultado \u00e9 um item a menos. Troque o vazio por um texto padr\u00e3o em vez de remover o item.<\/li>\n\n\n<li><strong>Template com o mesmo nome em outro idioma.<\/strong> As vers\u00f5es <code>pt_BR<\/code> e <code>en_US<\/code> de um template podem ter quantidades diferentes de vari\u00e1veis. O payload precisa seguir a vers\u00e3o do idioma enviado.<\/li>\n\n<\/ul>\n\n\n\n<p>Exemplo com cabe\u00e7alho e bot\u00e3o de URL din\u00e2mico, todos os componentes presentes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"messaging_product\": \"whatsapp\",\n  \"to\": \"5511999999999\",\n  \"type\": \"template\",\n  \"template\": {\n    \"name\": \"pedido_em_rota_rastreio\",\n    \"language\": { \"code\": \"pt_BR\" },\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [ { \"type\": \"text\", \"text\": \"#4821\" } ]\n      },\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          { \"type\": \"text\", \"text\": \"Maria\" },\n          { \"type\": \"text\", \"text\": \"hoje at\u00e9 18h\" }\n        ]\n      },\n      {\n        \"type\": \"button\",\n        \"sub_type\": \"url\",\n        \"index\": \"0\",\n        \"parameters\": [ { \"type\": \"text\", \"text\": \"4821XYZ\" } ]\n      }\n    ]\n  }\n}<\/code><\/pre>\n\n\n\n<p>No bot\u00e3o, <code>index<\/code> \u00e9 a posi\u00e7\u00e3o do bot\u00e3o no template, come\u00e7ando em zero. A Meta pede que valores com caracteres especiais no sufixo da URL sejam codificados (percent-encoding) antes do envio; caso contr\u00e1rio, a URL gerada pode falhar na valida\u00e7\u00e3o.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Erro 132012: formato do par\u00e2metro errado<\/h2>\n\n\n\n<p>O 132012 aparece quando o valor existe, mas n\u00e3o tem o formato que o template definiu. Dois casos respondem pela maioria das ocorr\u00eancias.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Tipo de par\u00e2metro diferente do componente<\/h3>\n\n\n\n<p>Se o cabe\u00e7alho do template \u00e9 de imagem, o par\u00e2metro do header precisa ser do tipo <code>image<\/code>. Mandar texto ali d\u00e1 erro:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"type\": \"header\",\n  \"parameters\": [ { \"type\": \"text\", \"text\": \"https:\/\/exemplo.com\/banner.jpg\" } ]\n}<\/code><\/pre>\n\n\n\n<p>Correto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"type\": \"header\",\n  \"parameters\": [\n    { \"type\": \"image\", \"image\": { \"link\": \"https:\/\/exemplo.com\/banner.jpg\" } }\n  ]\n}<\/code><\/pre>\n\n\n\n<p>A mesma regra vale para cabe\u00e7alhos de v\u00eddeo (<code>video<\/code>), documento (<code>document<\/code>) e localiza\u00e7\u00e3o (<code>location<\/code>).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Par\u00e2metros nomeados x posicionais<\/h3>\n\n\n\n<p>Desde que a Meta passou a aceitar par\u00e2metros nomeados (<code>{{nome_cliente}}<\/code> em vez de <code>{{1}}<\/code>), surgiu outra fonte de erro. O formato \u00e9 definido na cria\u00e7\u00e3o do template pelo campo <code>parameter_format<\/code>, que pode ser <code>positional<\/code> (padr\u00e3o) ou <code>named<\/code>, segundo a <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/overview\" target=\"_blank\" rel=\"noreferrer noopener\">vis\u00e3o geral de templates<\/a>.<\/p>\n\n\n\n<p>Num template nomeado, cada par\u00e2metro enviado precisa do campo <code>parameter_name<\/code> igual ao nome da vari\u00e1vel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"type\": \"body\",\n  \"parameters\": [\n    { \"type\": \"text\", \"parameter_name\": \"nome_cliente\", \"text\": \"Maria\" },\n    { \"type\": \"text\", \"parameter_name\": \"numero_pedido\", \"text\": \"#4821\" }\n  ]\n}<\/code><\/pre>\n\n\n\n<p>Os erros t\u00edpicos aqui s\u00e3o mandar o template nomeado sem <code>parameter_name<\/code>, mandar um nome que n\u00e3o existe (<code>nome<\/code> em vez de <code>nome_cliente<\/code>) ou usar letras mai\u00fasculas, j\u00e1 que a Meta exige nomes em min\u00fasculas com sublinhado. Nos templates nomeados, a ordem dos itens n\u00e3o importa; nos posicionais, importa e muito.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Os vizinhos: 132001, 132005 e 132007<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">132001: template n\u00e3o existe ou n\u00e3o est\u00e1 aprovado nesse idioma<\/h3>\n\n\n\n<p>Confira tr\u00eas coisas, nesta ordem:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>O nome exato.<\/strong> Nomes de template usam s\u00f3 min\u00fasculas, n\u00fameros e sublinhado. <code>Pedido_em_rota<\/code> e <code>pedido_em_rota<\/code> s\u00e3o templates diferentes.<\/li>\n\n\n<li><strong>O c\u00f3digo do idioma.<\/strong> O <code>language.code<\/code> precisa ser exatamente o que foi aprovado. Portugu\u00eas do Brasil \u00e9 <code>pt_BR<\/code>; <code>pt_PT<\/code> \u00e9 portugu\u00eas de Portugal.<\/li>\n\n\n<li><strong>O status.<\/strong> Template <code>PENDING<\/code>, <code>REJECTED<\/code> ou rec\u00e9m-criado ainda n\u00e3o pode ser enviado.<\/li>\n\n<\/ol>\n\n\n\n<p>O motivo de reprova\u00e7\u00e3o e como corrigir est\u00e3o em <a href=\"https:\/\/vectalk.com.br\/blog\/template-reprovado-whatsapp\/\">template reprovado no WhatsApp<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">132005: texto traduzido longo demais<\/h3>\n\n\n\n<p>A tabela da Meta orienta conferir no WhatsApp Manager se o template foi traduzido e aponta para a p\u00e1gina de qualidade de templates. Na pr\u00e1tica, abra a vers\u00e3o do idioma que voc\u00ea est\u00e1 enviando e confira se ela existe, est\u00e1 completa e respeita o limite de 1.024 caracteres do corpo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">132007: conte\u00fado viola a pol\u00edtica<\/h3>\n\n\n\n<p>Aqui n\u00e3o adianta mexer no payload. O texto do template ou o conte\u00fado enviado nas vari\u00e1veis fere a <a href=\"https:\/\/business.whatsapp.com\/policy\" target=\"_blank\" rel=\"noreferrer noopener\">Pol\u00edtica de Mensagens Comerciais<\/a>. Revise o template e o que est\u00e1 entrando nas vari\u00e1veis. Usar uma vari\u00e1vel para enfiar texto de marketing num template de utilidade \u00e9 um caminho conhecido para problemas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Valida\u00e7\u00e3o antes do envio<\/h2>\n\n\n\n<p>A forma mais segura de evitar 132000 e 132012 \u00e9 parar de montar o payload na m\u00e3o. Busque a estrutura do template na API, guarde em cache e compare antes de enviar. A listagem de templates da conta de mensagens aceita filtro de campos, como mostra a <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/template-management\" target=\"_blank\" rel=\"noreferrer noopener\">documenta\u00e7\u00e3o de gerenciamento de templates<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-bash\">curl \"https:\/\/graph.facebook.com\/v26.0\/&lt;WABA_ID&gt;\/message_templates?fields=name,language,status,components&amp;name=pedido_em_rota\" \\\n  -H \"Authorization: Bearer &lt;ACCESS_TOKEN&gt;\"<\/code><\/pre>\n\n\n\n<p>Com os componentes em m\u00e3os, uma fun\u00e7\u00e3o simples conta as vari\u00e1veis de cada parte e compara com o que voc\u00ea vai mandar. Exemplo em JavaScript:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-js\">const VAR = \/\\{\\{\\s*([a-z0-9_]+)\\s*\\}\\}\/g;\n\nfunction expectedParams(template) {\n  const exp = {};\n  for (const c of template.components) {\n    const type = c.type.toLowerCase();\n    if (type === \"header\" &amp;&amp; c.format &amp;&amp; c.format !== \"TEXT\") {\n      exp.header = { count: 1, media: c.format.toLowerCase() };\n    } else if ((type === \"header\" || type === \"body\") &amp;&amp; c.text) {\n      const names = [...c.text.matchAll(VAR)].map((m) =&gt; m[1]);\n      if (names.length) exp[type] = { count: names.length, names };\n    } else if (type === \"buttons\") {\n      c.buttons.forEach((b, i) =&gt; {\n        if (b.type === \"URL\" &amp;&amp; VAR.test(b.url)) exp[`button_${i}`] = { count: 1 };\n        VAR.lastIndex = 0;\n      });\n    }\n  }\n  return exp;\n}\n\nfunction validate(template, components) {\n  const exp = expectedParams(template);\n  const named = String(template.parameter_format).toLowerCase() === \"named\";\n  const errors = [];\n  for (const [key, rule] of Object.entries(exp)) {\n    const comp = components.find((c) =&gt;\n      key.startsWith(\"button_\")\n        ? c.type === \"button\" &amp;&amp; String(c.index) === key.split(\"_\")[1]\n        : c.type === key\n    );\n    const params = comp?.parameters ?? [];\n    if (params.length !== rule.count) {\n      errors.push(`${key}: esperado ${rule.count}, enviado ${params.length}`);\n    }\n    if (rule.media &amp;&amp; params[0]?.type !== rule.media) {\n      errors.push(`${key}: esperado par\u00e2metro do tipo ${rule.media}`);\n    }\n    if (named &amp;&amp; rule.names) {\n      for (const p of params) {\n        if (!rule.names.includes(p.parameter_name)) {\n          errors.push(`${key}: parameter_name inv\u00e1lido \"${p.parameter_name}\"`);\n        }\n      }\n    }\n    for (const p of params) {\n      if (p.type === \"text\" &amp;&amp; !String(p.text ?? \"\").trim()) {\n        errors.push(`${key}: valor de texto vazio`);\n      }\n    }\n  }\n  return errors;\n}<\/code><\/pre>\n\n\n\n<p>Se <code>validate<\/code> devolver qualquer erro, n\u00e3o envie: registre e avise quem cuida do template. Tr\u00eas h\u00e1bitos completam a prote\u00e7\u00e3o:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Atualize o cache quando o template muda.<\/strong> O webhook <code>message_template_status_update<\/code> avisa mudan\u00e7as de status; use o evento para recarregar a estrutura.<\/li>\n\n\n<li><strong>Versione pelo nome.<\/strong> Em vez de editar um template em produ\u00e7\u00e3o, crie <code>pedido_em_rota_v2<\/code> e troque o c\u00f3digo e o template juntos.<\/li>\n\n\n<li><strong>Teste com um n\u00famero interno<\/strong> a cada template novo, antes de ligar o envio autom\u00e1tico.<\/li>\n\n<\/ul>\n\n\n\n<p>Para montar payloads com m\u00eddia, bot\u00f5es e carrossel do zero, veja <a href=\"https:\/\/vectalk.com.br\/blog\/enviar-template-api-whatsapp\/\">como enviar template pela API com JSON completo<\/a>. Para criar e editar templates por c\u00f3digo, veja <a href=\"https:\/\/vectalk.com.br\/blog\/criar-template-via-api-whatsapp\/\">criar template via API<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Como fazer com a Vectalk<\/h2>\n\n\n\n<p>A Vectalk \u00e9 um proxy da <a href=\"https:\/\/vectalk.com.br\/blog\/api-oficial-do-whatsapp\/\">API oficial do WhatsApp<\/a>: o payload de template \u00e9 o mesmo da Meta, e os c\u00f3digos de erro tamb\u00e9m. Voc\u00ea envia para <code>POST https:\/\/apis.vectalk.com.br\/api\/messages<\/code> e, com um token de inst\u00e2ncia, o <code>phone_number_id<\/code> \u00e9 resolvido sozinho. Para validar antes do envio, a listagem <code>GET https:\/\/apis.vectalk.com.br\/api\/templates?name=pedido_em_rota<\/code> devolve os componentes do template, e a mesma fun\u00e7\u00e3o acima funciona sobre essa resposta.<\/p>\n\n\n\n<p>No painel, a \u00e1rea de templates mostra o texto aprovado de cada modelo, e os logs mostram a resposta de erro completa de cada envio, o que ajuda a achar o <code>details<\/code> sem abrir o c\u00f3digo. A refer\u00eancia est\u00e1 em <a href=\"https:\/\/docs.vectalk.com.br\/api-reference\/messages\/send-template\">docs.vectalk.com.br<\/a>, e o cadastro em <a href=\"https:\/\/apps.vectalk.com.br\/register\">apps.vectalk.com.br\/register<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Perguntas frequentes<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Mensagem com erro 132000 \u00e9 cobrada?<\/h3>\n\n\n\n<p>A Meta cobra por mensagem entregue. Uma mensagem recusada com 132000 n\u00e3o chega ao destinat\u00e1rio, ent\u00e3o n\u00e3o gera cobran\u00e7a de template.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">O 132000 pode aparecer de repente, sem eu mudar o c\u00f3digo?<\/h3>\n\n\n\n<p>Sim. O caso cl\u00e1ssico \u00e9 algu\u00e9m editar o template no WhatsApp Manager e acrescentar uma vari\u00e1vel. Depois que a nova vers\u00e3o \u00e9 aprovada, o payload antigo passa a ter par\u00e2metros de menos. Por isso vale buscar a estrutura do template pela API em vez de fix\u00e1-la no c\u00f3digo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Qual a diferen\u00e7a entre 132000 e 132012?<\/h3>\n\n\n\n<p>O 132000 \u00e9 sobre quantidade: o n\u00famero de par\u00e2metros enviados \u00e9 diferente do n\u00famero de vari\u00e1veis. O 132012 \u00e9 sobre formato: a quantidade bate, mas algum valor n\u00e3o est\u00e1 no formato definido no template, como texto num cabe\u00e7alho de imagem ou um <code>parameter_name<\/code> que n\u00e3o existe.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Posso mandar um texto vazio numa vari\u00e1vel?<\/h3>\n\n\n\n<p>Evite. Um valor vazio costuma ser removido por bibliotecas ou recusado pela API, e acaba virando 132000 ou outro erro de valida\u00e7\u00e3o. Use um texto padr\u00e3o, como &#8220;cliente&#8221;, quando o dado n\u00e3o existir.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">O erro 132001 aparece mesmo com o template aprovado. Por qu\u00ea?<\/h3>\n\n\n\n<p>Quase sempre \u00e9 o idioma. O template pode estar aprovado em <code>pt_BR<\/code> e o payload pedir <code>pt_PT<\/code> ou <code>en_US<\/code>. Tamb\u00e9m vale conferir se o template pertence \u00e0 mesma conta de mensagens do n\u00famero que est\u00e1 enviando.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Fontes oficiais consultadas em 29\/10\/2026:<\/strong> <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/support\/error-codes\" target=\"_blank\" rel=\"noreferrer noopener\">C\u00f3digos de erro (Meta)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/overview\" target=\"_blank\" rel=\"noreferrer noopener\">Template fundamentals: par\u00e2metros (Meta)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/components\" target=\"_blank\" rel=\"noreferrer noopener\">Componentes de template (Meta)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/template-management\" target=\"_blank\" rel=\"noreferrer noopener\">Gerenciamento de templates (Meta)<\/a>, <a href=\"https:\/\/business.whatsapp.com\/policy\" target=\"_blank\" rel=\"noreferrer noopener\">Pol\u00edtica de Mensagens Comerciais<\/a>, <a href=\"https:\/\/docs.vectalk.com.br\/api-reference\/messages\/send-template\">Vectalk: enviar template<\/a>, <a href=\"https:\/\/docs.vectalk.com.br\/api-reference\/templates\/list\">Vectalk: listar templates<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O que significam os erros 132000, 132012, 132001, 132005 e 132007 da API do WhatsApp, com exemplos de payload errado e certo e uma valida\u00e7\u00e3o antes do envio.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[8],"tags":[],"class_list":["post-789","post","type-post","status-publish","format-standard","hentry","category-uncategorized-pt"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Erro 132000 e 132012 no WhatsApp: como corrigir | Vectalk<\/title>\n<meta name=\"description\" content=\"Erro 132000 no WhatsApp: o n\u00famero de par\u00e2metros n\u00e3o bate com o template. Veja tamb\u00e9m 132012, 132001, 132005 e 132007, com payload errado x certo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vectalk.com.br\/blog\/erro-132000-template-whatsapp\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Erro 132000 e 132012 no WhatsApp: como corrigir | Vectalk\" \/>\n<meta property=\"og:description\" content=\"Erro 132000 no WhatsApp: o n\u00famero de par\u00e2metros n\u00e3o bate com o template. Veja tamb\u00e9m 132012, 132001, 132005 e 132007, com payload errado x certo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vectalk.com.br\/blog\/erro-132000-template-whatsapp\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Vectalk\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-29T13:29:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-29T13:29:10+00:00\" \/>\n<meta name=\"author\" content=\"wanderleyfcunha\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"wanderleyfcunha\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/erro-132000-template-whatsapp\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/erro-132000-template-whatsapp\\\/\"},\"author\":{\"name\":\"wanderleyfcunha\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/ff36ecd9d8257856f227f8e5d639db2b\"},\"headline\":\"Erros 132000 e 132012 na API do WhatsApp: par\u00e2metros do template n\u00e3o batem\",\"datePublished\":\"2026-10-29T13:29:03+00:00\",\"dateModified\":\"2026-10-29T13:29:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/erro-132000-template-whatsapp\\\/\"},\"wordCount\":1777,\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/erro-132000-template-whatsapp\\\/\",\"url\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/erro-132000-template-whatsapp\\\/\",\"name\":\"Erro 132000 e 132012 no WhatsApp: como corrigir | Vectalk\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#website\"},\"datePublished\":\"2026-10-29T13:29:03+00:00\",\"dateModified\":\"2026-10-29T13:29:10+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/ff36ecd9d8257856f227f8e5d639db2b\"},\"description\":\"Erro 132000 no WhatsApp: o n\u00famero de par\u00e2metros n\u00e3o bate com o template. Veja tamb\u00e9m 132012, 132001, 132005 e 132007, com payload errado x certo.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/erro-132000-template-whatsapp\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/erro-132000-template-whatsapp\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/erro-132000-template-whatsapp\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Erros 132000 e 132012 na API do WhatsApp: par\u00e2metros do template n\u00e3o batem\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/\",\"name\":\"Blog Vectalk\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/ff36ecd9d8257856f227f8e5d639db2b\",\"name\":\"wanderleyfcunha\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g\",\"caption\":\"wanderleyfcunha\"},\"sameAs\":[\"https:\\\/\\\/vectalk.com.br\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Erro 132000 e 132012 no WhatsApp: como corrigir | Vectalk","description":"Erro 132000 no WhatsApp: o n\u00famero de par\u00e2metros n\u00e3o bate com o template. Veja tamb\u00e9m 132012, 132001, 132005 e 132007, com payload errado x certo.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vectalk.com.br\/blog\/erro-132000-template-whatsapp\/","og_locale":"en_US","og_type":"article","og_title":"Erro 132000 e 132012 no WhatsApp: como corrigir | Vectalk","og_description":"Erro 132000 no WhatsApp: o n\u00famero de par\u00e2metros n\u00e3o bate com o template. Veja tamb\u00e9m 132012, 132001, 132005 e 132007, com payload errado x certo.","og_url":"https:\/\/vectalk.com.br\/blog\/erro-132000-template-whatsapp\/","og_site_name":"Blog Vectalk","article_published_time":"2026-10-29T13:29:03+00:00","article_modified_time":"2026-10-29T13:29:10+00:00","author":"wanderleyfcunha","twitter_card":"summary_large_image","twitter_misc":{"Written by":"wanderleyfcunha","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vectalk.com.br\/blog\/erro-132000-template-whatsapp\/#article","isPartOf":{"@id":"https:\/\/vectalk.com.br\/blog\/erro-132000-template-whatsapp\/"},"author":{"name":"wanderleyfcunha","@id":"https:\/\/vectalk.com.br\/blog\/#\/schema\/person\/ff36ecd9d8257856f227f8e5d639db2b"},"headline":"Erros 132000 e 132012 na API do WhatsApp: par\u00e2metros do template n\u00e3o batem","datePublished":"2026-10-29T13:29:03+00:00","dateModified":"2026-10-29T13:29:10+00:00","mainEntityOfPage":{"@id":"https:\/\/vectalk.com.br\/blog\/erro-132000-template-whatsapp\/"},"wordCount":1777,"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/vectalk.com.br\/blog\/erro-132000-template-whatsapp\/","url":"https:\/\/vectalk.com.br\/blog\/erro-132000-template-whatsapp\/","name":"Erro 132000 e 132012 no WhatsApp: como corrigir | Vectalk","isPartOf":{"@id":"https:\/\/vectalk.com.br\/blog\/#website"},"datePublished":"2026-10-29T13:29:03+00:00","dateModified":"2026-10-29T13:29:10+00:00","author":{"@id":"https:\/\/vectalk.com.br\/blog\/#\/schema\/person\/ff36ecd9d8257856f227f8e5d639db2b"},"description":"Erro 132000 no WhatsApp: o n\u00famero de par\u00e2metros n\u00e3o bate com o template. Veja tamb\u00e9m 132012, 132001, 132005 e 132007, com payload errado x certo.","breadcrumb":{"@id":"https:\/\/vectalk.com.br\/blog\/erro-132000-template-whatsapp\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vectalk.com.br\/blog\/erro-132000-template-whatsapp\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/vectalk.com.br\/blog\/erro-132000-template-whatsapp\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vectalk.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Erros 132000 e 132012 na API do WhatsApp: par\u00e2metros do template n\u00e3o batem"}]},{"@type":"WebSite","@id":"https:\/\/vectalk.com.br\/blog\/#website","url":"https:\/\/vectalk.com.br\/blog\/","name":"Blog Vectalk","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vectalk.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/vectalk.com.br\/blog\/#\/schema\/person\/ff36ecd9d8257856f227f8e5d639db2b","name":"wanderleyfcunha","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g","caption":"wanderleyfcunha"},"sameAs":["https:\/\/vectalk.com.br\/blog"]}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/posts\/789","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/comments?post=789"}],"version-history":[{"count":1,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/posts\/789\/revisions"}],"predecessor-version":[{"id":792,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/posts\/789\/revisions\/792"}],"wp:attachment":[{"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/media?parent=789"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/categories?post=789"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/tags?post=789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}