Een KVK API werkt als interface tussen je softwareapplicaties en het KVK Handelsregister. Het zorgt ervoor dat de twee met elkaar kunnen communiceren. Via een API-key krijg je toegang tot informatie in het Handelsregister.
Met de Zoeken API haal je het KVK-nummer van een inschrijving op. Aanvullende gegevens vraag je vervolgens op met een van de andere API's.
Zoek basisgegevens van inschrijvingen op met het KVK-nummer. Bijvoorbeeld maatschappelijke activiteit, gegevens eigenaar/ hoofdvestiging, en een lijst van de vestigingen.
Zoek specifieke informatie van inschrijvingen op met het vestigingsnummer. Bijvoorbeeld algemene gegevens, activiteiten en bezoek- en postadres.
Gebruik het KVK-nummer om handelsnamen van een inschrijving op te halen. Bijvoorbeeld statutaire naam, handelsnamen en niet-commerciële naam.
KVK Handelsregister Basisprofiel en Vestigingsprofiel leveren maximaal één registratie per verzoek. Als er meerdere registraties zijn, dan wordt het eerste resultaat getoond. Gebruik een combinatie van velden om het zoeken zo specifiek mogelijk te maken. Bijvoorbeeld:
Gebruik voor free format zoeken de overige inputparameters (bijvoorbeeld handelsnaam of straatnaam).
De Zoeken API heeft 2 aparte entiteiten die verschillen in de property "type".
{
"pagina": 1,
"resultatenPerPagina": 10,
"totaal": 1,
"resultaten": [
{
"kvkNummer": "69599068",
"naam": "Test Stichting Bolderbast",
"adres": {
"binnenlandsAdres": {
"type": "bezoekadres",
"straatnaam": "Oosterwal",
"plaats": "Lochem"
}
},
"type": "rechtspersoon",
"links": [
{
"rel": "basisprofiel",
"href": "https://api.kvk.nl/test/api/v1/basisprofielen/69599068"
}
]
}
],
"links": [
{
"rel": "self",
"href": "https://api.kvk.nl/test/api/v2/zoeken?kvknummer=69599068&pagina=1&resultatenperpagina=10"
}
]
}
{
"pagina": 1,
"resultatenPerPagina": 10,
"totaal": 1,
"resultaten": [
{
"kvkNummer": "68750110",
"vestigingsnummer": "000037178598",
"naam": "Test BV Donald",
"adres": {
"binnenlandsAdres": {
"type": "bezoekadres",
"straatnaam": "Hizzaarderlaan",
"plaats": "Lollum"
}
},
"type": "hoofdvestiging",
"links": [
{
"rel": "basisprofiel",
"href": "https://api.kvk.nl/test/api/v1/basisprofielen/68750110"
},
{
"rel": "vestigingsprofiel",
"href": "https://api.kvk.nl/test/api/v1/vestigingsprofielen/000037178598"
}
]
}
],
"links": [
{
"rel": "self",
"href": "https://api.kvk.nl/test/api/v2/zoeken?kvknummer=68750110&pagina=1&resultatenperpagina=10"
}
]
}
Met de Zoeken API zoek je naar bedrijfsgegevens, vestigings-gegevens en/of rechtspersonen. De Basisprofiel en Vestigingsprofiel API’s zijn gelinkt aan de Zoeken API. Ze bevatten zoekresultaten URL’s naar de gerelateerde Basisprofiel resource en Vestigingsprofiel resources. Dit is binnen REST ook wel bekend als HATEOAS. We hebben de HAL standard gebruikt om HATEOAS te implementeren.
Een http GET-request is de enige toegestane http methode voor de API. Voor de output maken we gebruik van standaard JSON object (JavaScript Object Notation). Dit zorgt voor generieke resultaten. Bij elke JSON output worden ook een aantal metadata elementen geleverd (pagina, aantal, totaal, volgende en vorige).
We gebruiken de specificaties die zijn voorgeschreven door JSON.org. Er zijn echter 2 specifieke kenmerken met betrekking tot de KVK API JSON output: registratiedatum en geodata.
De datum geregistreerd in het Handelsregister kan nullen bevatten als de datum onbekend is. Als de volledige datum bekend is dan is het formaat: YYYYMMDD (year/month/day). Alleen numerieke waarden zijn toegestaan (inclusief 0 voor onbekende delen van de datum).
Geodata zijn geografische gegevens die gebruikt worden om de locatie van adressen en gebouwen aan te geven. Met behulp van de BAG ID’s (addresseerbaarObjectId en nummerAanduidingId) kan in de BAG (Basisregistratie Adressen en Gebouwen) gezocht worden naar onder andere oppervlakte en gebruiksdoel.
Geodata worden opgehaald door de extra parameter “?geoData=true” op te nemen in de aanroep bij vestigingsprofielen. Standaard staat deze parameter op false.
{
"adressen":[
{
"type":"bezoekadres",
"indicatieAfgeschermd":"Nee",
"volledigAdres":"Watermolenlaan 1 3447GT Woerden",
"straatnaam":"Watermolenlaan",
"huisnummer":1,
"postcode":"3447GT",
"plaats":"Woerden",
"land":"Nederland",
"geoData":{
"addresseerbaarObjectId":"0632010000010090",
"nummerAanduidingId":"0632200000010090",
"gpsLatitude":52.08151653230184,
"gpsLongitude":4.890048011859921,
"rijksdriehoekX":120921.45,
"rijksdriehoekY":454921.47,
"rijksdriehoekZ":0
}
}
]
}
Als er een foutboodschap en/of error handling plaatsvindt, dan worden normale http-statuscodes en -boodschappen gehanteerd. Foutboodschappen en error handling gebruiken de volgende niet uitputtende lijst van foutcodes:
Code | Omschrijving | Http status |
---|---|---|
IPD0001 | Het gevraagde product {0} bestaat niet. | 404 |
IPD0004 | Het KvK nummer {0} is niet valide. | 400 |
IPD0005 | Op basis van het KVK-nummer {0} kan het product niet worden geleverd. | 404 |
IPD0006 | Het vestigingsnummer {0} is niet valide. | 400 |
IPD0007 | Op basis van het vestigingsnummer {0} kan het product niet worden geleverd. | 404 |
IPD0010 | Het RSI-nummer {0} is niet valide. | 400 |
IPD1002 | De gegevens zijn tijdelijk niet leverbaar omdat deze in behandeling zijn. Probeer het later nog eens. | 404 |
IPD1998 | Algemene invoer parameter fout. | 400 |
IPD1999 | De volgende opgegeven parameter(s) is(zijn) ongeldig: {0} | 400 |
IPD5200 | Er zijn geen gegevens gevonden die voldoen aan de opgegeven zoekparameters. | 404 |
IPD5203 | Het opgegeven type is niet valide. | 404 |
IPD9999 | Algemene technische fout. | 500 |
In onderstaande PDF staat de informatie die een zoekopdracht naar rechtsvormen oplevert.
In onderstaande PDF staan waarden die bij het attribuut ‘omschrijvingRechtsvorm’ kunnen voorkomen.
In onderstaande PDF staan de mogelijke waarden voor een land, aangeduid volgens de BRP-landentabel (ook wel bekend als Tabel 34).