Bookkeeping

Shopify Discount Codes: How to Handle Them in Your Accounting

Shopify Discount Codes: How to Handle Them in Your Accounting

Discount codes are one of the most effective marketing tools for any Shopify store. Whether you’re offering 10% off for new customers, running a seasonal sale or rewarding loyal buyers, discounts drive conversions. But how do these discounts affect your bookkeeping? And what happens to your VAT calculations when a discount code is applied?

Why booking discounts is trickier than you’d expect

At first glance it seems straightforward: a customer orders €100 worth of products, applies a 20% discount code and pays €80. You book €80 in revenue, right? In principle, yes, but the details matter more than you might think.

First, the discount needs to be visible on the invoice itself. Dutch tax authorities (and most EU jurisdictions) require invoices to show the original amount, the discount and the final invoice total. On top of that, VAT is calculated on the amount after discount, not on the original price. If you book this incorrectly, your VAT return will be wrong.

With Shopify, there’s an additional layer of complexity. Discount codes can apply to the entire cart, to specific products, or as a fixed amount. Each type of discount requires different accounting treatment, especially when you sell products with different VAT rates.

How Shopify passes discount information

When a customer applies a discount code to a Shopify order, Shopify records exactly how the discount is distributed across the order lines. This is essential for correct bookkeeping. A percentage discount on a cart containing both 21% and 9% VAT products is proportionally distributed across the line items.

Shopify distinguishes between three types of discounts: percentage discounts (such as 15% off everything), fixed amounts (€10 off) and free shipping. Each type has a different impact on your invoice. A free shipping code only reduces shipping costs, while a percentage discount affects the product lines.

What many store owners don’t realise is that Shopify can also apply automatic discounts without a code. Think “buy 3, pay for 2” promotions or volume discounts. These are passed through in the same way as manual discount codes, but they don’t always appear clearly in your bookkeeping if you’re entering them manually.

The correct way to book discounts in Moneybird

In Moneybird, there are two common methods for processing discounts on a sales invoice. The first is showing the discount as a negative amount on the invoice lines. The second is entering the product price already corrected, so the invoice line contains the post-discount amount.

Both methods are technically correct from an accounting perspective, but for transparency towards both the customer and tax authorities, the first method is preferred. When the discount is visible on the invoice, it’s immediately clear why the invoice total is lower than the catalogue price. This prevents customer queries and provides a clear audit trail.

If you’re doing this manually for every order, you’ll quickly spend more time on administration than on running your campaign. Especially during a sale with dozens of orders per day, manual processing becomes unsustainable. Want to learn more about automated invoicing? Read our guide to automatic invoice creation from Shopify.

How Schakel handles discount codes

Schakel automatically picks up the discount from the Shopify order and processes it correctly on the Moneybird invoice. The app reads the discount distribution per order line and applies the correct amount, taking into account the applicable VAT rate per product.

In practice, this means that for an order with a 20% discount code on a €100 product (21% VAT), Schakel creates an invoice line for €100 and a discount line of -€20, both linked to the 21% VAT rate. The VAT amount is calculated on €80, exactly as it should be.

For mixed orders with products under different VAT rates, the discount is proportionally distributed. If your cart contains €50 of 21% products and €50 of 9% products with a 10% discount, each category receives €5 in discount. This way, your VAT calculation per rate is always correct.

Common mistakes when booking discounts

The most common mistake is booking the discount to a separate ledger account instead of as a correction to revenue. This leads to overstated revenue in your bookkeeping and a separate discount amount that you need to reconcile during your VAT return. Your accountant won’t be pleased.

Another frequent error is ignoring the VAT distribution when discounting mixed orders. If you assign the entire discount to the 21% products when it should be proportionally distributed, you’ll remit too much or too little VAT. During a tax audit, this can result in additional assessments.

Finally, many entrepreneurs forget to mention the discount code itself on the invoice. While this isn’t legally required, it helps when reconciling your marketing spend. If you can see which codes are used most frequently, you can better evaluate your marketing strategy. Want to know how to use tags and metadata effectively? Check out our article on invoice tags in Shopify and Moneybird.

What happens when a customer returns a discounted order?

Returns on discounted orders require extra attention. If a customer returns a product that was purchased with a 20% discount, the credit note must reflect the amount actually paid, not the original price. After all, the customer receives a refund of the post-discount amount.

Schakel handles this automatically. For a partial return in Shopify, the credit note is created based on the amount the customer actually paid, including the correct VAT calculation. For a full return, the entire invoice is credited. This keeps your administration balanced, regardless of how complex the return is.

Real-world example: Black Friday sale

Imagine this: it’s Black Friday and your store is running a “25% off everything” promotion. Over four days, you process 200 orders, each with a discount code. Without automation, you’d need to manually calculate the discount for each order, determine the correct VAT distribution and create the invoice in Moneybird.

With Schakel, all 200 orders are automatically converted into correct Moneybird invoices, complete with proper discount processing, VAT calculation and payment registration. After the promotion, you only need to review your revenue instead of spending a weekend entering invoices.

This doesn’t just save time, it also prevents the errors that inevitably occur with manual entry. With 200 invoices involving discount calculations, the chance of a mistake during manual processing is nearly 100%. One wrong VAT rate or a forgotten discount line, and your quarterly closing won’t add up.

Want this handled automatically? Pick your connector.

Back to the blog