# Checkout Troubleshooting

Something stopped the sale at checkout. Find the words the till shows, then do what the entry says. Before a payment is taken, **✕** at the top of checkout takes you back to the cart with the order kept. Once a payment is on the order, **✕** opens **Cancel payment** instead. While a card reader is still taking a payment, **✕** goes back to the cart without cancelling it.

* [No connection, or a payment method isn't there](#needs-a-connection)
* [The store doesn't answer](#slow-store)
* [Order and payment messages](#refused)
* [A card reader payment fails](#card-reader)
* [The Legacy tab's page won't load](#legacy-wont-load)
* [A gateway's payment page looks wrong](#checkout-settings-troubleshooting)

Don't take a payment twice

When the till isn't sure a payment went through, find out before you take it again. The customer's card may already have been charged. Start with what the till says:

* [Payment already recorded — don't take it again](#payment-already-recorded)
* [Card charged, order not finished](#card-charged-order-open)
* [The last payment has no answer](#payment-unanswered)
* [No answer from the provider](#provider-no-answer)
* [The terminal doesn't confirm the cancel](#cancel-not-confirmed)
* [The Legacy tab's page won't load](#legacy-wont-load)
* [The store refused a payment taken offline](#payment-refused-offline)

## No connection, or a payment method isn't there[​](#needs-a-connection "Directe link naar No connection, or a payment method isn't there")

Which screen you see depends on whether your store already has the order:

* **The sale was started offline**, so your store doesn't have it yet: no method can take it. You see [No connection](#no-connection) instead of the payment methods.
* **The order reached your store before the connection dropped**: Cash and Card still work and say [Sent later · Store may refuse](#sent-later). Card readers and online gateways are [folded away](#not-available) with **Needs a connection**.

### No connection[​](#no-connection "Directe link naar No connection")

**"No connection. Payments need one; the sale is saved in your open orders."** The till can't reach your store, and none of your payment methods can take this sale without it. Nothing has been charged. Press **Back to the register**: the sale stays in the cart, and you can serve the next customer. When the connection is back, open the sale and press **Checkout** again.

![Checkout for a sale started offline: a No connection notice with a Back to the register button where the payment methods would be, the header reading Offline, and the sale's tab reading In checkout · offline](/img/2.x/pos/checkout/troubleshooting/en/tablet-light-regular--ts-4-no-connection.png)1234

1. **No connection** — no payment method can take this sale until the till reaches your store.
2. **Back to the register** — leaves checkout so you can serve the next customer.
3. **In checkout · offline** — this sale's tab. It stays in the cart's tabs when you leave checkout.
4. **✕** — back to the cart with the order kept.

You also see it on an order your store has when every method you use needs a connection, for example a till that takes only card reader payments. See [What needs a connection](/nl/getting-started/offline.md#what-requires-a-connection).

### Sent later · Store may refuse[​](#sent-later "Directe link naar Sent later · Store may refuse")

When the connection drops after the order reached your store, Cash and Card still work. Their tiles say **Sent later · Store may refuse**: the till records the payment now and sends it when your store is back. Pressing **Take** asks you to confirm first. See [Take a payment offline](/nl/getting-started/offline.md#take-payment-offline). If your store refuses the payment later, see [The store refused a payment taken offline](#payment-refused-offline).

### A method is folded away[​](#not-available "Directe link naar A method is folded away")

When some methods still work, a method that can't take a payment right now has no tile. It's folded under one line below **To pay**: **Card is not available right now**, or **2 not available right now** when there are several. Tap the line to see each method and why. A method that needs a connection says **Needs a connection** there.

Other reasons a method isn't available

* **Takes the whole order, so not once a payment has been taken** — pay the rest another way, or [cancel the payments taken so far](/nl/pos/checkout/cancelling-a-payment.md).
* **No terminals set up for …** — no terminal for that gateway is online. Check it's on and connected.
* **In use by order #…** — every terminal for that gateway is busy on another order. Finish or cancel that payment first.
* **Update the app to use …** — this device needs a newer WCPOS.
* **Turn on Bluetooth to use the reader**, **Allow access to the reader in app settings**, **Sign in to the payment provider** — fix it in the device's settings or in **Settings → Card readers**.
* **Only the app's readers are allowed for this payment method. Allow smart readers on its WooCommerce settings page to pay from this till.** — in a web browser, the gateway takes cards only on a reader paired with the WCPOS app on a phone or tablet. Ask a shop manager to allow smart readers on the gateway's WooCommerce settings page.

Each reason, with what to check, is in [When a tile can't be used](/nl/payment.md#unavailable-tiles). A method missing from the tiles and this list isn't switched on for the POS: see [Gateway not appearing at checkout](/nl/payment.md#gateway-not-appearing-at-checkout).

## The store doesn't answer[​](#slow-store "Directe link naar The store doesn't answer")

### Saving the order is slow[​](#store-not-answering "Directe link naar Saving the order is slow")

**"The store isn't answering. Keep waiting, or go back to the cart."** Your store is taking more than 4 seconds to save the order, and **Take** reads **Saving order…**. Keep waiting, or press **✕**. If you see it often, see [Checkout Performance](/nl/support/performance/checkout.md).

### The last payment has no answer[​](#payment-unanswered "Directe link naar The last payment has no answer")

**"The store has not answered the last payment. Try again to confirm it; it will not be taken twice."** Press **Try again**. The till asks about the same payment, so the store doesn't take it a second time. See [When the store hasn't answered a payment](/nl/error-codes/PAYMENT201.md).

### No answer from the provider[​](#provider-no-answer "Directe link naar No answer from the provider")

**"… has no answer from the provider yet."** The till sent a payment to the provider and never heard back. The store keeps checking and records it if the money was taken. Don't take the payment again yet: ask a shop manager to look for this order in the provider's dashboard. If it shows no charge, press **Clear attempt** and take the payment again. If it shows a charge, don't take it again: wait for the order to update. See [When a card reader payment gets stuck](/nl/payment.md#card-reader-problems).

## Order and payment messages[​](#refused "Directe link naar Order and payment messages")

### The store refused the order[​](#store-refused "Directe link naar The store refused the order")

**"Order not saved — the store refused it".** The store's reason is under the title, and the sale's tab in the cart says **Save refused**. Fix what the store names, such as an item out of stock, and press **Checkout** again. **Store health** shows the refused change, with **Send again** and **Discard**. See [Changes that never reached your server](/nl/support/store-health.md#refused-changes).

### The store refused a payment taken offline[​](#payment-refused-offline "Directe link naar The store refused a payment taken offline")

**"Order #… was already paid online; … was also taken at the till — refund that payment."** or **"Order #… could not accept the full payment; … was taken at the till — refund the difference."** You took the payment while offline, and your store wouldn't add it to the order when the connection came back. The customer has paid more than the order needs.

1. Go to **Orders**. The same message stays at the top, under **1 sale needs attention**.
2. Press **Open order** on the message, then give the customer back the amount it names. See [Refunds at the Till](/nl/pos/refunds.md).
3. Back in **Orders**, press **Handled** on the message.

### The order is still on its way[​](#still-sending "Directe link naar The order is still on its way")

**"This order is still on its way to your store. Wait a moment, then press Checkout again."** Nothing has been charged. The store recognises the order when it arrives, so you won't make a second one.

### The register isn't open[​](#register-closed "Directe link naar The register isn't open")

**"Open the register before completing the sale".** The register was closed after this sale started, for example on another till, so the till won't take the payment. The sale is kept.

1. Press **✕** to go back to the cart. **Open register** stands where **Checkout** was.
2. Press **Open register**, count the drawer and open it, as in [Open the register](/nl/pos/register.md#open). If it was closed on another till, the open card says who closed it and when.
3. Press **Checkout** and take the payment again.

With several registers, **"Choose a register before completing the sale"** means pick one first.

### Payment not recorded — take it again[​](#payment-not-recorded "Directe link naar Payment not recorded — take it again")

**"The payment wasn't recorded — nothing was taken. Try again."** Press **Take** again. See [When nothing was taken](/nl/error-codes/PAYMENT999.md).

### Payment already recorded — don't take it again[​](#payment-already-recorded "Directe link naar Payment already recorded — don't take it again")

**"Your store has this payment — this till couldn't save its copy. Don't take it again."** The payment is on the order. Don't take it again. See [When your store already has the payment](/nl/error-codes/PAYMENT111.md).

### A pop-up after a completed sale[​](#popup-after-sale "Directe link naar A pop-up after a completed sale")

**An error pop-up, but the sale went through.** Check the order before you take any payment again. Then tell a shop manager what the pop-up said.

For a shop manager: find the cause in the log

Open **Store health → Logs** and find the row from that sale. The code at the end of the row names the problem:

* **PAYMENT101** — your store confirmed the payment. Only the POS's update afterwards failed, so don't charge again. See [When the payment went through but its status didn't refresh (PAYMENT101)](/nl/error-codes/PAYMENT101.md).
* **SYNC131** or **CHECKOUT201** — your store's reply was broken, often by a PHP warning or an error page from a plugin or theme. The store may have saved the sale even though the POS couldn't read its reply. Ask whoever looks after your website to fix the warning. See [Response Error](/nl/support/troubleshooting/response-error.md#codes).

### The order changed while you were paying[​](#order-changed "Directe link naar The order changed while you were paying")

**"The order changed while you were paying. Check the amount and try again."** Check **To pay** and the order's lines, then take the payment again.

### The store deleted the order[​](#order-deleted "Directe link naar The store deleted the order")

**"Order deleted on the store"** with one of two lines under it. Someone deleted the order on your website while this till still had it.

* **"Order #… was deleted on the store. The cart has been kept as a new order."** Carry on with the sale. It goes to your store as a new order.
* **"Order #… was deleted on the store and has been removed from this device."** The order wasn't an open sale, so the till dropped its copy. If it was deleted by mistake, a shop manager can look for it in the orders trash on your website and restore it.

See [Record gone on store](/nl/error-codes/SYNC203.md).

### A re-opened sale has nothing to pay[​](#reopened-paid "Directe link naar A re-opened sale has nothing to pay")

**Done** instead of the payment methods. You re-opened a sale from **Orders**, and its payments already cover it. Press **Done** to complete it again. No money is taken.

![Checkout for a re-opened sale: a Done button where the payment methods would be, the order's Cash payment marked Captured and Paid in full, and the sale's tab selected in the cart](/img/2.x/pos/checkout/troubleshooting/en/tablet-light-regular--ts-5-reopened-done.png)1234

1. **Done** — completes the sale again and takes no money.
2. **Cash · Captured** — the payment taken before you re-opened the sale. It covers the total, so the order reads **Paid in full**.
3. **Guest** — the re-opened sale's tab.
4. **✕** — with a payment on the order, it opens **Cancel payment** instead of going back to the cart.

### More than is due[​](#more-than-due "Directe link naar More than is due")

**"Only … is due — … can't give change".** The amount is more than the balance on a method that can't give change. Type the amount due, or use Cash.

### The till can't open its saved data[​](#local-database "Directe link naar The till can't open its saved data")

**"Local database unavailable — reload the app before taking or refunding payment".** Reload the app.

## A card reader payment fails[​](#card-reader "Directe link naar A card reader payment fails")

### The card payment failed[​](#card-payment-failed "Directe link naar The card payment failed")

**Payment failed: Card declined**, **Payment cancelled** or **Timed out — payment cancelled**. Press **Try again** or **Choose another way**.

### Card charged, order not finished[​](#card-charged-order-open "Directe link naar Card charged, order not finished")

**"The card was charged, but the order didn't finish."** Your store has the money. Don't charge the card again, and don't press **✕**: with a payment on the order it opens **Cancel payment**. Reload the app, and the till tries again to finish the sale. If the order is still open, serve the customer and ask a shop manager or administrator to finish it. See [When the card was charged but the order didn't finish](/nl/error-codes/PAYMENT121.md).

### Authorised, not captured[​](#authorised-not-captured "Directe link naar Authorised, not captured")

**"Authorised, not captured: …"** on a payment terminal. The card was approved, but your store hasn't taken the money yet. Press **Try capture again**, or **Cancel on terminal** to let the card go.

### Payment confirmation incomplete[​](#confirmation-incomplete "Directe link naar Payment confirmation incomplete")

**"Payment confirmation incomplete: …"** on a reader paired with the app. The reader approved the card, but the till couldn't confirm the payment with your store. Press **Check payment again**. The till retries the same payment, so the card isn't charged twice.

### The terminal doesn't confirm the cancel[​](#cancel-not-confirmed "Directe link naar The terminal doesn't confirm the cancel")

**"Cancelling — waiting for the terminal to confirm"** on a payment terminal. The till asked the terminal to cancel and it hasn't answered. To pay another way, press **Release this payment**: it frees the order, and the store keeps checking the terminal.

Releasing doesn't cancel the payment, so the card may still be charged. Look at the terminal's screen before you take the money again: if the payment went through, don't take it again, and wait for the order to update. If you can't tell, follow [Stop a payment](/nl/payment/gateways/square-terminal.md#stop).

### No reader connected[​](#no-reader "Directe link naar No reader connected")

The till shows **No reader connected**, with the link **Connect in Settings → Card readers** beside it. Press the link and pair the reader there.

Every reader message, and the payment's **Details** log for support, are in [When a card reader payment gets stuck](/nl/payment.md#card-reader-problems).

## The Legacy tab's page won't load[​](#legacy-wont-load "Directe link naar The Legacy tab's page won't load")

**"The payment form didn't load — check the connection to your store, then retry."** Check the connection and press **Retry**.

**"The payment form can't load — this order has no payment link from the server yet."** The store hasn't finished the order. Press **✕** and try again.

**"The payment page failed to load after processing — close checkout and check the order's status before paying again."** The gateway may have taken the money. Check the order before you take another payment.

**"A legacy gateway can't be used once a payment has been taken".** Once a payment is on the order, **Whole bill only** shows under the tabs. A Legacy gateway charges the whole order. [Cancel the payments taken so far](/nl/pos/checkout/cancelling-a-payment.md) to use one.

See [When the Legacy tab's payment page won't load](/nl/payment.md#legacy-notices).

## A gateway's payment page looks wrong[​](#checkout-settings-troubleshooting "Directe link naar A gateway's payment page looks wrong")

The [Legacy tab](/nl/pos/checkout/legacy-tab.md) shows a payment page your website sends. Styles and scripts from your theme and plugins still load on it, and they can break it. The **Checkout Settings** button on that page removes them.

**If you're a cashier:** ask a shop manager or administrator to fix the page. You can open the form, but only they can save it. If you pressed **Process Payment**, check the order and the provider's dashboard before you take the payment another way.

For a shop manager: fix the payment page

![The Legacy tab at checkout: the payment page from the store with the Checkout Settings button at its top right and the Process Payment button below](/img/2.x/pos/checkout/troubleshooting/en/tablet-light-regular--ts-2-legacy-page.png)1234

1. **Legacy** — gateways that run on your store's own payment page.
2. **Checkout Settings** — opens the form that chooses what this page loads.
3. **Process Payment** — pays with the gateway chosen on the page. It works once the page has loaded.
4. **✕** — back to the cart with the order kept.

1) Sign in to the POS as a shop manager, an administrator, or any user with the `manage_woocommerce` capability. Signed in as a cashier, **Submit** says **"You do not have permission to modify checkout settings."**
2) Press **Checkout**, open the **Legacy** tab and press **Checkout Settings**.
3) Untick a style or script to remove it. Start with your theme's styles, then scripts your gateway doesn't need.
4) Press **Submit**, then try a test payment with each Legacy gateway you use.

**What the Checkout Settings form shows**

![The Checkout Settings form over the Legacy tab's payment page: Disable wp\_head and Disable wp\_footer at the top, then the styles list and the scripts list side by side, with greyed entries that are always removed](/img/2.x/pos/checkout/troubleshooting/en/tablet-light-regular--ts-3-checkout-settings.png)12

1. **Legacy** — the tab the form belongs to.
2. **Checkout Settings** — the form, over the payment page. Every style and script the page loads has a ticked box.

* **Disable wp\_head** / **Disable wp\_footer** — remove everything from the page's header or footer, including scripts the payment form needs. Use them only to test whether styles and scripts are the cause.
* **Disable Selected Styles** — one entry per style. Your theme's are named after it, such as `twentytwentyfive-style`.
* **Disable Selected Scripts** — one entry per script, such as `selectWoo`.
* Greyed entries ending *always removed on the POS payment page* are removed already.
* An entry that is already unticked was removed by an earlier **Submit**. Tick it and press **Submit** to load it again.

What WCPOS removes by itself, and the options for developers, are in [Speed up the Legacy tab's payment page](/nl/support/performance/checkout.md#legacy-page).

tip

If a gateway stops working after you remove a script, tick it again and press **Submit**.

With WCPOS Pro

Card readers and payment methods other than Cash and Card need WCPOS Pro. The free version takes Cash and Card on the **Payments** tab, and Card on the **Legacy** tab. See [Free vs Pro](/nl/getting-started/free-vs-pro.md).

## Related Documentation[​](#related-documentation "Directe link naar Related Documentation")

[Offline ModeWhat works without a connection, and what waits](/nl/getting-started/offline.md)

[Payment MethodsEvery reason a tile can't be used, and card reader problems](/nl/payment.md)

[Checkout PerformanceWhen saving and paying are slow](/nl/support/performance/checkout.md)
