Skip to main content

Introduction

Documents sent to a registered party’s NemHandel participant are pushed to Invopop the moment they arrive: eCourier notifies the Denmark app by webhook, and the app starts your import workflow for each document. There is no polling schedule to wait for — received invoices show up as soon as the network delivers them. Each received document becomes exactly one silo entry carrying the GOBL invoice, the original OIOUBL XML, and any binary attachments embedded in it, so received invoices show up like any other workflow-processed document. Registering the parties themselves is covered in the companion guide: NemHandel supplier registration.

Prerequisites

  • The Denmark app connected: navigate to ConfigurationApps, find Denmark, and click Connect.
  • A party ready to register: inbound routing is created when a party is registered, so set up the import workflow below before registering it.

Setup

1

Create the import workflow

The import step fetches one received document, parses the OIOUBL, and files it as a GOBL silo entry with the original XML and its embedded attachments; everything after it is yours to shape: routing to a folder, setting a state, or any other processing your operation needs.

Import NemHandel invoice workflow

Add to my workspace →
2

Configure the app with the import workflow

Navigate to ConfigurationApps, find the Denmark app, tap Configure, and select the import workflow you just created. Every inbound document is handed to this workflow, so save the configuration before registering any party.
3

Register the party

Run the registration workflow on the party as described in the supplier registration guide. Registration records the participant → workspace routing that inbound delivery depends on.

Receiving invoices

From then on, reception is automatic: each document sent to a registered party becomes one silo entry processed by your import workflow. A few behaviours worth knowing:
  • Delivery is push, not polling. The network’s webhook triggers the import within moments of a document arriving.
  • Documents are acknowledged only after import succeeds. A failure partway through leaves the document ready on the network to retry, so nothing is lost to a transient error; the network redelivers on its own schedule.
  • Unsupported document types are surfaced, not looped. The current release imports invoices and credit notes. An OIOUBL ApplicationResponse or Reminder is acknowledged once and the import job fails with a message naming the document type and the participant it was addressed to, so it’s visible instead of being retried forever.
  • Embedded attachments are preserved. Binary attachments carried inside the OIOUBL document are extracted and stored on the silo entry alongside the XML.

FAQ

By push, not polling. When a document addressed to one of your registered parties lands on the network, eCourier notifies Invopop by webhook, and the Denmark app starts your configured import workflow for it. The import step fetches the document, parses the OIOUBL, converts it to a GOBL invoice, and creates a silo entry carrying the GOBL document, the original XML, and any binary attachments embedded in it.
The one you select in the Denmark app’s configuration (ConfigurationAppsDenmarkConfigure). Every inbound document is handed to that workflow, so create it before registering any party — its first step must be the app’s import action, and everything after it is yours to shape: setting a state, filing into a folder, or any other processing.
The current release imports invoices and credit notes. If something else arrives — an OIOUBL ApplicationResponse or a Reminder — the app acknowledges it on the network once and fails the import job with a message naming the document type that arrived and the participant it was addressed to, so it’s visible rather than silently retried forever. Support for these document types is planned for a follow-up release.
The network redelivers its webhook until it is acknowledged, but the import step only acknowledges a document after it has been fully processed — and a document that was already imported isn’t imported again. A failure partway through leaves the document ready to retry rather than lost.
More available in our Denmark FAQ section

Participate in our community

Ask and answer questions about invoicing in Denmark →