Follow up unpaid checkouts
See the checkouts whose payment failed or was not finished in time, what the payment provider said, and the email each shopper got.
In the dashboard
Unpaid checkouts lists the checkouts that started a payment and have no order from it. Use it to see which payments failed and what the payment provider said, which shoppers did not finish paying in time, and whether each one got the unpaid checkout email. A checkout becomes an order only once its payment comes in, so none of these is in Orders.
Before you begin
Section titled Before you begin- You need the Tier 1 support role or higher to open Unpaid checkouts.
- To email each shopper a link back to their cart, turn on the Unpaid checkout flow in Flows. While it is off, the page says so above the list, with Open Flows.
How a checkout goes unpaid
Section titled How a checkout goes unpaidA checkout starts when the shopper starts a payment, and goes unpaid in one of two ways:
- Payment failed: the payment provider declined the payment or reported that it failed. The row shows what the provider said, such as
Your card was declined. - Expired: the shopper did not finish paying within Unpaid checkouts end after, set in Settings: from 15 to 1,440 minutes, and 60 minutes unless set. The time counts from when the payment started, or from when the shopper came back to the same payment. Coritan then cancels the payment. A payment that the provider reports as still processing does not expire, because its money may still arrive.
A shopper who tries to finish an expired payment is asked to start the payment again. The cart stays open, so they can pay from the email's link or from your storefront.
Payments that arrive late
Section titled Payments that arrive lateA payment can still succeed after its checkout expired, such as when the shopper finishes paying in another window. Coritan places the order as usual when the money arrives within 7 days of the expiry, the shopper started no other payment for the cart, and the cart still costs what was paid. The checkout then shows Paid late with Open the order for 30 days.
Otherwise no order is placed, and Coritan refunds a card or PayPal payment to the shopper. Money your payment page took is yours to refund, as Refund what could not become an order describes.
See the unpaid checkouts
Section titled See the unpaid checkouts- In the dashboard, open the organization, then Commerce, then Sales, then Unpaid checkouts.
- The page opens on Unpaid. Choose Awaiting payment to see the payments that shoppers have started and not finished yet. Each shows how many checkouts it holds, when it holds any.
- To narrow the list, search by part of an email address, or choose Live only or Test only instead of Live and test.
The list shows 50 checkouts a page, newest payment first. Each row has:
- Shopper: the email address on the cart, and how many items it holds.
- Payment method: how the shopper chose to pay.
- Started: when the latest payment started.
- Went unpaid, under Unpaid only: Payment failed with what the provider said, or Expired, and when it happened.
- Follow-up email, under Unpaid only: the unpaid checkout email, as the next table describes.
- Amount: what the payment asked for.
| Follow-up email | What it means |
|---|---|
| Scheduled | It goes out at the time shown, which Send after the checkout goes unpaid in the flow sets. |
| Sent | It went out at the time shown. |
| Skipped | It was not sent, and the row says why. Why an email was skipped lists the reasons. |
| Failed | It could not be sent. It is not tried again. |
| Cancelled | The cart was checked out, emptied or expired before the email was due. |
| — | No email was written: the flow is off, the cart has no email address, or the checkout went unpaid more than two days before the flow was turned on. A test checkout shows Test emails are off until Email test carts and orders is on in Flows. |
Result
Section titled Result- A checkout leaves Unpaid once the shopper pays it, and its order appears in Orders.
- A shopper who starts a new payment moves the checkout back to Awaiting payment.
- A cart that nobody changes for 30 days is closed, and leaves the list.
Troubleshooting
Section titled Troubleshooting- A shopper says they paid, but the checkout shows Expired
- The money may still be on its way. If it arrives within 7 days of the expiry, Coritan places the order, and the checkout shows Paid late. If it arrives later, or the shopper started another payment or changed the cart, Coritan refunds it, as Payments that arrive late describes.
- A payment has waited longer than Unpaid checkouts end after and is still under Awaiting payment
- The provider reports the payment as still processing, so its money may still arrive. Or the shopper came back to the payment, which starts the time again.
- No checkout has a Follow-up email
- The Unpaid checkout flow is off. Turn it on in Flows. For test checkouts, also turn on Email test carts and orders.
- Unpaid checkouts is missing from Sales
- Your role is below Tier 1 support. Ask an owner or admin to change your role.
Related
Section titled Related- Fulfil, refund and cancel store orders
- Win back shoppers with marketing emails
- Change your store's settings
- Build a checkout with the Store API
With the API
Section titled With the APIGET https://api.coritan.com/api/v1/orgs/{org_slug}/commerce/checkouts lists the same checkouts, and needs the commerce.orders:read scope. state is awaiting_payment, the default, or unpaid. q searches the email address, livemode is true for live checkouts or false for test ones, and limit (1–200, 50 by default) and offset page the list. count is every checkout the filters match.
curl "https://api.coritan.com/api/v1/orgs/acme/commerce/checkouts?state=unpaid&livemode=true" \
-H "Authorization: Bearer $CORITAN_TOKEN"
{
"checkouts": [
{
"id": "cart_01j8z4a7b2c9d3e6f5g8h1k0m4",
"email": "alex@example.com",
"item_count": 2,
"amount": 4500,
"currency_code": "EUR",
"provider": "stripe",
"started_at": "2026-10-07T09:12:00Z",
"unpaid_at": "2026-10-07T09:14:31Z",
"reason": "failed",
"message": "Your card was declined.",
"comeback": {"status": "scheduled", "scheduled_at": "2026-10-07T09:24:31Z", "sent_at": null, "error": null},
"order_id": null,
"livemode": true
}
],
"count": 1,
"limit": 50,
"offset": 0
}
idis the cart's ID, andamountis in the currency's smallest unit.unpaid_at,reason(failedorexpired) andmessagearenullunderawaiting_payment.messageis set only for a failure.comebackis the unpaid checkout email:nulluntil one is written, else itsstatus(scheduled,sent,skipped,failedorcanceled), when it is or was due, when it was sent, and theerrorthat says why it was skipped or failed.order_idis the order'sorder_ID once a late payment placed it.
Your organization webhooks receive commerce.checkout.unpaid once for each payment that goes unpaid, as Receive commerce webhooks describes.
API operations on this page
| Method | Path | What it does |
|---|---|---|
GET | /api/v1/orgs/{org_slug}/commerce/checkouts | The store's checkouts: carts that started a payment, read through their latest payment |