Abandoned cart: how to recover the sale (2026 guide)
By José Pedro · Co-founder of CRPRO
The abandoned cart is the cheapest sale to recover, because the intent is already bought. See what causes abandonment, how to calculate what it's costing you, and how to build a recovery flow with the two safeguards that prevent charging someone who already paid.
Every online store loses sales after the customer has already decided to buy. They picked the product, filled in their details, reached checkout — and didn't pay. That's an abandoned cart: the sale that already cost every bit of marketing effort and stopped one step from the finish line.
It's also the cheapest sale there is to recover, because the intent is already bought. This guide covers what causes abandonment, how much it costs your operation, and how to build the recovery flow — with attention to the Brazilian case, which has a detail most outside playbooks don't cover: Pix.
What is cart abandonment
An abandoned cart is an order that was started and not completed: the customer added products and left before finishing payment.
Worth splitting from two similar cases, because they call for different responses:
- Browse abandonment — the person looked at the product and left without adding anything. Weak intent.
- Cart abandonment — added to cart and didn't reach checkout. Medium intent.
- Checkout abandonment — got as far as generating a Pix code, a boleto, or attempting a card payment. Very high intent, and it's where almost all the recoverable money is.
Most of the effort should go to the third one. Whoever generated a Pix code already decided to buy.
Abandonment rate: how much you're losing
The cart abandonment rate is the proportion of created carts that don't turn into a sale:
abandonment rate = (carts created − paid orders) ÷ carts created × 100
Market averages sit between 65% and 80% — but a market average doesn't pay the bills. The number that matters is yours, and the calculation that changes the conversation with your team is this one:
monthly loss = abandoned carts in the month × average order value
A store with 400 abandoned carts a month and an average order value of R$180 is leaving R$72,000 on the table. Recovering 10% of that is R$7,200 a month — usually more than the cost of the entire tool.
Why people abandon
The causes repeat, and almost none of them is "changed their mind":
- Shipping too high or revealed too late. Cause number one. The amount shows up only at the end and breaks the math the person had done in their head.
- Checkout that's too long. Every extra field drags conversion down.
- Mandatory account creation. Asking for an account before selling is pure friction.
- Missing payment method. Whoever wanted Pix and only finds a card leaves.
- Pix generated and forgotten. The person wanted to pay, left the app to open their bank app, and life happened in between.
- Lack of trust. A site with no trust signal, no visible business registration, no contact channel.
The first three get solved on the website. The last three get solved by talking — and that's where recovery comes in.
Why email loses to WhatsApp at this job
Cart recovery was born on email, and for a long time it was only that. The problem isn't the copy — it's the clock.
A recovery email gets opened in hours, when it gets opened at all. A Pix code expires in 30 minutes. By the time the message lands in the inbox, the code has already died and the customer already bought somewhere else.
WhatsApp gets read in minutes. That alone changes the outcome — but there's a bigger difference: on WhatsApp you can resend the Pix code within the window it's still valid. Email sends the customer back to the site to redo everything; the message hands over a code ready to copy.
And the conversation continues. If the person replies "shipping got too expensive," there's someone on the other end to solve it — something an automated email can't do.
The Brazilian case: recovering an unpaid Pix
No foreign cart-recovery tool handles Pix, because Pix doesn't exist outside Brazil. And Pix created a category of abandonment that didn't used to exist:
The customer wanted to pay. They generated the code. They left checkout to open their bank app — and didn't come back. It's not giving up, it's an interruption.
This cart has the highest recovery rate of all, and the window is short. A message within 15 to 30 minutes with the code ready to go is usually enough. Once the Pix code expires, recovery requires generating a new one, and conversion drops.
How to build the recovery flow, step by step
1. Capture the checkout event. Your platform needs to notify you when an order is created, updated, or abandoned. This is usually a webhook — on Vega Checkout, for example, it's registering a URL in the dashboard and flagging the events.
2. Split by payment method. Pix, boleto, and a declined card call for different messages and different timing. Treating everything the same is what makes recovery feel like a bot.
3. Choose who deserves an outreach. Recovering everyone is expensive and annoying. Filter by minimum value, by product, or by whoever hasn't been contacted in the last few days.
4. Write for a single action. One message, one order, one link. The 30 abandoned-cart message templates cover every scenario.
5. Re-check before sending. Between triggering the flow and sending, the customer may have paid. Check again the instant you send.
6. Measure and cut what doesn't convert. A second attempt is usually worth it; a fourth almost never is.
When to send: the window changes with the payment method
| Situation | First message | Second |
|---|---|---|
| Pix generated and not paid | 15 to 30 min | 2 to 4 h, if still valid |
| Boleto issued | 24 h before due date | On the due date |
| Card declined | 5 to 15 min | 24 h |
| Cart with no payment method chosen | 1 to 2 h | 24 to 48 h |
The logic is simple: the closer the person got to paying, the faster the message needs to go out.
The two safeguards you can't skip
Cart recovery has one unique way to go wrong, and it's irreversible: charging someone who already paid.
The flow triggers at 2:00pm with sending scheduled for 2:30pm. At 2:12pm the customer pays. At 2:30pm "your Pix is still open" arrives. The sale was closed and it turned into distrust.
Two safeguards prevent this:
- Re-checking at send time. The cart's state is read again the instant the message goes out, not when the flow started.
- Suppression by document ID. If any purchase under the same tax ID (CPF, Brazil's individual taxpayer registry number) was approved in the last 30 minutes, the outreach is canceled. This covers the customer who generated two Pix codes by mistake and paid one of them.
Email marketing tools rarely have both, because the list gets built beforehand and sent afterward, with no re-checking in between.
How to know if it's working
Three numbers are enough:
- Recovery rate — carts recovered ÷ carts contacted. This is the scoreboard.
- Recovered revenue — the amount that came back. This is what justifies the operation.
- Negative response rate — whoever asked to stop, blocked, or complained. This is the brake. If it climbs, cut back frequency before the number gets penalized.
Good recovery shows up in the first two without moving the third.
Recovery and number reputation
Poorly calibrated bulk sending tanks a number's quality and can lead to a block. Cart recovery is an expected message — the person just interacted with the store —, but the same rule applies: low frequency, an easy way out, and no pestering people who didn't reply.
Before turning on any automation, it's worth understanding what WhatsApp considers spam and what to do if the number gets banned.
Summary
- The money is in checkout abandonment, not browse abandonment.
- Calculate your loss: abandoned carts × average order value. It usually stings.
- Pix is the biggest opportunity in Brazil and the one with the shortest window — 15 to 30 minutes.
- WhatsApp beats email here on speed and by handing over a ready-to-use code.
- Re-check before sending and suppress by document ID. Charging someone who already paid is the one mistake with no way back.
To get started: the 30 message templates handle the copy, and the Vega Checkout integration handles the sending — with both safeguards already built in.