Why a paid order goes missing
On the stores I run in Pakistan and Saudi Arabia, Shopify Payments isn't an option. Shopify's supported-countries list includes the UK and the UAE, but not those two, so card payments go through a third-party gateway that sends the customer to its own page.
That splits one purchase into two events:
- The gateway takes the money on its own page.
- The gateway tells Shopify the payment succeeded, and only then does Shopify create a paid order.
If step 2 fails, you get money without an order. It fails in three ways:
- The customer leaves too early. A Shopify Community answer puts it simply: if the customer navigates away from the "Your order's being processed" page, the payment process is interrupted and the checkout lands in abandoned checkouts.
- The gateway is down or slow. One merchant in South Africa had two paid customers recorded as abandoned and later traced it to their gateway being down for a while.
- The confirmation itself fails. A gateway app developer reported that some orders stayed on "pending payment" even after the confirmation call returned success, and that the app couldn't see which ones, so it couldn't retry them.
The gateway knows the customer paid. Shopify only knows what the gateway managed to tell it.
Shopify's fix, done safely
Shopify's answer in these threads is the same each time: confirm the payment with your provider, then create a draft order and mark it as paid. There's no button that turns an abandoned checkout into an order. Do it in this order:
- Prove the money. Find the payment in the gateway dashboard, not in a customer's screenshot. Note the reference, amount and time.
- Rule out a late order. Search orders by the customer's email first. A slow confirmation can still create the order after you look.
- Create the draft from the checkout. Same items, quantities, discount, shipping and customer as the abandoned checkout.
- Mark as paid. Don't send the invoice. Marking as paid only records money you already have. Sending the invoice asks the customer to pay again.
- Leave a trail. Gateway reference in the note, a tag like
recovered-payment, then fulfil as normal.
If the order exists but says pending
Don't create a second order. Ask the gateway or its app provider to finalise the payment, and if it stays pending once the gateway shows success, record the payment on that same order. Two orders for one payment means double stock taken and messy refunds.
The reverse risk
Most stores only look one way: customers who paid and have no order. The opposite is worse because nobody complains. An order shows as paid, but no money arrived. That happens when someone marks an order as paid on a customer's word or a screenshot, or when a gateway was left in test mode.
Shopify's own help page offers "mark as paid" for payments you've already received. It's a label, not a check. So every daily check should run both ways: gateway to Shopify, and Shopify back to gateway.
Which case are you in?
Take one customer who says they paid. Pick what each side shows, and the tool tells you the case and what to do.
Paid-order triage · runs in your browser
Pick what each side shows for one customer's payment. You get the case and the exact steps.
1. What does Shopify show?
2. What does the gateway dashboard show?
Paid, but no order. The customer is waiting.
The gateway took the money but never confirmed it back to Shopify, so the checkout was recorded as abandoned.
Do this
- 1Find the payment in your gateway dashboard and note its reference, amount and time.
- 2Search Shopify orders by the customer's email to make sure no order was created late.
- 3Create a draft order with the same items, customer and shipping, then mark it as paid. Don't send the invoice.
- 4Put the gateway reference in the order note and tag it, so your accounts can match it.
- 5Send the abandoned checkout link and reference to your gateway's support so they can trace the failed confirmation.
Today's count, both ways
Same day, same gateway. Average order value is optional; leave it at 0 to skip the money line.
2 paid customers have no paid order. Check abandoned checkouts and pending orders for the same day.
More than one or two a week?
Then it isn't bad luck, it's your setup. Send me your gateway name and one example, and I'll tell you where the confirmation is breaking.
Send me an example on WhatsAppA 10-minute daily check
Until it's automated, this is the routine I'd give a store's team. Same time each day, for the previous 24 hours:
- Export successful payments from the gateway dashboard: reference, amount, time, customer email.
- Filter Shopify orders by that payment method for the same window, and note which are paid and which are pending.
- Open abandoned checkouts for the same window.
- Match by email and amount. Every gateway success needs one paid order. Every paid order needs one gateway success.
- Fix the leftovers with the triage above, the same day. A customer who paid and heard nothing is a chargeback waiting to happen.
The lasting fix: a gateway watchdog
You can't fix the gateway's side yourself. Only approved Payments Partners can build the payment app that talks to Shopify's checkout. So the fix sits beside the gateway and watches both sides. I haven't shipped this as a product; here's how I'd build it, using the same pieces I already run for multi-store dashboards, webhooks and a WhatsApp CRM:
- Every 15 minutes, read new transactions from the gateway's API (or its settlement report if it has no API), and new orders and abandoned checkouts from Shopify's Admin API.
- Match them by gateway reference first, then by email, amount and time, and store every match so nothing is counted twice.
- Alert on WhatsApp and email for two cases only: paid with no order, and paid order with no payment. Each alert shows the customer, amount and reference.
- One click to recover. The alert's button re-checks that no order appeared in the meantime, then creates the order from the abandoned checkout, marked as paid, with the reference and a tag. A paid-but-unpaid order gets put on hold instead.
It's read-only on the gateway, so it can't move money. The worst it can do is send an alert you didn't need. The best it does is turn a customer's angry message into an order created before they notice.
Is it worth it for you? Tick what's true:
You're probably fine.
Still compare one day of gateway payments with Shopify orders once a month.
Custom systems
Dashboards that watch several stores at once
The same matching and alerting a watchdog needs: Shopify data, webhooks and a database, in one place.
See the systems I buildField Notes
Custom Shopify app or another monthly app?
How I compare a small custom build with paying for an app every month.
Read the 2-year mathWant one for your store? Tell me your gateway on WhatsApp and I'll tell you whether its API can support a watchdog, and what it would take.
Questions
Why does a paid order show up as an abandoned checkout?
With a redirect gateway, the customer pays on the gateway's page and Shopify waits for the gateway to confirm it. If the customer leaves the processing page early, or the gateway's confirmation never reaches Shopify, the order isn't created and the checkout is recorded as abandoned, even though the money was taken.
Can I turn an abandoned checkout into an order?
Not with one button in the admin. The usual route, which Shopify's own community replies give, is to confirm the payment in your gateway, then create a draft order with the same items, customer and shipping, and mark it as paid.
Will the customer be charged twice if I create a draft order?
Not if you mark it as paid. Marking as paid only records a payment you already received; it doesn't charge anyone. Sending the draft's invoice or checkout link to someone who already paid is what can cause a second payment.
My order is stuck on Payment pending. What do I do?
First check the gateway. If it shows the payment as successful, the gateway's app didn't finalise it in Shopify. Ask the gateway or app provider to resolve it, and if the order still sits on pending, record the payment on that order instead of creating a new one. If the gateway shows it failed, cancel the order and restock.
Can I stop this from happening?
You can make it rarer, not impossible. Tell customers on the processing page not to close it, report failed confirmations to your gateway with the checkout link, and compare gateway payments with Shopify orders every day so nothing waits more than a few hours.
Is Shopify Payments available in Pakistan or Saudi Arabia?
Not at the time of writing. Shopify's supported-countries list includes the UK and the UAE but not Pakistan or Saudi Arabia, so stores there use a third-party payment provider, which is where this problem shows up.
Stop finding paid orders in abandoned checkouts.
Send me your gateway name and one recent example. I'll tell you where the payment confirmation breaks and whether a watchdog can catch every case for you.
Sources
- Shopify Help Center: Shopify Payments supported countries
- Shopify Help Center: Creating orders (mark as paid)
- Shopify Community: Payment confirmed at Pagar.me but showing up as abandoned checkout
- Shopify Community: Abandoned cart but payment successful
- Shopify Community: Why is a paid order showing in the abandoned cart?
- Shopify Community: paymentSessionResolve not working as expected on success events
- shopify.dev: Build an offsite payments app (Payments Partners, 3-minute resolve window)
- shopify.dev: paymentSessionPending mutation