Release notes



In this version a change introduced in zipcode() output. Please see the section below for details.

As of this release marketing produces these notes instead of development. /bullshit_alert


The order_connection() function is extended so it now also supports ordering migrations. When selecting a ‘Migrate’ carrier and providing the current service id a process is started to move the line from to current supplier to you.


The performance of the asynchronous results from diagnose() when requesting a Line Analysis is improved significantly. This will allow you to show the diagnostic results much sooner.

A number of changes were made to the get_ordered_products() function.

  • The address section now shows the same output as the zipcode() function including the latitude and longitude of the address.

  • The output now also contains products the delivery whereof is still pending.

  • Added the ISRA pin identification that will allow easier localization of the physical connection. Unfortunately the supplier does not yet deliver this information, it is expected to become available in december or januari.

Change zipcode() output

During the implementation of the migration function, we found that the output of zipcode() needed to be extended with the relation between active telephone services and broadband connections.


Release notes

In order to give implementors time to adapt to new features starting with this release we plan to provide you with the release notes at least a week in advance of the roll out of the new release.

With the release notes the documentation for the new release will be published on the website.


Finally available in this release. You can now order our broadband products via the API. The funtion is order_connection().

At the moment this function is limited to ordering a new connection. In the next release order_connection() will also support the migration of existing connections.


In this version we have also included a function that produces a list of all products that you can order. You find this function at list_products().


The zipcode() function is extended so that its output now includes the wall outlet product when it can be ordered in combination with a carrier.

To make it easier to know what products are available at a connection point the connection points now support a key available_technology enumerating what technologies are supported by that connection point.

The providers KPN WBA, KPN WEAS and Tele2 have additional circuit products. Tele2 and KPN WEAS now have a number of small bandwidth circuits to choose from. KPN WBA introduced a couple of new circuits that have been added to our product list.

API security

To insure the accessibility of our API this release introduces a rate limit. When the system receives to many requests from a account that account will be automatically blocked. The limits are such that this will not cause a problem in normal use. If you do encounter a limit do contact us to see if and how to resolve this.


Thanks again to all who reported perceived bugs. It allowed us to resolve a number of problems in this release.

Even when the problem you reported proved to be correct behaviour, reporting it allowed us to improve the documentation or error handling.



By adding the line_analysis option to the diagnose() function we completed the planned feature set for the Broadband Diagnostics API.

The Line Analysis function verifies the connectivity of a single circuit and, if there is a problem, it provides the estimated location of the problem.


With this release we have a functional method to order new connections. This method is not yet generally available because we are using it internally first to iron out as many teething problems as possible.

Zipcode checks

The basic zipcode() function will now report the availability of the VPlus technology. VPlus is a new technology that KPN has recently begun to deploy.

In preparation of the ability to order new connections the output of the zipcode() function is extended to:

  • include SLA products that can be ordered in combination with a connection.

  • include telephone numbers and service ids with an ISRA connection point to aid the selection of the correct ISRA.

Notification engine

In order to alert you to events of interest to you a notification engine is implemented. The first notifications will be concerned with ordering new connections. At the moment no customer notifications are yet available but the The Settings API will let you register what notifications you want to receive.

Behind the scenes

We received a fair number of bug reports. Thanks to everyone who reported an issue. Each of these issues is resolved in this release.



In this release we concentrated on providing diagnostic functions for established circuits supplied by KPN WBA.

These diagnostic functions allow you to obtain a view on the authentication log data from which you can learn if and when a circuit managed to login successfully. They let you request a port status check on the DSLAM which tells you if the circuit is operational and how the line is trained in on the DSLAM.

Finally the diagnostics module allows you to forcefully disconnect a circuit. This forces the CPE to attempt to login again.


We learned that there are postcodes in use that are not available in the official postcode databases. We therefore implemented our own postcode extension table which is read when we cannot validate a postcode. For the time being this table with additional postcodes is managed by us by hand. If you stumble on an unsupported postcode please provide us with the details (via and we will add it to the postcode extension table.


As part of our Ordering API project we implemented a mechanism to uniformly identify carriers and circuits. This element (called nid) is now used to identify carriers and circuits. You will find these nids in the Broadband Diagnostics API and carriercheck() functions.

We included a field terminate_voice in the output of the zipcode() function. This field warns you when ordering a non-shared carrier on an ISRA where all connections are used for telephone services that this will result in terminating the voice connection.

Improved zipcode check

The address returned by zipcode() now contains extended address information including the longitude and latitude of the address.


This is our first release note. In this note we want to inform you about the work we did on the last few releases. As most of that work did not add or change the functions in the API it may have looked that progress had stalled.

JSON Web Tokens

In version 1.4 we introduced a new method of authentication: JSON Web Tokens. With JWT it becomes possible to sign in once, which gets you an access token, and thereafter authenticate yourself using that token.

This will allow you to create a modern webbased application interacting with the API without the need to keep the user’s credentials in memory.

Check out Authenticate for more information.

Ordered product overview

In version 1.4 we also introduced an API function to obtain an overview of all broadband products you obtained. This function lets you filter, sort and paginate the output.

Some output fields, stating the online status, ip address and logged in user where not yet functional in the 1.4 release. With the current 1.6 release this has been resolved.

See get_ordered_products() for more information.

Multiple ISRA/FTU access points

In version 1.5 we added the capability to the zipcode() to see which ISRA/FTU access points are present at a given location. For each access point we enumerate what carriers are available and how much work is required to create the connection (NLS types).

In the same release the zipcode() and carriercheck() functions began to return the number of freely available nl1 lines of an ISRA point. These are the nl1 lines that carry neither telephone nor broadband services.

Voice technology

Finally in this release we added get_carrier_voice_type() which tells you if a line, identified by the telephone number, is an ISDN or POTS connection.

Behind the scenes

A lot of time and work is spent preparing for the broadband ordering API functions. Realization of this feature, eagerly awaited by many customers as well as ourselves, is progressing. But unfortunately, we aren’t there yet.

We have been working hard to improve the accuracy of the presented results. Thanks to the people who reported issues with certain zipcodes we could resolve these bugs.