> This page is for Product Documentation.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.navipartner.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.navipartner.com/_mcp/server.

# Shopify returns and refunds

Returns and refunds from Shopify are imported into Business Central, where they are booked as credit memos. This article explains how the process works, the two import methods, and which situations are handled automatically.

> **Note:** For Shopify, the refund to the customer is always made in Shopify. Business Central doesn't send money back to the customer. It reads the refunds that were already made in Shopify and books them: it creates the credit memo, puts items back in stock, and posts the refund in finance.

Magento and other webshops connected through the NaviPartner Ecommerce API, and returns made at the POS, aren't covered in this article.

## How it works

1. The customer returns goods or asks for money back. Staff handle this in the Shopify admin: they create and close a return, or create a refund on the order. Shopify refunds the customer's card, gift card, or store credit.
2. A job queue entry in Business Central regularly checks Shopify for closed returns and for refunds without a return.
3. Each return or refund is placed in a queue in Business Central.
4. Business Central creates a **Sales Return Order** from it, with the returned items, shipping refund, fees, and so on.
5. If automatic posting is enabled, the return order is posted straight away. This creates a **Posted Return Receipt** and a **Posted Sales Credit Memo**, and the refund is posted against the customer.
6. Anything that can't be handled automatically stays in the queue with a message, so a user can fix it or handle it manually.

## Import methods

There are two methods of importing Shopify orders. The method your company uses decides how returns and refunds are imported.

| Import method                   | When it's used                                                                                                     | How returns and refunds are imported                                                                                                           |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| **Legacy order import**         | The **Shopify Ecommerce Order Experience** feature is disabled. This is the standard setup used by most companies. | Through the **Shopify Legacy Return Queue**. Supports returns, refunds without a return, shipping refunds, fees, gift cards, and store credit. |
| **E-commerce order experience** | The **Shopify Ecommerce Order Experience** feature is enabled in **NaviPartner Feature Management**.               | Returns are imported as e-commerce documents and processed from the **Shopify Event Log Entries**. Only closed Shopify returns are imported.   |

The e-commerce order experience is the newer import method, and it will replace the legacy order import over time. Until it covers all the situations described in this article, the legacy order import is recommended for companies that need refunds without a return, shipping refunds, gift card refunds, or fully automatic processing.

For setup instructions, refer to:

* [<ins>Set up Shopify returns and refunds (legacy order import)</ins>](/product/ecommerce-shopify-returns-refunds-setup)
* [<ins>Set up Shopify returns with the e-commerce order experience</ins>](/product/ecommerce-shopify-returns-order-experience-setup)

## What Business Central creates in each situation

The following applies to the legacy order import. Every return or refund becomes one **Sales Return Order** for the customer of the original order. The posting date is the date when the return was closed or the refund was made in Shopify.

| Situation in Shopify                                                       | What Business Central does                                                                                                                                                              |
| -------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| The customer returns items, and the items go back to stock.                | Creates item lines for the returned quantity and the refunded amount. The items are received at the Business Central location mapped to the Shopify location where they were restocked. |
| The customer gets money back but keeps the goods (refund without restock). | Creates an item charge line (**Refund Item Charge No.**) linked to the original shipment. The sale is reduced and nothing goes back to stock.                                           |
| An amount is refunded without any items (goodwill).                        | Creates a G/L line **Refunded beyond the lines** on the **Refund Discrepancy G/L Account No.**                                                                                          |
| A discount is given after the sale.                                        | Creates a G/L line **Discount after the sale** on the **Refund Discrepancy G/L Account No.**, with the VAT of the original sales line.                                                  |
| Shipping is refunded.                                                      | Creates a G/L line **Shipping refund** on the **Return Shipping Refund G/L Account No.**                                                                                                |
| A restocking fee or return shipping fee is kept.                           | Creates a negative G/L line **Return fee withheld** on the **Return Fee G/L Account No.**                                                                                               |
| There are several partial refunds on one order.                            | Each refund is a separate row in the queue and a separate return order.                                                                                                                 |
| The order isn't fully shipped and invoiced in Business Central yet.        | The row waits until the order is invoiced in Business Central. Units that were never invoiced aren't credited.                                                                          |
| The order was canceled before anything was invoiced in Business Central.   | The row gets the **Nothing to Credit** status. No document is created.                                                                                                                  |
| The original invoice is still unpaid in Business Central.                  | The credit memo is applied to the open invoice instead of being paid out.                                                                                                               |
| A gift card sold on the order is returned.                                 | Creates a G/L line on the account used in the original sale. The unused gift card is archived when the credit memo is posted.                                                           |
| The product was sold as a generic item.                                    | The line is booked on the return generic item.                                                                                                                                          |

### Discrepancies

A discrepancy is an amount that Shopify refunded on top of the value of the returned or refunded lines. Business Central can't link this amount to an item, a shipping line, or a fee, so it books it on the **Refund Discrepancy G/L Account No.**:

* **Goodwill refund** - the line is called **Refunded beyond the lines**, and it uses the VAT setup of the discrepancy account.
* **Discount given after the sale** - the line is called **Discount after the sale: \<item>**, and it uses the VAT of the original sales line.

## How refunds are handled

### Card and other payment refunds

* The refund to the customer is made in Shopify. Business Central never sends a refund request to Shopify or to the payment service provider. If a user tries to refund a Shopify payment from Business Central, the following message is displayed: *"Refunding Shopify payments from Business Central is not supported yet. Please use the Shopify admin interface to process refunds."*
* Only refunds completed in Shopify are imported. Pending refunds make the row wait until they're completed.
* Each Shopify refund is added to the return order as a payment line that is already marked as refunded, so it's never refunded twice.
* When the credit memo is posted, Business Central checks that it matches the amount Shopify refunded. It then posts a refund journal entry from the customer to the **Return Refund G/L Account No.**, which closes the credit memo in the customer ledger.

### Gift cards (retail vouchers)

If Shopify refunds money to a gift card that is linked to a retail voucher, the amount is put back on that voucher when the credit memo is posted. This reverses the earlier use of the card. It isn't a new voucher and it isn't a top-up.

* A card that was used up and archived is reopened first.
* The amount put back on a card can't be higher than the amount paid with it on that order.
* The gift card part of the refund is posted to the **Return Gift Card Refund G/L Account No.**

### Shopify store credit

Refunds made as Shopify store credit are booked as a liability on the **Return Gift Card Refund G/L Account No.** No retail voucher is created for them.

## What is covered

### Legacy order import

The following situations are handled automatically:

* Closed Shopify returns, with or without restock
* Refunds without a return: amount only, goodwill, and discounts after the sale
* Partial refunds and several refunds on one order
* Shipping refunds
* Restocking and return shipping fees kept from the customer
* Restock to the correct Business Central location, using the location mapping
* Refunds to a card, a Shopify gift card (retail voucher), and Shopify store credit
* Returned gift cards that were sold on the order
* Refunds on orders that aren't fully invoiced (the row waits until they are)
* Canceled orders that were never invoiced in Business Central
* Applying the credit memo to an unpaid invoice
* Automatic or manual posting, and automatic retries

The following situations need to be handled manually:

| Situation                                                                                                          | What happens in Business Central                                                                                                                       |
| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Exchanges (a return with an exchange item)                                                                         | Error: *"Shopify return … contains an exchange line. Exchanges are not imported; handle this return manually."*                                        |
| Returns that aren't closed in Shopify yet                                                                          | Not imported until they're closed.                                                                                                                     |
| Returns and refunds made before the start dates set on the **Shopify Store** card                                  | Not imported.                                                                                                                                          |
| Refunding the customer from Business Central                                                                       | Not possible. Refunds are always made in Shopify.                                                                                                      |
| Very large returns (more than 100 lines, or more than 50 refunds or transactions on one order)                     | An error message states that the return must be handled manually. Orders with 50 or more refunds also get a warning that later refunds may be missing. |
| Lines added manually in Shopify without an order line behind them, or lines with zero quantity                     | Error.                                                                                                                                                 |
| A return that refunds fewer units than were returned, or refunds a line that wasn't returned                       | Error.                                                                                                                                                 |
| Orders invoiced outside the sales order (for example, from posted shipments), or with more than one unpaid invoice | Error.                                                                                                                                                 |
| Refunds to several gift cards that can't be told apart, or to an unknown gift card                                 | Error, or only the G/L amount is posted and no voucher is updated.                                                                                     |
| A used, reserved, or deactivated gift card                                                                         | Error.                                                                                                                                                 |
| Return orders invoiced in parts                                                                                    | Not allowed. A Shopify return or refund must be invoiced in one go.                                                                                    |
| Return reasons                                                                                                     | Not transferred. There is no return reason mapping.                                                                                                    |
| Tickets, memberships, and other virtual items                                                                      | Not reversed automatically.                                                                                                                            |

### E-commerce order experience

When the **Shopify Ecommerce Order Experience** feature is enabled, the following additional limitations apply:

* Only closed Shopify returns are imported. Refunds without a return aren't imported.
* Shipping refunds, return fees, and goodwill amounts aren't credited.
* Gift cards, store credit, and exchanges aren't handled.
* Return lines are always plain item lines. Tickets, memberships, and vouchers are credited as items, but they aren't revoked.
* Return entries aren't processed automatically. A user needs to process them from the **Shopify Event Log Entries**.
* The **Shopify Legacy Return Queue** and its actions aren't available.