Annual accounts for an online shop (Dutch): revenue, returns and inventory
Paid is not the same as delivered, and delivered is not yet definitively sold. This is how an online shop processes orders, returns and payouts around the year-end.
The short answer
An online shop books revenue on delivery to the customer, not on payment. For orders you expect to get back, you recognise not revenue but a refund liability, with an asset for the goods that come back (RJ 270, paragraph 112). The payout from the payment provider is a settlement of revenue, costs and returns, not a revenue figure.
Updated 30 October 2026
Key facts
| Moment of revenue | As soon as the significant rights and risks have passed to the customer (RJ 270.110) |
| Expected returns | Refund liability plus an asset for goods to be received back (RJ 270.112) |
| Consumer cooling-off period | Fourteen days after receipt of the parcel (art. 6:230o DCC) |
| Sales to consumers in other EU countries | Above € 10.000 revenue per calendar year the VAT of the customer's country applies |
When is an order revenue?
The customer pays at checkout, but there is revenue only once you have delivered. RJ 270 requires that the significant rights and risks of the item have passed to the buyer, that you can determine the revenue reliably and that payment is probable (paragraph 110). An order paid on 30 December and delivered on 3 January is therefore, at the balance sheet date, an amount received in advance and not revenue.
The payment provider makes that harder to see. It pays out one amount periodically: customer receipts, minus its fees, minus refunds. Book those three components separately: revenue excluding VAT, the transaction costs as an expense, and what the provider still has to pay out on 31 December as a receivable.
If you sell via a platform or a supplier delivers directly to your customer (dropshipping), determine whether you sell for your own account. Indications are that you are responsible for delivery, bear inventory risk, set the price and bear the credit risk (RJ 270.105b). If you sell for the account of another, only your commission is revenue.
Returns: a liability and an asset
A consumer may cancel a distance purchase without giving reasons up to fourteen days after receipt (art. 6:230o DCC). For deliveries in the second half of December it is therefore not yet certain at the balance sheet date whether the sale stands.
RJ 270 regulates it like this: for the amount to which you do not expect to be entitled, you book on delivery not revenue but a refund liability. Against that stands an asset for the right to get the goods back, measured at the carrying amount of the inventory sold less the expected costs of recovering them and any decline in value (paragraph 112). If you cannot reliably estimate the number of returns, for example in the first year, you wait with the revenue until the return period has passed.
Worked example: December sales with 15% returned
An online shop BV delivers 1,200 items in December at € 60 each excluding VAT; the cost price is € 36. On 31 December the cooling-off period is still running for 400 deliveries. Earlier years show that 15% of those come back: 60 items. The costs of getting the items back are negligible and they can be resold.
| Item | Calculation | Amount |
|---|---|---|
| Revenue December | 1.140 × € 60 | € 68.400 |
| Refund liability | 60 × € 60 | € 3.600 |
| Cost of sales | 1.140 × € 36 | € 41.040 |
| Asset: goods to be received back | 60 × € 36 | € 2.160 |
| Gross margin December | € 68.400 − € 41.040 | € 27.360 |
Without the return entry the profit and loss account shows € 72.000 revenue and € 28.800 margin. The difference of € 1.440 is margin on sales that are reversed in January.
Inventory, fulfilment and foreign VAT
Inventory held at a fulfilment partner remains your inventory and belongs on your balance sheet. Returned items that are damaged or can only be sold at a discount you value at the lower net realisable value (art. 2:387(2) DCC); the rules are at valuing inventory.
If you deliver to consumers in other EU countries and the revenue from that exceeds € 10.000 in a calendar year, you charge the VAT of the customer's country; you can declare that in one go through the one-stop shop (OSS). That VAT is not revenue but a liability.
Which documents an online shop BV makes public depends on the size class and not on the sales channel; check that with the size criteria and the audit requirement check.
Mistakes that often occur at online shops
- Taking all orders paid in December as revenue of December, even if they were delivered in January.
- Booking the net payout of the payment provider as revenue and thereby hiding the transaction costs.
- Not recognising a refund liability while the cooling-off period is still running at the balance sheet date.
Where Jaarrekening.io helps the online shop BV
The annual accounts route of Jaarrekening.io works with the export from your bookkeeping package: an XAF audit file or a trial balance in Excel or CSV. Direct connections per bookkeeping package have not been released yet. The cut-off of orders and the estimate of returns you do in the bookkeeping, before importing. Filing with the KVK you do yourself.
Sources
Frequently asked questions
Is the payout from my payment provider my revenue?
No. The payout is what remains of customers' payments after deduction of transaction costs and refunds, and it lags by a few days. Your revenue is the amount excluding VAT of the orders you delivered in the financial year.
How do I treat returns if my online shop has only existed for a few months?
Without experience figures you usually cannot estimate the number of returns reliably. The significant risks have then not yet passed to the customer and you book the revenue only once the return period has expired (RJ 270.111 and 270.112). The money received stays on the balance sheet as a liability meanwhile.
I sell online from a sole proprietorship. Do these rules apply too?
Title 9 and the guidelines apply to legal entities such as the BV. With a sole proprietorship you prepare a balance sheet and a profit and loss account for the income tax return, under the tax profit rules, and need not file anything. The questions about delivery, returns and inventory remain the same.
Does the shipping fee the customer pays count as revenue?
Yes, if you arrange the shipping yourself and the customer pays you for it: it is part of what you receive for the delivery. The carrier's invoice is a cost item.
Read more
Preparing Dutch annual accounts?
Your first set of annual accounts is free, for every size class. Create an account and prepare the annual accounts of your Dutch company under Title 9 of Book 2 of the Dutch Civil Code.
Get started