Skip to content
Van Oosten Advies B.V.

Reference · Our own Business Central app

From an empty post code table to 121 countries

Business Central fills in the city and county as soon as someone types a post code, but only if the post code table has been filled. For our own company it started with a fixed list of Dutch and Belgian post codes. That grew into Postcode Atlas: an app with official data for 121 countries, where the administrator chooses per country what gets loaded.

At a glance

Client
Our own product, published as Van Oosten Software
What
Postcode Atlas, an app for Microsoft Dynamics 365 Business Central
My role
Idea, data, build and the road to AppSource
Timeline
Built in September 2026
Status
Being prepared for AppSource

Which countries are in it

The app covers 121 countries with over four million post codes. These are the European ones, where the customers of this app do business.

  • Åland Islands
  • Albania
  • Andorra
  • Austria
  • Belarus
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czechia
  • Denmark
  • Estonia
  • Faroe Islands
  • Finland
  • France
  • Germany
  • Gibraltar
  • Great Britain
  • Guernsey
  • Hungary
  • Iceland
  • Ireland
  • Isle of Man
  • Italy
  • Jersey
  • Latvia
  • Liechtenstein
  • Lithuania
  • Luxembourg
  • Malta
  • Moldova
  • Monaco
  • Netherlands
  • North Macedonia
  • Norway
  • Poland
  • Portugal
  • Romania
  • San Marino
  • Serbia
  • Slovakia
  • Slovenia
  • Spain
  • Svalbard & Jan Mayen
  • Sweden
  • Switzerland
  • Ukraine
  • Vatican City

The complete post code everywhere, with two exceptions: Ireland ships routing keys only and Malta only the opening letters. Bosnia and Herzegovina, Greece, Kosovo and Montenegro are absent, because the sources have no post codes for them. The app itself shows per country how many there are and how complete the coverage is.

Where it started

In a new Business Central company the post code table is empty. Everyone who creates a customer or vendor then types the city themselves, and it shows in the customer list: 's-Gravenpolder, s Gravenpolder, Gravenpolder.

When setting up our own company I solved that with a small extension: a fixed list of Dutch and Belgian post codes. It worked, but only for us. The question became whether it could work for other companies too, with every country they do business with, official data with proper attribution, and installed from AppSource.

What it looks like

Three screens from the app, taken in a sandbox with Microsoft's demo data.

One list, 121 countries

Per country the number of post codes available, the coverage and the source. The last three columns are about this company: whether it has post codes for that country, how many, and whether this app loaded them. The demo company has six per country, from Microsoft; the app does not claim those.

The Post Code Countries list in Business Central, showing per country the number of post codes, the coverage, the source and what this company holds

The question first, with the count

Loading replaces. So the app counts what is already there and asks whether it may go, including post codes somebody entered by hand. This is the question the audit added; before that, they disappeared without warning.

The confirmation: this company already has 38 post codes for the selected countries, and loading replaces them

Then it sits in the standard table

No screen of its own and no table of its own: the post codes land in Business Central's own Post Codes table, where the city and county come from as soon as somebody types a post code. Here the Netherlands, 468,791 six-character codes with BAG place names.

The standard Post Codes page with Dutch post codes, cities and provinces

What the app does

One list in Business Central, Post Code Countries, and behind it everything it takes to fill the post code table reliably.

Chosen per country

The administrator sees 121 countries, each with its number of post codes, its coverage and its source. Only what the company needs gets loaded: nobody loads 1.7 million British post codes for one British customer.

Loaded in the background

Loading runs through the job queue, so nobody sits waiting. After that Business Central fills in the city and county itself on every customer, vendor, contact and address.

Asks first, then replaces

Loading replaces the post codes a country already has, including ones someone entered by hand. So the app asks for confirmation first and says how many post codes are involved.

Honest about what is there

The app keeps track of which post codes it loaded itself and which were already there. Removing warns separately about post codes that did not come from the app, because the app cannot put those back.

Attribution travels along

The data comes from GeoNames and Ordnance Survey, under licences that allow reuse as long as the source is named. That attribution is shown per country inside the app itself, not just on a website.

In English and Dutch

The app is written in English, with a complete Dutch translation. The country names come from the same source as the post codes, so an English-speaking user never reads Dutch names on an English screen.

How I went about it

  1. Data first

    Sources chosen for their licence: GeoNames for every country and for the Dutch six-character codes with BAG place names, Ordnance Survey's Code-Point Open for the British units. A script turns them into one file per country and can be run again for every new release. The British data holds not a single Northern Irish post code, so in the app the country is called Great Britain rather than United Kingdom.

  2. Within the limits of Business Central

    The compiler accepts at most 128 MB of bundled files, and the data came to 133 MB. So the files ship compressed, 16 MB in all, and are unpacked while loading. Place names fit the thirty characters of the standard table without a word being cut in half.

  3. Checked for honesty

    After the first version I read the code line by line. Two things had to change: loading did not ask for confirmation, and a field said a country was loaded as soon as it had post codes, wherever they came from. Both are fixed.

  4. Prepared for AppSource

    AppSourceCop, Microsoft's own check for AppSource apps, reports only the telemetry connection, which is filled in at submission. There is a test app that runs on every change, a check on naming, and the help, licence terms and privacy statement are live on this site.

The result

Postcode Atlas is complete in substance: the data is in, the tests pass and the pages Microsoft checks at submission are online. What remains are the applications for the AppSource listing, including the object range Microsoft assigns to the app.

For anyone setting up Business Central it is a small thing with a big effect: from the very first customer, city and county follow from the post code, instead of from the memory of whoever is typing.

More about the app itself on the product page

Technology

Standard Business Central only. No external service and no API key: the data lives inside the app.

  • AL for Business Central
  • Job queue
  • AppSourceCop
  • AL-Go for GitHub
  • Python for the data
  • GeoNames
  • Ordnance Survey Code-Point Open

Is Business Central missing something you now do by hand?

Tell me what is missing. I will tell you honestly whether an extension of your own is worth it, or whether something on AppSource already does the job.