{"id":207,"date":"2026-10-25T13:01:35","date_gmt":"2026-10-25T13:01:35","guid":{"rendered":"https:\/\/vectalk.com.br\/blog\/recover-pix-boleto-abandoned-cart-whatsapp\/"},"modified":"2026-10-25T13:11:00","modified_gmt":"2026-10-25T13:11:00","slug":"recover-pix-boleto-abandoned-cart-whatsapp","status":"publish","type":"post","link":"https:\/\/vectalk.com.br\/blog\/en\/recover-pix-boleto-abandoned-cart-whatsapp\/","title":{"rendered":"Recovering Pix, boleto and abandoned cart sales on WhatsApp"},"content":{"rendered":"\n<p><em>Updated on October 25, 2026<\/em><\/p>\n\n\n\n<p>WhatsApp sales recovery means sending an approved template, through the official WhatsApp Business API, to customers who generated a Pix code or a boleto and did not pay, or who left items in their cart. Pending Pix and boleto payments are notices about a transaction the customer already started, so they can be approved as utility as long as the text is not promotional. An abandoned cart reminder is marketing for Meta, even if the customer asked for it, and requires marketing opt-in.<\/p>\n\n\n\n<p>Quick context for readers outside Brazil: <strong>Pix<\/strong> is the Brazilian Central Bank&#8217;s instant payment system, paid by scanning a QR code or pasting a &#8220;copy and paste&#8221; code into a bank app. A <strong>boleto<\/strong> is a bank payment slip with a due date and a numeric &#8220;digitable line&#8221; the customer pays at a bank or app; it can take a while to clear.<\/p>\n\n\n\n<p>This guide covers where each trigger comes from, how long to wait, how to write the template in the right category, how to put the payment button inside the message, and a Node.js worker example.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Three situations, three treatments<\/h2>\n\n\n\n<p>Separate the cases before writing any message. They look the same on a sales dashboard, but Meta treats each one differently.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Situation<\/th><th>What exists in your system<\/th><th>Likely category<\/th><th>Opt-in needed<\/th><\/tr><\/thead><tbody><tr><td>Pix generated, not paid<\/td><td>Order with Pix code and expiry<\/td><td>Utility, if the text is only about the order<\/td><td>Order updates<\/td><\/tr><tr><td>Boleto issued, not paid<\/td><td>Order with digitable line and due date<\/td><td>Utility, if the text is only about the order<\/td><td>Order updates<\/td><\/tr><tr><td>Abandoned cart<\/td><td>Items in a cart, no order created<\/td><td>Marketing<\/td><td>Offers and news<\/td><\/tr><tr><td>Reminder with coupon or urgency<\/td><td>Any of the above with an incentive<\/td><td>Marketing<\/td><td>Offers and news<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>The rule comes from Meta&#8217;s <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/template-categorization\" target=\"_blank\" rel=\"noreferrer noopener\">template categorization guidelines<\/a>: utility must be non-promotional and specific to the user (order, account, transaction). Meta lists &#8220;you left items in your cart, check out now&#8221; as a retargeting example, which is marketing &#8220;even if requested by users&#8221;. Mixed content, such as an order update with a promo, is also marketing. Our article on <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-template-categories\/\">how Meta categorizes your template<\/a> goes deeper.<\/p>\n\n\n\n<p>The category drives cost. For recipients in Brazil, Meta&#8217;s rate card in effect since October 1, 2026 charges R$ 0.3217 per delivered marketing template and R$ 0.0350 per utility template (<a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/pricing\" target=\"_blank\" rel=\"noreferrer noopener\">pricing page<\/a>).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Where triggers come from<\/h2>\n\n\n\n<p>WhatsApp does not know that a Pix code expired or that someone left checkout. Events come from other systems, and your backend decides whether to send:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pix:<\/strong> the bank or payment service provider (PSP) that generates the dynamic code notifies you by webhook when the charge is paid or expires. Store creation time and expiry.<\/li>\n\n\n<li><strong>Boleto:<\/strong> the PSP reports issuance, payment and settlement. Boleto clearing is not instant, so an &#8220;unpaid&#8221; boleto may simply be waiting to clear.<\/li>\n\n\n<li><strong>Website cart:<\/strong> your store or checkout platform records the abandonment when the customer enters a phone number and does not finish.<\/li>\n\n\n<li><strong>In-WhatsApp cart:<\/strong> if you sell through the catalog, the WhatsApp cart only reaches your system when the customer sends it, through the order webhook. The <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/catalogs\/catalogs-overview\" target=\"_blank\" rel=\"noreferrer noopener\">catalogs documentation<\/a> says the cart does not expire and stays in the chat until sent. There is no abandonment event for it.<\/li>\n\n<\/ul>\n\n\n\n<p>Golden rule for all three: <strong>check payment status right before sending<\/strong>. A &#8220;pending Pix&#8221; reminder to someone who just paid generates complaints and blocks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How long to wait<\/h2>\n\n\n\n<p>Meta does not define timing for this. Treat the points below as a starting point to test with your own data:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Case<\/th><th>First contact<\/th><th>Second contact<\/th><th>Stop when<\/th><\/tr><\/thead><tbody><tr><td>Pix<\/td><td>A few minutes after generation, if unpaid<\/td><td>Shortly before the code expires<\/td><td>Paid, expired or customer asked to stop<\/td><\/tr><tr><td>Boleto<\/td><td>The day after issuance, with the digitable line<\/td><td>The day before or on the due date<\/td><td>Paid, overdue without renegotiation, or opt-out<\/td><\/tr><tr><td>Cart<\/td><td>A few hours after abandonment<\/td><td>Usually none<\/td><td>Purchase made or opt-out<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Three rules apply to all of them:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pix expiry is on you.<\/strong> Meta notes that WhatsApp does not read the validity window from the code. If the offer ended, expire the code with your PSP too.<\/li>\n\n\n<li><strong>Timing of day.<\/strong> Send when your customers usually buy and avoid the middle of the night.<\/li>\n\n\n<li><strong>Per-user marketing limit.<\/strong> Cart reminders compete with marketing from other businesses. Meta may not deliver them, returning error <code>131049<\/code> (<a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-error-131049-marketing-limit\/\">per-user marketing limit<\/a>).<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Writing the template in the right category<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Text<\/th><th>Likely category<\/th><th>Why<\/th><\/tr><\/thead><tbody><tr><td>&#8220;Your order {{1}} is awaiting Pix payment of {{2}}. The code is valid until {{3}}.&#8221;<\/td><td>Utility<\/td><td>Order data, no persuasion<\/td><\/tr><tr><td>&#8220;The boleto for order {{1}}, amount {{2}}, is due on {{3}}. The digitable line is in the button below.&#8221;<\/td><td>Utility<\/td><td>Alert about the customer&#8217;s transaction<\/td><\/tr><tr><td>&#8220;Your Pix is still unpaid! Hurry, stock is running out.&#8221;<\/td><td>Marketing<\/td><td>Commercial urgency<\/td><\/tr><tr><td>&#8220;Pay today and get 5% off order {{1}}.&#8221;<\/td><td>Marketing<\/td><td>Financial incentive<\/td><\/tr><tr><td>&#8220;You left {{1}} in your cart. Complete your purchase.&#8221;<\/td><td>Marketing<\/td><td>Retargeting, an example Meta cites<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>If you submit as <code>UTILITY<\/code> and Meta decides it is marketing, the template is approved as <code>MARKETING<\/code>. Always check the category in the creation response and in the <code>template_category_update<\/code> webhook. Repeatedly passing marketing off as utility leads to restrictions that can convert every utility template in the account.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Payment button inside the template<\/h2>\n\n\n\n<p>In Brazil, Meta offers <strong>payment request CTA templates<\/strong>: a utility or marketing template with up to three <code>PAYMENT_REQUEST<\/code> buttons, each with a payment method (dynamic Pix code, boleto digitable line, payment link, or one-click card payment). The customer taps and copies the code, with no Orders API integration required (<a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/payments\/payments-br\/payment-request-cta\" target=\"_blank\" rel=\"noreferrer noopener\">documentation<\/a>).<\/p>\n\n\n\n<p>Template creation (the code is only a sample; the real one goes in the send call):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"name\": \"pix_pendente\",\n  \"language\": \"pt_BR\",\n  \"category\": \"UTILITY\",\n  \"components\": [\n    { \"type\": \"BODY\", \"text\": \"Seu pedido {{1}} est\u00e1 aguardando o pagamento via PIX de {{2}}. O c\u00f3digo vale at\u00e9 {{3}}.\",\n      \"example\": { \"body_text\": [[\"#10482\", \"R$ 189,90\", \"18h de hoje\"]] } },\n    { \"type\": \"BUTTONS\", \"buttons\": [\n      { \"type\": \"PAYMENT_REQUEST\", \"text\": \"Copy Pix code\",\n        \"payment_setting\": { \"type\": \"pix_dynamic_code\",\n          \"pix_dynamic_code\": { \"code\": \"00020101021226700014br.gov.bcb.pix...\" } } }\n    ] }\n  ]\n}<\/code><\/pre>\n\n\n\n<p>The button <code>text<\/code> only accepts the fixed values in the documentation (<code>Copy Pix code<\/code>, <code>Copy Boleto code<\/code>, <code>Open payment link<\/code> or <code>Review payment<\/code>). When sending, each customer&#8217;s real code goes in the button parameter:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"messaging_product\": \"whatsapp\",\n  \"to\": \"5584999999999\",\n  \"type\": \"template\",\n  \"template\": {\n    \"name\": \"pix_pendente\",\n    \"language\": { \"code\": \"pt_BR\" },\n    \"components\": [\n      { \"type\": \"body\", \"parameters\": [\n        { \"type\": \"text\", \"text\": \"#10482\" },\n        { \"type\": \"text\", \"text\": \"R$ 189,90\" },\n        { \"type\": \"text\", \"text\": \"18h de hoje\" } ] },\n      { \"type\": \"button\", \"sub_type\": \"payment_request\", \"index\": \"0\",\n        \"parameters\": [ { \"type\": \"action\", \"action\": { \"payment_request\": {\n          \"payment_setting\": { \"type\": \"pix_dynamic_code\",\n            \"pix_dynamic_code\": { \"code\": \"ORDER_PIX_CODE\" } } } } } ] }\n    ]\n  }\n}<\/code><\/pre>\n\n\n\n<p>Meta adds two caveats: WhatsApp does not disable the button when the code or link expires, and it does not reconcile payments. Your PSP confirms the payment. For boleto, swap <code>payment_setting<\/code> for <code>{ \"type\": \"boleto\", \"boleto\": { \"digitable_line\": \"...\" } }<\/code>.<\/p>\n\n\n\n<p>When the customer replies and the 24-hour customer service window is open, you can also send an <code>order_details<\/code> interactive message with items, total and the Pix or boleto, followed by an <code>order_status<\/code> message once payment is confirmed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Opt-in: two separate consents<\/h2>\n\n\n\n<p>Meta asks that opt-in make clear the person agrees to receive messages and from which business, and recommends separate opt-ins per message type (<a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/getting-opt-in\" target=\"_blank\" rel=\"noreferrer noopener\">Get opt-in for WhatsApp<\/a>). For sales recovery, that means two checkboxes at checkout:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Order updates:<\/strong> covers pending Pix and boleto, confirmation and delivery.<\/li>\n\n\n<li><strong>Offers:<\/strong> covers abandoned carts and any reminder with an incentive.<\/li>\n\n<\/ul>\n\n\n\n<p>The cart is the tricky case: the phone number was entered, but no purchase happened. Only send the reminder if the offers box was checked before abandonment. Store date, source and the accepted text, and include an opt-out button. In Brazil, this data is also subject to the LGPD, the country&#8217;s data protection law (Law 13,709\/2018); this article is not legal advice. See <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-opt-in-list\/\">how to build an opt-in list<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Example: recovery worker in Node.js<\/h2>\n\n\n\n<p>The worker runs every minute, finds pending orders whose reminder is due, checks the status with the PSP and sends the template through Vectalk, which uses the same payload as the Cloud API.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-js\">const VECTALK = 'https:\/\/apis.vectalk.com.br\/api\/messages';\nconst TOKEN = process.env.VECTALK_TOKEN;\n\nasync function sendPixReminder(order) {\n  const r = await fetch(VECTALK, {\n    method: 'POST',\n    headers: { Authorization: `Bearer ${TOKEN}`, 'Content-Type': 'application\/json' },\n    body: JSON.stringify({\n      messaging_product: 'whatsapp',\n      to: order.wa_id,\n      type: 'template',\n      template: {\n        name: 'pix_pendente',\n        language: { code: 'pt_BR' },\n        components: [\n          { type: 'body', parameters: [\n            { type: 'text', text: order.number },\n            { type: 'text', text: order.formattedAmount },\n            { type: 'text', text: order.formattedExpiry },\n          ] },\n          { type: 'button', sub_type: 'payment_request', index: '0', parameters: [\n            { type: 'action', action: { payment_request: { payment_setting: {\n              type: 'pix_dynamic_code', pix_dynamic_code: { code: order.pixCopyPaste },\n            } } } },\n          ] },\n        ],\n      },\n    }),\n  });\n  const body = await r.json();\n  if (!r.ok) throw new Error(`Failed ${body.error?.code ?? r.status}`);\n  return body.messages[0].id;\n}\n\nexport async function runRecovery(db, psp) {\n  const pending = await db.ordersWithDueReminder('pix');\n  for (const order of pending) {\n    const status = await psp.getCharge(order.txid); \/\/ source of truth\n    if (status !== 'ACTIVE') { await db.closeSequence(order.id, status); continue; }\n    if (!order.optinUpdates || order.optout) continue;\n    if (await db.reminderAlreadySent(order.id, 'pix_1')) continue; \/\/ idempotency\n    const wamid = await sendPixReminder(order);\n    await db.saveReminder(order.id, 'pix_1', wamid);\n  }\n}<\/code><\/pre>\n\n\n\n<p>After sending, track deliveries and failures through the status webhook using the saved <code>wamid<\/code>. Our article on <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-message-status-webhook\/\">message status via webhook<\/a> shows how to handle <code>failed<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to do it with Vectalk<\/h2>\n\n\n\n<p>Vectalk is a proxy for Meta&#8217;s official WhatsApp Cloud API: you create templates and send messages with the same payloads as Meta, change only the base URL (<code>https:\/\/apis.vectalk.com.br\/api<\/code>) and the token, and receive webhooks in the official format. Meta&#8217;s charges come on your Vectalk invoice, and coexistence lets you keep the number on the WhatsApp Business app. See template creation at <a href=\"https:\/\/docs.vectalk.com.br\/api-reference\/templates\/create\">docs.vectalk.com.br<\/a> and sign up 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\">Is a pending Pix reminder always utility?<\/h3>\n\n\n\n<p>No. It tends to be approved as utility when it carries only order data (number, amount, expiry). With a discount, urgency or product suggestions, it becomes marketing. Meta has the final say and can recategorize after approval.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I send cart reminders to people who only opted in to order updates?<\/h3>\n\n\n\n<p>No. Abandoned cart is marketing and requires opt-in to offers. Consent to order updates does not cover retargeting.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Does WhatsApp confirm the Pix payment for me?<\/h3>\n\n\n\n<p>No. Meta&#8217;s payments documentation says WhatsApp does not reconcile payments. Your bank or PSP confirms the payment, and your system ends the sequence.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How many reminders should I send?<\/h3>\n\n\n\n<p>For Pix and boleto, two are usually enough: one right after generation and one near the deadline. For carts, a single reminder. More than that increases blocks and reports, which lower your number&#8217;s quality.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Does this work for digital products?<\/h3>\n\n\n\n<p>Yes, the logic is the same. See <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-for-online-course-creators\/\">WhatsApp for digital product creators<\/a> and, for recurring charges, <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-billing-reminders\/\">building a billing reminder sequence on WhatsApp<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Official sources consulted on October 25, 2026:<\/strong> <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/templates\/template-categorization\" target=\"_blank\" rel=\"noreferrer noopener\">Template categorization<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/payments\/payments-br\/payment-request-cta\" target=\"_blank\" rel=\"noreferrer noopener\">Payment request CTA templates (Brazil)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/payments\/payments-br\/offsite-pix\" target=\"_blank\" rel=\"noreferrer noopener\">Dynamic Pix<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/payments\/payments-br\/boleto\" target=\"_blank\" rel=\"noreferrer noopener\">Boleto<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/payments\/payments-br\/orders\" target=\"_blank\" rel=\"noreferrer noopener\">Orders API (Brazil)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/catalogs\/catalogs-overview\" target=\"_blank\" rel=\"noreferrer noopener\">Catalogs overview<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/getting-opt-in\" target=\"_blank\" rel=\"noreferrer noopener\">Get opt-in for WhatsApp<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/pricing\" target=\"_blank\" rel=\"noreferrer noopener\">Pricing<\/a>, <a href=\"https:\/\/docs.vectalk.com.br\/introduction\">Vectalk documentation<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>How to recover unpaid Pix, open boletos and abandoned carts on WhatsApp with the official API: triggers, timing, the right template category and opt-in.<\/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-207","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>WhatsApp sales recovery: Pix, boleto, cart | Vectalk<\/title>\n<meta name=\"description\" content=\"WhatsApp sales recovery with the WhatsApp Business API: triggers, timing, template category (utility vs marketing) and opt-in for Pix, boleto and carts.\" \/>\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\/recover-pix-boleto-abandoned-cart-whatsapp\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WhatsApp sales recovery: Pix, boleto, cart | Vectalk\" \/>\n<meta property=\"og:description\" content=\"WhatsApp sales recovery with the WhatsApp Business API: triggers, timing, template category (utility vs marketing) and opt-in for Pix, boleto and carts.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vectalk.com.br\/blog\/en\/recover-pix-boleto-abandoned-cart-whatsapp\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Vectalk\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-25T13:01:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-25T13:11:00+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=\"9 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\\\/recover-pix-boleto-abandoned-cart-whatsapp\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/recover-pix-boleto-abandoned-cart-whatsapp\\\/\"},\"author\":{\"name\":\"wanderleyfcunha\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/ff36ecd9d8257856f227f8e5d639db2b\"},\"headline\":\"Recovering Pix, boleto and abandoned cart sales on WhatsApp\",\"datePublished\":\"2026-10-25T13:01:35+00:00\",\"dateModified\":\"2026-10-25T13:11:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/recover-pix-boleto-abandoned-cart-whatsapp\\\/\"},\"wordCount\":1504,\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/recover-pix-boleto-abandoned-cart-whatsapp\\\/\",\"url\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/recover-pix-boleto-abandoned-cart-whatsapp\\\/\",\"name\":\"WhatsApp sales recovery: Pix, boleto, cart | Vectalk\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#website\"},\"datePublished\":\"2026-10-25T13:01:35+00:00\",\"dateModified\":\"2026-10-25T13:11:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/ff36ecd9d8257856f227f8e5d639db2b\"},\"description\":\"WhatsApp sales recovery with the WhatsApp Business API: triggers, timing, template category (utility vs marketing) and opt-in for Pix, boleto and carts.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/recover-pix-boleto-abandoned-cart-whatsapp\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/recover-pix-boleto-abandoned-cart-whatsapp\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/recover-pix-boleto-abandoned-cart-whatsapp\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Recovering Pix, boleto and abandoned cart sales on WhatsApp\"}]},{\"@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":"WhatsApp sales recovery: Pix, boleto, cart | Vectalk","description":"WhatsApp sales recovery with the WhatsApp Business API: triggers, timing, template category (utility vs marketing) and opt-in for Pix, boleto and carts.","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\/recover-pix-boleto-abandoned-cart-whatsapp\/","og_locale":"en_US","og_type":"article","og_title":"WhatsApp sales recovery: Pix, boleto, cart | Vectalk","og_description":"WhatsApp sales recovery with the WhatsApp Business API: triggers, timing, template category (utility vs marketing) and opt-in for Pix, boleto and carts.","og_url":"https:\/\/vectalk.com.br\/blog\/en\/recover-pix-boleto-abandoned-cart-whatsapp\/","og_site_name":"Blog Vectalk","article_published_time":"2026-10-25T13:01:35+00:00","article_modified_time":"2026-10-25T13:11:00+00:00","author":"wanderleyfcunha","twitter_card":"summary_large_image","twitter_misc":{"Written by":"wanderleyfcunha","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vectalk.com.br\/blog\/en\/recover-pix-boleto-abandoned-cart-whatsapp\/#article","isPartOf":{"@id":"https:\/\/vectalk.com.br\/blog\/en\/recover-pix-boleto-abandoned-cart-whatsapp\/"},"author":{"name":"wanderleyfcunha","@id":"https:\/\/vectalk.com.br\/blog\/#\/schema\/person\/ff36ecd9d8257856f227f8e5d639db2b"},"headline":"Recovering Pix, boleto and abandoned cart sales on WhatsApp","datePublished":"2026-10-25T13:01:35+00:00","dateModified":"2026-10-25T13:11:00+00:00","mainEntityOfPage":{"@id":"https:\/\/vectalk.com.br\/blog\/en\/recover-pix-boleto-abandoned-cart-whatsapp\/"},"wordCount":1504,"articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/vectalk.com.br\/blog\/en\/recover-pix-boleto-abandoned-cart-whatsapp\/","url":"https:\/\/vectalk.com.br\/blog\/en\/recover-pix-boleto-abandoned-cart-whatsapp\/","name":"WhatsApp sales recovery: Pix, boleto, cart | Vectalk","isPartOf":{"@id":"https:\/\/vectalk.com.br\/blog\/#website"},"datePublished":"2026-10-25T13:01:35+00:00","dateModified":"2026-10-25T13:11:00+00:00","author":{"@id":"https:\/\/vectalk.com.br\/blog\/#\/schema\/person\/ff36ecd9d8257856f227f8e5d639db2b"},"description":"WhatsApp sales recovery with the WhatsApp Business API: triggers, timing, template category (utility vs marketing) and opt-in for Pix, boleto and carts.","breadcrumb":{"@id":"https:\/\/vectalk.com.br\/blog\/en\/recover-pix-boleto-abandoned-cart-whatsapp\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vectalk.com.br\/blog\/en\/recover-pix-boleto-abandoned-cart-whatsapp\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/vectalk.com.br\/blog\/en\/recover-pix-boleto-abandoned-cart-whatsapp\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vectalk.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Recovering Pix, boleto and abandoned cart sales on WhatsApp"}]},{"@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\/207","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=207"}],"version-history":[{"count":2,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/posts\/207\/revisions"}],"predecessor-version":[{"id":419,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/posts\/207\/revisions\/419"}],"wp:attachment":[{"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/media?parent=207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/categories?post=207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/tags?post=207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}