Skip to content
Portal templates

Handelsregister extract download: a workflow template

The common register portal answers the questions a KYC file needs, one search and one printout at a time. This template runs the normal search, picks the register entry you named, opens the current printout and reports the hits as JSON.

Who pulls register printouts, and why by hand

The portal is public and free to read since 2022. The work is in the repetition and in being sure you opened the right entry.

Onboarding a counterparty
Compliance needs the current printout (AD) to confirm managing directors, seat and share capital before a contract is signed. One search, one hit to choose, one document, filed with a date.
Periodic re-verification
Banks, payment providers and larger buyers refresh the register data of existing customers on a cycle. The list is long, the change rate is low, and the person doing it is checking whether anything moved.
Legal and M&A
A chronological printout (CD) and the list of documents (DK) show the history: previous names, mergers, changes of managing director. The same search, different document letters.
What goes wrong
Similar names in different courts, a printout filed against the wrong entity, and the portal's own limits on how many retrievals one visitor may make in a period. A run that stops at the limit should say so rather than return nothing.

What the portal's public pages say

Cost Retrieving register information has been free of charge since 1 August 2022; the portal's earlier per-document fees no longer apply Handelsregister portal
Registration No user account is needed to search or to open printouts Handelsregister portal
Document letters AD current printout, CD chronological printout, HD historical printout, DK documents, UT entity data, VÖ publications, SI structured register content Handelsregister portal
Retrieval limits and terms The portal states conditions of use, including a limit on retrievals per period. Read them before scheduling anything; this page does not restate the figure
Registers covered Commercial, cooperative, partnership and association registers of all federal states, plus company register data Handelsregister portal

As of 2026-09-08

The clicks on handelsregister.de

As the portal's public pages describe the normal search. Where this page is unsure of a label it says so.

  1. Choose the normal search

    The portal offers a normal and an advanced search. The normal one takes a company name or keyword, optionally a register type and number and a federal state.

  2. Read the hit list

    Each hit shows the register court, the register type and number, the company name, its seat and the entry's status, followed by the document letters AD, CD, HD, DK, UT, VÖ and SI.

  3. Open AD for the current printout

    AD is the current printout; it opens as a PDF. Whether it downloads or displays inline depends on the browser; the template's validation accepts both.

  4. Check the entity before filing

    Compare seat and register number with what the counterparty told you. Two companies can share a name across courts, and the portal will not warn you.

  5. Stay within the retrieval limit

    The conditions of use limit retrievals per period. If the portal shows a notice to that effect, the printout was not delivered; the template's validation fails on that page rather than reporting success.

The template

The register number parameter is optional with an empty default, so the same template serves a first lookup and a precise re-check.

{
  "title": "Handelsregister: retrieve the current register printout",
  "parameters": [
    {
      "key": "company",
      "description": "Company name or keyword for the normal search",
      "required": true
    },
    {
      "key": "register_number",
      "description": "Register type and number to match, e.g. HRB 12345; empty means take the first hit",
      "required": false,
      "default": ""
    },
    {
      "key": "kyc_webhook",
      "description": "Endpoint that receives the hit list",
      "required": true
    }
  ],
  "blocks": [
    {
      "blockType": "navigation",
      "label": "Register_portal",
      "url": "https://www.handelsregister.de/"
    },
    {
      "blockType": "action",
      "label": "Normal_search",
      "instruction": "Open the normal search (Normale Suche), enter {{ company }} as company name or keyword, leave the other filters empty and run the search"
    },
    {
      "blockType": "extraction",
      "label": "Hits",
      "instruction": "Every hit in the result list: company name, register court, register type and number, seat, status",
      "schema": {
        "type": "object",
        "properties": {
          "hits": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "company": {
                  "type": "string"
                },
                "court": {
                  "type": "string"
                },
                "register": {
                  "type": "string"
                },
                "seat": {
                  "type": "string"
                },
                "status": {
                  "type": "string"
                }
              },
              "required": [
                "company",
                "register"
              ]
            }
          }
        },
        "required": [
          "hits"
        ]
      }
    },
    {
      "blockType": "action",
      "label": "Open_printout",
      "instruction": "For the hit whose register entry matches {{ register_number }}, or the first hit when that is empty, open AD, the current printout (Aktueller Abdruck)"
    },
    {
      "blockType": "validation",
      "label": "Printout_present",
      "criterion": "A current register printout for {{ company }} is displayed or has been downloaded as a PDF; no error message, fee notice or retrieval limit is shown"
    },
    {
      "blockType": "http_request",
      "label": "Notify_kyc",
      "method": "POST",
      "url": "{{ kyc_webhook }}",
      "headers": {
        "content-type": "application/json"
      },
      "body": "{{ Hits_output }}"
    }
  ]
}

No login, a public portal, and the limits that still apply

Browserberg is not affiliated with the register portal, which is operated by the federal states under the lead of the Ministry of Justice of North Rhine-Westphalia.

Nothing to sign in to

The portal needs no account, so the template has no login block and no credential. There is nothing to vault and nothing to expire except the Browserberg session. A run is a fresh Chromium, a search and a document.

Read the conditions of use before you schedule

A public site is not a site without rules. The portal's conditions of use restrict how many retrievals a visitor may make in a period and say what systematic retrieval is permitted. This template is for the lookups your team already does by hand, one at a time, and the validation block is written so that a limit notice ends the run visibly. Browserberg does not rotate addresses or disguise the session; if the portal declines a request, the run reports it.

Effect gates on a read-only portal

The portal has no forms that pay or delete, so the gates mostly classify search buttons, which are the harmless submit effect. They still run on every click, and a control that offered a bulk export of register data would be classed bulk_export and refused under the default policy.

Which document

The template opens AD, the current printout. For history, change the instruction in Open_printout to CD or HD; for the documents folder, DK. Keep the validation criterion in step with the letter you choose, since it names what it expects to see.

Note · Based on the portal's public description

The search fields, the hit list columns and the document letters are taken from the register portal's public pages as of the date above. The template was not run against the live portal while this page was written; the first run will tell you whether the labels still match.

Questions from KYC and legal teams

Is the printout an official document?

It is what the portal delivers; the portal describes its status. This page does not make claims about legal effect. File it with the retrieval date, which the run records.

What if the register number does not match any hit?

The Open_printout block fails with that reason, the validation never runs and the run ends with the block named. The Hits output is still published, so you can see what the search returned.

Can I run it for a list every night?

Technically yes, with a schedule trigger and a loop. Read the portal's conditions of use first; a nightly re-check of a long list may exceed what they allow, and the run will stop at the limit notice rather than press on.

Does it return the printout as data?

The current printout arrives as a PDF artifact. The structured register content is a separate document letter, SI; change the instruction if you want that instead.

Will the portal see a bot?

It sees an ordinary Chromium session from EU hardware doing what a person does at a person's pace. No stealth layer is involved, which is deliberate.

Start with one counterparty

Five browser hours, no card. One search, one printout, and a run record you can file beside it.