Skip to main content Skip to content

Selling in Denmark with WooCommerce: VAT, payments, shipping and rules

WooCommerce is built to sell anywhere in the world, so a store selling in Denmark has to be set up for Danish conditions: 25% VAT (moms), prices shown with VAT to consumers, payment by card and MobilePay, shipping to parcel shops, a right of withdrawal, and bookkeeping that meets the law. None of it is hard, but it has to be in place before the first customer buys.

Here’s the overview of all of it: what to do in WooCommerce, and where the rules are. Each topic has its own, more detailed guide.

Overview

AreaWhat needs to be in placeWhere
VAT25% on goods and shipping, calculated correctlyWooCommerce → Settings → Tax
PricesShown with VAT to consumersThe tax settings and the theme
Sales to the EUThe customer’s VAT above €10,000 a year, through OSSTax rates per country and registration with the Danish Tax Agency
PaymentCards, Dankort and MobilePay through a payment providerA payment plugin and an agreement with the provider
ShippingZones, rates and a parcel shop pickerThe shipping settings and a shipping module
RulesBusiness details, terms, right of withdrawal, cookiesPages on the store and order emails
BookkeepingInvoices, digital bookkeeping, record keepingAn invoice plugin and an accounting integration

VAT: 25%, on shipping too

Danish VAT is 25%. In WooCommerce, you turn on tax calculation under WooCommerce → Settings → General, then add the rate for Denmark under the Tax tab. That’s also where you choose whether you enter prices with or without VAT, and whether they’re shown with or without VAT in the store and the cart. The full setup, step by step, is in our guide to WooCommerce VAT setup for Denmark.

Shipping you charge for is part of the sale and carries VAT, even when you ship with PostNord or another carrier yourself. So set the tax to apply to shipping as well. The same goes for fees you add to the order, such as payment or handling fees.

Prices for consumers must include VAT

If you sell to consumers, prices have to be shown with VAT and all other mandatory costs, so the customer sees the total price. The Danish Consumer Ombudsman has a case on exactly that: prices for consumers must include VAT (in Danish). If you only sell to businesses, and that’s clear, prices may be shown without VAT.

If you sell to both, consumers still need to be able to see the price with VAT. Our free plugin Tax Toggle for WooCommerce lets customers choose whether prices are shown with or without VAT, and remembers the choice. If you run sales, there are also rules for which prior price you may show. They’re in the section on prior prices in our Black Friday checklist.

Selling to consumers in other EU countries: OSS

If you sell goods to consumers in other EU countries, and those sales together exceed €10,000 a year, you have to charge VAT in the customer’s country, at that country’s rate. To avoid registering for VAT in every country, you can use the EU’s One Stop Shop, OSS, where you report and pay the VAT for every country in one place. The scheme is described on the EU’s Your Europe page on the one-stop shop.

In WooCommerce, that means you need a rate for every country you sell to, and the store has to calculate VAT from the customer’s shipping address. Talk to your accountant before you pass the threshold, so the registration is in place in time.

Payment: cards, Dankort and MobilePay

WooCommerce doesn’t take payments itself. A payment provider does, one you have an agreement with and that has a WooCommerce plugin. Many Danish customers expect to pay by card, including Dankort, the Danish debit card, and with MobilePay, the mobile payment app now called Vipps MobilePay. Some providers bundle cards and MobilePay in one agreement. In other cases MobilePay is a separate agreement.

Once the customer has paid, the provider notifies the store, and only then does the order change status. If that notification is blocked, for example by a firewall or a missing HTTPS setup, the order stays “Pending payment” even though the money has been taken. So test every payment method with a real order before you open, and again after major updates.

Shipping and parcel shops

Shipping in WooCommerce is built from shipping zones (where you ship to), shipping methods (how, and at what price) and shipping classes (products that cost something different to ship). Free shipping above an amount is a method of its own, which you add to the zone.

Many Danish customers pick up parcels at a parcel shop. That takes a shipping module that fetches parcel shops from GLS, PostNord, DAO, Bring or others, and lets the customer choose at checkout. Many of the modules can also create shipping labels, so you don’t have to type addresses twice. If the module fetches parcel shops from the carrier while the customer waits, it’s worth checking that it doesn’t slow down checkout.

Rules the store has to follow

If you sell to consumers, Danish consumer contract and e-commerce law apply, based on EU rules. In practice, the store needs:

  • Your business details: name, address, CVR number (the Danish company registration number) and email, easy to find. Forbrug.dk has an overview of the information requirements for shops and webshops (in Danish).
  • Terms and conditions: total price, payment, delivery, complaints and the right of withdrawal, before the customer orders.
  • Right of withdrawal: consumers normally have 14 days to withdraw from an online purchase, and the money has to be returned no later than 14 days after they withdraw. If the customer isn’t told about the right, the period is extended. The Consumer Ombudsman describes the rules under withdrawal (in Danish).
  • Confirmation on a durable medium: the order confirmation email has to include the terms and the information about the right of withdrawal.
  • Cookie consent: cookies that aren’t needed for the store to work, such as for statistics and ads, require the customer’s consent before they’re set. See the Danish Data Protection Agency’s guidance on cookies (in Danish).
  • A privacy policy: which personal data you process, why and for how long, under the GDPR.

The texts are your responsibility, not WooCommerce’s. Have a lawyer review them or use templates from a trade association, and adapt them to what you actually sell.

Invoices and bookkeeping

WooCommerce creates orders, not invoices. That’s done by an invoice plugin that creates PDF invoices with sequential numbers, or by an integration that sends orders to your accounting software, such as the Danish systems e-conomic or Dinero, and creates the invoice there. Choose one, so invoice numbers come from a single place.

The Danish Bookkeeping Act requires accounting records to be kept for 5 years from the end of the financial year they relate to, and many businesses now have to keep their books in a digital bookkeeping system. For sole proprietorships with net revenue above DKK 300,000 in two consecutive years, the requirement applies from financial years starting on or after January 1, 2026. The Danish Business Authority has guidance on the Bookkeeping Act (in Danish), and your accountant can tell you what applies to you.

Once the store is running

Once everything is set up, the rest is about keeping the store fast and stable, especially in the busy weeks. If the store is slow, start with our guide to troubleshooting a slow WooCommerce store.

Frequently asked questions

Is WooCommerce a good choice for a Danish store?

Yes, if you want to own your store and be free to customize it. The Danish payment providers, carriers and accounting systems have WooCommerce plugins. How it compares with a subscription platform is covered in WooCommerce vs. Shopify.

Does my store need the e-mærket trust mark?

No, it’s voluntary. It’s a Danish certification some customers look for, but the rules above apply whether you have it or not.

Want help?

VAT, payment, shipping and accounting have to work together before the store opens, and keep doing so after every update. If you’d like us to set it up or check your store, read about how we build and run WooCommerce stores. Write a few lines and send a link to your store, and the developer will reply personally.

← All articles

Want help with your store?

Is your store slow, unstable or just hard to work with? Write a few lines and a link, and you'll get an honest assessment from the developer.