Every Shopify return creates four accounting entries: a refund to the customer, a VAT adjustment, a stock movement, and a settlement reconciliation. UK HMRC treats a full refund as a reverse supply for VAT purposes, which means you must reduce your output VAT in the period the refund is issued, not when the original sale occurred. If your return rate sits above 15 per cent—common for apparel, footwear, and homewares—this creates a cash-flow gap because Shopify Payments settles the net refund immediately, but your VAT correction waits until your next MTD return.
This guide walks through the UK-specific VAT treatment, the journal entries for full and partial refunds, the exchange rules (swaps with no refund), and the reconciliation traps that emerge when Shopify processes a return across two settlement periods. It is written for UK Shopify sellers preparing management accounts in Xero or preparing for MTD compliance.
VAT treatment of returns under UK rules
For related context, see our Shopify and D2C ecommerce accounting guide.
HMRC Notice 700/1 section 16 states that when you issue a full refund, you treat the original supply as cancelled for VAT purposes. You reduce your output VAT in the period the credit note is issued, provided you hold evidence the goods were returned and the customer received the refund within six months. If the return is partial—such as a 20 per cent restocking fee—you issue a credit note for the refunded amount only, and the VAT adjustment reflects the net amount credited.
Shopify does not automatically generate credit notes in a format HMRC recognises. You must create a compliant credit note in Xero or your accounting package, referencing the original invoice number, showing the negative VAT amount, and retaining the return authorisation (RMA) number as evidence. If you operate flat-rate VAT, you still reduce your flat-rate-eligible turnover by the refund amount, but you do not reclaim input VAT on the returned stock.
The timing difference matters. The original sale appeared in your VAT return for (say) Q1. The return happens in Q2. Your Q2 VAT liability falls by the refunded output VAT, which improves your VAT payment but defers cash into the next quarter. If you run quarterly MTD filings and your return rate spikes in January (post-Christmas), you will see a material negative VAT adjustment in your Q4 return (January to March).
Cross-border returns and the Northern Ireland Protocol
If you ship to Northern Ireland under the Windsor Framework, goods returned from NI to a GB warehouse are technically a movement from the EU VAT area to GB. HMRC does not require import VAT on returned goods provided you hold proof of the original sale and the return happens within 12 months, but you must record the movement in your stock system and exclude the return from your EU OSS or IOSS declarations if you use those schemes.
Recording full refunds in Xero
When a customer returns an order and Shopify processes a full refund, the cash movement is immediate: Shopify Payments deducts the refund amount plus the original transaction fee (non-refundable) from your next payout. The accounting entries are:
- Debit Sales (to reverse revenue)
- Debit VAT Output (to reverse the VAT liability)
- Credit Cash at Bank (the gross refund amount, which hits when the settlement lands)
- Debit Stock (to reinstate the returned unit at cost)
- Credit Cost of Sales (to reverse the original cost entry)
Shopify's order data exports the refund as a negative line item in the Orders CSV, but the transaction fee remains a positive deduction in the Payouts CSV. If you import directly from Shopify into Xero using A2X or Webgility, the app should create a credit note automatically. If you post manually, create the credit note in Xero against the original invoice, then reconcile the net payout in your bank feed to a batch settlement journal that aggregates sales, refunds, and fees for the payout period.
Do not post the refund as a standalone payment without linking it to a credit note. That orphan transaction will not reduce your revenue or VAT liability, and HMRC will overstate your turnover when you file your MTD return.
Partial refunds and restocking fees
If you issue a partial refund—such as keeping a £10 restocking fee on a £50 sale—you credit the customer £40 including VAT. The credit note shows £40 gross, which splits into £33.33 net and £6.67 VAT (assuming 20 per cent standard rate). The original sale showed £50 gross, £41.67 net, £8.33 VAT. Your output VAT for the period reduces by £6.67, and your revenue reduces by £33.33. The restocking fee (£8.34 net, £1.66 VAT) remains in revenue. Shopify records the partial refund as a single line item; you must manually calculate the VAT split in Xero because Shopify does not store the original VAT rate if you have multiple rates (such as zero-rated children's clothing).
Exchanges and swaps with no refund
When a customer swaps a size or colour and you do not process a refund—Shopify calls this an exchange—the accounting is simpler because no cash moves. HMRC treats an exchange as a standalone new sale if the replacement item has a different SKU or price. You raise a new invoice for the outbound item and a credit note for the returned item. If the items are identical in price, the net revenue and VAT entries are zero, but you still record the stock movements (returned unit back to stock, replacement unit out).
Shopify does not have native exchange orders; most sellers create a draft order for the replacement and a refund for the original, then manually waive the payment. If you operate this way, ensure the draft order is marked as paid with a zero-value transaction, so it does not sit as an unpaid invoice in Xero. The alternative is to create a single journal: debit Stock (returned unit), credit Stock (replacement unit), with no P&L impact. This approach is cleaner for management accounts but does not generate the credit note HMRC expects for VAT evidence, so we recommend the paired invoice and credit note method if the exchange happens after you have filed the VAT return for the original sale period.
Settlement reconciliation and the cash gap
Shopify Payments settles your sales net of refunds. If you process £10,000 in sales and £2,000 in refunds during a payout period, your payout is £8,000 less fees. The refunds reduce your payout immediately, but in Xero your revenue and VAT liability do not drop until you post the credit notes. This creates a reconciliation mismatch if you try to match the £8,000 payout to your sales invoices directly.
The correct approach is a two-stage process. First, you create a settlement clearing account (a current liability in Xero). Each day's sales post as invoices, debiting the clearing account. Each day's refunds post as credit notes, crediting the clearing account. Each day's fees post as expenses, crediting the clearing account. When the payout lands, you reconcile the bank transaction to the clearing account balance for that payout period. The clearing account should net to zero over time; if it drifts, you have missing refunds or unrecorded fees.
Shopify splits payouts by payout date, not by order date. A sale from 28 February that settles on 3 March appears in the March payout. If you run a calendar-month close for management accounts, you must accrue the in-flight revenue and refunds at month-end. Export the Orders CSV filtered by order date, then export the Payouts CSV filtered by payout date, and reconcile the difference as a month-end accrual journal. Our Shopify accountant service automates this with a daily sync, so your month-end close takes minutes instead of hours.
Transaction fees on refunded orders
Shopify Payments charges a transaction fee on every sale (1.5 per cent to 2 per cent depending on your plan) but does not refund that fee when you refund the customer. If you refund a £100 sale, the customer receives £100, but your payout drops by £100 plus the original £1.50 fee. That £1.50 is a permanent cost, recorded as a bank charge or merchant-fee expense. It does not reduce your revenue or VAT. If your return rate is 20 per cent, you are paying transaction fees on £20 of revenue you never keep, which adds 0.3 percentage points to your effective merchant-fee rate. This compounds with Shopify's monthly subscription, which does not prorate for net sales. A high-return store can see total platform fees reach 3 per cent of net revenue.
Stock adjustments and cost of sales
When a customer returns an item, you reinstate it to stock at the original cost. If you operate perpetual inventory in Xero, the return journal debits Stock and credits Cost of Sales, reversing the original sale's COGS entry. If the returned unit is damaged or unsellable, you write off the cost by debiting a Stock Writeoff expense and crediting Stock, with no impact on Cost of Sales. HMRC allows you to claim the written-off cost as a deductible expense, but you must retain evidence the unit was destroyed or donated.
Shopify's inventory system does not track cost per unit; it tracks quantities only. If you use weighted-average costing, you need middleware (such as A2X or DEAR Inventory) to calculate the cost of the returned unit based on your average purchase price in the period. If you use FIFO, you must manually calculate the cost of the returned unit by looking up the original order's SKU and the purchase order that supplied it. This is impractical at scale, which is why we recommend weighted-average for Shopify sellers unless you sell high-value, serialised items (such as electronics or jewellery).
Returns from Amazon FBA or other channels
If you sell the same SKUs on Shopify and Amazon FBA, and a customer returns an Amazon order, that unit cannot go back into your Shopify stock count unless you physically move it from the FBA warehouse to your Shopify fulfilment location. In your accounting system, maintain separate stock-holding codes for Shopify and FBA. The return journal debits FBA Stock, not Shopify Stock. If you later transfer units between channels, post an inter-location transfer journal (debit Shopify Stock, credit FBA Stock) with a memo noting the FBA shipment ID. This prevents double-counting and ensures your Shopify stock value matches the physical units in your Shopify fulfilment location.
MTD compliance and credit-note requirements
Making Tax Digital for VAT (MTD VAT) requires you to store digital records of every credit note, linked to the original invoice. Shopify's native order data does not include a credit-note PDF. You must generate the credit note in Xero or your accounting package, ensuring it shows the original invoice number, the negative VAT amount, the date of issue, and your VAT registration number. If HMRC audits your VAT returns, they will request these credit notes as evidence for the output VAT reductions you claimed.
If you issue more than £50,000 in refunds in a VAT quarter, HMRC may query the spike. Prepare a returns-by-month schedule showing the number of returned orders, the gross refund value, and the reason codes (such as size, damaged, changed mind). Shopify exports return reasons in the Returns CSV if you enable return requests in your admin. Attaching this schedule to your VAT return (as a PDF in your MTD software) pre-empts the query and demonstrates you have proper controls.
From April 2026, Making Tax Digital for Income Tax (MTD ITSA) extends digital record-keeping to sole traders and partnerships with qualifying income above £50,000. If you operate as a sole trader, your Shopify returns will feed into your profit calculation for Self Assessment. The same credit-note and settlement-reconciliation discipline applies, but you must also track the returns against your quarterly ITSA submissions if HMRC mandates quarterly reporting for your income band.
Worked example: Q1 returns for a 20 per cent return-rate store
Assume you run a Shopify apparel store with a 20 per cent return rate. In Q1 (January to March) you process £120,000 in gross sales including VAT, which splits into £100,000 net revenue and £20,000 output VAT. You issue £24,000 in refunds (£20,000 net, £4,000 VAT). Your Q1 VAT return shows output VAT of £16,000 (£20,000 original less £4,000 refunded). Your cash received from Shopify Payments is £96,000 (£120,000 sales less £24,000 refunds), less £1,800 in non-refundable transaction fees on the refunded orders (1.5 per cent of £120,000). Your net payout is £94,200. Your P&L shows £100,000 revenue less £20,000 refunded revenue equals £80,000 net revenue, less £50,000 COGS (including the cost of returned stock), less £1,800 merchant fees, less other opex. Your VAT liability for Q1 is £16,000 less input VAT on your purchases. If your input VAT is £8,000, you owe HMRC £8,000, due by 7 May under MTD rules.
Now assume half the refunds (£12,000 gross) were for December sales that appeared in your Q4 VAT return. You filed Q4 in January showing output VAT of (say) £18,000, but you had not yet processed the December returns. Those returns reduce your Q1 output VAT, not your Q4 output VAT, because HMRC requires you to adjust VAT in the period you issue the credit note. This timing difference means your Q4 VAT payment was £2,400 higher than it should have been (the VAT on the £12,000 December returns), and your Q1 VAT payment is £2,400 lower. Over the year this evens out, but it creates a working-capital drag if you have a seasonal spike in returns (such as post-Christmas).
Refund fraud and chargeback accounting
Shopify does not prevent a customer requesting a refund and then disputing the original charge with their bank. If the customer wins the chargeback, you lose the sale twice: once for the refund and again for the chargeback. The chargeback fee (£15 with Shopify Payments) is non-refundable. In Xero, record the chargeback as a separate bad-debt writeoff (debit Bad Debt Expense, credit Accounts Receivable if you had not yet posted the credit note, or debit Bad Debt Expense, credit Cash at Bank if you had already refunded the customer). The chargeback fee posts as a bank charge. HMRC allows you to claim bad-debt relief for VAT on unpaid invoices, but the invoice must be more than six months overdue and you must have written it off in your accounts. Chargebacks do not qualify for bad-debt relief because the supply was completed and the VAT was paid, even though you refunded the customer.
If your chargeback rate exceeds 0.75 per cent (Shopify's threshold for high-risk accounts), Shopify may hold a rolling reserve of 10 per cent of your payouts for 120 days. This reserve sits in a clearing account labelled Shopify Reserve in your Xero chart of accounts. Do not treat it as revenue; it is a restricted-cash asset. When Shopify releases the reserve, it appears as a positive payout with no corresponding sales. Reconcile it to the reserve account, zeroing the balance.
Common mistakes and how to fix them
The most common mistake is posting refunds as payments against the original invoice in Xero instead of creating a credit note. This leaves the invoice open, does not reduce revenue or VAT, and creates a permanent reconciliation gap. To fix it, void the payment, create a credit note for the refund amount, and allocate the credit note to the original invoice. The invoice will then show as paid, and your VAT liability will drop.
The second mistake is recording the gross refund as a single expense line (such as
If you want SCA to check how this applies to your ecommerce accounts, book a discovery call and we will map the cleanest treatment before the next VAT return.
