1. Home
  2. Support



🔗How to download the postal code database?

Depending on the required database, it is important to first complete the upgrade to a Pro6PP 'Large', 'Development Agency' or 'Special' subscription.

The download links are visible after logging in to the Pro6PP CMS, then choose 'Subscription Details' The available download links will appear on the right-hand side. New data will be published and new database downloads will be made available on the first day of the month. The same way to easily automate monthly updates.

It's also possible to obtain the list of downloads through the API, as well as the downloads themselves.

🔗What is the difference between standard database types, customization and specials?

  • Standard databases only consist of postal codes, address and geo-data.
  • Customized databases only consist of postals code, address and geo-data and are specifically tailored for a customer in terms of content and data format.
  • Specials are databases where additional data sources are used to create databases.

🔗What will the v2 API version make possible? What does this mean for the v1 API?

The current v1 API version has been around for almost 10 years and has been kept backwards compatible. We want to further expand our services alongside the Netherlands and Belgian data. In order to be able to open up to "the whole world" in an API and to continue to be able to offer entire country-specific features, adjustments are required that do not remain backwards compatible with v1. The moment we make the v2 API public, we will also publish an upgrade strategy. We will certainly continue to support the v1 API for several more years.

🔗When will the v2 be officially released?

Because of new countries being added to the v2 API on a regular basis, release dates are given per country. Below is a table with the expected release dates per country for the v2 API:

  • The Netherlands 2022 Q2
  • Belgium 2022 Q2
  • Luxembourg 2022 Q3
  • France 2022 Q3
  • Germany 2022 Q3
The full v2 API is still in BETA so we reserve the right to change things until the v2 API becomes stable for every country we offer. We would like to take time before doing this because we want to provide backwards compatibility with the new API. We do not foresee large changes but mostly adjust country specifics based on user feedback. See documentation for more information.

🔗What is Pro6PP?

Pro6PP provides geographic information via an API (web service) and downloadable databases for offline use. For the Netherlands and neighboring countries. We are often used in web shops for address validation, finding a store near you or for calculating travel time and distance between addresses that transport companies find useful.

🔗A postal code returns the wrong street name.

It often happens that a postal code such as 6645 AH falls into two streets: Notary Stephanus Roesstraat (2..18) and Notenboomgaard (7..21).

In these cases the house number (and possibly the house number addition) is decisive. So make sure that the 'streetnumber' parameter is included.

🔗What is the motivation behind Pro6PP?

In 2008, 6PP was created as an open-source project. The number of users, including many companies, grew rapidly. With Pro6PP, d-centralize meets the demand for support and improvement of the 6PP database.

🔗What's planned for future releases?

You can check out our roadmap to see what features we are planning.

🔗Which Belgian 'special' databases are available?

With a 'specials' subscription, special databases are also available for download. In these specials, various data sources can be combined.

Refresh frequency of the database(s) below is at least every six months, at most once per month.

Postal code distance table (also called Drive Time Matrix) is available at the postal code numbers level. Each line contains a 'from' and 'to' postal code with the shortest distance between them (in meters, rounded to 100 m), calculated from the center coordinates of a postal code area. The duration indication (per passenger car) is displayed in minutes: download_be_dtm_sample.zip (sample).


🔗Which Belgian standard databases are available?

The Unicode CSV files can easily be imported into your own database or opened directly in Excel.

The monthly updates are easy to process, the download link remains the same.

Where possible the Dutch spelling is used.

download_be_fourpp.zip (sample). A list of four-digit postal codes in Belgium.


download_be_streets.zip (sample). A list of streets and related data.

country,region,region_nl,region_fr,region_de, province, province_nl,province_fr,province_de,municipality,municipality_nl,municipality_fr,municipality_de,city,city_nl,city_fr,city_de,postcode,street,street_nl,street_fr,street_de,streetnumbers,lat,lng

download_be_full_streetnumbers.zip (sample). A list of streets, street numbers and related data.


download_be_city.zip (sample). A list of cities in Belgium.


🔗Which Dutch customized databases are available?

From the development agency subscription, additional databases are available for download. It is usually a different format, extra data or a format other than CSV which is also offered with the standard downloads.

If the desired download is still available and is not available in the list below, this can be requested Depending on the work, a one-off surcharge may be charged for the setup.

Postcode data in the format of program EurIncass: download_custom_EurIncass.zip (sample).

1011SP00023100261Amsterdam			Nieuwe Herengracht
1011SR10000200040Amsterdam			Anne Frankstraat
1011ST10004200074Amsterdam			Anne Frankstraat

Also downloads are available which are compatible with certain formats supplied by other suppliers, such as cendris.nl, the PCTR (postal code table on series level) and the PCTP (postcode table at house number level). download_custom_cendris.zip (sample) and postcode.nl download_custom_fixed_length_sample.zip (sample).

🔗Which Dutch standard databases are available?

The Unicode CSV files can easily be imported into your own database or opened directly in Excel.

The monthly updates are easy to process, the download link remains the same.

Our standard list of postal codes with street number ranges in the Netherlands: download_nl_sixpp_streetnumbers.zip (sample).

Noord-Holland,Amsterdam,Amsterdam,1011CC,Oude Waal,33,52.3724578,4.9047247
Noord-Holland,Amsterdam,Amsterdam,1011CC,Oude Waal,35,52.3723953,4.9048282
Noord-Holland,Amsterdam,Amsterdam,1011CD,Oude Waal,36,52.3723686,4.9048872

Postcode data including house number additions: download_nl_sixpp_full_streetnumbers_utf8.zip (sample).

Noord-Holland,Amsterdam,Amsterdam,1011AN,Prins Hendrikkade,127,E,52.3739151,4.9050466
Noord-Holland,Amsterdam,Amsterdam,1011AN,Prins Hendrikkade,127,F,52.373906,4.905032
Noord-Holland,Amsterdam,Amsterdam,1011AP,Prins Hendrikkade,130,,52.3738803,4.9053407

List with four-digit postal codes in the Netherlands: download_nl_fourpp.zip (sample).


List of places, area code and coordinates in the Netherlands: download_nl_city.zip (sample).

NL,Drenthe,Aa en Hunze,Annen,0592,53.0571,6.72234
NL,Drenthe,Aa en Hunze,Annerveenschekanaal,0598,53.08383,6.79112

List with all sixpps in the Netherlands: download_nl_sixpp.zip (sample).

Noord-Holland,Amsterdam,Amsterdam,020,1011AB,De Ruijterkade,De Ruijterkade,106;110-112;120;124;105-107;113,52.37776,4.9056
Noord-Holland,Amsterdam,Amsterdam,020,1011AC,De Ruijterkade,De Ruijterkade,128;140-154;125-127;139;143;147-151,52.3774,4.90847

Minimalist list with all sixpps in the Netherlands: download_nl_sixpp_minimal.zip (sample).

Amsterdam,1011AB,De Ruijterkade
Amsterdam,1011AC,De Ruijterkade

🔗Which German databases are available?

The Unicode CSV files can easily be imported into your own database or opened directly in Excel.

The monthly updates are easy to process, the download link remains the same.

Our list of streets with coordinates in Germany: de_custom_street_coordinates_sample.zip (sample).


For accurate applications also available with unique location per house number: download_de_streetnumbers_sample.zip (sample).


Settlement data with coordinates: de_custom_settlement_coordinates_sample.zip (sample).


🔗Which Luxembourg databases are available?

The Unicode CSV files can easily be imported into your own database or opened directly in Excel.

The monthly updates are easy to process, the download link remains the same.

List of fourpps within Luxembourg: download_lu_postcodes_sample.zip (sample).


List of cities within Luxembourg: download_lu_city_sample.zip (sample).


List of streets within Luxembourg: download_lu_streets_sample.zip (sample).

LU,2181,Luxembourg,Rue George C. Marshall,2-8;1-9,49.60401000000000,6.13830000000000
LU,1815,Luxembourg,Rue d'Itzig,182-190;200-212;252-278;199-213;243;247-281,49.59727000000000,6.15219000000000

List of all streetnumbers within Luxembourg: download_lu_full_streetnumbers_sample.zip (sample).

LU,1219,Luxembourg,Rue Beaumont,21,,49.61295392154785,6.12845407438161
LU,1219,Luxembourg,Rue Beaumont,17,,49.61292192564706,6.12878145995204

🔗How do I add a house number (automatically) to Pro6PP?

If an address is missing in the Pro6PP database, it is possible to add it to Pro6PP yourself. This also makes the address directly available via the API.

This can be done manually by logging in to the Pro6PP CMS, click on 'details' of your subscription, see the option for 'own additions' on the right-hand side of the screen.

Any automated addition is also possible. When the postal code is added in the normal sources, it will be given priority over the own addition.

🔗How recent is data?

Every 1st day of the month new data is published and new database downloads become available.

🔗Which Dutch 'special' databases are available?

With the 'special' subscription, special databases are also available as a download. In these specials, various data sources are merged.

Version rate of these databases is at least every six months, at most once a month.

A postal code distance table (also called Drive Time Matrix) is available at the postal code digits level. Each line contains a 'from' and 'to' postal code with the shortest distance (in meters, rounded to 100m), calculated from the center coordinates of The duration indication (per passenger car) is displayed in minutes: download_nl_dtm_4pp_sample.zip (sample).


There is also a more accurate table available, based on 6PP Due to the size of the table, only postal codes are included that are no further than 5 km (by road) away from each other. For larger distances, use the 4PP table above. download_nl_dtm_6pp_sample.zip (sample).


A table with postal codes and associated neighborhood code, neighborhood name and neighborhood code download_nl_sixpp_cbs_buurt_utf8_sample.zip (sample).

1015DT,03630002,Grachtengordel-West,036300,Stadsdeel Centrum,0363,Amsterdam
1015DV,03630006,Jordaan,036300,Stadsdeel Centrum,0363,Amsterdam

A table with postal codes and associated uses (industry, housing, accommodation, etc.), RIN (identification number of business park), and the name of the business park (if the intended use is industry) download_nl_sixpp_streetnumbers_gebruiksfunctie_ utf8_sample.zip (sample).

Noord-Brabant,Veldhoven,Veldhoven,5504PD,Runstraat,45,51.398751,5.413131,industriefunctie,1234,De Run


🔗What is your current bank account number?

From 1 May 2019 we will receive payments on the account of our payment processor: Stichting Mollie Payments. Mollie uses several bank accounts: current overview.

🔗How do I pay the invoice by bank?

For transfers, it is important to enter the unique payment reference (Example: RF12-1234-1234-1234) in the announcements or comments field. This makes automatic processing of bank payments possible. If there is an error or if that characteristic is missing, the amount will be automatically refunded to you and a new attempt should be made.

🔗What do the different payment terms mean?

The payment term on the PDF invoice is aligned with the remaining duration of the subscription in order to guarantee continuity. When a subscription is already expired, the default 30 day payment period is enforced. The subscription will be activated after the payment is processed. During the payment process of our payment service provider Mollie, a payment term of several months is shown. This date is further into the future as the payment date on the invoice. The payment date on the invoice is leading. The reason for the longer payment term for Mollie is for making sure payments still get processed when the invoice payment date has passed. When a payment is received after the term our payment service provider set, the amount is transferred back to you without processing.

🔗How much time does a SEPA direct debit take?

It may take up to 5 working days for a direct debit to be processed. You will receive a notification of a failed or successful attempt.

🔗How do I transfer my direct debit to a new bank account?

Your bank details can be adjusted in the Pro6PP CMS. After logging in you will see your account properties on the right. Click on "change" and adjust the 3 fields "Account holder name", "Account number" and "BIC". Then click "Apply". The new bank account will be used for the next direct debit.

🔗How do I change my address / billing information?

You can change your data in the Pro6PP CMS. After logging in, you will see "Properties" in your account. Click on "change" and adjust the required data here. Then click on "Apply".

🔗Can I add my own purchase order to the proposition or invoice?

During the extension process you will be asked for an (optional) own purchase order which then will be added to the invoice. If a subscription is already running and needs to be adjusted for the next invoice, the extension must be repeated in the Pro6PP CMS.

🔗Help! My subscription has been taken out. The API no longer gives results!

If the subscription extension is not completed on time, the auth_key will be paused. No applications will be accepted via the postal code API. This happens when a payment is not received on time. In order to be able to remedy these situations quickly - especially in the weekend when the help desk is not available - there is the possibility to request an emergency extension via the Pro6PP CMS so that the subscription is immediately activated again for a number of days. This functionality is available to every user once every 6 months.

🔗What is meant by website and application with regard to subscription types?

A website is defined by one domain name. webshopA.com and webshopB.com are counted as 2 different websites, unless webshopB.com and webshopA.com contain the same content. Such an alias may collectively count as one website. This is subscription 'Webshop' or 'Standard' if the website is not a webshop.

More subdomains where the websites do not contain the same content fall under the application definition and therefore the 'Large' subscription.

An application can be an offline application with an unlimited number of installations at customers. When 2 different software titles are supplied, "product A" and "product B" this counts as 2. The number of installations is not important. Be it one web server which, for example, hosts multiple web stores. For large SaaS installations (> 1 server) contact for pricing information.

🔗Will there be any changes when renewing a (trial) subscription?

No, the situation for using a trial subscription and the subsequent renewal does not entail any technical changes. The auth_key already obtained is 'charged' and lasts for a while.

🔗How do I renew my subscription?

By logging in to the Pro6PP CMS. The required login details have already been provided by email during the registration of the trial account. Within the CMS, under the 'Overview' heading current subscriptions shown. Click on the 'Extend' button of the relevant subscription. Select the desired subscription type. While going through the steps you will be asked for your billing address, the desired payment method and after the last step you will receive the invoice by email.

An expired subscription can always be reactivated at a later time after payment, the auth_key remains unchanged.

🔗How will I be informed about the expiration or extension of my subscription?

30 days before the expiration of a (trial) subscription, a reminder is sent by email. Without taking any action, the subscription will expire automatically after this period, there are no further obligations.

Please note:

  • When payment method SEPA direct debit is chosen, no reminder email will be sent but a new invoice will be sent annually and the service will be automatically extended until the authorization via the Pro6PP CMS is withdrawn.
  • If payment is made by bank transfer, allow for a processing period of a few working days.

🔗Does Pro6PP comply with the GDPR privacy law?

We do our utmost to fully comply with the new guidelines. As far as we know, we comply with this.

See also our privacy policy.

🔗Logging in does not work or the password is incorrect

Go to Pro6PP CMS, click on 'Forgot password?'. Enter your email address and receive a new password by email.

After this, the login must be repeated.

If you did not receive a new password by email and the email is also not in the spam folder, the login email address may be incorrect. Please contact the Pro6PP help desk.

🔗I can't create a renewal invoice

When renewing, the following error might show: There is already an open invoice for this subscription. If you want to make a new invoice please cancel the open invoice.. To cancel the open invoice, go to the CMS: account overview and select the details of the subscription to renew. At the right side, in the invoice overview, select the removal of the most recent open invoice (at the top). Try the renewal process again.

🔗Can I also download a database once?

Yes you can. Though it is still important to purchase an annual subscription, since we currently do not support one-off purchases.

Paying as a one-off payment (for example with iDeal or a bank transfer) does not automatically extend the subscription to a year.

Perhaps you don't need it, but you can also use this to download updates for a year.

🔗GDRP processor agreement

On request, Pro6PP grants a free GDRP processor agreement for all paid accounts. Should it be necessary to sign an own / alternative processor agreement, we also want to examine and sign (if acceptable) for the 'special' accounts.

🔗I start with a standard subscription, but may want to upgrade soon, is that possible?

Yes, a step higher is possible at any time and always works to your advantage. That means: now taking out a standard subscription for 12 months, and wanting to switch to a 'large' subscription in 1 month gives immediate access to the possibilities of this new 'large' subscription at the time of upgrading. Like every extension, a 12-month duration is added (after upgrading, there are 23 months left).

🔗How do I cancel my subscription?

You can cancel your subscription in the Pro6PP CMS. Select details of your subscription and hit the cancel button. Your subscription will not be renewed. The subscription remains active for any remaining time left.

🔗No telephone contact?

We can help you more efficiently by working asynchronously. You can ask questions 24 hours a day, answer as well. We try to answer questions within one working day. The advantage of email is that most questions can be answered directly by either an administrative employee or a technician. We can quietly think about a solution without having to wait on the phone. In addition, you can arrange more for yourself via the Pro6PP CMS.


🔗Can I use an API method in 'beta'?

Yes. But beware, the input parameters and output can still change until the Beta label is gone. During this period it is also the chance to make the desired changes known.

🔗What does the error message "Either the IP or REFERER header of your request doesn't match an entry in the whitelist. Therefore this request is blocked." mean?

A security measure has been enabled on domain and/or IP via the Pro6PP CMS. Normally a web browser sends the Referer header with every request. This mechanism works well when Pro6PP is used from JavaScript on a webpage, because the 'referer' is the URL of the webpage making the request. When a Pro6PP URL is called directly from the browser (https://api.pro6pp.nl/v1/...) or from a server side script, this request will be blocked.

There is a corner case where the header is not sent, even when originating from a webpage. If the webpage is on an HTTPS address and the Pro6PP API is called on the standard HTTP URL. In that case, use the secure HTTPS URL of Pro6PP.

For local development purposes, you could add your localhost domain or temporarily disable security altogether. Via the Pro6PP CMS, choose details of your subscription, then edit. That allows you to change the security settings.

🔗Why do I get multiple streets back with one postal code?

Usually one postal code includes one street. With the exceptions, multiple streets are returned, such as 2987 XS. In that case, a house number must be given so that the street can be clearly marked or the user itself can make a choice from the streets shown.

🔗How do I use jQuery together with other Javascript libraries?

The Javascript examples often use the jQuery library. To integrate Pro6PP into a website that also uses other Javascript libraries (such as Prototype, MooTools or YUI) it is advisable to follow the jQuery documentation on conflicts.

🔗Use of the secure connection (SSL) does not work on Windows XP?

Because api.pro6pp.nl is hosted in Google Cloud and SNI TLS is common there, support for some old browsers will be abolished.

In particular, users of Internet Explorer 6 and Windows XP may experience problems with this.

To provide a secure API connection with broad browser support, it is possible to connect to our proxy service instead of the API for requests.

Use of this service is possible from Pro6PP "development agency" subscriptions.

This server is a proxy that passes all requests to api.pro6pp.nl. As a result, the response time is a bit slower than if you were to communicate directly with api.pro6pp.nl.

🔗Is Pro6PP currently malfunctioning?

An independent party provides continuous monitoring of the API: status.pro6pp.nl. Here you can see if the postcode API is online or not. Pro6PP employees are automatically informed of any disruptions.

🔗Microsoft Excel (older than 2007) does not completely read the downloaded csv file.

Some large CSV files contain too many lines for Microsoft Excel to read. This may be the case with versions older than 2007. An upgrade from Microsoft Excel to version 2007 or higher offers a solution. Alternatively, we recommend the Open source office package LibreOffice.

🔗Which IP addresses does api.pro6pp.nl use?

The Pro6PP web service is hosted in the cloud. That means that no fixed server with a fixed IP is designated for hosting. There are, however, some IP series from which api.pro6pp.nl is served. The current list of IP series is available at: https://support.google.com/a/answer/60764?hl=en.

Recently we added the possibility of a proxy server with a fixed IP especially for companies with a strict firewall policy. See another item for detailed information.

🔗Pro6PP does not work on my website / app, how do I solve this?

The step-by-step plan below may solve the problems and make Pro6PP work on your website or in your app.

  1. Check if the auth_key (your Pro6PP subscription key) is still active by logging in to the Pro6PP CMS. You may need to renew the subscription so that the key is activated again.
  2. You have already taken note of the step-by-step integration examples such as this example.
  3. If you try to do the integration on a website: check if you see JavaScript errors in the web browser console. These must first be resolved.

Please contact support to be further assisted if the above steps have not resolved your issue.

🔗Flawlessly read CSV files with separators

The CSV files can be downloaded as a unicode format. This is to make opening in Microsoft Excel easy.

Also pay attention to the separator: comma (,) and the text indicator a quotation mark (") while reading the CSV file, otherwise commas in the data problems Each " in the content is provided with an additional double quote according to convention).

More information about importing with delimiters in Microsoft Excel: https://support.office.com/en-us/article/wizard-text-import-c5b02af6-fda1-4440-899f-f78bafe41857.

For a PHP code example, see: https://www.pro6pp.nl/en/docs/v1/download.

For a C# library, see: https://github.com/phatcher/CsvReader.

It is wise to not use the column position as a reference but the column name as given on the first line in each CSV file when reading in the CSVs. Since it is possible that extra data in the form of new columns is added.

We are always trying to prevent columns from being renamed or deleted.

🔗Is the postal code API available at a fixed IP address?

If it is necessary to use a fixed IP address for API access, due to firewall restrictions, then that is possible from Pro6PP 'development agency' subscriptions. In that case, use https://proxy.pro6pp.nl ( instead of api.pro6pp.nl for API requests.

This server is a proxy that passes all requests to api.pro6pp.nl, which makes the response time a bit slower than when directly with api.pro6pp.nl would be communicated.

🔗How does the auth_key security work?

With every Pro6PP web service call, the personal auth_key must be sent. When Pro6PP is used within an application or (server side) website, the auth_key is not visible. But when a call is made from the client side (eg with Javascript) to Pro6PP the auth_key do is visible. To ensure that a 'stolen' auth_key does not work on another website, an auth_key can be linked to a specific domain or IP address This domain or IP can be set via the Pro6PP CMS. It is possible to enter multiple domains / IP addresses, so that the auth_key works on both your 'live server' and in a possible test environment (eg mydomain.nl;

🔗Does Pro6PP work with a secure HTTPS connection?

The web service can be accessed with both HTTP and HTTPS. Web shops often take the order from a secure environment. A web browser can block communication to an external server if it would run via an unsecured (HTTP) connection.

Use the basic URL for this: https://api.pro6pp.nl instead of the usual: http://api.pro6pp.nl.

🔗How to import data as SQL?

We currently only supply CSV downloads. However, it's possible to import these files into a database. For example, phpMyAdmin can import from CSV into a database. phpMyAdmin might not read our CSV format correctly. However, our CSV files are minimally quoted, that means that a value will be (double) quoted when the value itself contains a comma to prevent conflicts with the CSV field separator, which is also a comma. You can use Excel or LibreOffice to import our CSV file and export it as a CSV where values are always double-quoted.

🔗How do I use the German data API?

We're already deploying German datasets through regular channels. The API will be only be available on our v2 API endpoints. Currently still in BETA. However, you can start using it right away if you don't mind documentation and examples are still not on par with the Dutch and Belgian ones. There's an example frontend implementation and the API documentation explorer.

🔗The API doesn't do what I want, can you help?

To help you debug the problem, we need to know:

  • The full URL of the API you're trying to call
  • All parameters you're sending, including their values
If you send that information, together with a description of what you want to accomplish to our tech support e-mail address we can help you without asking this as follow-up question.