About
Finaloop’s direct integration with Shopify ensures your orders, refunds, cancellations, and receivables flow automatically into your books. We sync data directly from Shopify so your financials are always accurate and up to date.
This article explains how Shopify orders flow into Finaloop, how refunds and returns are recorded, what happens with order cancellations, and how to manage your unpaid/ open orders.
1. Shopify sales orders in Finaloop
The way orders flow from Shopify depends on whether you use cash basis or accrual basis accounting.
Cash basis
Cash basis
Using cash basis, sales are only recognized when a payment is collected. Orders created but not yet paid don't appear in your books (but do appear in your Branded Store Orders screen).
Flow:
1. Order created in Shopify →
You can see the order in your Branded Store Orders screen but no impact in your P&L or Balance Sheet.
💡Note: On cash basis, unpaid orders don’t create Accounts Receivable in your books.
2. Payment received from customer →
Order payments can be received through a payment processor or through an 'offline' channel, like cash, ACH, or check.
If paid through a payment processor → Sales, discounts, shipping income, tips, and taxes hit your P&L on the payment date. We’ll automatically match the payment to the order.
If paid offline or through manual payments (ACH, check, cash), or marked as unpaid in Shopify → The order will show in your Branded Store Orders screen as Unpaid until you link the payment to the order (see section on Order Actions to learn how). Alternatively, categorize the deposit in your bank feed as Cash payment received for store orders. This ensures your numbers are accurate from an accounting perspective, but will be harder for you to track your real unpaid orders since the specific order won’t be marked as Paid in your Branded Store Orders screen.
3. Order fulfilled→
COGS are recorded once the order is shown as fulfilled.
Note: On cash basis, sales are recorded based on the date the
payment is received, while COGS is recorded based on the fulfillment date.
For most sales channels, including Amazon and TikTok Shop, Finaloop syncs fulfillment data automatically. Shopify works differently. Many brands do not consistently update fulfillment statuses inside Shopify, and the data can be missing, delayed, or incorrect. Because of this, accurate fulfillment information is not always available. Instead, by default Finaloop treats the order as fulfilled on the date the order is placed. This means timing difference between sales and COGS may occur. For example:
Order placed date: Jan 1
Order fulfilled: Jan 5
Payment received: Jan 7
Sales will be recorded Jan 7 and COGS on Jan 1, which is the effective fulfillment date.
If your Shopify fulfillment data is consistently updated and you prefer to use the fulfillment dates directly from Shopify, reach out to Support and we'll update your settings.
Accrual basis
Accrual basis
On accrual basis, sales are recognized based on your selected fulfillment tracking method in Finaloop, even if payment hasn’t been received yet (see section below on Fulfillment Tracking Options). Unpaid Shopify orders flow into Accounts Receivable (A/R) until a payment is linked.
Flow:
1. Order created in Shopify →
Deferred revenue is created in your Balance Sheet until the order is fulfilled. Deferred revenue is an accounting liability created when you receive a payment from a customer for services or products that you haven't yet provided.
An open balance is also created in your Accounts receivable (A/R) - Shopify account.
2. Payment received from customer →
If paid through a payment processor → We automatically mark the order as Paid (or Partially paid) and match the payment to the order. This reduces your Accounts receivable (A/R) - Shopify balance.
💡A technical note: When the order is marked as Paid, you may see a temporary increase in a Balance Sheet account called Reconciliation-in-process (RIP). This account acts as a temporary holding spot for sales and refunds until the matching payment is found.
In other words, RIP manages the timing difference between when a sale/refund is recorded and when the actual payment hits. It typically zeros itself out automatically as payments are reconciled.
Here’s how it flows:
When an order is marked as paid in Shopify, the RIP account increases.
As soon as the actual payment is received, the RIP account decreases, zeroing itself out over time.
At the same time, the Undeposited Funds account for that payment processor increases, until the money is finally paid out into your bank.
If paid offline or through manual payments (ACH, check, cash), or marked as unpaid in Shopify → Order will be marked as Unpaid until you link the payment to the order (see section on Order Actions to learn how). This reduces your Accounts receivable (A/R) - Shopify balance. Alternatively, categorize the deposit in your bank feed as Cash payment received for store orders. This reduces your net A/R balance and ensures your numbers are accurate from an accounting perspective, but will be harder for you to track real unpaid orders since the specific order won’t be marked as Paid in your Orders screen.
3. Order fulfilled→
Upon fulfillment, we recognize sales, shipping income, discounts, tips, and reduce your deferred revenue. At the same time, we record COGS and reduce your inventory.
To learn more about how we sync your Shopify numbers, check out Where are my Shopify numbers coming from?
Fulfillment Tracking Options - when is an order considered fulfilled?
For most sales channels, including Amazon and TikTok Shop, Finaloop syncs fulfillment data automatically. This allows us to record sales and COGS based on the actual fulfillment date. Shopify works differently. Not every brand consistently updates fulfillment statuses inside Shopify, and in many cases the data is missing, delayed, or incorrect. Because of this, accurate fulfillment information is not always available for syncing.
To handle this, Finaloop gives you two fulfillment tracking options for Shopify. These determine when an order is considered fulfilled for financial reporting.
Order placed date (default)- Orders are assumed fulfilled on the date the order is placed.
Since we don’t always have accurate, updated data from Shopify, we'll treat orders as effectively fulfilled on the Order placed date, unless Order fulfilled date is requested.
Order fulfilled date - Orders are treated as fulfilled/ partially fulfilled based on the dates the items are fulfilled in Shopify.
If your Shopify fulfillment data is up to date, we recommend switching your fulfillment recognition to Order fulfilled date. If not, using the Order placed date ensures clean, consistent data.
Note about warehouses for InventoryIQ users:
Dropshipping: Even if you did not elect Order placed date as your fulfillment timing, we’ll apply the Shopify fulfillment details to track the warehouses for any dropshipped orders.
Non-dropshipping:
If you use the Order placed date for tracking fulfillment, we use the default warehouse settings in your Warehouse tab in the inventory module to reduce inventory from the relevant warehouses when an order is fulfilled.
If you use Order fulfilled date for tracking fulfillment, we’ll use the Shopify fulfillment data to reduce your inventory from the relevant warehouses when an order is fulfilled.
Learn more in InventoryIQ Troubleshooting, “Incorrect warehouse settings.”
2. Shopify refunds, returns & cancelled orders in Finaloop
Refunds can be one of the trickiest parts to understand.
After sales are recognized for an order in Finaloop, any cancellation or refund will be treated as a refund in your books since the corresponding revenue was already recorded. Remember:
Cash basis: Sales are recognized on the payment date
Accrual basis: Sales are recognized on the fulfillment date, either using the Order placed date or the Order fulfilled date as described above.
Returns, refunds, and cancellations initiated in Shopify
Returns, refunds, and cancellations initiated in Shopify
Cash basis
Cash basis
A refund or cancellation will not reverse a sale that has already been paid (it won't have an impact on your gross sales). Instead, a refund payment will increase your Refund account in your P&L for the full sales price, reducing your net sales. Discounts, shipping income, tip income, fees, and sales tax, will each be reduced accordingly as well.
This same treatment applies whether the order was refunded/ cancelled before or after the items were fulfilled. This is why cancelled orders can appear in your Refunds & Returns account.
If an order is cancelled in Shopify before payment, these orders are marked as Void in Finaloop and don’t impact your books.
Note: Refunds & returns don’t impact COGS unless an item is marked as “Restocked” in Shopify or is updated manually in Finaloop. Learn more about reporting restocks here.
Accrual basis
Accrual basis
For accrual basis books, sales are recorded only when an order is considered fulfilled (see Fulfillment tracking options above). Because of this, the way refunds, cancellations, or reversals are treated will depend on the fulfillment tracking method you selected.
Fulfillment using 'Order placed date'→
An order is marked as fulfilled almost immediately, and is recorded as sales in your P&L.
Since sales are already recorded, a refund or cancellation won't reverse or cancel the order and won't have an impact on your gross sales. Instead, it increases your Refund account in your P&L for the full sales price, reducing your net sales. This is why cancelled orders can appear in your Refunds & Returns account, depending on when the order was cancelled.
Discounts, shipping income, tip income, fees, and sales tax, will each be reduced accordingly as well.
This same treatment applies whether the order was refunded before or after the items were physically fulfilled.
Fulfillment using 'Order fulfilled date'→
Cancellation /refund before 'Order fulfilled date'→ Since this order was not yet fulfilled, it was never recorded as sales in your P&L. We treat it as a cancellation, reversing the order with no actual “Refund” recorded, i.e. no impact on your P&L.
Cancellation/refund after 'Order fulfilled date'→ Since the sale was already recorded in your P&L, a refund will not reverse or cancel the order and won't have an impact on your gross sales. Instead, it increases your Refund account in your P&L for the full sales price, reducing net sales. This is why cancelled orders can appear in your Refunds & Returns account, depending on when the order was cancelled. Discounts, shipping income, tip income, fees, and sales tax, are each reduced accordingly as well.
Cancellation in Shopify before payment and before Order fulfilled date, these orders are marked as Void in Finaloop and don’t impact your books.
Note: Refunds & returns don’t impact COGS unless an item is marked as “Restocked” in Shopify or is updated manually in Finaloop. Learn more about reporting restocks here.
Returns & restocked inventory
Returns & restocked inventory
If you mark an item as restocked in Shopify, we update your inventory in Finaloop and reduce your COGS.
If the return is still “in progress” in Shopify, inventory won’t yet be restocked in Finaloop.
Alternatively, if you haven’t marked an item as “restocked” in Shopify, you can mark it as restocked in Finaloop. For further instructions, check out this article on Sales-based COGS or this article on InventoryIQ.
Exchanges
Exchanges
If you use tools like Loop or Redo, exchanges typically create a new $0 order in Shopify (i.e., an order with a 100% discount applied). We exclude those orders from your sales so your sales aren’t overstated.
Instead, we treat it as a COGS-only order (see status definitions below) and pick up any additional sales related to upsells from the payment processor data.
Handling refunds with open balances in Finaloop
Handling refunds with open balances in Finaloop
If a refund was accepted in Shopify but the order still shows open in Finaloop, mark it as Over-Collected to close it out (this usually happens if for some reason return wasn't initiated in Shopify for the order, despite the refunded payment).
3. Actions in Finaloop
Sometimes Shopify data doesn’t tell the full story. That’s where Finaloop’s order actions come in, letting you adjust open orders so your A/R and books stay clean.
These changes can be applied by changing the status of a channel or of an order in Finaloop.
Channel Actions
If you use a non-Shopify sales channel, marketplace, or app that is the source of orders but is connected to Shopify, such as TikTok Shop, Faire, Amazon, Loop Returns, and others, you can select how you want all orders from that channel to be treated, to ensure they don't create 'noise' related to fully discounted orders or double counting sales that are already being recorded from another source.
To keep your numbers clean, we created the ability to include or exclude part or all of the data from various apps based on a selected status. Note that some channels are automatically set to a specific channel status by our team to make sure your data stays clean and reconciled.
Finaloop status | Is sales data synced? | Is COGS data synced? | Examples / Images |
Included - includes all data | ✓ | ✓ | Shopify stores |
Excluded - excludes data that shouldn’t be included in your books, e.g., if we pull sales from another source, like other integrations or through net payouts | X | X | Amazon (we sync through Amazon instead)
|
COGS only - includes only COGS because we sync sales from the payouts | X | ✓ | Replacements, warranty, exchanges |
Sales only - includes only sales | ✓ | X | If you track your inventory based on an external system’s data |
To view or change your selected channel actions:
Go to Branded Store Orders.
Click on the Settings tab at the top of the page.
Here you can view the applied status to each of the sales channels connected to Shopify.
Order Actions
As mentioned above, sometime your unpaid or open orders need to be updated if their Shopify data doesn’t reflect the most accurate information.
You can also check out this video to learn more:
It’s important to periodically review your Unpaid orders tab in your Orders screen which will show all the unpaid orders, partially paid orders, orders marked as manually paid in Shopify, or overpaid orders to keep this number in line with:
Offline payments for orders that weren’t linked
Orders that should be voided
Over-collected or uncollected balances that should be closed
Orders that won't be paid, such as product giveaways, replacements, or exchanges, or
Orders that were historically paid before you started tracking your books in Finaloop. See Order status below for more information.
In Finaloop, we offer various Action items that you can apply to a single order, or multiple orders at once to update your A/R balance and your order status.
First, to view your unpaid orders, click on Branded Store Orders, and then the Unpaid Orders tab on the top of the screen. You can take any of the following actions to keep your Unpaid Orders balance updated.
1. Link payment
1. Link payment
If the order payment was already received in your bank account, you can link the order(s) to the specific payment(s) from your bank transactions.
Select the relevant order(s), click "Actions" then "Link payment."
If the amounts don't match exactly, you can split payments and add only part of the order amount or add expenses like discounts or FX commission to the link.
Check out this walkthrough to understand how to link payments to specific orders.
2. Void orders
2. Void orders
When you mark an order as Void, it doesn’t impact your books at all (i.e., it’s as if it never happened for financial purposes, although you will still see this in the orders page).
Select the relevant order(s), click "Actions" then "Void."
Note: if you see an order with a Void status, remember that this can be due to you marking it as void or it can be due to the void status we synced from Shopify.
3. Close an uncollected balance
3. Close an uncollected balance
If you have an order that will likely never be paid, you can close this uncollected balance by selecting an order or orders, clicking ‘Actions’ and selecting ‘Close uncollected balance.’
This will close your open balance for this order and create a ‘bad debt’ expense in your P&L.
4. Close an over-collected balance
4. Close an over-collected balance
Sometimes, a customer may overpay you for an order. For example, if a refund was initiated for an order, or an item in the order was cancelled but payment was already collected and no return was issued for this item in Shopify. Another example is if you accidently charged the customer twice for the same order but never issues a refund. When this happens, it creates a negative order balance which also impact your A/R balance.
If you overcollected from a customer, but you don’t plan to refund the customer, this should increase your sales income in your P&L and it should be removed from your A/R balance.
To close this order and make sure it’s properly shown in your books, select the order(s), click ‘Actions’ and select ‘Close over-collected balance.’ This will increase your sales for the over collected amount and close this open order on the date of the last activity in this order.
5. Mark an order as giveaway
5. Mark an order as giveaway
If an order is related to influencer collaborations, giveaways, or product samples, mark it as a Giveaway. This records the product cost as a marketing expense (under "Product giveaways" line item) in your operating expenses instead of COGS and excludes any sales revenue or discounts relating to the order from A/R.
6. Mark an order as COGS only
6. Mark an order as COGS only
A COGS only order doesn’t impact your sales, discounts, or other sales metrics. Only the COGS expense for that order impacts your books.
This can be due to the channel being treated as COGS-only, or to a specific order, for example if its a replacement order, warranty, or exchange.
4. Shopify Status Summary (”TLDR”)
Status on your Orders screen | What it means | Cash Basis Accounting treatment | Accrual Basis Accounting treatment |
PAYMENT STATUS |
|
|
|
Paid / Partially paid | Order is shown as paid if: | Order becomes Sales when paid. | 1. Automatic - Reduces A/R and increases Undeposited Funds |
Unpaid | If the payment in Shopify is Offline, Manual, Cash, or unknown, or if the order is Unpaid in Shopify, order will be marked as Unpaid in Finaloop. | Not included in books until a payment is linked to the order. | Unpaid orders are included in A/R until the payment is linked to the order. |
Refunded / Partially refunded | Orders for which the payment was refunded by the payment processor after the order was treated as fulfilled in Finaloop. This is the case whether the "Order placed date" or the "Order fulfilled date" is used as your fullfilment date. | When refund is paid, increase Refunds & returns account in your P&L for the full sales price. | Fulfillment using 'Order placed date'→
Refund in progress:
Refund paid:
This applies whether refunded before or after the items were physically fulfilled. Fulfillment using 'Order fulfilled date'→
If refund issued before 'Order fulfilled date': We treat it as a cancellation, reversing the order. No actual Refund recorded in your P&L.
If refund is issued after 'Order fulfilled date':
Note: No COGS impact unless an item is marked as Restocked in Shopify. |
FULFILLMENT STATUS |
|
|
|
Cancelled | The entire order was cancelled and refunded before fulfillment.
If the order was cancelled and refunded after fulfillment, see Refunded/ Partially refunded above. | Sales, Discounts, Shipping income, Tip income, Shopify fees, and Sales tax are all reversed and impact is removed from the books. | Fulfillment using 'Order placed date'→ N/A since order is marked as fulfilled immediately when placed, any cancellation will be treated as a Refund in your P&L. Fulfillment using 'Order fulfilled date'→
|
Fulfilled / Partially fulfilled | Order placed date: “Order placed” date automatically becomes your fulfillment date. No partially fulfilled or unfulfilled status applies. | Increase COGS and decrease Inventory. | Fulfillment using 'Order placed date'→
Fulfillment using 'Order fulfilled date'→
|
Unfulfilled | Order fulfilled date only. When no fulfillment date is indicated in Shopify. | No COGS or Inventory adjustment recognized yet. | No Sales, COGS or Inventory adjustment recognized yet. Sales income remains in Deferred revenue. |
Restocked / Partially restocked | Order is marked as Restocked in Shopify. | Reduces COGS and increases Inventory for the restocked amount. | Reduces COGS and increases Inventory for the restocked amount. |
FINALOOP STATUS |
|
|
|
Excluded | Orders synced | Excluded completely from your books. | Excluded completely from your books. |
Void | Orders marked as void may be: | Any impact is 100% reversed from your books (as if it never happened) | Any impact is 100% reversed from your books (as if it never happened) |
Giveaway | A giveaway status is either: | Sales are excluded. | Sales are excluded. |
COGS only | Orders you marked as COGS only or orders that come from channels marked as COGS only | Sales are excluded. Increases COGS and decreases Inventory. | Sales are excluded. Increases COGS and decreases Inventory. |
Uncollectible | Mark an order as uncollectible | Not relevant (sales are only included upon payment). | Reduces A/R, increases Bad Debt account. |
Overcollected | Mark an order as over collected if it has a negative balance and you don’t expect to refund the money, (e.g., a refund was initiated but payment was already collected and no refund was issued, or a customer was charged twice for the same order, but not refunded.) | Not relevant (sales are automatically increased upon payment). | Increases Sales by overcollected amount and increases A/R by reversing the negative amount. |
5. Shopify Order FAQs
Q: Why does my refund look bigger than what I refunded in Shopify?
A: We post refunds line-by-line to match the original sale. If a $75 order had a $10 discount and you refunded $65), you’ll see:
$75 refund in Refunds & Returns
$10 reversal in Discounts & Promotions
This still nets to $65, matching the actual refund.
Q: Do refunds change my COGS?
A: No—refunds don’t touch your COGS. Only if the item is restocked in Shopify will inventory and COGS update.
Q: Why do cancelled orders show as returns in my P&L?
If an order was cancelled before it was fulfilled, the sale would be reversed and no refund/ returns would show for that order. But, if an order was cancelled after it was fulfilled, we would show it as both a sale and a refund. The net impact on your P&L is the same but this keeps your P&L the most accurate and detailed.
6. Learn more
Want to learn more about our Shopify syncing? Check out these resources:



