{"id":742,"date":"2026-10-29T13:21:12","date_gmt":"2026-10-29T13:21:12","guid":{"rendered":"https:\/\/vectalk.com.br\/blog\/send-whatsapp-template-message-api\/"},"modified":"2026-10-29T13:21:20","modified_gmt":"2026-10-29T13:21:20","slug":"send-whatsapp-template-message-api","status":"publish","type":"post","link":"https:\/\/vectalk.com.br\/blog\/en\/send-whatsapp-template-message-api\/","title":{"rendered":"How to send a WhatsApp template message via API: variables, media headers and buttons (full JSON)"},"content":{"rendered":"\n<p><em>Updated on October 29, 2026<\/em><\/p>\n\n\n\n<p>To send a template message with the WhatsApp Business API, make a <code>POST<\/code> to <code>\/{phone-number-id}\/messages<\/code> with <code>\"type\": \"template\"<\/code>, the exact <code>name<\/code> of an approved template, the <code>language.code<\/code> it was created in, and a <code>components<\/code> array holding the values for the header, body and button variables. You never send the template&#8217;s fixed text: you only send the parameters, and they must match the approved template in count, format and order.<\/p>\n\n\n\n<p>This guide gives you a ready-to-use payload for every case: text-only templates with positional and named variables, image, video and document headers (by <code>link<\/code> and by <code>id<\/code>), dynamic URL buttons, quick replies with a custom <code>payload<\/code>, coupon codes, and a combined example. At the end you&#8217;ll find the most common parameter errors and how to send the same request through Vectalk.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Anatomy of a template send request<\/h2>\n\n\n\n<p>Template messages use the same <a href=\"https:\/\/vectalk.com.br\/blog\/en\/official-whatsapp-api\/\">Cloud API<\/a> endpoint as every other message:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-bash\">POST https:\/\/graph.facebook.com\/v26.0\/{PHONE_NUMBER_ID}\/messages\nAuthorization: Bearer {ACCESS_TOKEN}\nContent-Type: application\/json<\/code><\/pre>\n\n\n\n<p>The body always has the same shell:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"messaging_product\": \"whatsapp\",\n  \"recipient_type\": \"individual\",\n  \"to\": \"16505551234\",\n  \"type\": \"template\",\n  \"template\": {\n    \"name\": \"template_name\",\n    \"language\": { \"code\": \"en_US\" },\n    \"components\": []\n  }\n}<\/code><\/pre>\n\n\n\n<p>Inside <code>components<\/code>, each object has a <code>type<\/code> that points to one part of the template:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Component <code>type<\/code><\/th><th>When to include it<\/th><th>What goes in <code>parameters<\/code><\/th><\/tr><\/thead><tbody><tr><td><code>header<\/code><\/td><td>Header with a text variable or media<\/td><td><code>text<\/code>, <code>image<\/code>, <code>video<\/code>, <code>document<\/code> or <code>location<\/code><\/td><\/tr><tr><td><code>body<\/code><\/td><td>Body with variables<\/td><td><code>text<\/code> (also <code>currency<\/code> and <code>date_time<\/code>)<\/td><\/tr><tr><td><code>button<\/code><\/td><td>Button with a dynamic value<\/td><td>Depends on <code>sub_type<\/code>: <code>url<\/code>, <code>quick_reply<\/code>, <code>copy_code<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>If the template has no variables at all, you can leave <code>components<\/code> out. The footer never appears in the send request because it doesn&#8217;t support variables. If you haven&#8217;t sent any message through the API yet, start with <a href=\"https:\/\/vectalk.com.br\/blog\/en\/send-whatsapp-message-api-examples\/\">how to send a WhatsApp message via API with cURL, Node.js and Python<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Text template with positional variables<\/h2>\n\n\n\n<p>This is the default format: unless a different format was chosen at creation, the template uses positional variables, <code>{{1}}<\/code>, <code>{{2}}<\/code> and so on. According to <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/overview\" target=\"_blank\" rel=\"noreferrer noopener\">Meta&#8217;s template documentation<\/a>, the values must be sent <strong>in the same order<\/strong> the placeholders appear in the text.<\/p>\n\n\n\n<p>Approved template (body):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Hi {{1}}! Your order {{2}} is confirmed and will arrive in {{3}} business days.<\/code><\/pre>\n\n\n\n<p>Send request:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-bash\">curl -X POST \"https:\/\/graph.facebook.com\/v26.0\/$PHONE_NUMBER_ID\/messages\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\/json\" \\\n  -d '{\n    \"messaging_product\": \"whatsapp\",\n    \"recipient_type\": \"individual\",\n    \"to\": \"16505551234\",\n    \"type\": \"template\",\n    \"template\": {\n      \"name\": \"order_confirmed\",\n      \"language\": { \"code\": \"en_US\" },\n      \"components\": [\n        {\n          \"type\": \"body\",\n          \"parameters\": [\n            { \"type\": \"text\", \"text\": \"Jessica\" },\n            { \"type\": \"text\", \"text\": \"#48213\" },\n            { \"type\": \"text\", \"text\": \"3\" }\n          ]\n        }\n      ]\n    }\n  }'<\/code><\/pre>\n\n\n\n<p>Three placeholders, three <code>text<\/code> objects, in order. One missing, one extra or the wrong type, and the send fails (see the error table below).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Template with named variables (<code>parameter_name<\/code>)<\/h2>\n\n\n\n<p>At creation, a template can declare <code>\"parameter_format\": \"named\"<\/code>. Variables then become names like <code>{{first_name}}<\/code>, which must be unique and use only lowercase letters and underscores. When sending, each parameter carries a <code>parameter_name<\/code> and, according to Meta, <strong>order no longer matters<\/strong>.<\/p>\n\n\n\n<p>Approved template (body):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Thank you, {{first_name}}! Your order number is {{order_number}}.<\/code><\/pre>\n\n\n\n<p>Send request:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"messaging_product\": \"whatsapp\",\n  \"recipient_type\": \"individual\",\n  \"to\": \"16505551234\",\n  \"type\": \"template\",\n  \"template\": {\n    \"name\": \"order_confirmation\",\n    \"language\": { \"code\": \"en_US\" },\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          { \"type\": \"text\", \"parameter_name\": \"order_number\", \"text\": \"SKBUP2-4CPIG9\" },\n          { \"type\": \"text\", \"parameter_name\": \"first_name\", \"text\": \"Jessica\" }\n        ]\n      }\n    ]\n  }\n}<\/code><\/pre>\n\n\n\n<p>Named variables make your code easier to read and prevent the classic bug of swapping two values. The format is set at creation, not at send time: sending <code>parameter_name<\/code> to a positional template (or the other way around) is a parameter error. How to set the format when creating the template is covered in <a href=\"https:\/\/vectalk.com.br\/blog\/en\/create-whatsapp-template-api\/\">how to create, edit and delete templates via the API<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Currency and date variables<\/h3>\n\n\n\n<p>Besides <code>text<\/code>, the body accepts <code>currency<\/code> parameters (with <code>fallback_value<\/code>, <code>code<\/code> and <code>amount_1000<\/code>, the amount multiplied by 1,000) and <code>date_time<\/code> parameters (with <code>fallback_value<\/code>), as shown on the <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/template-media\" target=\"_blank\" rel=\"noreferrer noopener\">template media page<\/a>. Sending the value already formatted as <code>text<\/code> also works.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Media headers: image, video or document<\/h2>\n\n\n\n<p>If the template was approved with a media header, the send request <strong>must<\/strong> include the media in a <code>header<\/code> component. The sample image you uploaded at creation is only used for review; it is never delivered to the customer. The parameter <code>type<\/code> is <code>image<\/code>, <code>video<\/code> or <code>document<\/code>, and the object with the same name accepts either <code>link<\/code> or <code>id<\/code>:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Option<\/th><th>How it works<\/th><th>When to use it<\/th><\/tr><\/thead><tbody><tr><td><code>link<\/code><\/td><td>Public HTTPS URL of the file on your server<\/td><td>Files that change per message (invoices, tickets)<\/td><\/tr><tr><td><code>id<\/code><\/td><td>Media ID returned when you upload to Meta&#8217;s servers<\/td><td>The same media for many recipients (campaigns)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Meta recommends <code>id<\/code> to reduce errors and requests to your server, and warns that a <code>link<\/code> must be on a publicly accessible server or the message will fail. When you use <code>link<\/code>, the Cloud API caches the file for 10 minutes and reuses it if the same URL shows up again in that window; to force a fresh download, append a random query string to the URL, per the <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/messages\/send-messages\" target=\"_blank\" rel=\"noreferrer noopener\">send messages documentation<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Image by link<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"messaging_product\": \"whatsapp\",\n  \"to\": \"16505551234\",\n  \"type\": \"template\",\n  \"template\": {\n    \"name\": \"promo_image\",\n    \"language\": { \"code\": \"en_US\" },\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          { \"type\": \"image\", \"image\": { \"link\": \"https:\/\/cdn.example.com\/promo\/october.jpg\" } }\n        ]\n      },\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          { \"type\": \"text\", \"text\": \"20%\" }\n        ]\n      }\n    ]\n  }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Document (PDF) by media ID<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"messaging_product\": \"whatsapp\",\n  \"to\": \"16505551234\",\n  \"type\": \"template\",\n  \"template\": {\n    \"name\": \"invoice_ready\",\n    \"language\": { \"code\": \"en_US\" },\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"document\",\n            \"document\": { \"id\": \"1013859600285441\", \"filename\": \"invoice-october.pdf\" }\n          }\n        ]\n      },\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          { \"type\": \"text\", \"text\": \"Carlos\" },\n          { \"type\": \"text\", \"text\": \"11\/10\/2026\" }\n        ]\n      }\n    ]\n  }\n}<\/code><\/pre>\n\n\n\n<p><code>filename<\/code> is optional and comes from the document object used in <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/messages\/document-messages\" target=\"_blank\" rel=\"noreferrer noopener\">document messages<\/a>: the WhatsApp app uses the extension to show the right file icon. In Brazil, this pattern is common for sending a <em>boleto<\/em> (a bank payment slip) as a PDF header.<\/p>\n\n\n\n<p>For video, the structure is the same: <code>\"type\": \"video\"<\/code> and a <code>video<\/code> object with <code>link<\/code> or <code>id<\/code>.<\/p>\n\n\n\n<p>To get a media ID, upload the file with <code>POST \/{PHONE_NUMBER_ID}\/media<\/code>. Size limits, supported formats and the upload walkthrough are in <a href=\"https:\/\/vectalk.com.br\/blog\/en\/send-media-whatsapp-api\/\">how to send images, PDFs, audio and video via the WhatsApp API<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. Dynamic URL button<\/h2>\n\n\n\n<p>A URL button can have <strong>one<\/strong> variable, always at the end of the URL. At creation, something like <code>https:\/\/shop.example.com\/order\/{{1}}<\/code>. At send time, you only pass the suffix:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"messaging_product\": \"whatsapp\",\n  \"to\": \"16505551234\",\n  \"type\": \"template\",\n  \"template\": {\n    \"name\": \"order_tracking\",\n    \"language\": { \"code\": \"en_US\" },\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          { \"type\": \"text\", \"text\": \"#48213\" }\n        ]\n      },\n      {\n        \"type\": \"button\",\n        \"sub_type\": \"url\",\n        \"index\": \"0\",\n        \"parameters\": [\n          { \"type\": \"text\", \"text\": \"48213?utm_source=whatsapp\" }\n        ]\n      }\n    ]\n  }\n}<\/code><\/pre>\n\n\n\n<p>Three rules that break a lot of integrations:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>index<\/code> is the button&#8217;s position in the template<\/strong>, starting at 0. If the URL button is the second approved button, <code>index<\/code> is <code>1<\/code>. Meta explains that when buttons use variables, their type and order must match the template; a wrong index returns an error like &#8220;Parameter value for URL was expected but was not found&#8221;.<\/li>\n\n\n<li><strong>Percent-encode special characters<\/strong> before sending. The <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/components\" target=\"_blank\" rel=\"noreferrer noopener\">components page<\/a> lists space (<code>%20<\/code>), colon (<code>%3A<\/code>), pipe (<code>%7C<\/code>) and accented letters: <code>Gon\u00e7alves<\/code> becomes <code>Gon%C3%A7alves<\/code>. Unencoded values can make the URL fail validation and the send fail.<\/li>\n\n\n<li><strong>A URL button without a variable is not part of the request.<\/strong> Only include a <code>button<\/code> component if that button has a dynamic part.<\/li>\n\n<\/ul>\n\n\n\n<p>Meta&#8217;s own examples sometimes use <code>index<\/code> as a string (<code>\"0\"<\/code>) and sometimes as a number (<code>0<\/code>). Pick one and keep it consistent in your code. To track clicks in GA4 with UTM parameters in that suffix, see the guide on <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-template-utm-tracking\/\">dynamic URL buttons with UTM<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Quick reply with a custom payload<\/h2>\n\n\n\n<p>Quick reply buttons are defined at creation with fixed label text (up to 25 characters) and need nothing at send time. What you can send is your own <strong>payload<\/strong>, which comes back in the webhook when the customer taps the button. That tells you exactly which campaign, order or offer triggered the reply.<\/p>\n\n\n\n<p>The syntax appears in Meta&#8217;s <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/marketing-templates\/media-card-carousel-templates\" target=\"_blank\" rel=\"noreferrer noopener\">carousel template documentation<\/a>, which describes <code>payload<\/code> as optional and delivered in <code>messages.button.payload<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"messaging_product\": \"whatsapp\",\n  \"to\": \"16505551234\",\n  \"type\": \"template\",\n  \"template\": {\n    \"name\": \"appointment_reminder\",\n    \"language\": { \"code\": \"en_US\" },\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          { \"type\": \"text\", \"text\": \"Anna\" },\n          { \"type\": \"text\", \"text\": \"Nov 5 at 2 pm\" }\n        ]\n      },\n      {\n        \"type\": \"button\",\n        \"sub_type\": \"quick_reply\",\n        \"index\": 0,\n        \"parameters\": [\n          { \"type\": \"payload\", \"payload\": \"confirm:appt:98765\" }\n        ]\n      },\n      {\n        \"type\": \"button\",\n        \"sub_type\": \"quick_reply\",\n        \"index\": 1,\n        \"parameters\": [\n          { \"type\": \"payload\", \"payload\": \"reschedule:appt:98765\" }\n        ]\n      }\n    ]\n  }\n}<\/code><\/pre>\n\n\n\n<p>When the customer taps &#8220;Confirm&#8221;, your webhook receives a message with <code>\"type\": \"button\"<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"context\": { \"from\": \"15550783881\", \"id\": \"wamid.HBgLNTUx...\" },\n  \"from\": \"16505551234\",\n  \"id\": \"wamid.HBgLNTUy...\",\n  \"timestamp\": \"1761750000\",\n  \"type\": \"button\",\n  \"button\": { \"payload\": \"confirm:appt:98765\", \"text\": \"Confirm\" }\n}<\/code><\/pre>\n\n\n\n<p><code>context.id<\/code> is the <code>wamid<\/code> of the template you sent, and <code>button.payload<\/code> carries your key. In the <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/webhooks\/reference\/messages\/button\" target=\"_blank\" rel=\"noreferrer noopener\">button webhook reference<\/a> example, with no custom payload, <code>payload<\/code> and <code>text<\/code> carry the same button label. Remember that, at creation, quick reply buttons must be grouped together (all before or all after the other button types), and a template supports up to 10 of them.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Coupon code (copy_code)<\/h2>\n\n\n\n<p>Marketing templates can include a &#8220;copy code&#8221; button that copies a string of up to 20 characters to the phone&#8217;s clipboard. At send time, the button uses <code>sub_type: \"copy_code\"<\/code> and a <code>coupon_code<\/code> parameter, per the <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/marketing-templates\/coupon-templates\" target=\"_blank\" rel=\"noreferrer noopener\">coupon templates page<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"messaging_product\": \"whatsapp\",\n  \"to\": \"16505551234\",\n  \"type\": \"template\",\n  \"template\": {\n    \"name\": \"black_friday_coupon\",\n    \"language\": { \"code\": \"en_US\" },\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          { \"type\": \"text\", \"parameter_name\": \"coupon_code\", \"text\": \"BLACK25\" },\n          { \"type\": \"text\", \"parameter_name\": \"discount\", \"text\": \"25%\" }\n        ]\n      },\n      {\n        \"type\": \"button\",\n        \"sub_type\": \"copy_code\",\n        \"index\": 0,\n        \"parameters\": [\n          { \"type\": \"coupon_code\", \"coupon_code\": \"BLACK25\" }\n        ]\n      }\n    ]\n  }\n}<\/code><\/pre>\n\n\n\n<p>As on Meta&#8217;s page, the example uses a template with named body variables; for a positional template, drop <code>parameter_name<\/code>. Notice the code appears twice: once in the body (for the customer to read) and once in the button (to copy). They are independent fields; if you generate unique coupons per customer, fill both with the same value. A template supports one copy code button.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. Combined example: image, named variables, URL and quick reply<\/h2>\n\n\n\n<p>Real marketing templates usually combine several pieces. Assume an approved template with an image header, the body <code>Hi {{first_name}}, the {{collection}} collection is here!<\/code>, button 0 as a dynamic URL and button 1 as a quick reply &#8220;Stop promotions&#8221;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-bash\">curl -X POST \"https:\/\/graph.facebook.com\/v26.0\/$PHONE_NUMBER_ID\/messages\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\/json\" \\\n  -d '{\n    \"messaging_product\": \"whatsapp\",\n    \"recipient_type\": \"individual\",\n    \"to\": \"16505551234\",\n    \"type\": \"template\",\n    \"template\": {\n      \"name\": \"new_collection\",\n      \"language\": { \"code\": \"en_US\" },\n      \"components\": [\n        {\n          \"type\": \"header\",\n          \"parameters\": [\n            { \"type\": \"image\", \"image\": { \"id\": \"1339522734477770\" } }\n          ]\n        },\n        {\n          \"type\": \"body\",\n          \"parameters\": [\n            { \"type\": \"text\", \"parameter_name\": \"first_name\", \"text\": \"Bruna\" },\n            { \"type\": \"text\", \"parameter_name\": \"collection\", \"text\": \"Summer 2027\" }\n          ]\n        },\n        {\n          \"type\": \"button\",\n          \"sub_type\": \"url\",\n          \"index\": \"0\",\n          \"parameters\": [\n            { \"type\": \"text\", \"parameter_name\": \"slug\", \"text\": \"summer-2027\" }\n          ]\n        },\n        {\n          \"type\": \"button\",\n          \"sub_type\": \"quick_reply\",\n          \"index\": \"1\",\n          \"parameters\": [\n            { \"type\": \"payload\", \"payload\": \"optout:summer_campaign\" }\n          ]\n        }\n      ]\n    }\n  }'<\/code><\/pre>\n\n\n\n<p>The <code>parameter_name<\/code> on the URL button only applies if the template is named and the URL uses <code>{{slug}}<\/code>; for a positional template, drop that key. For cards with an image and a button per card, the structure changes (a <code>carousel<\/code> component), covered in the <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-carousel-template\/\">WhatsApp carousel template guide<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The <code>language<\/code> field<\/h2>\n\n\n\n<p><code>language.code<\/code> must be <strong>exactly<\/strong> the code the template was created with. A template named <code>order_confirmed<\/code> in <code>en_US<\/code> and another with the same name in <code>pt_BR<\/code> are two different templates. Some codes from the <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/supported-languages\" target=\"_blank\" rel=\"noreferrer noopener\">supported languages list<\/a>:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Language<\/th><th>Code<\/th><\/tr><\/thead><tbody><tr><td>English<\/td><td><code>en<\/code><\/td><\/tr><tr><td>English (US)<\/td><td><code>en_US<\/code><\/td><\/tr><tr><td>English (UK)<\/td><td><code>en_GB<\/code><\/td><\/tr><tr><td>English (India)<\/td><td><code>en_IN<\/code><\/td><\/tr><tr><td>Spanish (Mexico)<\/td><td><code>es_MX<\/code><\/td><\/tr><tr><td>Spanish (Spain)<\/td><td><code>es_ES<\/code><\/td><\/tr><tr><td>Portuguese (Brazil)<\/td><td><code>pt_BR<\/code><\/td><\/tr><tr><td>Portuguese (Portugal)<\/td><td><code>pt_PT<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Sending <code>en<\/code> for a template created in <code>en_US<\/code>? You get error 132001, as if the template didn&#8217;t exist.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The API response<\/h2>\n\n\n\n<p>When the request is accepted, the API returns:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"messaging_product\": \"whatsapp\",\n  \"contacts\": [{ \"input\": \"16505551234\", \"wa_id\": \"16505551234\" }],\n  \"messages\": [{ \"id\": \"wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJBRkJENzEx...\", \"message_status\": \"accepted\" }]\n}<\/code><\/pre>\n\n\n\n<p>Store the <code>id<\/code> (the <code>wamid<\/code>): it&#8217;s what shows up in status webhooks (<code>sent<\/code>, <code>delivered<\/code>, <code>read<\/code>, <code>failed<\/code>). The <code>message_status<\/code> field only appears when the template is under <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/template-pacing\" target=\"_blank\" rel=\"noreferrer noopener\">pacing<\/a>. A 200 means &#8220;accepted&#8221;, not &#8220;delivered&#8221;; some errors only show up later, in a webhook with <code>status: failed<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Common parameter errors<\/h2>\n\n\n\n<p>These are the codes you&#8217;ll see most when sending templates, with descriptions from <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/support\/error-codes\" target=\"_blank\" rel=\"noreferrer noopener\">Meta&#8217;s error code table<\/a>:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Code<\/th><th>What it means<\/th><th>Typical cause<\/th><\/tr><\/thead><tbody><tr><td><code>132000<\/code><\/td><td>Number of parameter values doesn&#8217;t match the template<\/td><td>A missing or extra <code>text<\/code> in the body; forgot the dynamic URL button component<\/td><\/tr><tr><td><code>132001<\/code><\/td><td>Template doesn&#8217;t exist in that language or isn&#8217;t approved<\/td><td>Wrong <code>language.code<\/code>, typo in the name, template still <code>PENDING<\/code><\/td><\/tr><tr><td><code>132005<\/code><\/td><td>Translated text is too long<\/td><td>Check in WhatsApp Manager that the template translation is complete<\/td><\/tr><tr><td><code>132007<\/code><\/td><td>Template content violates a WhatsApp policy<\/td><td>Review the content against the template review rules<\/td><\/tr><tr><td><code>132012<\/code><\/td><td>Parameter values formatted differently from the template<\/td><td><code>parameter_name<\/code> on a positional template (or vice versa); <code>text<\/code> where <code>image<\/code> was expected<\/td><\/tr><tr><td><code>132015<\/code><\/td><td>Template paused for low quality<\/td><td>Edit the template and wait for re-approval<\/td><\/tr><tr><td><code>132016<\/code><\/td><td>Template paused too many times and permanently disabled<\/td><td>Create a new template with different content<\/td><\/tr><tr><td><code>131008<\/code><\/td><td>A required parameter is missing<\/td><td>A required field such as <code>language<\/code> or <code>name<\/code> is absent<\/td><\/tr><tr><td><code>131009<\/code><\/td><td>One or more parameter values are invalid<\/td><td>A value outside the accepted format for a field<\/td><\/tr><tr><td><code>100<\/code><\/td><td>Unsupported or misspelled parameter<\/td><td>A typo in a key (<code>paramters<\/code>, <code>langauge<\/code>)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Errors 132000 and 132012 have their own deep dive: <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-error-132000-template-parameters\/\">errors 132000 and 132012<\/a>. For the rest of the API&#8217;s codes, see the <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-error-codes\/\">WhatsApp API error codes guide<\/a>.<\/p>\n\n\n\n<p>A quick checklist before opening a support ticket:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the template in WhatsApp Manager (or query it through the templates API) and confirm <code>status: APPROVED<\/code>, the language and the <code>parameter_format<\/code>.<\/li>\n\n\n<li>Count the placeholders in each component and compare them with the <code>parameters<\/code> you send.<\/li>\n\n\n<li>Make sure every button with a variable has a <code>button<\/code> component with the right <code>index<\/code>.<\/li>\n\n\n<li>Open the media URL in a private window and percent-encode dynamic URL values.<\/li>\n\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">How much does a template message cost<\/h2>\n\n\n\n<p>Price depends on the template category and the recipient&#8217;s country. For recipients in Brazil, since October 1, 2026 Meta charges BRL 0.3217 per marketing template and BRL 0.0350 per utility or authentication template. Also since October 1, 2026, utility templates sent inside the customer service window are charged. How Meta assigns a category is explained in <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-template-categories\/\">marketing, utility or authentication<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to send templates with Vectalk<\/h2>\n\n\n\n<p>Vectalk is a proxy for the official Cloud API: the request body is the same as Meta&#8217;s, only the URL and the token change. Every payload in this article works on <code>POST https:\/\/apis.vectalk.com.br\/api\/messages<\/code>; just save the JSON to a file and send it:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-bash\">curl -X POST https:\/\/apis.vectalk.com.br\/api\/messages \\\n  -H \"Authorization: Bearer $VECTALK_TOKEN\" \\\n  -H \"Content-Type: application\/json\" \\\n  -d @template.json<\/code><\/pre>\n\n\n\n<p>With an <strong>instance token<\/strong>, the <code>phone_number_id<\/code> is resolved automatically. With an <strong>organization token<\/strong>, add <code>\"phone_number_id\"<\/code> to the body to choose which number sends the message, as described in the <a href=\"https:\/\/docs.vectalk.com.br\/authentication\">authentication docs<\/a>. The endpoint reference is at <a href=\"https:\/\/docs.vectalk.com.br\/api-reference\/messages\/send-template\">Template in the Vectalk API<\/a>.<\/p>\n\n\n\n<p>You create and track the templates themselves in the dashboard (Templates, with the Template Library) or through the templates API, using an instance token. For billing, each delivered message is deducted from your prepaid balance, and you don&#8217;t need to add a credit card on Meta. Create your account at <a href=\"https:\/\/apps.vectalk.com.br\/register\">apps.vectalk.com.br\/register<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently asked questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Do I need to send the template text in the request?<\/h3>\n\n\n\n<p>No. The fixed text is already approved by Meta. The request only carries the name, the language and the values for variables, header media and dynamic buttons.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What&#8217;s the difference between positional and named variables?<\/h3>\n\n\n\n<p>Positional uses <code>{{1}}<\/code>, <code>{{2}}<\/code> and requires values in text order. Named uses <code>{{first_name}}<\/code> and each value carries a <code>parameter_name<\/code>, in any order. The format is chosen when the template is created; if nobody picks one, positional is the default.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I change the header image on every send?<\/h3>\n\n\n\n<p>Yes. The approved image is only a sample for review. On each send you pass whatever media you want in the <code>header<\/code> component, by <code>link<\/code> or <code>id<\/code>, as long as it&#8217;s the same type defined in the template (image, video or document).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Why do I get a 200 but the message never arrives?<\/h3>\n\n\n\n<p>A 200 only confirms the API accepted the request. Template, number or limit errors can arrive later, in the status webhook with <code>failed<\/code> and an error code. Monitor webhooks, not just the HTTP response.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Official sources checked on October 29, 2026:<\/strong> <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/overview\" target=\"_blank\" rel=\"noreferrer noopener\">Template fundamentals (Meta)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/components\" target=\"_blank\" rel=\"noreferrer noopener\">Template components (Meta)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/template-media\" target=\"_blank\" rel=\"noreferrer noopener\">Template media (Meta)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/utility-templates\/utility-templates\" target=\"_blank\" rel=\"noreferrer noopener\">Utility templates (Meta)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/marketing-templates\/custom-marketing-templates\" target=\"_blank\" rel=\"noreferrer noopener\">Custom marketing templates (Meta)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/marketing-templates\/coupon-templates\" target=\"_blank\" rel=\"noreferrer noopener\">Coupon code templates (Meta)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/marketing-templates\/media-card-carousel-templates\" target=\"_blank\" rel=\"noreferrer noopener\">Media card carousel templates (Meta)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/supported-languages\" target=\"_blank\" rel=\"noreferrer noopener\">Supported languages (Meta)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/messages\/send-messages\" target=\"_blank\" rel=\"noreferrer noopener\">Send messages (Meta)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/messages\/document-messages\" target=\"_blank\" rel=\"noreferrer noopener\">Document messages (Meta)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/webhooks\/reference\/messages\/button\" target=\"_blank\" rel=\"noreferrer noopener\">Button messages webhook (Meta)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/support\/error-codes\" target=\"_blank\" rel=\"noreferrer noopener\">Error codes (Meta)<\/a>, <a href=\"https:\/\/docs.vectalk.com.br\/api-reference\/messages\/send-template\">Template sending in the Vectalk API<\/a>, <a href=\"https:\/\/docs.vectalk.com.br\/authentication\">Vectalk API authentication<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Copy-paste payloads for sending WhatsApp template messages via the Cloud API: positional and named variables, image, video or PDF headers, dynamic URL buttons, quick replies and coupon codes.<\/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":[1],"tags":[],"class_list":["post-742","post","type-post","status-publish","format-standard","hentry","category-blog"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Send WhatsApp Template Message via API: JSON | Vectalk<\/title>\n<meta name=\"description\" content=\"How to send a WhatsApp template message via the API: cURL and JSON payloads for named and positional variables, media headers, buttons, coupons and errors.\" \/>\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\/en\/send-whatsapp-template-message-api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Send WhatsApp Template Message via API: JSON | Vectalk\" \/>\n<meta property=\"og:description\" content=\"How to send a WhatsApp template message via the API: cURL and JSON payloads for named and positional variables, media headers, buttons, coupons and errors.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vectalk.com.br\/blog\/en\/send-whatsapp-template-message-api\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Vectalk\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-29T13:21:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-29T13:21:20+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=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/send-whatsapp-template-message-api\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/send-whatsapp-template-message-api\\\/\"},\"author\":{\"name\":\"wanderleyfcunha\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/ff36ecd9d8257856f227f8e5d639db2b\"},\"headline\":\"How to send a WhatsApp template message via API: variables, media headers and buttons (full JSON)\",\"datePublished\":\"2026-10-29T13:21:12+00:00\",\"dateModified\":\"2026-10-29T13:21:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/send-whatsapp-template-message-api\\\/\"},\"wordCount\":2065,\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/send-whatsapp-template-message-api\\\/\",\"url\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/send-whatsapp-template-message-api\\\/\",\"name\":\"Send WhatsApp Template Message via API: JSON | Vectalk\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#website\"},\"datePublished\":\"2026-10-29T13:21:12+00:00\",\"dateModified\":\"2026-10-29T13:21:20+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/ff36ecd9d8257856f227f8e5d639db2b\"},\"description\":\"How to send a WhatsApp template message via the API: cURL and JSON payloads for named and positional variables, media headers, buttons, coupons and errors.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/send-whatsapp-template-message-api\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/send-whatsapp-template-message-api\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/send-whatsapp-template-message-api\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to send a WhatsApp template message via API: variables, media headers and buttons (full JSON)\"}]},{\"@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":"Send WhatsApp Template Message via API: JSON | Vectalk","description":"How to send a WhatsApp template message via the API: cURL and JSON payloads for named and positional variables, media headers, buttons, coupons and errors.","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\/en\/send-whatsapp-template-message-api\/","og_locale":"en_US","og_type":"article","og_title":"Send WhatsApp Template Message via API: JSON | Vectalk","og_description":"How to send a WhatsApp template message via the API: cURL and JSON payloads for named and positional variables, media headers, buttons, coupons and errors.","og_url":"https:\/\/vectalk.com.br\/blog\/en\/send-whatsapp-template-message-api\/","og_site_name":"Blog Vectalk","article_published_time":"2026-10-29T13:21:12+00:00","article_modified_time":"2026-10-29T13:21:20+00:00","author":"wanderleyfcunha","twitter_card":"summary_large_image","twitter_misc":{"Written by":"wanderleyfcunha","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vectalk.com.br\/blog\/en\/send-whatsapp-template-message-api\/#article","isPartOf":{"@id":"https:\/\/vectalk.com.br\/blog\/en\/send-whatsapp-template-message-api\/"},"author":{"name":"wanderleyfcunha","@id":"https:\/\/vectalk.com.br\/blog\/#\/schema\/person\/ff36ecd9d8257856f227f8e5d639db2b"},"headline":"How to send a WhatsApp template message via API: variables, media headers and buttons (full JSON)","datePublished":"2026-10-29T13:21:12+00:00","dateModified":"2026-10-29T13:21:20+00:00","mainEntityOfPage":{"@id":"https:\/\/vectalk.com.br\/blog\/en\/send-whatsapp-template-message-api\/"},"wordCount":2065,"articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/vectalk.com.br\/blog\/en\/send-whatsapp-template-message-api\/","url":"https:\/\/vectalk.com.br\/blog\/en\/send-whatsapp-template-message-api\/","name":"Send WhatsApp Template Message via API: JSON | Vectalk","isPartOf":{"@id":"https:\/\/vectalk.com.br\/blog\/#website"},"datePublished":"2026-10-29T13:21:12+00:00","dateModified":"2026-10-29T13:21:20+00:00","author":{"@id":"https:\/\/vectalk.com.br\/blog\/#\/schema\/person\/ff36ecd9d8257856f227f8e5d639db2b"},"description":"How to send a WhatsApp template message via the API: cURL and JSON payloads for named and positional variables, media headers, buttons, coupons and errors.","breadcrumb":{"@id":"https:\/\/vectalk.com.br\/blog\/en\/send-whatsapp-template-message-api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vectalk.com.br\/blog\/en\/send-whatsapp-template-message-api\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/vectalk.com.br\/blog\/en\/send-whatsapp-template-message-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vectalk.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"How to send a WhatsApp template message via API: variables, media headers and buttons (full JSON)"}]},{"@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\/742","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=742"}],"version-history":[{"count":1,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/posts\/742\/revisions"}],"predecessor-version":[{"id":745,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/posts\/742\/revisions\/745"}],"wp:attachment":[{"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/media?parent=742"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/categories?post=742"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/tags?post=742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}