MitID Login, NemHandel Invoicing

Full-Stack Web Development Agency Denmark

React/Next.js and Node.js applications for Danish businesses that have outgrown WordPress or Shopify, with a GDPR/Databeskyttelsesloven-aligned data model and MitID login plus NemHandel-ready invoicing treated as default infrastructure, not a later integration.

skilleddesk.com/analytics
Landing Page Conversions
24,926
+48% QoQ
Revenue trend, last 8 weeks
Web designFull-stack web developmentSocial media marketingGoogle PPC campaignDropshipping websiteEmail marketing & automationConversion tracking setupGraphic designWeb designFull-stack web developmentSocial media marketingGoogle PPC campaignDropshipping websiteEmail marketing & automationConversion tracking setupGraphic design

Built To The Same Standard In Denmark As Everywhere Else

130+
Brands Served
14+
Countries Reached
2019
Founded, Serving Clients Worldwide
1:1
Direct Founder Access
The Problem

What A Generic Build Misses In Denmark

A Billing Tool That Emails A PDF Instead Of A NemHandel Invoice

Danish public-sector clients don't accept an emailed PDF as a real invoice — anything billed to a central, regional, or local authority has to arrive through NemHandel in the OIOUBL or Peppol BIS format. A generic invoicing plugin built for a US or UK market has no concept of that requirement; it just generates a PDF and calls the job done.

A Platform With No Digital Post Connection

Any CVR-registered business is automatically enrolled to receive official mail through Digital Post, and is legally required to read what lands there. A custom application that only forwards notifications to a normal inbox leaves the business one missed digital mailbox check away from an overlooked deadline or a compliance notice.

A Contact Form Standing In For A Whistleblower Channel

Once a company crosses 50 employees, the Whistleblower Act requires a real internal reporting channel — one built to protect the reporter's identity, not a generic contact form CC'd to HR. A form that routes straight to a shared inbox doesn't meet that bar, and doesn't hold up if a report is ever challenged.

What A Danish Build Must Get Right On Day One

A Danish business tends to outgrow WordPress or Shopify along three visible lines. SkilledDesk works as a full-stack web development agency for Denmark, treating MitID and NemHandel as structure rather than late additions. A billing tool that emails a PDF instead of producing a proper NemHandel invoice. A platform with no Digital Post connection, even though each CVR-registered business has a legal duty to read what lands in that mailbox. And a contact form standing in for the confidential reporting channel the Whistleblower Act requires once headcount crosses 50. Covering those three gaps with three bolted-on tools makes none of them go away. It moves the failure point from one system to three.

What holds is a single bespoke React and Node.js build on one database designed around all three requirements from the first architecture conversation, which is the same standard SkilledDesk already builds to for clients elsewhere in Europe. As a web development company working with the Danish market, we design that database against GDPR and Databeskyttelsesloven section 11. A documented legal basis before a CPR number is ever collected. MitID treated as expected login infrastructure. And moms applied correctly at the flat 25% rate on the itemised DKK quote. Danish flextid culture runs on flexible hours rather than a fixed 9-to-5, which fits an async-first model better than it fights it. Scheduled calls happen only when a live conversation earns its place.

FAQ

What Danish Businesses Ask Before Committing To A Build

Some Danish quotes treat GDPR and Databeskyttelsesloven compliance work as a separate add-on line, priced only after the real development work is already scoped. That quietly inflates the final number the day the CPR-handling logic actually gets built. Here that compliance work is part of the same architecture from the first conversation, not a bolt-on surcharge. What moves the number is how many user roles, integrations and dashboards the build has to carry. A single-feature tool sizes up quickly on the discovery call. A multi-role platform with billing and permission tiers takes a longer scoping conversation. Either way, the itemised DKK quote comes back with the flat 25% moms already included. A build with us opens at $1,199, invoiced in kroner, with MitID and NemHandel scoped individually rather than assumed inside the base figure.
GDPR sets the EU-wide baseline, but Denmark layers its own Databeskyttelsesloven on top, and the CPR number is where that law does the most work. Section 11 treats a CPR number as sensitive by default. A private business can only collect and store one where the law specifically requires it, where the person has given consent, or where unambiguous identification genuinely calls for it. That is a separate test on top of whatever GDPR Article 6 basis already applies elsewhere on the same form. Datatilsynet, Denmark's own supervisory authority, expects that distinction in the data model itself, not treated as a formatting detail added after the fact.
Yes. MitID is the login Danish users already reach for to bank, file taxes, sign a document, or use borger.dk. So a login built around email and password alone reads as unfinished to a Danish audience. It runs as a public-private setup between the Danish Agency for Digitisation and the banks behind Finans Danmark, rather than one vendor's product. That makes integration a defined broker-approval process rather than a plugin install, and we scope and start it on the discovery call, not partway through the build. The approval step is the part that catches people out, because it runs on its own timetable and nothing about the code can hurry it along.
If the application ever has to bill a Danish public-sector client, an emailed PDF will not get processed at all. Invoicing to central, regional and local authorities has to arrive through NemHandel, in the OIOUBL or Peppol BIS format that meets the EN 16931 standard. That requirement has been in force since 2005. The format goes into the billing module from the start, rather than arriving as an export option the day a public-sector client asks for it.
Yes. Currency is not the complication, since both territories use the krone. VAT is. Greenland and the Faroe Islands are self-governing parts of the Danish Realm sitting outside the EU VAT area entirely. So a checkout or invoicing tool that applies 25% moms by default charges a tax that does not apply to either territory. That distinction goes into the billing logic directly, so a mainland Danish customer and a Nuuk or Tórshavn customer get correctly different treatment from the same invoice template. The failure mode here is quiet rather than loud. Nobody notices a 25% moms charge they never owed until an accountant finds it months later. By then the refunds and the corrected invoices cost more than building the rule properly would have.
What moves this number for a Danish build is not the feature list on its own. It is whether the business already has NemHandel registration and an active Digital Post mailbox ready to connect to, or whether the build has to stand that infrastructure up from scratch. NemHandel registration has to clear before anyone can test invoicing at all, and that calendar time sits with the registration process rather than the development work. We map that starting point on the discovery call before committing to a delivery date. A business that already has both connected can see a working invoice inside the first sprint. A business starting from nothing usually waits a couple of weeks on paperwork that has nothing to do with code, and it is better to know that in week one than in week six.
A support model built around one fixed daily overlap window assumes both sides keep fixed hours to begin with. That assumption breaks down on the Danish side alone. Danish workplaces run on flextid, with employees choosing their own start and end times inside a broad daily band. There is no single Danish working day to line up against the US East Coast's. What carries the relationship instead is a same-day response commitment paired with async documentation, independent of which hours either side happens to be online on a given day. That matches the standard already extended to clients in 13 other countries.
Danish workplace culture prides itself on a flat hierarchy, flad ledelsesstruktur, where the person who understands the problem answers for it rather than whoever holds the title. Plenty of local digital agencies do not extend that principle to how they treat their own clients. A direct question about the codebase still travels through an account manager who has to go and check with someone else. At SkilledDesk, the founder who scopes the engagement is the same person writing the code and answering that question. No relay step, an itemised DKK quote with moms included, and real client applications open on the portfolio to check first.

One Rate, One Standard

Denmark's moms system runs one flat rate with no carve-outs, and this work runs the same way. One standard, and the builds are on the portfolio to read.
See Our Full Portfolio

Why A Website Builder Runs Out Of Room Fast In Denmark

Most brochure sites in Denmark run on a page builder or a WordPress theme without trouble. That is genuinely what those tools are for. The trouble starts with the logic a Danish business has to handle by default. A NemHandel-compliant invoice format instead of a PDF export. A Digital Post connection instead of a plain email forward. A MitID broker integration instead of a generic login form. And a CPR number handled under Databeskyttelsesloven section 11 instead of stored like any other line on a form. Covering those four as separate bolted-on tools multiplies the ongoing cost by four before any of it works together reliably. Four subscriptions. Four update cycles that can quietly break each other. And nothing left over that the business owns once you add the invoices up. One custom application avoids that arithmetic: a single codebase the client owns outright from handoff, priced as one itemised DKK quote with moms included rather than four recurring line items, with the founder personally responsible for each part of it from architecture through handoff.

Ready To Build Something That Actually Holds?

Send the brief and we'll scope MobilePay and local checkout as a separate line.

Get Free Consultation