# Refund Rules

Pro Feature

Refunding from WCPOS needs [WCPOS Pro](/ar/getting-started/pro-license.md). Without Pro, the **Orders** page is a preview only: refund the order in WP Admin under **WooCommerce → Orders**.

This page covers refunds in detail: each part of the refund form, where the money goes, what each failure message means, and what the order shows afterwards. For the steps of a refund, from opening the order to confirming it, follow [Refunds at the Till](/ar/sell/refunds.md).

## Starting a Refund[​](#starting-a-refund "رابط مباشر إلى Starting a Refund")

You need a connection, and the order must have reached your store and be **Completed**, **Processing** or **On hold** ([When the Refund Action Appears](#when-the-refund-action-appears)). Wait for "Refund of *(amount)* processed" before you hand over any cash. If a message appears instead, see [If a Refund Fails](#if-a-refund-fails).

An opened order:

![An opened cash order: the date, store and cashier line, the items, totals and cash payment, and in the footer Delete, Refund, Sync, Close, Receipt and Re-open](/img/2.x/orders/refunds/en/tablet-light-regular--or-1-order.png)1234567

1. **Order details** — when it was paid, at which store, by which cashier, and where it was created.
2. **Payment** — how the customer paid. This decides where a refund can go; see [When to Use Cash vs. Original Method](#when-to-use-cash-vs-original-method).
3. **Delete** — deletes the order. It is not a refund.
4. **Refund** — opens the refund form, **Refund Order #*(number)***.
5. **Sync** — fetches the order again from your store.
6. **Receipt** — the order's receipt as it is now.
7. **Re-open** — puts the order back in the cart to change it.

### When the Refund Action Appears[​](#when-the-refund-action-appears "رابط مباشر إلى When the Refund Action Appears")

**Refund** shows only on a **Completed**, **Processing** or **On hold** order that has reached your store.

Refund button missing?

It doesn't show on **Pending**, **Cancelled**, **Failed** or fully **Refunded** orders, on a sale still open in the POS (**POS open** or **POS partial**), or on an order still waiting to sync. To refund one of those, use WP Admin under **WooCommerce → Orders**. If an order's status changed in WP Admin, press **Sync** and open it again. If WCPOS reports that its local database is unavailable, refunds are blocked until you reload the app.

## The Refund Form[​](#the-refund-form "رابط مباشر إلى The Refund Form")

The form opens with every line of the order and nothing selected to refund. Below, a second refund on the same order is filled in: one watch, with $45.00 refunded before.

![The refund form open as a panel over the Orders screen, for an order refunded once before](/img/2.x/orders/refunds/en/tablet-light-regular--or-4-refund-form-screen.png)

Each part of the form:

![The refund form for an order refunded once before: Total and Previously Refunded, the line table with the last watch set to refund, Custom Amount, the reason Wrong size, Refund Total $45.00 and Process Refund](/img/2.x/orders/refunds/en/tablet-light-regular--or-5-refund-form.png)12345678

1. **Total** — the order total.
2. **Previously Refunded** — what earlier refunds have already given back. It shows only after a first refund.
3. **QTY** — how many of the line are still refundable: the quantity bought, less any refunded before. If WCPOS can't load the store's refund history (offline, for example), it shows the full quantity bought; the money is still capped at what is left to refund.
4. **Refund Qty** — how many of the line to refund now.
5. **Refund Amount** — what the line refunds, tax included.
6. **Custom Amount** — an extra amount not tied to a line. It is added to the line amounts.
7. **Reason** — optional. It is saved with the refund and shown on its card under [Refunds](#refunds-section).
8. **Process Refund** — asks you to confirm. Greyed out until **Refund Total** is above zero and no more than is left to refund.

The table columns, in order

| Column            | What it shows                                                                 |
| ----------------- | ----------------------------------------------------------------------------- |
| **Product**       | The line's name                                                               |
| **Price**         | The unit price, with or without tax as your store displays prices in the cart |
| **QTY**           | The quantity still refundable                                                 |
| **Refund Qty**    | How many to refund now                                                        |
| **Refund Amount** | Refund Qty × the line's price, plus that share of the line's tax              |

**Refund Total** at the bottom adds the line amounts and **Custom Amount**, and updates as you type.

### Refunding Whole vs. Partial Quantities[​](#refunding-whole-vs-partial-quantities "رابط مباشر إلى Refunding Whole vs. Partial Quantities")

There is no separate full-refund button. To refund the whole order, set every line's **Refund Qty** to its full **QTY**, and type any shipping and fees in **Custom Amount**: the table lists the order's products only, so shipping and fees have no row. For a part refund, set only the lines and quantities coming back.

A custom amount is refunded as one sum, with no tax split.

Refunded products go back into stock when the product tracks stock.

## When to Use Cash vs. Original Method[​](#when-to-use-cash-vs-original-method "رابط مباشر إلى When to Use Cash vs. Original Method")

* **Paid by card** on a reader or payment method that can refund from WCPOS: choose **Refund to *(payment method)***.
* **Card customer taking cash back** instead, if your store allows it: choose **Refund via cash** and hand the cash from the drawer.
* **Paid in cash**: the refund is cash, and the form doesn't ask.

تحذير

Don't choose **Refund via cash** for money you give back on a card terminal. A cash refund lowers the cash the register expects in the drawer, but no cash left it, so the count at close would come up over.

Paid on a separate card terminal?

If the customer paid on a standalone card terminal that WCPOS doesn't connect to, refund the card on the terminal or in the provider's dashboard, then record the refund on the order in WP Admin.

Original payment method unavailable?

When the payment method can't refund from WCPOS, **Refund to *(payment method)*** is greyed out and the form says "Original payment method refunds are unavailable for this order."

If WCPOS can't check the payment method, the form says "Couldn't verify original payment method refunds. Cash refunds are still available." and selects **Refund via cash**. Choose it only if you are handing over cash.

## If a Refund Fails[​](#if-a-refund-fails "رابط مباشر إلى If a Refund Fails")

Read the message before you try again. Most failures mean nothing was refunded. One means WCPOS can't tell.

Check before you try again

**"WCPOS couldn't confirm whether this refund went through."** means the refund was sent but WCPOS got no clear answer, so it may have gone through. Open the order and look under [Refunds](#refunds-section) before you try again. Each try is a new refund, so pressing **Process Refund** again could refund the customer twice. If the order hasn't updated, check it in WP Admin. See [PAYMENT311](/ar/error-codes/PAYMENT311.md).

Every other message means nothing was refunded, for example when you are offline:

![The Orders screen offline, with the refund form open and a warning notice at the top of the screen. The watch's QTY shows 2 again because the refund history can't load](/img/2.x/orders/refunds/en/tablet-light-regular--or-7-offline-screen.png)

![The offline notice close up: You're offline, so no refund was made. Reconnect to the internet, then try again, with a Help button](/img/2.x/orders/refunds/en/tablet-light-regular--or-6-offline-toast.png)

Any other message: nothing was refunded

Fix what the message names, then press **Process Refund** again:

* **"You're offline, so no refund was made."** Reconnect to the internet, then try again.
* **"WCPOS was in the background, so no refund was made."** The app was put away before the refund was sent. Try again now.
* **"No refund was made — sign in, then try again."** Your sign-in expired. Sign in, then try again.
* **Your store's own message, or "Failed to process refund".** The store or the payment method refused the refund, for example because your account may not refund or a value isn't allowed. Read the message, fix what it names, or choose **Refund via cash** if you are handing over cash.

## After the Refund[​](#after-the-refund "رابط مباشر إلى After the Refund")

Once the order has refreshed from your store, it shows the refund.

![The order after a part refund of $45.00: under Totals a red Refund row of -$45.00 and Net Payment $83.00, and below them the cash payment of $128.00](/img/2.x/orders/refunds/en/tablet-light-regular--or-2-order-after.png)123

1. **Refund** — what has been refunded so far, taken off the totals.
2. **Net Payment** — replaces **Total**: what the order took, less refunds.
3. **Payment** — the original payment stays as it was. Below it, a **Refund** line shows the amount given back.

At the top of the order, the status badge reads **Partially refunded**. The order's status itself doesn't change: the Orders list still shows it as **Completed**, for example. When everything has been refunded, WooCommerce sets the order to **Refunded**, and **Refund** no longer shows on it.

### The Refunds Section[​](#refunds-section "رابط مباشر إلى The Refunds Section")

Scroll down the order to **Refunds**. Its header counts the refunds and adds them up. Each refund has a card.

![The Refund line under Payment, and the Refunds section with one card: Refund #229730, less than a minute ago, -$45.00, By 2, the reason Strap too small, and the refunded watch with its quantity, tax and total](/img/2.x/orders/refunds/en/tablet-light-regular--or-3-refunds-section.png)1234

1. **Refund** — under **Payment**, the amount given back.
2. **Count and total** — how many refunds the order has and what they add up to.
3. **By** — who made the refund, shown as their WordPress user ID (2 here), not their name.
4. **Receipt** — opens the refund receipt for this refund.

Each card starts with **Refund #*(id)***, the refund's own number, and when it was made. The amount is on the right. Below come the reason in quotes, then the lines the refund covered: product and SKU, quantity, tax and total, shown as negatives.

If WCPOS can't fetch the refund details, the section says "Could not load refund details." with **Retry**. Below it, **Local refund summary:** lists what the device already holds for each refund: its number, the reason (or "No reason provided") and the amount. When the device holds nothing, it says "No local refund summaries are available." Press **Retry** once you're connected.

### Refund Receipts[​](#refund-receipts "رابط مباشر إلى Refund Receipts")

**Receipt** on a refund card opens a **Refund receipt** for that refund only, to print or save as a PDF. It has no email button. It lists the refunded lines and their tax, and its payment section, headed **Refunded to**, says where the money went. Pick the template and printer, then **Print Receipt** or **Download PDF**.

**Receipt** in the order's footer opens the order's receipt as it is now. A detailed receipt shows **Refunded** and **Net Total** rows. See [Open a receipt again](/ar/sell/print-email-receipts.md#reprinting-receipts).

### Cash Refunds and the Drawer[​](#cash-refunds-and-the-drawer "رابط مباشر إلى Cash Refunds and the Drawer")

A cash refund made while the register is open lowers the cash the register expects in the drawer, and the register panel lists it under **Cash refunds**. See [Cash refunds and the drawer](/ar/sell/refunds.md#drawer).

### Who Made the Refund[​](#who-made-the-refund "رابط مباشر إلى Who Made the Refund")

Each refund from WCPOS records the cashier, the store and the destination (cash or the payment method). When the register has a session open, the refund is tied to that register and session too, so it counts against that drawer. See [Reconciliation](/ar/manage-store/reports/closure-reports.md).

## Things to Know[​](#things-to-know "رابط مباشر إلى Things to Know")

* **Returns are refunds.** To take something back, refund the order the customer paid with, not a new sale.
* **Coupons stay as they were.** A refund gives back the amounts on the form; it doesn't change the order's coupons.
* **Refunds need a connection.** Your store, and for a refund to the payment method the payment provider, must be reachable.
* **A fully refunded order has nothing left to refund.** Its status is **Refunded** and **Refund** no longer shows.

## Related Documentation[​](#related-documentation "رابط مباشر إلى Related Documentation")

[Refunds at the TillOne refund at the till, step by step](/ar/sell/refunds.md)

[Payment GatewaysWhich payment methods can refund back to the customer from WCPOS](/ar/settings/checkout/payment-methods.md)

[Open a refund receiptOpen the receipt for an order or for one refund again](/ar/sell/print-email-receipts.md#reprinting-receipts)
