Jsonpage · SIREN- en SIRET-API
INTEGRATIEGIDS

API-documentatie

Alles wat u nodig hebt om het opzoeken van ondernemingen en vestigingen in uw product te integreren.

01 / SNEL AAN DE SLAG

Aan de slag in 2 minuten

Het basisadres van de API is https://api.jsonpage.com/v2. Elke aanroep stuurt uw API-sleutel mee in de header X-API-Key. Op deze pagina staan de routes met hun volledige pad vanaf api.jsonpage.com, bijvoorbeeld /v2/companies/{id}.

1. Haal uw sleutel op: Mijn sleutel ophalen. Het gratis account is meteen actief en de sleutel verschijnt in uw dashboard.

2. Doe een aanroep: dit verzoek leest een echte onderneming, FR-552032534, met haar adres en haar gecontroleerde btw-nummer.

curl "https://api.jsonpage.com/v2/companies/FR-552032534?include=address,vat" \
  -H "X-API-Key: UW_SLEUTEL"

3. Lees het antwoord: het volledige antwoord, niets ingekort. vat.status is valid wanneer het nummer door de Europese controle is bevestigd; pending betekent dat de controle nog niet is voltooid, probeer het later opnieuw.

{
  "data": {
    "id": "FR-552032534",
    "country": "FR",
    "registry_id": "552032534",
    "name": "DANONE",
    "status": "active",
    "legal_form": { "code": "5599", "label": "SA à conseil d'administration (s.a.i.)", "scheme": "FR-CJ" },
    "activity": { "nace": "70.10", "code": "70.10Z", "label": "Activités des sièges sociaux", "scheme": "FR-NAF-REV2" },
    "incorporated_on": "1955-01-01",
    "closed_on": null,
    "updated_at": "2026-09-10T11:14:57Z",
    "address": {
      "line": "59 RUE LA FAYETTE",
      "postal_code": "75009",
      "city": "PARIS",
      "country": "FR",
      "formatted": "59 RUE LA FAYETTE, 75009 PARIS"
    },
    "vat": { "number": "FR27552032534", "status": "valid", "checked_at": "2026-10-11T00:14:31Z", "source": "EU VAT check" }
  },
  "meta": {
    "sources": [{ "name": "Official company register: France", "country": "FR", "kind": "register", "data_date": "2026-09-29" }],
    "includes": { "address": "ok", "vat": "ok" }
  }
}
Postman-collectieBeschikbaar na gratis registratie: download ze via uw dashboard. De ontdekkingscollectie (zonder sleutel, enkele aanvragen) downloadt u zonder account.
Probeer het zonder iets te installerenZonder account bevraagt de demo op de startpagina de API live met een echte onderneming. Zodra u bent ingeschreven, verstuurt de Tester in uw dashboard elke gewenste aanvraag met uw account, zonder code te schrijven.
Voordat u begintBewaar de sleutel op uw server. Voeg hem niet toe aan JavaScript-code die naar de browser wordt gestuurd.

Node.js (fetch)

// Node.js 18 or later, ES module. The key is read from the environment.
const response = await fetch(
  "https://api.jsonpage.com/v2/companies/FR-552032534?include=address,vat",
  { headers: { "X-API-Key": process.env.JSONPAGE_API_KEY } }
);
if (!response.ok) throw new Error(`Jsonpage API: ${response.status}`);

const { data } = await response.json();
console.log(data.name, data.address?.formatted, data.vat?.status);

Python (requests)

import os
import requests

response = requests.get(
    "https://api.jsonpage.com/v2/companies/FR-552032534",
    params={"include": "address,vat"},
    headers={"X-API-Key": os.environ["JSONPAGE_API_KEY"]},
    timeout=10,
)
response.raise_for_status()

company = response.json()["data"]
print(company["name"], company["status"], company["vat"]["status"])

PHP (cURL)

<?php
$ch = curl_init('https://api.jsonpage.com/v2/companies/FR-552032534?include=address,vat');
curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER => ['X-API-Key: ' . getenv('JSONPAGE_API_KEY')],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 10,
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($body === false || $status !== 200) {
    throw new RuntimeException("Jsonpage API: $status");
}

$company = json_decode($body, true)['data'];
echo $company['name'], ' ', $company['status'], ' ', $company['vat']['status'], PHP_EOL;

Ruby (net/http)

require "json"
require "net/http"

uri = URI("https://api.jsonpage.com/v2/companies/FR-552032534?include=address,vat")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("JSONPAGE_API_KEY")

response = Net::HTTP.start(uri.host, uri.port, use_ssl: true, read_timeout: 10) { |http| http.request(request) }
raise "Jsonpage API: #{response.code}" unless response.is_a?(Net::HTTPSuccess)

company = JSON.parse(response.body).fetch("data")
puts [company["name"], company["status"], company.dig("vat", "status")].join(" ")

De voorbeelden in Node.js, Python, PHP en Ruby lezen de sleutel uit de omgevingsvariabele JSONPAGE_API_KEY. Het antwoord en de lijst met blokken worden beschreven in het deel API v2.

Autocompletion in een formulier: via uw server

De browser roept een endpoint van uw server aan, die de sleutel toevoegt en /v2/autocomplete aanroept. Voorbeeld van een serverroute (Node.js):

import { createServer } from "node:http";

createServer(async (req, res) => {
  const incoming = new URL(req.url, "http://localhost");
  if (incoming.pathname !== "/api/companies/suggest") { res.writeHead(404).end(); return; }
  const q = (incoming.searchParams.get("q") ?? "").trim();
  res.setHeader("Content-Type", "application/json");
  if (q.length < 2) { res.end(JSON.stringify({ data: [] })); return; }

  const url = new URL("https://api.jsonpage.com/v2/autocomplete");
  url.search = new URLSearchParams({ q, limit: "8" });
  const response = await fetch(url, { headers: { "X-API-Key": process.env.JSONPAGE_API_KEY } });
  // Too short, rate limited…: no suggestion.
  res.end(response.ok ? await response.text() : JSON.stringify({ data: [] }));
}).listen(3000);

Wacht in de browser ongeveer 150 ms na de laatste toetsaanslag voordat u uw endpoint aanroept: één suggestie per typpauze, in plaats van één per toets.

const input = document.querySelector("#company");
let timer;

input.addEventListener("input", () => {
  clearTimeout(timer);
  timer = setTimeout(async () => {
    const response = await fetch(`/api/companies/suggest?q=${encodeURIComponent(input.value)}`);
    const { data } = await response.json();
    // Show name, postal_code and city; keep id for the next step.
  }, 150);
});

De ingevoerde identificatienummers valideren

Voordat het formulier wordt opgeslagen, controleert uw server in één aanroep het ingevoerde SIREN, SIRET en btw-nummer:

const params = new URLSearchParams({ id: "FR-652014051", vat: "FR14652014051" });
const response = await fetch(`https://api.jsonpage.com/v2/validate?${params}`, {
  headers: { "X-API-Key": process.env.JSONPAGE_API_KEY },
});
const { data } = await response.json();

if (!data.valid) {
  const failed = data.checks.filter((check) => !check.ok).map((check) => check.code);
  // For example ["vat_format"]: ask the user to correct the VAT number.
}

De endpoints /v2/autocomplete en /v2/validate worden beschreven in het deel Formulieren.

02 / API V2 (MEERDERE LANDEN)

Eén formaat voor meerdere landen

De API v2 geeft voor elk bediend land hetzelfde formaat terug, met dezelfde sleutel en dezelfde formule. Frankrijk, België, Zwitserland, Noorwegen, Finland, Letland, Ierland, Zweden, Estland, Litouwen, Australië, Singapore, Japan en het Verenigd Koninkrijk zijn beschikbaar.

Globaal identificatienummer

Elke onderneming heeft een globaal identificatienummer: de ISO 3166-1-landcode van twee letters, een koppelteken en daarna het nummer in het nationale register, zonder spaties of leestekens. Voorbeelden: FR-552032534 voor een Franse SIREN, GB-00445790 voor een Brits company number van 8 tekens, BE-0417497106 voor een Belgisch ondernemingsnummer van 10 cijfers, CH-101374515 voor een Zwitsers UID-nummer van 9 cijfers, zonder het prefix CHE.

Voor de andere landen: NO-923609016 voor een Noors organisatienummer van 9 cijfers, FI-01120389 voor een Fins bedrijfs-ID (de 7 cijfers en het controlecijfer, zonder streepje; 0112038-9 wordt aanvaard), LV-40003245752 voor een Lets registratienummer van 11 cijfers, IE-104547 voor een Iers bedrijfsnummer van 1 tot 7 cijfers, SE-5560427220 voor een Zweeds organisatienummer van 10 cijfers, EE-10137025 voor een Estse registratiecode van 8 cijfers en LT-110053842 voor een Litouwse code van een rechtspersoon van 9 cijfers, AU-51824753556 voor een Australisch ABN-nummer van 11 cijfers, SG-196800306E voor een Singaporees UEN-nummer van 9 of 10 tekens, JP-1180301018771 voor een Japans ondernemingsnummer van 13 cijfers.

Het land maakt deel uit van het identificatienummer, omdat nationale nummers overlappen: een Franse SIREN en een Noors organisatienummer hebben allebei 9 cijfers. Hergebruik ongewijzigd het identificatienummer dat wordt teruggegeven in data.id.

Beschikbare endpoints

AuthenticatieBasisadres: https://jsonpage.com. Stuur uw API-sleutel bij elke aanroep mee in de header X-API-Key; de voorbeelden lezen hem uit de variabele JSONPAGE_API_KEY. Alleen de endpoints voor de gezondheid van de dienst werken zonder. Klik op een endpoint om de parameters, een voorbeeld en de fouten te zien.

Ondernemingen

GET/v2/companies/{id}De fiche van een onderneming opvragen

Geeft de fiche van een onderneming terug op basis van haar globale identificator. Zonder opties bevat ze de basisvelden: naam, status, rechtsvorm, activiteit en datums. Voeg het adres, het btw-nummer of andere blokken toe met include.

Parameters

  • idverplichtin het pad · tekst

    Landcode, koppelteken en dan het registernummer: FR-552032534, BE-0417497106, CH-101374515, NO-923609016, FI-01120389, LV-40003245752, IE-104547, SE-5560427220, EE-10137025, LT-110053842, AU-51824753556, SG-196800306E, JP-1180301018771, GB-00445790.

  • includeoptioneelin de query ?… · kommagescheiden lijst

    Toe te voegen blokken, bijvoorbeeld address,vat. Standaard geen. Waarden: address, establishments, local, vat, signals, legal_events, officers, owners, sanctions. Inhoud van elk blok: Blokken op aanvraag.

  • fieldsoptioneelin de query ?… · kommagescheiden lijst

    Behoudt alleen deze basisvelden, bijvoorbeeld name,status. Standaard alle; id wordt altijd teruggegeven.

Voorbeeld

curl "https://api.jsonpage.com/v2/companies/CH-101374515?include=address" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
{
  "data": {
    "id": "CH-101374515",
    "country": "CH",
    "registry_id": "101374515",
    "name": "The Swatch Group AG",
    "status": "active",
    "legal_form": { "code": "0106", "label": "Société anonyme", "...": "..." },
    "address": { "postal_code": "2000", "city": "Neuchâtel", "...": "..." },
    "...": "..."
  },
  "meta": { "includes": { "address": "ok" }, "sources": [{ "...": "..." }] }
}

Mogelijke fouten

  • 400 invalid_identifier: ongeldige identificator (verwacht: landcode, koppelteken, nummer)
  • 400 unknown_include: onbekend blok in include
  • 404 country_not_supported: land nog niet beschikbaar
  • 404 not_found: geen onderneming met deze identificator

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

Landen Frankrijk, België, Zwitserland, Noorwegen, Finland, Letland, Ierland, Zweden, Estland, Litouwen, Australië, Singapore, Japan en het Verenigd Koninkrijk. Een blok dat in een land ontbreekt, wordt gemeld in meta.includes (not_available_in_country), zonder fout.

GET/v2/companies/{id}/establishmentsDe vestigingen van een onderneming oplijsten

Geeft de vestigingen (sites, winkels, filialen) van een onderneming terug, pagina per pagina. Geef voor de volgende pagina de waarde next door aan de parameter after; op de laatste pagina is next gelijk aan null.

Parameters

  • idverplichtin het pad · tekst

    Globale identificator van de onderneming, bijvoorbeeld FR-552032534.

  • limitoptioneelin de query ?… · geheel getal

    Aantal vestigingen per pagina: standaard 20, van 1 tot 100.

  • afteroptioneelin de query ?… · tekst

    De waarde next van de vorige pagina. Afwezig: eerste pagina.

Voorbeeld

curl "https://api.jsonpage.com/v2/companies/FR-552032534/establishments?limit=2" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
{
  "data": {
    "items": [
      { "registry_id": "55203253400414", "name": "...", "head_office": false, "...": "..." },
      { "registry_id": "...", "...": "..." }
    ],
    "next": "..."
  },
  "meta": { "sources": [{ "name": "Official company register: France", "country": "FR", "kind": "register", "data_date": "2026-10-01" }] }
}

Mogelijke fouten

  • 400 invalid_parameter: limit buiten 1 tot 100
  • 404 not_found: geen onderneming met deze identificator
  • 404 not_available_in_country: geen vestigingen in het register van dit land (Zwitserland, Finland, Letland, Ierland, Zweden, Estland, Litouwen, Australië, Singapore, Japan, Verenigd Koninkrijk)

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

Landen Alleen Frankrijk (SIRET van 14 cijfers) en België (vestigingseenheidsnummer van 10 cijfers).

GET/v2/companies?q=…Ondernemingen zoeken op naam

Zoekt ondernemingen op naam, in een of meer landen. Exacte namen komen eerst, daarna de actieve ondernemingen. De hele zoekopdracht telt als één aanvraag.

Parameters

  • qverplichtin de query ?… · tekst

    De gezochte naam. Elk woord van 2 tekens of meer moet in de naam voorkomen; het laatste mag het begin van een woord zijn (dano vindt DANONE).

  • countryoptioneelin de query ?… · kommagescheiden lijst

    Landen waarin gezocht wordt, bijvoorbeeld FR,BE. Standaard alle. Waarden: FR, BE, CH, NO, LV, FI, AU, SG, JP, GB, IE, SE, EE, LT.

  • statusoptioneelin de query ?… · tekst

    active behoudt alleen actieve ondernemingen; any (standaard) behoudt elke status.

  • limitoptioneelin de query ?… · geheel getal

    Maximaal aantal resultaten: standaard 20, van 1 tot 50.

Voorbeeld

curl "https://api.jsonpage.com/v2/companies?q=swatch&country=CH&limit=5" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
{
  "data": [
    { "id": "CH-101374515", "name": "The Swatch Group AG", "status": "active", "...": "..." },
    { "id": "CH-...", "...": "..." }
  ],
  "meta": { "sources": [{ "name": "Official company register: Switzerland", "country": "CH", "kind": "register", "data_date": "2026-10-01" }] }
}

Mogelijke fouten

  • 400 query_too_short: geen woord van 2 tekens of meer in q
  • 400 invalid_parameter: ongeldige status of limit
  • 404 country_not_supported: land zonder zoeken op naam

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

GET/v2/companies?registry_id=…Een onderneming vinden op haar nummer, zonder het land te kennen

Zoekt een nationaal registernummer in alle beschikbare landen en geeft de ondernemingen terug die het dragen, meestal maar één. De lijst is leeg als er geen overeenkomt.

Parameters

  • registry_idverplichtin de query ?… · tekst

    Het nummer, zonder landcode, bijvoorbeeld 552032534. Spaties worden genegeerd.

Voorbeeld

curl "https://api.jsonpage.com/v2/companies?registry_id=552032534" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
{
  "data": [
    { "id": "FR-552032534", "country": "FR", "registry_id": "552032534", "name": "DANONE", "status": "active", "...": "..." }
  ],
  "meta": { "sources": [{ "name": "Official company register: France", "country": "FR", "kind": "register", "data_date": "2026-10-01" }] }
}

Mogelijke fouten

  • 400 invalid_parameter: geen q en geen registry_id in de aanvraag

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

POST/v2/companies/batchTot 100 ondernemingen in één aanroep opvragen

Geeft meerdere fiches terug in één aanroep, in de gevraagde volgorde. Elk element bevat data, of error als de onderneming niet gevonden wordt. Elke onderneming in de batch telt als één aanvraag.

Parameters

  • idsverplichtin de JSON-body · JSON-lijst van teksten

    De globale identificatoren, van 1 tot 100, bijvoorbeeld ["FR-552032534", "BE-0417497106"].

  • includeoptioneelin de JSON-body · JSON-lijst van teksten

    Blokken om aan elke fiche toe te voegen, dezelfde waarden als voor één onderneming. Standaard geen.

Voorbeeld

curl -X POST "https://api.jsonpage.com/v2/companies/batch" \
  -H "X-API-Key: $JSONPAGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "ids": ["FR-552032534", "BE-0417497106"], "include": ["vat"] }'
{
  "data": [
    { "id": "FR-552032534", "data": { "id": "FR-552032534", "name": "DANONE", "...": "..." } },
    { "id": "BE-0417497106", "data": { "id": "BE-0417497106", "name": "Anheuser-Busch InBev", "...": "..." } }
  ],
  "meta": { "sources": [{ "...": "..." }] }
}

Mogelijke fouten

  • 400 invalid_json: onleesbare body, groter dan 64 kB of met een ander veld dan ids en include
  • 400 invalid_parameter: ids leeg of langer dan 100 elementen
  • 400 unknown_include: onbekend blok in include
  • 429 rate_limit_exceeded: de batch overschrijdt de aanvragen die u deze minuut nog hebt

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

Formulieren

GET/v2/autocomplete?q=…Ondernemingen voorstellen tijdens het typen

Geeft enkele lichte suggesties terug (naam, stad, postcode) voor een formulierveld. Een ingevoerd registernummer geeft meteen zijn onderneming terug. Roep dit endpoint aan vanaf uw server, zodat de sleutel geheim blijft.

Parameters

  • qverplichtin de query ?… · tekst

    De ingevoerde tekst: een naam, het begin van een naam of een nummer (SIREN, SIRET, Belgisch nummer, Zwitsers UID, Noors organisatienummer, Fins bedrijfs-ID, Lets nummer, Australisch ABN, Singaporees UEN, Japans ondernemingsnummer, Brits company number).

  • countryoptioneelin de query ?… · kommagescheiden lijst

    Landen waarin gezocht wordt, bijvoorbeeld FR. Standaard alle. Waarden: FR, BE, CH, NO, LV, FI, AU, SG, JP, GB, IE, SE, EE, LT.

  • statusoptioneelin de query ?… · tekst

    active (standaard) stelt alleen actieve ondernemingen voor; any stelt elke status voor.

  • limitoptioneelin de query ?… · geheel getal

    Maximaal aantal suggesties: standaard 8, van 1 tot 20.

Voorbeeld

curl "https://api.jsonpage.com/v2/autocomplete?q=carrefour&limit=5" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
{
  "data": [
    { "id": "FR-652014051", "name": "CARREFOUR", "status": "active", "postal_code": "91300", "city": "MASSY", "kind": "company" },
    { "id": "FR-...", "...": "..." }
  ]
}

Mogelijke fouten

  • 400 query_too_short: geen woord van 2 tekens of meer in q
  • 400 invalid_parameter: ongeldige status of limit
  • 404 country_not_supported: land zonder zoeken op naam

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

GET/v2/validateEen identificator, een SIRET of een btw-nummer controleren

Controleert de nummers die in een formulier zijn ingevoerd: formaat, bestaan, actieve onderneming, en of ze naar dezelfde onderneming verwijzen. Geef er minstens één. Het antwoord is 200, ook als een waarde ongeldig is: valid zegt of alle controles geslaagd zijn, checks toont elke controle. Alleen als alle parameters ontbreken, volgt 400 invalid_parameter.

Parameters

  • idoptioneelin de query ?… · tekst

    Globale identificator, bijvoorbeeld FR-652014051.

  • siretoptioneelin de query ?… · tekst

    SIRET van 14 cijfers van een Franse vestiging. Spaties, punten en koppeltekens worden genegeerd.

  • vatoptioneelin de query ?… · tekst

    Frans, Belgisch, Zwitsers, Noors, Fins of Lets btw-nummer, bijvoorbeeld FR14652014051. Spaties, punten en koppeltekens worden genegeerd.

  • eorioptioneelin de query ?… · tekst

    EORI-nummer, bijvoorbeeld FR55203253400646: de controle slaagt als de officiële dienst niet antwoordt (unverifiable) en mislukt als het nummer ongeldig is. Een Frans EORI-nummer is FR gevolgd door het SIRET.

Voorbeeld

curl "https://api.jsonpage.com/v2/validate?id=FR-652014051&vat=FR14652014051" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
{
  "data": {
    "valid": true,
    "checks": [
      { "code": "id_format", "ok": true, "value": "FR-652014051" },
      { "code": "vat_format", "ok": true, "value": "FR14652014051" },
      { "code": "identifiers_match", "ok": true, "value": "FR-652014051" },
      { "code": "company_active", "ok": true, "value": "active" },
      { "...": "..." }
    ],
    "company": { "id": "FR-652014051", "name": "CARREFOUR", "...": "..." }
  }
}

Mogelijke fouten

  • 400 invalid_parameter: geen id, siret of vat

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

Landen id: Frankrijk, België, Zwitserland, Noorwegen, Finland, Letland, Ierland, Zweden, Estland, Litouwen, Australië, Singapore, Japan, Verenigd Koninkrijk. siret: Frankrijk. vat: Frankrijk, België, Zwitserland, Noorwegen, Finland, Letland, Zweden, Estland, Litouwen. Lijst van de controles: Validatie.

GET/v2/eori/{number}Een EORI-nummer controleren

Controleert een EORI-nummer, de douane-identificatie van bedrijven die importeren of exporteren: het formaat en vervolgens of het nummer bestaat bij de officiële controlediensten (Europese Unie en Verenigd Koninkrijk). Telt als één verzoek, in elk abonnement. Het antwoord is 200 met als status valid, invalid, unverifiable (de officiële dienst antwoordt niet: dit is nooit een ongeldig nummer, probeer later opnieuw) of not_applicable (Zwitserland en Noorwegen, waar de Europese EORI niet van toepassing is). name en address staan er alleen in als het bedrijf met de publicatie heeft ingestemd. Elk antwoord wordt 24 uur hergebruikt.

Parameters

  • numberverplichtin het pad · tekst

    Landcode van 2 letters gevolgd door maximaal 15 tekens, bijvoorbeeld FR55203253400646, DE1234567 of GB123456789000. Spaties, punten en koppeltekens worden genegeerd.

Voorbeeld

curl "https://api.jsonpage.com/v2/eori/DE1234567" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
{
  "data": {
    "eori": "DE1234567",
    "country": "DE",
    "status": "valid",
    "valid": true,
    "checked_at": "2026-10-11T12:00:00Z",
    "name": "EXEMPLE GMBH",
    "address": "Hauptstrasse 1, 10115, BERLIN, DE"
  }
}

Mogelijke fouten

  • 400 invalid_eori: geen landcode gevolgd door maximaal 15 tekens
  • 400 country_not_supported: land zonder EORI-controle
  • 503 eori_unavailable: EORI-controle is niet ingeschakeld op deze server

Fouten die voor alle endpoints gelden (sleutel, IP-adres, quotum): Fouten en limieten.

Monitoring

PUT/v2/monitors/{id}Een onderneming volgen

Voegt een onderneming toe aan uw monitoringlijst: elke gedetecteerde wijziging wordt daarna een gebeurtenis. Antwoordt 201 als ze wordt toegevoegd, 200 als ze er al op stond. Geen request-body.

Parameters

  • idverplichtin het pad · tekst

    Globale identificator van de onderneming, bijvoorbeeld FR-552032534.

Voorbeeld

curl -X PUT "https://api.jsonpage.com/v2/monitors/FR-552032534" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
{ "data": { "company_id": "FR-552032534", "created": true } }

Mogelijke fouten

  • 400 invalid_identifier: ongeldige identificator (verwacht: landcode, koppelteken, nummer)
  • 403 monitor_limit_reached: de limiet van gevolgde ondernemingen van uw abonnement is bereikt
  • 404 not_found: geen onderneming met deze identificator
  • 503 monitoring_unavailable: monitoring tijdelijk niet beschikbaar; probeer opnieuw

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

DELETE/v2/monitors/{id}Een onderneming niet langer volgen

Verwijdert een onderneming uit uw monitoringlijst. Antwoordt 204, zonder body. Reeds geregistreerde gebeurtenissen blijven leesbaar.

Parameters

  • idverplichtin het pad · tekst

    Globale identificator van de onderneming, bijvoorbeeld FR-552032534.

Voorbeeld

curl -X DELETE "https://api.jsonpage.com/v2/monitors/FR-552032534" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
HTTP/2 204

Mogelijke fouten

  • 400 invalid_identifier: ongeldige identificator (verwacht: landcode, koppelteken, nummer)
  • 404 not_monitored: de onderneming staat niet op uw lijst
  • 503 monitoring_unavailable: monitoring tijdelijk niet beschikbaar; probeer opnieuw

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

GET/v2/monitorsDe gevolgde ondernemingen oplijsten

Geeft uw monitoringlijst terug, gesorteerd op identificator, pagina per pagina. meta.count geeft het aantal gevolgde ondernemingen en meta.limit de limiet van uw abonnement.

Parameters

  • limitoptioneelin de query ?… · geheel getal

    Ondernemingen per pagina: standaard 100, van 1 tot 1.000.

  • afteroptioneelin de query ?… · tekst

    De waarde next van de vorige pagina. Afwezig: eerste pagina.

Voorbeeld

curl "https://api.jsonpage.com/v2/monitors?limit=100" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
{
  "data": [
    { "company_id": "FR-552032534", "created_at": "2026-10-02T09:12:44Z", "checked_at": "2026-10-02T10:00:03Z", "...": "..." }
  ],
  "next": null,
  "meta": { "count": 1, "limit": 1000 }
}

Mogelijke fouten

  • 400 invalid_parameter: limit buiten 1 tot 1.000
  • 503 monitoring_unavailable: monitoring tijdelijk niet beschikbaar; probeer opnieuw

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

GET/v2/eventsDe gedetecteerde wijzigingen lezen

Geeft de gebeurtenissen van uw gevolgde ondernemingen terug (wijziging van adres of status, nieuwe bekendmaking…), van oud naar nieuw. Bewaar de identificator van de laatst verwerkte gebeurtenis en geef die bij de volgende aanroep door aan after.

Parameters

  • afteroptioneelin de query ?… · tekst

    Geeft alleen de gebeurtenissen na deze terug, bijvoorbeeld evt_41. Afwezig: vanaf de oudste.

  • limitoptioneelin de query ?… · geheel getal

    Gebeurtenissen per pagina: standaard 100, van 1 tot 1.000.

  • company_idoptioneelin de query ?… · tekst

    Geeft alleen de gebeurtenissen van deze onderneming terug, bijvoorbeeld FR-552032534.

Voorbeeld

curl "https://api.jsonpage.com/v2/events?after=evt_41&limit=100" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
{
  "data": [
    {
      "id": "evt_42",
      "type": "company.address_changed",
      "company_id": "FR-552032534",
      "detected_at": "2026-10-03T04:00:00Z",
      "data": { "before": "75 AV DE LA GRANDE ARMEE 75116 PARIS", "after": "..." }
    }
  ],
  "next": "evt_42"
}

Mogelijke fouten

  • 400 invalid_parameter: ongeldige after of limit
  • 400 invalid_identifier: ongeldige company_id
  • 503 monitoring_unavailable: monitoring tijdelijk niet beschikbaar; probeer opnieuw

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

Webhooks, die de API naar uw server stuurt, worden beschreven in Webhooks.

Gezondheid van de dienst

GET/health/liveControleren of de dienst antwoordt

Antwoordt 200 zolang de dienst draait. Zonder API-sleutel: handig voor een monitoringprobe.

Parameters

Geen parameters.

Voorbeeld

curl "https://api.jsonpage.com/health/live"
{ "status": "ok" }
GET/health/readyControleren of de gegevens klaar zijn

Antwoordt 200 met "status": "ready" als de dienst gegevens kan leveren, anders 503. Zonder API-sleutel.

Parameters

Geen parameters.

Voorbeeld

curl "https://api.jsonpage.com/health/ready"
{ "status": "ready" }

Mogelijke fouten

  • 503: de dienst is niet klaar; probeer later opnieuw
GET/health/sourcesDe toestand van de gegevens per land bekijken

Geeft per land de toestand van de gegevens (ok: actueel, stale: niet bijgewerkt, refreshing: bijwerken bezig), zoals de pagina Status van de dienst. Zonder API-sleutel.

Parameters

Geen parameters.

Voorbeeld

curl "https://api.jsonpage.com/health/sources"
{
  "status": "ok",
  "checked_at": "...",
  "sources": [
    { "country": "FR", "status": "ok" },
    { "...": "..." }
  ]
}

Basisantwoord

Zonder opties is het antwoord ongeveer 0,5 kB groot en bevat het in alle landen dezelfde velden: identificatienummer, land, nummer, naam, status (active, closed of unknown), rechtsvorm, activiteit met de Europese NACE-code, datum van oprichting, sluiting en bijwerking. Een onbekende waarde is null, en een basisveld wordt nooit weggelaten.

curl "https://api.jsonpage.com/v2/companies/FR-552032534" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "FR-552032534",
    "country": "FR",
    "registry_id": "552032534",
    "name": "DANONE",
    "status": "closed",
    "legal_form": { "code": "5699", "label": "SA à directoire (s.a.i.)", "scheme": "FR-CJ" },
    "activity": { "nace": "70.10", "code": "70.10Z", "label": "Activités des sièges sociaux", "scheme": "FR-NAF-REV2" },
    "incorporated_on": "1955-01-01",
    "closed_on": null,
    "updated_at": "2024-03-22T13:26:06Z"
  },
  "meta": {
    "sources": [{ "name": "Official company register: France", "country": "FR", "kind": "register", "data_date": "2026-10-01" }]
  }
}

Blokken op aanvraag

Voeg de gewenste blokken toe met de parameter include, gescheiden door komma's. Een blok dat niet wordt opgevraagd, wordt niet gelezen of berekend, en elke oproep telt als één aanvraag, ongeacht de blokken. Een onbekend blok geeft de fout unknown_include in plaats van genegeerd te worden.

BlokInhoudLanden
addressAdres van de hoofdzetel: regel, postcode, stad, land en opgemaakt adres.France, Belgique, Suisse, Norvège, Finlande, Lettonie, Irlande, Suède, Estonie, Australie, Singapour, Japon, Royaume-Uni
establishmentsDe eerste 20 vestigingen en de cursor van de volgende pagina.Frankrijk, België, Noorwegen
localVelden die eigen zijn aan het register van het land, ongewijzigd.France, Belgique, Suisse, Norvège, Finlande, Lettonie, Australie, Singapour, Japon, Irlande, Suède, Estonie, Lituanie, Royaume-Uni
vatBtw-nummer en resultaat van de controle ervan.Frankrijk, België, Zwitserland, Noorwegen, Finland, Letland, Zweden, Estland, Litouwen
eoriWaarschijnlijk EORI-nummer van het hoofdkantoor (FR + SIRET) en het resultaat van de controle, nooit als zeker voorgesteld.Frankrijk
signalsSignalen berekend op basis van het register; lege lijst als er geen zijn.Frankrijk, België, Zwitserland, Noorwegen, Finland, Letland, Ierland, Zweden, Estland, Litouwen, Australië, Singapore, Japan, Verenigd Koninkrijk
legal_eventsDe 20 laatste wettelijke publicaties, van de meest recente tot de oudste.Frankrijk
officersBestuurders en gevolmachtigden.Nog niet beschikbaar
ownersHuidige personen met significante zeggenschap (uiteindelijke begunstigden); lege lijst als er geen zijn.Verenigd Koninkrijk
sanctionsControle aan de hand van de sanctielijsten.Frankrijk, België, Zwitserland, Noorwegen, Finland, Letland, Ierland, Zweden, Estland, Litouwen, Australië, Singapore, Japan, Verenigd Koninkrijk

Voor elk opgevraagd blok staat in meta.includes de waarde ok, of not_available_in_country als het blok in dit land nog niet beschikbaar is; het blok ontbreekt dan in data. Dat is momenteel het geval voor officers in alle landen, en voor establishments, vat en legal_events in het Verenigd Koninkrijk, voor legal_events en owners in België, voor establishments, legal_events en owners in Zwitserland, en voor owners in Frankrijk.

Noorwegen: legal_events en owners zijn niet beschikbaar. Litouwen: address, establishments, legal_events en owners zijn niet beschikbaar. Finland, Letland, Ierland, Zweden, Estland, Australië, Singapore en Japan: establishments, legal_events en owners zijn niet beschikbaar.

curl "https://api.jsonpage.com/v2/companies/FR-552032534?include=vat,signals,officers" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "FR-552032534",
    "...": "...",
    "vat": { "number": "FR27552032534", "status": "valid", "checked_at": "2026-10-11T00:14:31Z", "source": "EU VAT check" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: France", "country": "FR", "kind": "register", "data_date": "2026-10-01" }],
    "includes": { "vat": "ok", "signals": "ok", "officers": "not_available_in_country" }
  }
}

Verkort antwoord: de basisvelden zijn hier weggelaten.

vat.status is valid (nummer bevestigd), invalid (nummer geweigerd), pending (de Europese controle heeft nog niet geantwoord: probeer het over enkele seconden opnieuw) of not_verified (er is geen controle gevraagd of mogelijk).

De parameter fields beperkt het basisantwoord tot de gekozen velden, bijvoorbeeld fields=name,status. Het identificatienummer id en de opgevraagde blokken blijven altijd behouden.

Bijzonderheden per land

Het formaat is in alle landen hetzelfde; alleen de nummering en de beschikbare blokken verschillen. De nationale activiteitscode blijft in activity.code en de oorspronkelijke status uit het register in het blok local.

Frankrijk (FR)België (BE)Zwitserland (CH)Noorwegen (NO)Finland (FI)Letland (LV)Ierland (IE)Zweden (SE)Estland (EE)Litouwen (LT)Australië (AU)Singapore (SG)Japan (JP)Verenigd Koninkrijk (GB)
DekkingOfficiële Franse ondernemingsregisters en wettelijke aankondigingen.Officieel Belgisch ondernemingsregister: ongeveer 2 miljoen actieve ondernemingen en hun vestigingseenheden.Zwitsers handelsregister: ongeveer 795.000 actieve juridische entiteiten.Noors register van juridische entiteiten: ongeveer 1,2 miljoen actieve eenheden, waarvan ongeveer 465.000 eenmanszaken, en ongeveer 870.000 vestigingen.Fins ondernemingsregister: ongeveer 463.000 entiteiten (vennootschappen, woningcorporaties, verenigingen, stichtingen…).Lets ondernemingsregister: ongeveer 218.000 actieve entiteiten (vennootschappen, verenigingen, stichtingen, landbouwbedrijven, bijkantoren…) en ongeveer 237.000 geschrapte entiteiten.Iers bedrijvenregister: ongeveer 345.000 actieve vennootschappen (besloten vennootschappen op aandelen, vennootschappen met aangewezen activiteit, vennootschappen met beperkte aansprakelijkheid door garantie, naamloze vennootschappen, buitenlandse vennootschappen…) en ongeveer 480.000 ontbonden of doorgehaalde vennootschappen.Zweedse bedrijvenregisters: ongeveer 1,18 miljoen actieve organisaties (naamloze vennootschappen, vennootschappen onder firma, woningverenigingen, coöperaties, verenigingen, stichtingen, overheidsinstanties…) en ongeveer 1,03 miljoen doorgehaalde organisaties. Eenmanszaken worden niet bediend.Estse bedrijvenregister: ongeveer 355.000 ingeschreven rechtspersonen (besloten vennootschappen, appartementsverenigingen, verenigingen, commanditaire vennootschappen, naamloze vennootschappen, stichtingen, coöperaties, lokale overheden…), actief, in vereffening of in faillissement. Eenmanszaken worden niet bediend.Litouws register van rechtspersonen: ongeveer 233.000 actieve rechtspersonen (besloten vennootschappen, kleine vennootschappen, eenmanszaken, verenigingen, openbare instellingen, coöperaties, lokale overheden…) en ongeveer 315.000 doorgehaalde rechtspersonen.Australisch register van ondernemingsnummers: ongeveer 6,1 miljoen actieve ABN's (vennootschappen, trusts, maatschappen, pensioenfondsen, eenmanszaken onder hun handelsnaam…) en ongeveer 6,7 miljoen geannuleerde ABN's.Singaporees register van vennootschappen en ondernemingen: ongeveer 635.000 actieve entiteiten (lokale vennootschappen, eenmanszaken, maatschappen, filialen van buitenlandse vennootschappen) en ongeveer 1,5 miljoen geschrapte, ontbonden of beëindigde entiteiten.Japans register van ondernemingsnummers: ongeveer 5,1 miljoen actieve vennootschappen en organisaties (naamloze vennootschappen, besloten vennootschappen, overheden, verenigingen, buitenlandse vennootschappen…) en ongeveer 780.000 gesloten. Eenmanszaken hebben geen nummer en zijn niet opgenomen.Brits vennootschapsregister: ongeveer 5,7 miljoen actieve vennootschappen, en hun uiteindelijke begunstigden (personen met aanzienlijke zeggenschap).
NummerSIREN, 9 cijfers: FR-552032534.Ondernemingsnummer, 10 cijfers die beginnen met 0 of 1, waarvan de laatste twee een controlesleutel modulo 97 vormen: BE-0417497106. De vormen 0417.497.106, BE0417497106 en het oude nummer van 9 cijfers (BE-417497106) worden aanvaard.UID-nummer, 9 cijfers na CHE, waarvan het laatste een controlecijfer modulo 11 is: CH-105909036 voor CHE-105.909.036. De vormen CHE-105.909.036, CHE105909036 en CHE-105.909.036 MWST (of Btw, IVA) worden aanvaard.Organisatienummer, 9 cijfers, waarvan het laatste een controlecijfer modulo 11 is: NO-923609016. De vormen 923 609 016, NO923609016 en NO923609016MVA worden aanvaard na het prefix NO-, of alleen voor de btw.Bedrijfs-ID (Y-tunnus), 7 cijfers, een streepje en een controlecijfer modulo 11: FI-01120389 voor 0112038-9. De vormen 0112038-9, 01120389, FI01120389 en 112038-9 worden aanvaard.Registratienummer, 11 cijfers, zonder gepubliceerd controlecijfer: LV-40003245752. LV40003245752 wordt aanvaard.Bedrijfsnummer van 1 tot 7 cijfers, zonder gepubliceerd controlecijfer: IE-104547. Voorloopnullen worden genegeerd en IE104547 wordt aanvaard.Organisatienummer van 10 cijfers waarvan het laatste een Luhn-controlecijfer is: SE-5560427220. De vormen 556042-7220, SE5560427220 en het btw-nummer SE556042722001 worden aanvaard.Registratiecode van 8 cijfers waarvan het laatste een controlecijfer is: EE-10137025. De vormen 10137025, EE10137025 en het btw-nummer EE100210460 worden aanvaard.Code van de rechtspersoon van 9 cijfers waarvan het laatste een controlecijfer is: LT-110053842. De vormen 110053842 en LT110053842 (het btw-nummer) worden aanvaard.ABN, 11 cijfers waarvan de eerste twee een modulo-89-controle vormen: AU-51824753556. De vormen 51 824 753 556, ABN 51824753556 en AU51824753556 worden aanvaard.UEN: 8 cijfers en een letter (ondernemingen), 9 cijfers en een letter (lokale vennootschappen) of T, S of R, 2 cijfers, 2 letters, 4 cijfers en een letter (andere entiteiten), waarbij de laatste letter een controleletter is: SG-196800306E. Kleine letters, spaties en het voorvoegsel UEN worden aanvaard.Ondernemingsnummer, 13 cijfers waarvan het eerste een controlecijfer is: JP-1180301018771. Cijfers in volledige breedte en spaties worden aanvaard.Company number, 8 tekens, soms met een prefix (SC, NI, OC…). Ontbrekende voorloopnullen worden aangevuld: GB-6 wordt GB-00000006.
statusA → active, C → closed.closed bij een juridische eindtoestand (faillissement afgesloten, vereffening afgesloten…); een onderneming in faillissement of vereffening blijft active. De bron bevat alleen actieve entiteiten: een onderneming die is stopgezet, wordt niet meer gevonden.closed voor een entiteit die uit het register is geschrapt; closed_on blijft null, omdat de bron geen datum van schrapping geeft. Een onderneming in vereffening blijft active.closed voor een eenheid die uit het register is verdwenen; closed_on blijft null, want de datum wordt niet gegeven. Een eenheid in faillissement of vereffening blijft active.closed voor een entiteit waarvan de einddatum verstreken is of die uit de gegevens is verdwenen (closed_on is dan null als de datum ontbreekt). Een entiteit in faillissement of vereffening blijft active.closed voor een geschrapte entiteit; closed_on is de datum van schrapping. Een entiteit in vereffening blijft active.closed voor een vennootschap die is ontbonden, doorgehaald, stopgezet of uit het register verwijderd; closed_on is de datum van ontbinding. Een vennootschap in vereffening, in administratie of waarvan de doorhaling is voorgesteld, blijft active.closed voor een doorgehaalde organisatie; closed_on is de datum van doorhaling. Een organisatie in vereffening, in faillissement of in herstructurering blijft active.closed voor een entiteit die uit de gegevens is verdwenen; closed_on is dan null, want de datum wordt niet gegeven. Een entiteit in vereffening of in faillissement blijft active (oorspronkelijke status in local.status).closed voor een doorgehaalde rechtspersoon; closed_on is de datum van doorhaling. Een rechtspersoon in vereffening of in faillissement blijft active (oorspronkelijke status in local.legal_status).closed voor een geannuleerd ABN; closed_on is de datum van annulering.closed voor elke andere status dan “Live” (geschrapt, ontbonden, beëindigd, omgezet…); closed_on blijft null, omdat de datum niet wordt gegeven. Een entiteit “Gazetted To Be Struck Off” of in vereffening blijft active.closed als een sluitingsdatum wordt gegeven (closed_on, reden in local.closure). incorporated_on is null: de datum van toekenning van het nummer staat in local.number_assigned_on.closed als de vennootschap ontbonden is; een vennootschap in vereffening of onder bewind blijft active.
legal_formJuridische categorie (FR-CJ).Belgische rechtsvorm (BE-JURIDICAL-FORM), omschrijving in het Frans.Rechtsvorm volgens eCH-0097 (CH-LEGAL-FORM), omschrijving in het Frans.Organisatievorm (NO-ORG-FORM), omschrijving in het Frans voor de belangrijkste, anders in het Noors.Ondernemingsvorm (FI-COMPANY-FORM), omschrijving in het Frans voor de belangrijkste, anders in het Engels.Rechtsvorm van het register (LV-LEGAL-FORM), omschrijving in het Frans voor de belangrijkste, anders in het Lets.Vennootschapstype uit het register (IE-COMPANY-TYPE), omschrijving in het Frans voor de belangrijkste, anders in het Engels.Organisatievorm uit het register (SE-ORG-FORM), omschrijving in het Frans; voor organisaties die alleen het statistische register kent, een rechtsvorm van 2 cijfers (SE-LEGAL-FORM).Rechtsvorm uit het register (EE-LEGAL-FORM), omschrijving in het Frans voor de belangrijkste, anders in het Ests.Rechtsvorm uit het register (LT-LEGAL-FORM), code van 3 cijfers, omschrijving in het Frans voor de belangrijkste, anders in het Engels; Litouwse omschrijving in local.Entiteitstype (AU-ENTITY-TYPE), omschrijving in het Frans voor de belangrijkste, anders in het Engels.Vennootschaps- of ondernemingsvorm (SG-LEGAL-FORM: EPC, PC, PCS, SOLE, PART…), omschrijving in het Frans; het entiteitstype staat in local.entity_type.Type rechtspersoon (JP-LEGAL-FORM: 301 naamloze vennootschap, 302, 305…), omschrijving in het Frans; de Japanse omschrijving staat in local.legal_form_label_ja.Categorie van Britse vennootschap (GB-COMPANY-CATEGORY).
activityNAF rev. 2; NACE = eerste 4 cijfers.Hoofdactiviteit in de recentste NACE-BEL-versie (BE-NACEBEL-2025); NACE rev. 2 = klasse van de NACE-BEL 2008-code.null: de bron publiceert geen activiteitscode (NOGA).SN2025-code van 5 cijfers (NO-SN2025), omschrijving in het Noors; nace is null (nomenclatuur afgestemd op NACE rev. 2.1).TOL 2025-code van 5 cijfers (FI-TOL2025), omschrijving in het Engels; nace is null (nomenclatuur afgestemd op NACE rev. 2.1); de weinige TOL 2008-codes (FI-TOL2008) geven de NACE rev. 2-klasse.null: het register publiceert geen activiteitscode.NACE-klasse (rev. 2) uit het register (IE-NACE-REV2), wanneer ze is opgegeven; omschrijving in het Frans voor de meeste klassen.SNI 2025-code van 5 cijfers (SE-SNI2025), zonder omschrijving; nace is null (classificatie afgestemd op NACE rev. 2.1). De andere codes staan in local.Opgegeven hoofdactiviteit, EMTAK-code van 5 cijfers (EE-EMTAK2025 of EE-EMTAK2008), omschrijving in het Ests; de NACE-klasse (rev. 2) wordt gegeven voor EMTAK 2008, nace is null voor EMTAK 2025 (afgestemd op NACE rev. 2.1).null: het register publiceert geen activiteitscode.null: het register publiceert geen activiteitscode.Primaire SSIC-code (SG-SSIC); nace is null.null: het register publiceert geen activiteitscode.Eerste SIC 2007-code; NACE rev. 2 als de klasse van 4 cijfers bestaat, anders null.
updated_atDatum van de laatste bijwerking van de fiche.null; de datum van de gegevens staat in meta.sources.null; de datum van de gegevens staat in meta.sources. Ook incorporated_on is null: de bron geeft geen inschrijvingsdatum.null; de datum van de gegevens staat in meta.sources. incorporated_on is de oprichtingsdatum, anders de datum van inschrijving in het register.null; de datum van de gegevens staat in meta.sources. incorporated_on is de inschrijvingsdatum.null; de datum van de gegevens staat in meta.sources. incorporated_on is de inschrijvingsdatum.updated_at is de datum van de laatste bijwerking van de inschrijving. incorporated_on is de dag waarop het ABN actief werd (onbekend voor een geannuleerd ABN).null; incorporated_on is de datum van inschrijving.updated_at is de datum van bijwerking van de registratie.null; de datum van de gegevens staat in meta.sources. incorporated_on is de datum van eerste inschrijving.null; de datum van de gegevens staat in meta.sources. incorporated_on is de inschrijvingsdatum.null; de datum van de gegevens staat in meta.sources. incorporated_on is de inschrijvingsdatum.null; de datum van de gegevens staat in meta.sources. incorporated_on is de inschrijvingsdatum.null; de datum van de gegevens staat in meta.sources.
Beschikbare blokkenaddress, establishments, local, vat, signals, legal_events, sanctions.address (zetel), establishments (vestigingseenheden), local (juridische toestand, namen, activiteiten), vat, signals, sanctions.address (zetel), local (UID, registernummers, doel, gemeente, kanton, vertaalde namen, andere ingeschreven zetels), vat, signals, sanctions.address (bedrijfsadres), establishments (subeenheden), local (vorm, sector, personeel, kapitaal, datums), vat (status in het btw-register), signals, sanctions.address, local (parallelle en aanvullende namen, handelsregister, btw, toestand), vat, signals, sanctions.address, local (register, reden van schrapping), vat, signals, sanctions.address, local (oorspronkelijk type en status, graafschap, Eircode, data van de jaarlijkse aangifte en van de rekeningen), signals, sanctions.address (postadres), local (opgemaakt nummer, lopende procedure, reden van doorhaling, andere activiteitscodes, andere namen), vat, signals, sanctions.address, local (oorspronkelijke status, omschrijving van de vorm, subtype, gemeenten), vat (wanneer het register een btw-nummer geeft), signals, sanctions.local (code, Litouwse omschrijving van de vorm, juridische status en de datum ervan), vat, signals, sanctions.address (alleen staat en postcode), local (ACN, staat, handelsnamen, GST-status), signals, sanctions.address (volledig adres met blok, straat, verdieping, eenheid en postcode), local (entiteitstype, registerstatus, vervaldata van rekeningen en jaarlijkse aangifte, secundaire activiteit, vroegere namen), signals, sanctions.address (in het Japans: prefectuur, gemeente, straat, postcode), local (uitspraak van de naam in katakana, Engelse naam en adres als ze bestaan, codes van prefectuur en gemeente, reden van sluiting, nummer van de opvolger), signals, sanctions.address (statutaire zetel), local (status, categorie, SIC-codes, vervaldata van de jaarrekening en de jaarlijkse verklaring, vroegere namen), signals, owners (personen met aanzienlijke zeggenschap), sanctions.
Niet beschikbaarowners (het register van uiteindelijke begunstigden is sinds 31 juli 2024 niet meer openbaar).legal_events, owners (de bron publiceert ze niet).establishments, legal_events, owners (de bron publiceert ze niet).legal_events, owners (niet gepubliceerd).establishments, legal_events, owners (niet gepubliceerd).address, establishments, legal_events, owners (niet gepubliceerd).establishments, legal_events, owners (niet gepubliceerd).establishments, legal_events, owners (niet gepubliceerd).vat (het Ierse btw-nummer kan niet uit het bedrijfsnummer worden afgeleid), establishments, legal_events, owners (niet gepubliceerd).establishments, legal_events, owners (niet gepubliceerd).establishments, legal_events, owners (niet gepubliceerd); vat (btw wordt voor Australië niet gecontroleerd: de GST-status staat in local).establishments, legal_events, owners (niet gepubliceerd); vat (btw wordt voor Singapore niet gecontroleerd).establishments, legal_events, owners (niet gepubliceerd); vat (btw wordt voor Japan niet gecontroleerd).establishments (het Britse register kent geen vestigingen), vat (de Europese btw-controle dekt het Verenigd Koninkrijk sinds de brexit niet meer), legal_events.

Voorbeeld in het Verenigd Koninkrijk: een blok dat in het land niet beschikbaar is, wordt gemeld in meta.includes, zonder fout.

curl "https://api.jsonpage.com/v2/companies/GB-00445790?include=address,signals,vat" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "GB-00445790",
    "country": "GB",
    "registry_id": "00445790",
    "name": "TESCO PLC",
    "status": "active",
    "...": "...",
    "address": { "...": "..." },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: United Kingdom", "country": "GB", "kind": "register", "data_date": "2026-10-01" }],
    "includes": { "address": "ok", "signals": "ok", "vat": "not_available_in_country" }
  }
}

Ingekort en illustratief antwoord. Het endpoint /v2/companies/GB-00445790/establishments geeft 404 not_available_in_country terug.

België

De Belgische ondernemingen komen uit het officiële Belgische ondernemingsregister. Het globale identificatienummer is BE- gevolgd door het ondernemingsnummer van 10 cijfers, bijvoorbeeld BE-0417497106. De API aanvaardt ook BE-0417.497.106, BE-BE0417497106 en het oude nummer van 9 cijfers (BE-417497106), en geeft in data.id altijd de vorm van 10 cijfers terug. De laatste twee cijfers zijn een controlesleutel: 97 min de rest van de deling van de eerste acht cijfers door 97. Een nummer met een foute sleutel geeft de fout 400 invalid_identifier.

curl "https://api.jsonpage.com/v2/companies/BE-0417497106?include=address,vat,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "BE-0417497106",
    "country": "BE",
    "registry_id": "0417497106",
    "name": "Anheuser-Busch InBev",
    "status": "active",
    "legal_form": { "code": "014", "label": "Société anonyme", "scheme": "BE-JURIDICAL-FORM" },
    "activity": { "nace": "70.10", "code": "70100", "label": "Activités des sièges sociaux", "scheme": "BE-NACEBEL-2025" },
    "incorporated_on": "1977-08-02",
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "Grand-Place 1", "postal_code": "1000", "city": "Bruxelles", "country": "BE", "formatted": "Grand-Place 1, 1000 Bruxelles" },
    "vat": { "number": "BE0417497106", "status": "valid", "checked_at": "2026-10-11T00:14:31Z", "source": "EU VAT check" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: Belgium", "country": "BE", "kind": "register", "data_date": "2026-10-02" }],
    "includes": { "address": "ok", "signals": "ok", "vat": "ok" }
  }
}

Het Belgische btw-nummer is BE gevolgd door het ondernemingsnummer; het wordt gecontroleerd zoals in Frankrijk (pending bij de eerste oproep, daarna valid of invalid). De omschrijvingen van de rechtsvorm, de activiteit en de juridische toestand zijn in het Frans; het adres is in het Frans als de bron het zo geeft, anders in het Nederlands.

Het blok local bevat de fiche van het Belgische register zoals ze is:

"local": {
  "enterprise_number": "0417.497.106",
  "status": "AC",
  "juridical_situation": { "code": "000", "label": "Situation normale", "scheme": "BE-JURIDICAL-SITUATION" },
  "type_of_enterprise": "2",
  "juridical_form": { "code": "014", "label": "Société anonyme", "scheme": "BE-JURIDICAL-FORM" },
  "start_date": "1977-08-02",
  "names": [
    { "language": "fr", "type": "legal", "value": "Anheuser-Busch InBev" },
    { "language": "fr", "type": "abbreviation", "value": "AB Inbev" },
    { "language": "nl", "type": "legal", "value": "Anheuser-Busch InBev" },
    "..."
  ],
  "activities": [
    { "code": "70100", "nace_version": "2025", "group": "006", "classification": "MAIN", "label": "Activités des sièges sociaux" },
    { "code": "70100", "nace_version": "2008", "group": "001", "classification": "MAIN", "label": "Activités des sièges sociaux" },
    "..."
  ]
}
VeldInhoud
enterprise_numberOndernemingsnummer in zijn officiële vorm, 0417.497.106.
statusOorspronkelijke status in het register (AC: actief).
juridical_situationJuridische toestand: code, omschrijving en schema BE-JURIDICAL-SITUATION, bijvoorbeeld 000 “Situation normale”. Ze levert de signalen insolvency_proceedings en liquidation.
type_of_enterprise1 natuurlijke persoon, 2 rechtspersoon.
juridical_form, start_dateRechtsvorm (gelijk aan legal_form) en begindatum van de onderneming.
namesAlle ingeschreven namen: language (fr, nl, de, en, of leeg als de taal onbekend is), type (legal, abbreviation of commercial) en value. Het basisveld name is de juridische naam, in het Frans als die bestaat.
activitiesAlle ingeschreven activiteiten: code, nace_version (2003, 2008 of 2025), group (activiteitengroep van het register, 001 voor de btw), classification (MAIN hoofdactiviteit, SECO nevenactiviteit, ANCI hulpactiviteit) en label.

Het basisveld activity is de hoofdactiviteit in de recentste NACE-BEL-versie, bij voorkeur die van de btw-groep; activity.nace is de NACE rev. 2-klasse afgeleid van de NACE-BEL 2008-code.

De vestigingen zijn de vestigingseenheden uit het Belgische register: /v2/companies/BE-0417497106/establishments somt ze pagina per pagina op. registry_id is hun nummer van 10 cijfers, dat met 2 begint; name is hun handelsnaam, anders de juridische naam; activity is hun hoofdactiviteit en opened_on hun begindatum. head_office is altijd false: het register duidt geen zetel aan onder de eenheden, en het adres van de zetel staat in het blok address.

{
  "registry_id": "2102217256",
  "name": "Anheuser-Busch InBev",
  "head_office": false,
  "status": "active",
  "activity": { "nace": "70.10", "code": "70100", "label": "Activités des sièges sociaux", "scheme": "BE-NACEBEL-2025" },
  "opened_on": "1976-10-01",
  "address": { "line": "Avenue Joseph-Prévers 26", "postal_code": "4020", "city": "Liège", "country": "BE", "formatted": "Avenue Joseph-Prévers 26, 4020 Liège" }
}

Signalen in België: insolvency_proceedings bij een geopend faillissement, een gerechtelijk akkoord, een opschorting of een gerechtelijke reorganisatie, en liquidation bij een lopende ontbinding of vereffening; hun detail is de omschrijving van de juridische toestand. recently_created en closed volgen dezelfde regels als in de andere landen. Alleen actieve entiteiten staan in de bron: een onderneming die is stopgezet, wordt niet meer gevonden (404 not_found), en de monitoring meldt ze met de gebeurtenis company.removed_from_register.

Zoeken op naam: elke naam die in het Belgische register is ingeschreven, is doorzoekbaar, juridische naam, afkorting of handelsnaam, in elke taal. Zo vindt GET /v2/companies?q=ab+inbev&country=BE eerst Anheuser-Busch InBev. De validatie aanvaardt Belgische btw-nummers: GET /v2/validate?vat=BE0417497106.

Zwitserland

De Zwitserse ondernemingen komen uit het Zwitserse handelsregister: ongeveer 795.000 actieve juridische entiteiten van elke vorm (naamloze vennootschappen, vennootschappen met beperkte aansprakelijkheid, eenmanszaken, coöperaties, verenigingen, stichtingen, bijkantoren…). Het globale identificatienummer is CH- gevolgd door de 9 cijfers van het UID-nummer, zonder het prefix CHE: CH-105909036 voor CHE-105.909.036. De API aanvaardt ook CH-105.909.036, CH-CHE-105.909.036 en CH-CHE-105.909.036 MWST, en geeft in data.id altijd de vorm van 9 cijfers terug; het zoeken op nummer, de autocompletion, de validatie en de verrijking aanvaarden het UID-nummer zoals het is (CHE-105.909.036, CHE105909036, CHE-105.909.036 MWST, of met Btw of IVA). Het laatste cijfer is een controlecijfer modulo 11 (norm eCH-0097): een nummer met een fout controlecijfer geeft de fout 400 invalid_identifier.

curl "https://api.jsonpage.com/v2/companies/CH-101374515?include=address,vat,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "CH-101374515",
    "country": "CH",
    "registry_id": "101374515",
    "name": "The Swatch Group AG",
    "status": "active",
    "legal_form": { "code": "0106", "label": "Société anonyme", "scheme": "CH-LEGAL-FORM" },
    "activity": null,
    "incorporated_on": null,
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "c/o Caisse de pensions Swatch Group, faubourg de l'Hôpital 3", "postal_code": "2000", "city": "Neuchâtel", "country": "CH", "formatted": "c/o Caisse de pensions Swatch Group, faubourg de l'Hôpital 3, 2000 Neuchâtel" },
    "vat": { "number": "CHE-116.294.121 MWST", "status": "valid", "checked_at": "2026-10-03T22:39:43Z", "source": "EU VAT check" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: Switzerland", "country": "CH", "kind": "register", "data_date": "2026-10-03" }],
    "includes": { "address": "ok", "signals": "ok", "vat": "ok" }
  }
}

Het Zwitserse btw-nummer is het UID-nummer gevolgd door MWST (Btw in het Frans, IVA in het Italiaans); ook dit nummer wordt gecontroleerd. Voor een lid van een btw-groep, zoals hier, is het teruggegeven nummer dat van de groep, waarmee de onderneming factureert. De omschrijving van de rechtsvorm is in het Frans; de naam en het adres zijn die van het register, in de taal van de inschrijving.

Het blok local bevat de fiche uit het handelsregister. Nestlé is één juridische entiteit met twee ingeschreven zetels, in Cham en in Vevey:

curl "https://api.jsonpage.com/v2/companies/CH-105909036?include=local" \
  -H "X-API-Key: VOTRE_CLE"
"local": {
  "uid": "CHE-105.909.036",
  "ehra_id": 126286,
  "chid": "CH17030010013",
  "legal_form": { "code": "0106", "label_fr": "Société anonyme", "label_de": "Aktiengesellschaft", "label_en": "Company limited by shares" },
  "purpose": "Beteiligung an Industrie-, Dienstleistungs-, Handels- und Finanzunternehmungen, …",
  "municipality": { "bfs_number": "1702", "name": "Cham" },
  "canton": "ZG",
  "names": [
    { "language": "", "value": "Nestlé AG" },
    { "language": "en", "value": "Nestlé Ltd." },
    { "language": "fr", "value": "Nestlé S.A." }
  ],
  "other_registrations": [
    {
      "ehra_id": 126288,
      "chid": "CH55000672935",
      "name": "Nestlé S.A.",
      "status": "active",
      "municipality": { "bfs_number": "5890", "name": "Vevey" },
      "canton": "VD",
      "address": { "line": "Avenue Nestlé 55", "postal_code": "1800", "city": "Vevey", "country": "CH", "formatted": "Avenue Nestlé 55, 1800 Vevey" }
    }
  ],
  "last_listed_on": null
}
VeldInhoud
uidUID-nummer in zijn officiële vorm, CHE-105.909.036.
ehra_id, chidNummer van de entiteit in het federale register, een geheel getal, en nummer van het kantonale register, bijvoorbeeld CH17030010013.
legal_formRechtsvorm volgens eCH-0097: code en omschrijvingen label_fr, label_de en label_en.
purposeDoel van de onderneming zoals ingeschreven, in de taal van het register.
municipality, cantonGemeente van de zetel (bfs_number, het officiële gemeentenummer, en name) en kanton in twee letters, bijvoorbeeld ZG.
namesIngeschreven naam (lege language) en de ingeschreven vertalingen ervan (language de, fr, it, en of rm), met value. Het basisveld name is de ingeschreven naam.
other_registrationsAndere ingeschreven zetels van dezelfde juridische entiteit: ehra_id, chid, name, status, municipality, canton en address; [] als er geen zijn.
last_listed_onAlleen geschrapte entiteiten: de laatste dag waarop het register de entiteit vermeldde; anders null.

Signalen in Zwitserland: liquidation als de ingeschreven naam de wettelijke vermelding “in Liquidation” (“en liquidation”, “in liquidazione”) draagt; het detail vermeldt dat. closed staat voor een entiteit die uit het register is geschrapt. recently_created is niet van toepassing, omdat de bron geen inschrijvingsdatum bevat. Het Zwitserse register kent geen vestigingen: /v2/companies/CH-101374515/establishments geeft 404 not_available_in_country terug, en de blokken establishments, legal_events en owners worden gemeld als not_available_in_country in meta.includes.

Zoeken op naam: de ingeschreven naam en de vertalingen ervan (Duits, Frans, Italiaans, Engels) zijn doorzoekbaar. Zo vindt GET /v2/companies?q=swatch&country=CH Swatch AG en The Swatch Group AG. In de autocompletion geeft een ingevoerd UID-nummer (CHE-101.374.515) meteen de onderneming terug; eenmanszaken (vorm 0101) hebben als kind person. De validatie aanvaardt Zwitserse btw-nummers: GET /v2/validate?vat=CHE-105.909.036+MWST.

Noorwegen

De Noorse eenheden komen uit het Noorse register van juridische entiteiten: ongeveer 1,2 miljoen actieve eenheden van elke vorm (naamloze vennootschappen, verenigingen, mede-eigendommen, eenmanszaken…) en hun vestigingen. Het globale identificatienummer is NO- gevolgd door de 9 cijfers van het organisatienummer: NO-923609016. Het laatste cijfer is een controlecijfer modulo 11: een nummer met een fout controlecijfer geeft de fout 400 invalid_identifier. Eenmanszaken worden geleverd onder hun handelsnaam; er worden geen bestuurders of contactgegevens verstrekt. Een los organisatienummer van 9 cijfers wordt in een verrijkingsbestand als SIREN gelezen: schrijf het als NO-923609016 of met het btw-nummer.

curl "https://api.jsonpage.com/v2/companies/NO-923609016?include=address,vat,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "NO-923609016",
    "country": "NO",
    "registry_id": "923609016",
    "name": "EQUINOR ASA",
    "status": "active",
    "legal_form": { "code": "ASA", "label": "Société anonyme publique", "scheme": "NO-ORG-FORM" },
    "activity": { "nace": null, "code": "06.100", "label": "Utvinning av råolje", "scheme": "NO-SN2025" },
    "incorporated_on": "1972-09-18",
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "Forusbeen 50", "postal_code": "4035", "city": "STAVANGER", "country": "NO", "formatted": "Forusbeen 50, 4035 STAVANGER" },
    "vat": { "number": "NO923609016MVA", "status": "valid", "checked_at": "2026-10-10T00:00:00Z", "source": "EU VAT check" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: Norway", "country": "NO", "kind": "register", "data_date": "2026-10-10" }],
    "includes": { "address": "ok", "signals": "ok", "vat": "ok" }
  }
}

Het Noorse btw-nummer is NO, het organisatienummer en MVA (NO923609016MVA); het wordt zonder wachten gelezen in het officiële btw-register: valid als de eenheid er is ingeschreven, anders invalid. De vestigingen zijn de subeenheden van het register: /v2/companies/NO-923609016/establishments of include=establishments. Het blok local bevat de fiche uit het register:

curl "https://api.jsonpage.com/v2/companies/NO-923609016?include=local" \
  -H "X-API-Key: VOTRE_CLE"
"local": {
  "organisation_number": "923 609 016",
  "legal_form": { "code": "ASA", "label": "Société anonyme publique", "scheme": "NO-ORG-FORM" },
  "legal_form_label_no": "Allmennaksjeselskap",
  "registered_on": "1995-03-12",
  "founded_on": "1972-09-18",
  "in_business_enterprise_register": true,
  "vat_registered": true,
  "vat_registered_on": "1989-07-01",
  "institutional_sector": { "code": "1120", "label": "Statlig eide aksjeselskaper mv.", "scheme": "NO-SECTOR" },
  "employees": 21272,
  "capital": { "amount": 5976872600, "currency": "NOK", "type": "Aksjekapital" },
  "municipality": "STAVANGER",
  "last_listed_on": null
}

Signalen in Noorwegen: insolvency_proceedings voor een faillissement of een herstructureringsprocedure (since geeft de openingsdatum), liquidation voor een lopende ontbinding of vereffening, ook van ambtswege, en closed voor een eenheid die uit het register is verdwenen. Zoeken op naam: GET /v2/companies?q=equinor&country=NO; eenmanszaken hebben bij autocompletion de kind person.

Finland

De Finse entiteiten komen uit het Finse ondernemingsregister: ongeveer 463.000 entiteiten (vennootschappen, woningcorporaties, verenigingen, stichtingen…). Het globale identificatienummer is FI- gevolgd door de 8 tekens van het bedrijfs-ID (Y-tunnus), zonder streepje: FI-01120389 voor 0112038-9. De API aanvaardt ook FI-0112038-9 en het nummer zonder voorloopnullen, en geeft in data.id altijd de vorm van 8 tekens terug; het zoeken op nummer, de autocompletion, de validatie en de verrijking aanvaarden het bedrijfs-ID zoals het is (0112038-9). Het laatste cijfer is een controlecijfer modulo 11: een nummer met een fout controlecijfer geeft de fout 400 invalid_identifier. Er worden geen persoonsgegevens verstrekt.

curl "https://api.jsonpage.com/v2/companies/FI-0112038-9?include=address,vat,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "FI-01120389",
    "country": "FI",
    "registry_id": "01120389",
    "name": "Nokia Oyj",
    "status": "active",
    "legal_form": { "code": "17", "label": "Société anonyme publique (Oyj)", "scheme": "FI-COMPANY-FORM" },
    "activity": { "nace": null, "code": "70100", "label": "Activities of head offices", "scheme": "FI-TOL2025" },
    "incorporated_on": "1896-12-19",
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "Karakaari 7", "postal_code": "02610", "city": "ESPOO", "country": "FI", "formatted": "Karakaari 7, 02610 ESPOO" },
    "vat": { "number": "FI01120389", "status": "valid", "checked_at": "2026-10-10T20:59:03Z", "source": "EU VAT check" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: Finland", "country": "FI", "kind": "register", "data_date": "2026-10-10" }],
    "includes": { "address": "ok", "signals": "ok", "vat": "ok" }
  }
}

Het Finse btw-nummer is FI gevolgd door de 8 cijfers van het bedrijfs-ID; het wordt op dezelfde manier gecontroleerd als in Frankrijk en België, met dezelfde statussen. Signalen in Finland: insolvency_proceedings voor een faillissement of een herstructurering van de onderneming, liquidation voor een lopende vereffening (since geeft de datum van de toestand), en closed voor een entiteit waarvan de einddatum verstreken is of die uit de gegevens is verdwenen. Het blok local geeft de vorm en de omschrijving ervan, de status in het handelsregister, de btw-inschrijving en haar datum, de toestand, de gemeentecode en de parallelle en aanvullende namen (other_names). Vestigingen, wettelijke publicaties en uiteindelijke begunstigden zijn niet beschikbaar.

Letland

De Letse entiteiten komen uit het Letse ondernemingsregister: ongeveer 218.000 actieve entiteiten van elke vorm (besloten vennootschappen, naamloze vennootschappen, individuele handelaars, verenigingen, stichtingen, landbouwbedrijven, bijkantoren…) en ongeveer 237.000 geschrapte entiteiten, met de datum van schrapping in closed_on. Het globale identificatienummer is LV- gevolgd door de 11 cijfers van het registratienummer: LV-40003245752. Dit nummer heeft geen gepubliceerd controlecijfer: alleen het formaat wordt gecontroleerd, en een correct gevormd maar onbekend nummer geeft 404 not_found. Het adres is dat van het register, de stad wordt eruit afgeleid. Het register publiceert noch een activiteitscode noch vestigingen: activity is null.

curl "https://api.jsonpage.com/v2/companies/LV-40003245752?include=address,vat,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "LV-40003245752",
    "country": "LV",
    "registry_id": "40003245752",
    "name": "Air Baltic Corporation AS",
    "status": "active",
    "legal_form": { "code": "AS", "label": "Société anonyme", "scheme": "LV-LEGAL-FORM" },
    "activity": null,
    "incorporated_on": "1995-02-08",
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "Mārupes nov., Mārupes pag., Lidosta \"Rīga\", Tehnikas iela 3", "postal_code": "LV-1053", "city": "Mārupes", "country": "LV", "formatted": "Mārupes nov., Mārupes pag., Lidosta \"Rīga\", Tehnikas iela 3, LV-1053" },
    "vat": { "number": "LV40003245752", "status": "valid", "checked_at": "2026-10-10T20:59:02Z", "source": "EU VAT check" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: Latvia", "country": "LV", "kind": "register", "data_date": "2026-10-10" }],
    "includes": { "address": "ok", "signals": "ok", "vat": "ok" }
  }
}

Het Letse btw-nummer is LV gevolgd door het registratienummer; het wordt op dezelfde manier gecontroleerd als in Frankrijk en België, met dezelfde statussen. Signalen in Letland: closed met de datum van schrapping in since, en liquidation als de ingeschreven naam de vermelding van vereffening draagt (“Likvidējamā”). Het blok local geeft het register van inschrijving (register) en, voor een geschrapte entiteit, de reden (termination: vereffend of geherstructureerd).

Ierland

De Ierse vennootschappen komen uit het Ierse bedrijvenregister: ongeveer 345.000 actieve vennootschappen van elke vorm (besloten vennootschappen op aandelen, vennootschappen met aangewezen activiteit, vennootschappen met beperkte aansprakelijkheid door garantie, naamloze vennootschappen, in Ierland geregistreerde buitenlandse vennootschappen…) en ongeveer 480.000 ontbonden of doorgehaalde vennootschappen, met hun ontbindingsdatum in closed_on. De globale identificatie is IE- gevolgd door het bedrijfsnummer, 1 tot 7 cijfers, zonder voorloopnullen: IE-104547. Dit nummer heeft geen gepubliceerd controlecijfer: alleen het formaat wordt gecontroleerd en een goed gevormd maar onbekend nummer geeft 404 not_found. De activiteit is de NACE-klasse (rev. 2) uit het register, wanneer ze is opgegeven. Het register publiceert geen vestigingen.

curl "https://api.jsonpage.com/v2/companies/IE-231235?include=address,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "IE-231235",
    "country": "IE",
    "registry_id": "231235",
    "name": "BROWN BROTHERS HARRIMAN TRUSTEE SERVICES (IRELAND) LIMITED",
    "status": "active",
    "legal_form": { "code": "1153", "label": "Société privée par actions (LTD)", "scheme": "IE-COMPANY-TYPE" },
    "activity": { "nace": "64.99", "code": "64.99", "label": "Autres activités des services financiers, hors assurance et caisses de retraite, n.c.a.", "scheme": "IE-NACE-REV2" },
    "incorporated_on": "1995-03-29",
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "30 HERBERT STREET, DUBLIN 2", "postal_code": "D02 W329", "city": "DUBLIN 2", "country": "IE", "formatted": "30 HERBERT STREET, DUBLIN 2, D02 W329" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: Ireland", "country": "IE", "kind": "register", "data_date": "2026-10-11" }],
    "includes": { "address": "ok", "signals": "ok" }
  }
}

Het Ierse btw-nummer kan niet uit het bedrijfsnummer worden afgeleid: het blok vat is in Ierland niet beschikbaar en wordt gemeld als not_available_in_country. Signalen in Ierland: closed met de ontbindingsdatum in since, liquidation voor een vennootschap in vereffening, insolvency_proceedings voor een examinership of een administratie, strike_off_proposed wanneer doorhaling wordt voorgesteld, en confirmation_statement_overdue wanneer de jaarlijkse aangifte te laat is. Het blok local geeft het vennootschapstype en de oorspronkelijke status met hun code, het graafschap, de Eircode en de data van de laatste jaarlijkse aangifte, de volgende vervaldatum en de laatste rekeningen.

Zweden

De Zweedse organisaties komen uit de officiële Zweedse bedrijvenregisters: ongeveer 1,18 miljoen actieve organisaties van elke vorm (naamloze vennootschappen, vennootschappen onder firma en commanditaire vennootschappen, woningverenigingen, coöperaties, verenigingen, stichtingen, overheidsinstanties, buitenlandse entiteiten…) en ongeveer 1,03 miljoen doorgehaalde organisaties, met hun datum van doorhaling in closed_on. De globale identificatie is SE- gevolgd door de 10 cijfers van het organisatienummer: SE-5560427220. Het laatste cijfer is een Luhn-controlecijfer, dat wordt gecontroleerd; een goed gevormd maar onbekend nummer geeft 404 not_found. Eenmanszaken en nalatenschappen, geïdentificeerd met een persoonsnummer, worden niet bediend en het c/o-gedeelte van het adres wordt niet overgenomen. De activiteit is de eerste SNI 2025-code, zonder omschrijving; de andere codes staan in local.other_activities.

curl "https://api.jsonpage.com/v2/companies/SE-5560427220?include=address,vat,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "SE-5560427220",
    "country": "SE",
    "registry_id": "5560427220",
    "name": "H & M Hennes & Mauritz AB",
    "status": "active",
    "legal_form": { "code": "AB", "label": "Société anonyme (aktiebolag)", "scheme": "SE-ORG-FORM" },
    "activity": { "nace": null, "code": "70100", "label": null, "scheme": "SE-SNI2025" },
    "incorporated_on": "1943-08-07",
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "Mäster Samuelsgatan 46 A", "postal_code": "106 38", "city": "STOCKHOLM", "country": "SE", "formatted": "Mäster Samuelsgatan 46 A, 106 38 STOCKHOLM" },
    "vat": { "number": "SE556042722001", "status": "valid", "checked_at": "2026-10-11T08:12:40Z", "source": "EU VAT check" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: Sweden", "country": "SE", "kind": "register", "data_date": "2026-10-11" }],
    "includes": { "address": "ok", "signals": "ok", "vat": "ok" }
  }
}

Het Zweedse btw-nummer is SE, het organisatienummer en 01; het wordt op dezelfde manier gecontroleerd als in Frankrijk en België, met dezelfde statussen. Signalen in Zweden: closed met de datum van doorhaling in since, liquidation voor een lopende vereffening en insolvency_proceedings voor een faillissement, een herstructurering van de onderneming, een akkoordonderhandeling of een resolutie (since geeft de datum van de situatie). Het blok local geeft het opgemaakte organisatienummer (556042-7220), de lopende procedure, de reden van doorhaling, business_active (geregistreerd voor btw, F-belasting of als werkgever), de andere activiteitscodes, de andere namen (bijzondere handelsnamen, namen in andere talen) en marketing_restriction wanneer de organisatie reclame heeft geweigerd.

Estland

De Estse entiteiten komen uit het Estse bedrijvenregister: ongeveer 355.000 ingeschreven rechtspersonen van elke vorm (besloten vennootschappen, naamloze vennootschappen, commanditaire vennootschappen en vennootschappen onder firma, verenigingen, appartementsverenigingen, stichtingen, coöperaties, filialen, lokale overheden…), actief, in vereffening of in faillissement. De globale identificatie is EE- gevolgd door de 8 cijfers van de registratiecode: EE-10137025. Het laatste cijfer is een controlecijfer, dat wordt gecontroleerd; een goed gevormde maar onbekende code geeft 404 not_found. Het btw-nummer (EE100210460) wordt ook aanvaard in plaats van de code. Eenmanszaken, waarvan de naam die van een persoon is, worden niet bediend. Een entiteit die het register verlaat, blijft bewaard als closed, zonder einddatum. De activiteit is de opgegeven hoofdactiviteit (EMTAK-code, omschrijving in het Ests).

curl "https://api.jsonpage.com/v2/companies/EE-10137025?include=address,vat,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "EE-10137025",
    "country": "EE",
    "registry_id": "10137025",
    "name": "Tieto Estonia AS",
    "status": "active",
    "legal_form": { "code": "AS", "label": "Société anonyme (aktsiaselts)", "scheme": "EE-LEGAL-FORM" },
    "activity": { "nace": null, "code": "62101", "label": "Programmeerimine", "scheme": "EE-EMTAK2025" },
    "incorporated_on": "1996-12-27",
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "A. H. Tammsaare tee 47", "postal_code": "11316", "city": "Tallinn", "country": "EE", "formatted": "A. H. Tammsaare tee 47, Kristiine linnaosa, Tallinn, Harju maakond, 11316" },
    "vat": { "number": "EE100210460", "status": "valid", "checked_at": "2026-10-11T08:12:40Z", "source": "EU VAT check" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: Estonia", "country": "EE", "kind": "register", "data_date": "2026-10-11" }],
    "includes": { "address": "ok", "signals": "ok", "vat": "ok" }
  }
}

Het Estse btw-nummer (EE gevolgd door 9 cijfers) wordt in het register gelezen: het kan niet uit de code worden afgeleid. Het wordt op dezelfde manier gecontroleerd als in Frankrijk en België, met dezelfde statussen; het blok vat ontbreekt wanneer de entiteit geen btw-nummer heeft. Signalen in Estland: liquidation voor een entiteit in vereffening, insolvency_proceedings voor een entiteit in faillissement, en closed voor een entiteit die uit de gegevens is verdwenen. Het blok local geeft de oorspronkelijke status, de Estse omschrijving van de vorm en het subtype, en de hiërarchie van de gemeenten van het adres.

Litouwen

De Litouwse rechtspersonen komen uit het Litouwse register van rechtspersonen: ongeveer 233.000 actieve rechtspersonen van elke vorm (besloten vennootschappen, naamloze vennootschappen, kleine vennootschappen, eenmanszaken, verenigingen, openbare instellingen, stichtingen, coöperaties, filialen, lokale overheden…) en ongeveer 315.000 doorgehaalde rechtspersonen, met hun datum van doorhaling in closed_on. De globale identificatie is LT- gevolgd door de 9 cijfers van de code van de rechtspersoon: LT-110053842. Het laatste cijfer is een controlecijfer, dat wordt gecontroleerd; een goed gevormde maar onbekende code geeft 404 not_found. Het register publiceert geen adres, geen activiteitscode en geen vestigingen: address wordt gemeld als not_available_in_country en activity is null. De naam van een eenmanszaak wordt door het register zelf geanonimiseerd.

curl "https://api.jsonpage.com/v2/companies/LT-110053842?include=vat,signals,local" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "LT-110053842",
    "country": "LT",
    "registry_id": "110053842",
    "name": "Akcinė bendrovė \"Lietuvos geležinkeliai\"",
    "status": "active",
    "legal_form": { "code": "320", "label": "Société anonyme (AB)", "scheme": "LT-LEGAL-FORM" },
    "activity": null,
    "incorporated_on": "1991-12-24",
    "closed_on": null,
    "updated_at": null,
    "vat": { "number": "LT110053842", "status": "valid", "checked_at": "2026-10-11T08:12:40Z", "source": "EU VAT check" },
    "signals": [],
    "local": { "legal_entity_code": "110053842", "legal_form_label_lt": "Akcinė bendrovė", "legal_status": { "code": "0", "label": "No legal proceedings", "scheme": "LT-LEGAL-STATUS" }, "legal_status_label_lt": "Teisinis statusas neįregistruotas", "legal_status_since": "2021-12-16" }
  },
  "meta": {
    "sources": [{ "name": "Official company register: Lithuania", "country": "LT", "kind": "register", "data_date": "2026-10-12" }],
    "includes": { "vat": "ok", "signals": "ok", "local": "ok" }
  }
}

Het Litouwse btw-nummer is LT gevolgd door de code van de rechtspersoon; het wordt op dezelfde manier gecontroleerd als in Frankrijk en België, met dezelfde statussen. Signalen in Litouwen: closed met de datum van doorhaling in since, liquidation voor een lopende vereffening en insolvency_proceedings voor een faillissement of een herstructurering (since geeft de datum van de status). Het blok local geeft de code van de rechtspersoon, de Litouwse omschrijving van de vorm en de oorspronkelijke juridische status met code en datum.

Australië

De Australische entiteiten komen uit het Australische register van ondernemingsnummers: ongeveer 6,1 miljoen actieve ABN's (vennootschappen, trusts, maatschappen, pensioenfondsen, eenmanszaken…) en ongeveer 6,7 miljoen geannuleerde ABN's, met de datum van annulering in closed_on. De naam van een persoon wordt nooit bewaard: een eenmanszaak wordt onder zijn handelsnaam aangeboden, en een eenmanszaak zonder handelsnaam wordt niet aangeboden. De globale identificatie is AU- gevolgd door de 11 cijfers van het ABN: AU-51824753556. De controlecijfers (modulo 89) worden gecontroleerd, en een correct gevormd maar onbekend nummer geeft 404 not_found. Het register publiceert geen straat en geen activiteitscode: het adres blijft beperkt tot de staat en de postcode (formatted is “VIC 3000”) en activity is null. Het ACN van vennootschappen staat in het blok local.

curl "https://api.jsonpage.com/v2/companies/AU-33051775556?include=address,local,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "AU-33051775556",
    "country": "AU",
    "registry_id": "33051775556",
    "name": "TELSTRA CORPORATION LIMITED",
    "status": "active",
    "legal_form": { "code": "PUB", "label": "Société cotée australienne", "scheme": "AU-ENTITY-TYPE" },
    "activity": null,
    "incorporated_on": "1999-11-01",
    "closed_on": null,
    "updated_at": "2024-02-15",
    "address": { "line": null, "postal_code": "3000", "city": null, "country": "AU", "formatted": "VIC 3000" },
    "signals": [],
    "local": {
      "abn": "33 051 775 556",
      "acn": "051 775 556",
      "state": "VIC",
      "entity_type_label": "Australian Public Company",
      "gst": { "registered": true, "status": "ACT", "since": "2000-07-01" },
      "other_names": [{ "type": "trading", "value": "TELSTRA" }]
    }
  },
  "meta": {
    "sources": [{ "name": "Official business register: Australia", "country": "AU", "kind": "register", "data_date": "2026-10-07" }],
    "includes": { "address": "ok", "local": "ok", "signals": "ok" }
  }
}

Btw wordt voor Australië niet gecontroleerd: het blok vat is er niet beschikbaar. De inschrijving voor de goederen- en dienstenbelasting (GST), het Australische equivalent van btw, wordt zoals gepubliceerd gegeven in het blok local (gst.registered, gst.status en gst.since), zonder controle. Signalen in Australië: closed met de datum van annulering in since, en recently_created. Het blok local geeft ook het ACN, de staat en de handelsnamen (other_names).

Singapore

De Singaporese entiteiten komen uit het Singaporese register van vennootschappen en ondernemingen: ongeveer 635.000 actieve entiteiten (lokale vennootschappen, eenmanszaken, maatschappen, filialen van buitenlandse vennootschappen) en ongeveer 1,5 miljoen geschrapte, ontbonden of beëindigde entiteiten, die raadpleegbaar blijven. De globale identificatie is SG- gevolgd door het UEN: SG-196800306E voor een lokale vennootschap (9 cijfers en een letter), SG-T05LL0003J voor een andere entiteit (bijvoorbeeld een maatschap met beperkte aansprakelijkheid); een ondernemingsnummer heeft 8 cijfers en een letter. De controleletter wordt gecontroleerd en een correct gevormd maar onbekend nummer geeft 404 not_found. De activiteit is de primaire SSIC-code (SG-SSIC), zonder NACE-equivalent. Het register geeft geen einddatum: closed_on blijft null voor een gesloten entiteit. Eenmanszaken (vorm SOLE) worden onder hun handelsnaam aangeboden.

curl "https://api.jsonpage.com/v2/companies/SG-196800306E?include=address,local,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "SG-196800306E",
    "country": "SG",
    "registry_id": "196800306E",
    "name": "DBS BANK LTD.",
    "status": "active",
    "legal_form": { "code": "PCS", "label": "Société publique par actions", "scheme": "SG-LEGAL-FORM" },
    "activity": { "nace": null, "code": "64120", "label": null, "scheme": "SG-SSIC" },
    "incorporated_on": "1968-07-16",
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "12 MARINA BOULEVARD, MARINA BAY FINANCIAL CENTRE", "postal_code": "018982", "city": "Singapore", "country": "SG", "formatted": "12 MARINA BOULEVARD, MARINA BAY FINANCIAL CENTRE, Singapore 018982" },
    "signals": [],
    "local": {
      "uen": "196800306E",
      "entity_type": { "code": "LC", "label": "Société locale", "scheme": "SG-ENTITY-TYPE" },
      "register_status": "Live Company",
      "uen_issued_on": "1968-07-16",
      "accounts_due_on": "2027-07-31",
      "annual_return_on": "2026-06-03",
      "secondary_activity": null,
      "former_names": ["THE DEVELOPMENT BANK OF SINGAPORE"],
      "sole_proprietor": false
    }
  },
  "meta": {
    "sources": [{ "name": "Official business register: Singapore", "country": "SG", "kind": "register", "data_date": "2026-10-11" }],
    "includes": { "address": "ok", "local": "ok", "signals": "ok" }
  }
}

Btw wordt voor Singapore niet gecontroleerd: het blok vat is er niet beschikbaar en het register geeft de inschrijving voor de goederen- en dienstenbelasting (GST) niet. Signalen in Singapore: closed (zonder datum), recently_created, strike_off_proposed voor een entiteit “Gazetted To Be Struck Off”, liquidation voor een vrijwillige vereffening en insolvency_proceedings voor een gedwongen vereffening of gerechtelijk beheer, met de registerstatus in detail. Het blok local geeft het entiteitstype, de registerstatus zoals gepubliceerd, de vervaldata van de rekeningen en de jaarlijkse aangifte, de secundaire activiteit en de vroegere namen (former_names).

Japan

De Japanse rechtspersonen komen uit het Japanse register van ondernemingsnummers: ongeveer 5,1 miljoen actieve vennootschappen en organisaties (naamloze vennootschappen, besloten vennootschappen, lokale overheden, verenigingen, buitenlandse vennootschappen met een kantoor in Japan…) en ongeveer 780.000 gesloten, met hun sluitingsdatum in closed_on. Eenmanszaken hebben geen nummer en worden niet aangeboden. De globale identificatie is JP- gevolgd door de 13 cijfers van het ondernemingsnummer: JP-1180301018771. Het eerste cijfer is een controlecijfer en wordt gecontroleerd; een correct gevormd maar onbekend nummer geeft 404 not_found. De naam en het adres staan in het Japans: de uitspraak van de naam in katakana en de Engelse naam en het Engelse adres (als de rechtspersoon ze heeft opgegeven) staan in het blok local. Het register publiceert geen activiteitscode en geen oprichtingsdatum: activity en incorporated_on zijn null en de datum van toekenning van het nummer staat in local.number_assigned_on. Het zoeken op naam vindt een tekst van minstens 2 tekens overal in de Japanse naam, de uitspraak in katakana of de Engelse naam.

curl "https://api.jsonpage.com/v2/companies/JP-1180301018771?include=address,local,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "JP-1180301018771",
    "country": "JP",
    "registry_id": "1180301018771",
    "name": "トヨタ自動車株式会社",
    "status": "active",
    "legal_form": { "code": "301", "label": "Société par actions (kabushiki kaisha)", "scheme": "JP-LEGAL-FORM" },
    "activity": null,
    "incorporated_on": null,
    "closed_on": null,
    "updated_at": "2019-04-23",
    "address": { "line": "トヨタ町1番地", "postal_code": "471-0826", "city": "豊田市", "country": "JP", "formatted": "〒471-0826 愛知県豊田市トヨタ町1番地" },
    "signals": [],
    "local": {
      "corporate_number": "1180301018771",
      "name_kana": "トヨタジドウシャ",
      "name_en": null,
      "address_en": null,
      "prefecture": "愛知県",
      "prefecture_code": "23",
      "municipality_code": "23211",
      "number_assigned_on": "2015-10-05",
      "last_change_on": "2019-04-10",
      "closure": null,
      "legal_form_label_ja": "株式会社"
    }
  },
  "meta": {
    "sources": [{ "name": "Official corporate register: Japan", "country": "JP", "kind": "register", "data_date": "2026-10-11" }],
    "includes": { "address": "ok", "local": "ok", "signals": "ok" }
  }
}

Btw wordt voor Japan niet gecontroleerd: het blok vat is er niet beschikbaar. Signalen in Japan: closed met de sluitingsdatum in since. Het blok local geeft ook de reden van sluiting (closure: vereffening voltooid, ontbonden door fusie, gesloten door de griffie) en het nummer van de rechtspersoon die na een fusie de activiteit heeft overgenomen (successor_number).

Btw

In Frankrijk wordt het intracommunautaire btw-nummer berekend op basis van de SIREN; Jsonpage controleert vervolgens of het geldig is. Geen enkele aanvraag wacht op deze controle: ze gebeurt op de achtergrond, en de datum ervan staat in checked_at.

In België is het btw-nummer BE gevolgd door het ondernemingsnummer, bijvoorbeeld BE0417497106; het wordt op dezelfde manier gecontroleerd, met dezelfde statussen.

In Zwitserland is het btw-nummer het UID-nummer gevolgd door MWST, bijvoorbeeld CHE-101.374.515 MWST; ook dit nummer wordt gecontroleerd. De statussen zijn dezelfde, met daarnaast unavailable als de controle niet kon worden afgerond; ze wordt dan later opnieuw uitgevoerd. Voor een lid van een btw-groep is het teruggegeven nummer dat van de groep, waarmee de onderneming factureert: Nestlé (CH-105909036) geeft CHE-116.281.710 MWST terug.

In Finland, Letland en Zweden is het btw-nummer FI, LV of SE gevolgd door het registernummer (FI01120389, LV40003245752) of door het organisatienummer en 01 (SE556042722001); het wordt op dezelfde manier gecontroleerd, met dezelfde statussen. In Noorwegen wordt het nummer NO923609016MVA gelezen in het officiële btw-register: de status is valid of invalid, nooit pending.

Voor Australië, Singapore en Japan wordt geen btw gecontroleerd: het blok vat is er niet beschikbaar en de parameter vat van GET /v2/validate aanvaardt hun nummers niet.

StatusBetekenis
pendingNummer berekend, controle gepland: vraag de fiche enkele seconden later opnieuw op.
validHet nummer is bevestigd.
invalidHet nummer wordt niet herkend.
not_verifiedNummer berekend, maar niet gecontroleerd door deze server.
unavailableAlleen Zwitserland: de controle kon niet worden afgerond; ze wordt later opnieuw uitgevoerd.

EORI

Het EORI-nummer is de douane-identificatie van een bedrijf dat importeert of exporteert. Een Frans bedrijf heeft doorgaans FR gevolgd door het SIRET van het hoofdkantoor als EORI. Twee manieren om het te gebruiken: GET /v2/eori/{number} controleert elk nummer (Europese Unie, Verenigd Koninkrijk; Zwitserland en Noorwegen antwoorden not_applicable), en het blok eori van een Franse fiche (?include=eori) test de EORI van het hoofdkantoor.

Het nummer in het blok eori is afgeleid van het SIRET en niet uit een register gelezen: het wordt altijd als waarschijnlijk voorgesteld (probable: true, basis: "head_office_siret"). status: "valid" zegt dat dit nummer bestaat bij de douane, niet dat het bedrijf het gebruikt. Een officiële dienst die niet antwoordt geeft unverifiable met valid: null, nooit invalid: probeer later opnieuw.

name_match vergelijkt de naam die de douane voor het EORI-nummer heeft geregistreerd met de naam van het bedrijf: true als ze hetzelfde bedrijf aanduiden (hoofdletters, accenten, leestekens en rechtsvormen worden genegeerd), anders false, bijvoorbeeld voor een EORI op naam van een dochteronderneming. Bij een Frans EORI komt de bedrijfsnaam uit het register; geef bij een ander nummer de naam mee in de parameter company_name. Het veld ontbreekt als een van beide namen onbekend is.

Antwoorden worden 24 uur per nummer hergebruikt en de oproepen naar de officiële diensten worden gespreid: een bestand met enkele duizenden partners kunt u beter verwerken met het verrijken van bestanden in de klantenzone (kolommen eori_number en eori_valid), dat ook EORI-nummers in de kolom met identificatienummers aanvaardt. GET /v2/validate aanvaardt de parameter eori.

Signalen

De signalen worden berekend op basis van de fiche in het register, met dezelfde codes in alle landen. Elk signaal bevat code, since (begindatum van de situatie, als het register die vermeldt) en detail. Een gesloten onderneming krijgt alleen closed.

SignaalBetekenisLanden
closedOnderneming gesloten of ontbonden.Frankrijk, België, Zwitserland, Noorwegen, Finland, Letland, Ierland, Zweden, Estland, Litouwen, Australië, Singapore, Japan, Verenigd Koninkrijk
recently_createdMinder dan 12 maanden geleden opgericht.France, Belgique, Norvège, Finlande, Lettonie, Irlande, Suède, Estonie, Lituanie, Australie, Singapour, Royaume-Uni
insolvency_proceedingsLopende insolventieprocedure; het detail vermeldt het laatste vonnis in Frankrijk, de juridische toestand in België, het type procedure in Noorwegen en Finland, de registerstatus in Ierland, de lopende procedure in Zweden, de registerstatus in Estland, de juridische status in Litouwen.France, Belgique, Norvège, Finlande, Irlande, Suède, Estonie, Lituanie, Singapour, Royaume-Uni
strike_off_proposedAmbtshalve doorhaling voorgesteld.Irlande, Singapour, Royaume-Uni
liquidationLopende ontbinding of vereffening, buiten faillissement; het detail vermeldt de juridische toestand in België, de vermelding in de naam in Zwitserland en Letland, de toestand in Noorwegen en Finland, de registerstatus in Ierland, de lopende procedure in Zweden, de registerstatus in Estland, de juridische status in Litouwen.Belgique, Suisse, Norvège, Finlande, Lettonie, Irlande, Suède, Estonie, Lituanie, Singapour
accounts_overdueJaarrekening te laat.Verenigd Koninkrijk
confirmation_statement_overdueJaarlijkse verklaring te laat.Ierland, Verenigd Koninkrijk
dormantSlapende vennootschap.Verenigd Koninkrijk

Wettelijke publicaties

Het blok legal_events bevat de officiële wettelijke publicaties sinds 2008: insolventieprocedures, minnelijke schikkingen, procedures van professioneel herstel, doorhalingen, verkopen, inschrijvingen en diverse publicaties. De namen van natuurlijke personen en de vrije tekst van vonnissen worden nooit opgeslagen; de link url leidt naar de volledige officiële publicatie.

{
  "id": "A202601892890",
  "published_on": "2026-10-02",
  "family": "insolvency",
  "type": "initial",
  "judgment": {
    "family": "Jugement d'ouverture",
    "nature": "Jugement d'ouverture de liquidation judiciaire",
    "date": "2026-09-21"
  },
  "court": "Greffe du Tribunal de Commerce de Foix",
  "source": "Legal notices: France",
  "url": "..."
}
VeldInhoud
idIdentificatienummer van de publicatie.
published_onPublicatiedatum.
familyinsolvency, conciliation, professional_recovery, deregistration, sale, registration of other.
typeinitial, correction (rectificatie) of cancellation (annulering).
judgmentFamilie, aard en datum van het vonnis; null voor een publicatie zonder vonnis.
courtRechtbank of griffie waarvan de publicatie afkomstig is.
source, urlHerkomst van de publicatie en link naar de officiële versie ervan.

Het signaal insolvency_proceedings leest deze vonnissen van het meest recente naar het oudste: een afsluiting beëindigt de procedure; een opening, een omzetting in vereffening of een plan houdt ze open. Een geannuleerde publicatie wordt genegeerd.

Uiteindelijke begunstigden

Het blok owners, beschikbaar voor het Verenigd Koninkrijk, somt de uiteindelijke begunstigden van de vennootschap op (personen met aanzienlijke zeggenschap, persons with significant control) die in het Britse register zijn ingeschreven; hun datum staat in meta.sources. Alleen huidige personen worden teruggegeven, nooit personen van wie de zeggenschap is beëindigd. Adressen worden nooit teruggegeven, en ook de geboortedag niet: alleen de maand en het jaar, zoals in het register. Het blok is [] als er geen persoon is aangegeven.

In Frankrijk wordt owners gemeld als not_available_in_country in meta.includes: het register van uiteindelijke begunstigden is sinds 31 juli 2024 niet meer openbaar. De toegang is voorbehouden aan de autoriteiten, aan meldingsplichtige beroepsbeoefenaars en aan personen die een legitiem belang aantonen.

curl "https://api.jsonpage.com/v2/companies/GB-00445790?include=owners,sanctions" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "GB-00445790",
    "...": "...",
    "owners": [
      {
        "kind": "individual",
        "name": "Mr John Smith",
        "nationality": "British",
        "country_of_residence": "England",
        "birth": { "year": 1970, "month": 5 },
        "control": {
          "shares": { "min": 50, "max": 75 },
          "voting_rights": { "min": 25, "max": 100 },
          "appoints_directors": true,
          "significant_influence": false,
          "via": ["trust"]
        },
        "natures_of_control": ["ownership-of-shares-50-to-75-percent-as-trust", "voting-rights-more-than-25-percent", "right-to-appoint-and-remove-directors"],
        "notified_on": "2016-04-06",
        "sanctioned": false
      }
    ],
    "sanctions": { "...": "..." }
  },
  "meta": {
    "sources": [
      { "name": "Official company register: United Kingdom", "country": "GB", "kind": "register", "data_date": "2026-10-01" },
      { "name": "Beneficial ownership register: United Kingdom", "country": "GB", "kind": "ownership", "data_date": "2026-09-30" }
    ],
    "includes": { "owners": "ok", "sanctions": "ok" }
  }
}

Ingekort en illustratief antwoord: de persoon is fictief.

VeldInhoud
kindindividual (natuurlijke persoon), corporate_entity (vennootschap ingeschreven in een register), legal_person (andere rechtspersoon) of super_secure (persoon beschermd door het Britse register).
nameNaam zoals gepubliceerd; null voor super_secure.
nationality, country_of_residence, birthAlleen natuurlijke personen, anders afwezig. birth bevat year en month, nooit de dag.
control.shares, control.voting_rightsAangehouden schijf in procent, { "min", "max" } (bijvoorbeeld 25 tot 50, 50 tot 75, 75 tot 100), of null.
control.appoints_directorsRecht om de meerderheid van de bestuurders te benoemen of te ontslaan.
control.significant_influenceAanzienlijke invloed of zeggenschap op een andere manier.
control.viafirm en/of trust als de zeggenschap wordt uitgeoefend via een personenvennootschap of een trust; anders [].
natures_of_controlRuwe codes van het Britse register, zoals ingeschreven.
notified_onBegindatum van de zeggenschap, zoals aangegeven bij het Britse register.
identificationAlleen rechtspersonen, anders afwezig: registration_number, country_registered, legal_form.
sanctionedtrue als het Britse register aangeeft dat de persoon gesanctioneerd is.

Sancties

Het blok sanctions, beschikbaar voor Frankrijk, België, Zwitserland, Noorwegen, Finland, Letland, Ierland, Zweden, Estland, Litouwen, Australië, Singapore, Japan en het Verenigd Koninkrijk, vergelijkt de onderneming met de belangrijkste officiële internationale en nationale sanctielijsten: Europese Unie (EU), Verenigde Naties (UN), Frankrijk (FR), Verenigd Koninkrijk (UK) en Verenigde Staten (US). Alleen ingeschreven entiteiten (rechtspersonen) worden vergeleken, nooit natuurlijke personen.

curl "https://api.jsonpage.com/v2/companies/FR-552032534?include=sanctions" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "FR-552032534",
    "...": "...",
    "sanctions": {
      "status": "no_match",
      "matches": [],
      "lists": [
        { "list": "EU", "name": "Sanctions list: European Union", "published_at": "2026-09-22", "entities": 1776 },
        { "list": "UN", "name": "Sanctions list: United Nations", "published_at": "2026-10-01", "entities": 275 },
        { "list": "FR", "name": "Sanctions list: France", "published_at": "2026-10-02", "entities": 1924 },
        { "list": "United Kingdom", "name": "Sanctions list: United Kingdom", "published_at": "2026-10-02", "entities": 1645 },
        { "list": "US", "name": "Sanctions list: United States", "published_at": "2026-10-02", "entities": 10037 }
      ]
    }
  },
  "meta": { "sources": [{ "...": "..." }], "includes": { "sanctions": "ok" } }
}

Ingekort en illustratief antwoord: het aantal entiteiten varieert met de lijsten.

StatusBetekenis
matchHet nummer van de onderneming (SIREN, Belgisch ondernemingsnummer, Zwitsers UID-nummer, Noors, Fins of Lets nummer of company number) staat vermeld als registratienummer van hetzelfde land. Alleen de EU-lijst vermeldt het land van deze nummers.
possible_matchDe naam van de onderneming is identiek aan een vermelde naam of alias, zonder rekening te houden met hoofdletters, accenten, leestekens en rechtsvormen. Te controleren: een naamgenoot is mogelijk.
no_matchGeen overeenkomst op nummer of op naam.

Elk element van matches bevat list (EU, UN, FR, UK of US), reference (referentie van de entiteit in haar lijst), name (vermelde hoofdnaam), match_type (identifier of name) en listed_on (datum van vermelding, als de lijst die opgeeft). lists geeft voor elke lijst de naam, de publicatiedatum en het aantal vergeleken entiteiten.

Indicatief resultaat. Een no_match is geen garantie: een gesanctioneerde entiteit kan onder een andere naam of zonder nummer vermeld staan, of onder zeggenschap staan van een vermelde persoon. Deze controle vervangt uw eigen waakzaamheidsverplichtingen (KYC, witwasbestrijding) niet, zoals vermeld in de Algemene voorwaarden.

Vestigingen

Het endpoint /v2/companies/{id}/establishments geeft de vestigingen pagina per pagina terug. De parameter limit loopt van 1 tot 100 (standaard 20). Elke pagina bevat items en next. Geef de waarde van next door aan de parameter after om de volgende pagina op te halen. Op de laatste pagina heeft next de waarde null.

curl "https://api.jsonpage.com/v2/companies/FR-552032534/establishments?limit=50&after=55203253400414" \
  -H "X-API-Key: VOTRE_CLE"

Elke vestiging bevat registry_id (het SIRET-nummer in Frankrijk, het vestigingseenheidsnummer in België, het subeenheidsnummer in Noorwegen), name, head_office, status, activity, opened_on en address.

Zoeken op naam

GET /v2/companies?q={name} zoekt ondernemingen op naam. Elk woord van 2 tekens of meer moet in de naam voorkomen; het laatste woord mag het begin zijn van een woord van 3 letters of meer (“dano” vindt DANONE). Hoofdletters, accenten en leestekens worden genegeerd.

curl "https://api.jsonpage.com/v2/companies?q=danone" \
  -H "X-API-Key: VOTRE_CLE"

curl "https://api.jsonpage.com/v2/companies?q=tesco&country=GB&status=active&limit=5" \
  -H "X-API-Key: VOTRE_CLE"

curl "https://api.jsonpage.com/v2/companies?q=proximus&country=BE" \
  -H "X-API-Key: VOTRE_CLE"

curl "https://api.jsonpage.com/v2/companies?q=swatch&country=CH" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": [
    { "id": "FR-552032534", "country": "FR", "registry_id": "552032534", "name": "DANONE", "status": "active", "...": "..." },
    { "id": "FR-...", "...": "..." }
  ],
  "meta": { "sources": [{ "name": "Official company register: France", "country": "FR", "kind": "register", "data_date": "2026-10-01" }] }
}

Ingekort en illustratief antwoord.

Parameters (q, country, status, limit): naam, type, standaardwaarde en limieten in de details van het endpoint, bij de beschikbare endpoints.

Volgorde van de resultaten: eerst de exacte namen (rechtsvormen zoals SA, SAS, SARL, LTD of PLC worden bij de vergelijking genegeerd, dus “danone” vindt eerst DANONE), dan de actieve ondernemingen, dan vennootschappen vóór eenmanszaken, en ten slotte de relevantie. Bij een zeer gangbaar woord stopt de rangschikking op relevantie na 400 ms en worden de resultaten zonder die rangschikking geleverd, zodat ze snel blijven.

Elk resultaat is een basisfiche, identiek aan die van GET /v2/companies/{id}; include en fields zijn niet van toepassing. De volledige zoekopdracht telt als één aanvraag, ongeacht het aantal resultaten. Beschermde eenheden (verspreidingsstatus “P”) hebben geen naam en kunnen niet op naam worden gevonden.

Fouten die specifiek zijn voor het zoeken: 400 query_too_short (geen woord van 2 tekens of meer), 400 invalid_parameter (ongeldige status of limit), 404 country_not_supported (land zonder zoeken op naam), 503 search_unavailable (zoeken nog niet beschikbaar op de server).

Zoeken op nummer

Als u alleen het nationale nummer kent, geeft GET /v2/companies?registry_id=552032534 een lijst van de ondernemingen in alle bediende landen die dit nummer dragen, meestal slechts één. Het antwoord is een lege lijst als er geen overeenkomt.

Gegroepeerde aanvragen

Het endpoint POST /v2/companies/batch accepteert tot 100 identificatienummers en de gewenste blokken. Elke onderneming in de batch telt als één aanvraag binnen de limiet van het abonnement. Het antwoord behoudt de gevraagde volgorde; elk element bevat data, of error als de onderneming niet gevonden wordt of het identificatienummer ongeldig is.

curl -X POST "https://api.jsonpage.com/v2/companies/batch" \
  -H "X-API-Key: VOTRE_CLE" \
  -H "Content-Type: application/json" \
  -d '{ "ids": ["FR-552032534", "FR-000000001"], "include": ["vat"] }'
{
  "data": [
    { "id": "FR-552032534", "data": { "id": "FR-552032534", "...": "..." } },
    { "id": "FR-000000001", "data": null, "error": { "code": "not_found", "message": "No company with this identifier." } }
  ],
  "meta": { "sources": [{ "name": "Official company register: France", "country": "FR", "kind": "register", "data_date": "2026-10-01" }] }
}

Cache en ETag

De antwoorden van de GET v2-endpoints bevatten een header ETag. Stuur de waarde ervan terug in de header If-None-Match van de volgende aanvraag. Als de fiche niet is gewijzigd, antwoordt de API met 304 zonder body.

curl -i "https://api.jsonpage.com/v2/companies/FR-552032534" \
  -H "X-API-Key: VOTRE_CLE" \
  -H 'If-None-Match: "3f9a0c1d2b4e5f6a7b8c9d0e"'
03 / FOUTEN EN LIMIETEN

Antwoorden verwerken

Alle v2-fouten hebben hetzelfde formaat, met een stabiele code, een bericht in het Engels en een link naar deze documentatie.

{
  "error": {
    "code": "invalid_identifier",
    "message": "A French registry number is a 9-digit SIREN.",
    "docs": "https://jsonpage.com/docs#erreurs"
  }
}
HTTP-statusFoutcodeBetekenis
400invalid_identifierGlobaal identificatienummer verkeerd opgebouwd of nummer in het verkeerde formaat voor dit land.
400unknown_includeOnbekend blok in include.
400invalid_parameter, invalid_jsonParameter buiten bereik of ongeldige body van een gegroepeerde aanvraag.
400query_too_shortZoeken op naam zonder woord van 2 tekens of meer.
401invalid_api_keySleutel ontbreekt of is ongeldig.
403ip_not_allowedAanvraag vanaf een IP-adres dat niet op de lijst van toegestane adressen van de account staat (Pro).
403product_not_enabledProduct niet geactiveerd op de account; activeer het via het dashboard.
403monitor_limit_reachedLimiet van gemonitorde ondernemingen van het abonnement bereikt.
404not_foundGeen onderneming met dit identificatienummer.
404country_not_supportedLand nog niet bediend, of zonder zoeken op naam.
404not_available_in_countryGeen vestigingen in het register van dit land.
404not_monitoredOnderneming staat niet op uw monitoringlijst.
429rate_limit_exceededAanvraaglimiet van het abonnement overschreden; de header Retry-After geeft de wachttijd aan.
429daily_limit_reachedDagelijks plafond van het Kennismaking-abonnement (gratis) bereikt (1.000 verzoeken, gereset om middernacht UTC). Stap over op het abonnement Standard om het plafond op te heffen.
500data_unavailableGegevens tijdelijk onleesbaar; probeer het opnieuw.
503server_busyDienst tijdelijk overbelast; probeer het opnieuw met een wachttijd.
503search_unavailableZoeken op naam nog niet beschikbaar op deze server.
503monitoring_unavailableMonitoring nog niet beschikbaar op deze server.

Aanvraaglimieten: Kennismaking 100/min, Standard 1.000/min, Pro zonder abonnementsplafond. Er is geen maandelijks quotum. Om de beschikbaarheid te waarborgen, heeft Pro een limiet voor redelijk gebruik van 10.000 aanvragen/min per account.

De limieten voor aanvragen en monitoring gelden per product. Sleutels, bewaartermijn van het logboek, de lijst met toegestane IP-adressen, de SLA en de support volgen het beste abonnement van de account.

De limiet vult zich continu aan over één minuut. De header X-RateLimit-Remaining van elk antwoord geeft aan hoeveel aanvragen nog beschikbaar zijn. Bij 429 en 503 geeft de header Retry-After de wachttijd in seconden. Een gegroepeerde aanvraag telt voor evenveel aanvragen als gevraagde ondernemingen. Het Kennismaking-abonnement (gratis) heeft daarnaast een plafond van 1.000 verzoeken per dag, dat om middernacht UTC wordt gereset: daarboven antwoordt de API met 429 daily_limit_reached (velden message, message_en en upgrade_url) en Retry-After tot middernacht UTC. De headers X-Daily-Limit en X-Daily-Remaining geven het plafond en wat er nog over is. Betaalde abonnementen hebben geen dagelijks plafond.

Limietheaders en nieuwe pogingen

Twee headers beschrijven de stand van uw limiet: X-RateLimit-Remaining, aanwezig bij elk geslaagd antwoord, geeft het aantal aanvragen dat nog beschikbaar is in de lopende minuut van uw abonnement; Retry-After, verstuurd bij 429 rate_limit_exceeded en 503 server_busy, geeft de wachttijd in seconden. Er bestaan geen headers X-RateLimit-Limit of X-RateLimit-Reset: de limiet van uw abonnement staat in het dashboard en op de tarievenpagina.

Aanbevolen beleid voor nieuwe pogingen: probeer alleen opnieuw bij 429, 503 en netwerkfouten, nooit bij een andere 4xx-fout (het verzoek moet worden gecorrigeerd, opnieuw versturen verandert niets). Wacht de waarde van Retry-After af als die er is, anders een exponentiële wachttijd (1 s, 2 s, 4 s, 8 s…) met jitter, zodat niet al uw clients tegelijk herstarten, en geef op na 5 pogingen.

Node.js

async function getWithRetry(url, attempts = 5) {
  for (let attempt = 0; attempt < attempts; attempt++) {
    let response;
    try {
      response = await fetch(url, { headers: { "X-API-Key": process.env.JSONPAGE_API_KEY } });
    } catch {
      response = null; // network error: retry
    }
    if (response && response.status !== 429 && response.status !== 503) return response; // success or 4xx: no retry
    const wait = Number(response?.headers.get("Retry-After")) * 1000 || 2 ** attempt * 1000;
    await new Promise((resolve) => setTimeout(resolve, wait + Math.random() * 500)); // jitter
  }
  throw new Error("Jsonpage API: still unavailable after retries");
}
04 / MONITORING EN WEBHOOKS

Op de hoogte blijven van wijzigingen

Voeg ondernemingen toe aan uw monitoringlijst: elke gevolgde onderneming wordt vergeleken met de officiële registers, de wettelijke aankondigingen, de uiteindelijke begunstigden en de sanctielijsten. Elk verschil wordt een gebeurtenis, die u leest met GET /v2/events of ontvangt op uw webhook. De toestand die bij het toevoegen wordt vastgelegd, dient als referentie: er wordt geen gebeurtenis aangemaakt voor het verleden.

Elke aanroep van deze endpoints telt als één aanvraag, net als de andere aanroepen. Webhookleveringen worden niet meegeteld.

curl -X PUT "https://api.jsonpage.com/v2/monitors/FR-552032534" \
  -H "X-API-Key: VOTRE_CLE"
{ "data": { "company_id": "FR-552032534", "created": true } }
curl "https://api.jsonpage.com/v2/monitors?limit=100" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": [
    { "company_id": "FR-552032534", "created_at": "2026-10-02T09:12:44Z", "checked_at": "2026-10-02T10:00:03Z" }
  ],
  "next": null,
  "meta": { "count": 1, "limit": 1000 }
}

checked_at is null zolang de onderneming nog niet is vergeleken. meta.count is het aantal gevolgde ondernemingen en meta.limit de limiet van uw abonnement. Wanneer een pagina vol is, geeft u next door aan de parameter after; op de laatste pagina is next gelijk aan null.

Limieten per abonnement

AbonnementGevolgde ondernemingen
Kennismaking2
Standard1.000
Pro10.000

Webhooks zijn inbegrepen in alle abonnementen. Boven de limiet geeft PUT 403 monitor_limit_reached terug: limiet van het abonnement bereikt, stap over op een hoger abonnement om meer ondernemingen te volgen. U krijgt een e-mailmelding bij 80 % en 100 % van de limiet. Reeds gevolgde ondernemingen blijven werken en opnieuw toevoegen geeft nog steeds 200 terug. Een CSV-import in het dashboard voegt ondernemingen toe tot de limiet en meldt hoeveel er zijn overgeslagen.

Gebeurtenissen lezen

Gebeurtenissen worden teruggegeven van oud naar nieuw. Hun identificatoren evt_… zijn oplopend, maar niet noodzakelijk opeenvolgend. Geef de identificator van de laatst verwerkte gebeurtenis door aan de parameter after: next geeft de identificator van de laatste gebeurtenis op de pagina, of null als er geen nieuwe gebeurtenis is. Bewaar in dat geval uw eigen cursor voor de volgende aanroep. Gebeurtenissen blijven 90 dagen leesbaar.

curl "https://api.jsonpage.com/v2/events?after=evt_41&limit=100" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": [
    {
      "id": "evt_42",
      "type": "company.address_changed",
      "company_id": "FR-552032534",
      "detected_at": "2026-10-03T04:00:00Z",
      "data": {
        "before": "75 AV DE LA GRANDE ARMEE 75116 PARIS",
        "after": "7 RUE HENRI SAINTE-CLAIRE DEVILLE 92500 RUEIL-MALMAISON"
      }
    }
  ],
  "next": "evt_42"
}

Illustratief antwoord.

Soorten gebeurtenissen

TypeWanneerdata
company.status_changedDe status wijzigt (active, closed, unknown).before, after
company.name_changedDe naam wijzigt.before, after
company.address_changedHet opgemaakte adres van de hoofdzetel wijzigt.before, after
company.activity_changedDe nationale activiteitscode wijzigt.before, after
company.legal_form_changedDe code van de rechtsvorm wijzigt.before, after
company.removed_from_registerDe onderneming staat niet meer in het register.{}
signal.addedEr verschijnt een signaal.code, since, detail
signal.removedEen signaal verdwijnt.code
legal_event.publishedEr wordt een nieuwe wettelijke aankondiging gepubliceerd (Frankrijk).event: hetzelfde object als het blok legal_events
sanctions.changedDe status of de overeenkomsten van de sanctiecontrole wijzigen.before, after, added, removed, matches
owner.addedEr wordt een persoon met aanzienlijke zeggenschap toegevoegd (Verenigd Koninkrijk).kind, name
owner.removedEen persoon met aanzienlijke zeggenschap wordt niet meer aangegeven (Verenigd Koninkrijk).kind, name

De gevolgde signalen zijn insolvency_proceedings, liquidation, strike_off_proposed, accounts_overdue, confirmation_statement_overdue en dormant. closed en recently_created leveren nooit een signaalgebeurtenis op: een sluiting wordt al gemeld door company.status_changed. Voor sanctions.changed zijn before en after statussen (no_match, possible_match, match), sommen added en removed de overeenkomsten op in de vorm LIST:reference, en bevat matches de huidige overeenkomsten, in het formaat van het blok sanctions. Een veld dat het land niet levert, leidt nooit tot een gebeurtenis.

{
  "id": "evt_57",
  "type": "sanctions.changed",
  "company_id": "GB-01234567",
  "detected_at": "2026-10-03T05:00:00Z",
  "data": {
    "before": "no_match",
    "after": "match",
    "added": ["US:EXAMPLE-1"],
    "removed": [],
    "matches": [{ "list": "US", "reference": "EXAMPLE-1", "name": "EXAMPLE TRADING LTD", "match_type": "identifier", "listed_on": "2026-10-02", "programs": ["RUSSIA-EO14024"] }]
  }
}

Fictieve gebeurtenis.

Een wijziging wordt pas gedetecteerd nadat de officiële bron ze heeft gepubliceerd. De monitoring wordt geleverd naar best vermogen, zonder garantie van volledigheid of termijn, zoals vermeld in de Algemene voorwaarden.

Webhooks

Stel uw webhook in via het dashboard, onderdeel Monitoring: één HTTPS-adres per account, op een publieke host. Privéadressen, loopback- en link-local-adressen worden geweigerd, en omleidingen worden niet gevolgd. Het dashboard toont het ondertekeningsgeheim whsec_…, dat u opnieuw kunt genereren, en laat u een ondertekende testgebeurtenis test versturen. Deze testgebeurtenis verschijnt niet in GET /v2/events; de knop "Een testgebeurtenis versturen" toont de HTTP-status, de duur en een eventuele fout, en versturen is beperkt tot 10 per uur.

Elke gebeurtenis wordt verstuurd met een POST-aanvraag waarvan de JSON-body het gebeurtenisobject is, met deze headers:

POST /webhooks/jsonpage HTTP/1.1
Content-Type: application/json
Jsonpage-Event-Id: evt_42
Jsonpage-Signature: t=1791000000,v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd

{"id":"evt_42","type":"company.address_changed","company_id":"FR-552032534","detected_at":"2026-10-03T04:00:00Z","data":{"before":"…","after":"…"}}

De handtekening controleren

Elk verzoek is ondertekend met het geheim whsec_… van uw webhook. Verwerk een gebeurtenis pas nadat de handtekening is gecontroleerd. De header heeft het formaat Jsonpage-Signature: t=<Unix-seconden>,v1=<hex>; het algoritme is HMAC-SHA256, berekend met uw geheim over de string <t>.<ruwe body> (het tijdstip t, een punt, daarna de bytes precies zoals ontvangen), hexadecimaal gecodeerd.

Stappen: lees de ruwe body vóór elke JSON-decodering, haal t en v1 eruit, bereken de HMAC opnieuw, vergelijk die in constante tijd met v1 en weiger het verzoek als t meer dan 5 minuten (300 seconden) van uw klok afwijkt, om herhaling te blokkeren. Antwoord 400 als de handtekening ongeldig is.

Node.js

import { createHmac, timingSafeEqual } from "node:crypto";

// rawBody: the request body as received (Buffer or string), header: the Jsonpage-Signature value.
export function verify(rawBody, header = "", secret = process.env.JSONPAGE_WEBHOOK_SECRET) {
  const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
  const t = Number(parts.t);
  if (!t || !parts.v1 || Math.abs(Date.now() / 1000 - t) > 300) return false;
  const expected = createHmac("sha256", secret).update(`${parts.t}.`).update(rawBody).digest("hex");
  return parts.v1.length === expected.length && timingSafeEqual(Buffer.from(parts.v1), Buffer.from(expected));
}

Python

import hashlib
import hmac
import os
import time

SECRET = os.environ["JSONPAGE_WEBHOOK_SECRET"].encode()  # whsec_…

def verify(raw_body: bytes, header: str) -> bool:
    parts = dict(p.split("=", 1) for p in header.split(",") if "=" in p)
    try:
        t = int(parts["t"])
    except (KeyError, ValueError):
        return False
    if abs(time.time() - t) > 300:
        return False
    signed = parts["t"].encode() + b"." + raw_body
    expected = hmac.new(SECRET, signed, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, parts.get("v1", ""))

PHP

<?php
function verify(string $rawBody, string $header, string $secret): bool {
    $parts = [];
    foreach (explode(',', $header) as $part) {
        [$key, $value] = array_pad(explode('=', $part, 2), 2, '');
        $parts[$key] = $value;
    }
    $t = (int) ($parts['t'] ?? 0);
    if ($t === 0 || empty($parts['v1']) || abs(time() - $t) > 300) {
        return false;
    }
    $expected = hash_hmac('sha256', $t . '.' . $rawBody, $secret);
    return hash_equals($expected, $parts['v1']);
}

// $rawBody = file_get_contents('php://input');
// $header = $_SERVER['HTTP_JSONPAGE_SIGNATURE'] ?? '';

Ruby

require "openssl"

# raw_body: the request body as received, header: the Jsonpage-Signature value.
def verify(raw_body, header, secret)
  parts = header.to_s.split(",").map { |part| part.split("=", 2) }.to_h
  t = parts["t"].to_i
  return false if t.zero? || parts["v1"].nil? || (Time.now.to_i - t).abs > 300

  expected = OpenSSL::HMAC.hexdigest("SHA256", secret, "#{t}.#{raw_body}")
  expected.bytesize == parts["v1"].bytesize && OpenSSL.fixed_length_secure_compare(expected, parts["v1"])
end

Leveringen en nieuwe pogingen

Een 2xx-antwoord binnen 15 seconden geldt als succes. Anders (andere code, time-out, geen verbinding mogelijk) wordt de levering opnieuw geprobeerd na 1 min, 5 min, 30 min, 2 u, 6 u, 12 u en 24 u, en daarna als mislukt gemarkeerd. Een mislukte gebeurtenis blijft leesbaar via GET /v2/events. Een levering kan meermaals of in een andere volgorde aankomen: ontdubbel op de identificator van de gebeurtenis (id of de header Jsonpage-Event-Id) en antwoord snel, en verwerk de gebeurtenis indien nodig na het antwoord.

Fouten bij de monitoring

400 invalid_identifier (slecht gevormde globale identificator), 400 invalid_parameter (ongeldige limit of after), 403 monitor_limit_reached (limiet van het abonnement bereikt), 404 not_found (PUT van een onderneming die niet in het register staat), 404 not_monitored (DELETE van een onderneming die u niet volgt), 503 monitoring_unavailable (monitoring nog niet beschikbaar op de server).

05 / FORMULIEREN: AUTOCOMPLETION EN VALIDATIE

Invoer aanvullen en controleren

Twee endpoints voor registratieformulieren voor klanten of leveranciers, facturen (SIRET en btw-nummer van de leverancier) en eenvoudige identiteitscontroles van ondernemingen: /v2/autocomplete stelt ondernemingen voor tijdens het typen, /v2/validate controleert de ingevoerde identificatienummers. Elke aanroep telt als één aanvraag.

Zonder te programmeren: de plugins voor WooCommerce, WordPress, Shopify en PrestaShop gebruiken deze twee endpoints en voegen het automatisch aanvullen van bedrijven en een geverifieerd btw-nummer toe aan uw winkel.

Autocompletion

GET /v2/autocomplete antwoordt uitsluitend op basis van de naamindex, zonder de volledige fiche te lezen, in enkele milliseconden aan serverzijde. De woorden volgen de regels van het zoeken op naam: elk woord van 2 tekens of meer moet in de naam voorkomen, het laatste mag het begin van een woord zijn. Is de ingevoerde tekst een registernummer (SIREN, SIRET, Belgisch ondernemingsnummer, Zwitsers UID-nummer, Noors organisatienummer, Fins bedrijfs-ID, Lets registratienummer, Australisch ABN, Singaporees UEN, Japans ondernemingsnummer of Brits company number), dan wordt de overeenkomstige onderneming meteen teruggegeven; een SIRET geeft zijn onderneming terug.

curl "https://api.jsonpage.com/v2/autocomplete?q=carrefour&limit=5" \
  -H "X-API-Key: UW_SLEUTEL"
{
  "data": [
    { "id": "FR-652014051", "name": "CARREFOUR", "status": "active", "postal_code": "91300", "city": "MASSY", "kind": "company" },
    { "id": "FR-...", "...": "..." }
  ]
}

Ingekort en illustratief antwoord.

Parameters (q, country, status, limit): naam, type, standaardwaarde en limieten in de details van het endpoint, bij de beschikbare endpoints.

Elke suggestie bevat id (de globale identificator om verder te gebruiken), name, status, postal_code en city (null indien onbekend) en kind: company voor een vennootschap, person voor een eenmanszaak. De volgorde is die van het zoeken op naam: exacte namen, dan actieve ondernemingen, dan vennootschappen vóór eenmanszaken. Roep voor de volledige fiche vervolgens GET /v2/companies/{id} aan met de gekozen id.

Fouten: 400 query_too_short (geen woord van 2 tekens of meer), 400 invalid_parameter (ongeldige status of limit), 404 country_not_supported (land zonder zoeken op naam). De antwoorden bevatten een ETag, net als de andere v2-endpoints met GET.

In een formulierRoep het endpoint aan vanaf uw server, nooit rechtstreeks vanuit de browser: de API-sleutel zou dan zichtbaar zijn. Wacht ongeveer 150 ms na de laatste toetsaanslag vóór elke aanroep. Zie het voorbeeld van de serverroute in de snelstart.

Validatie

GET /v2/validate aanvaardt id (globale identificator, bijvoorbeeld FR-552032534), siret en vat, in elke combinatie, met minstens één van de drie. Spaties, punten en koppeltekens in het SIRET en het btw-nummer worden genegeerd. Het antwoord geeft aan of alles geldig is, detailleert elke controle en geeft de basisfiche van de onderneming met haar adres terug.

curl "https://api.jsonpage.com/v2/validate?id=FR-652014051&vat=FR14652014051" \
  -H "X-API-Key: UW_SLEUTEL"
{
  "data": {
    "valid": true,
    "checks": [
      { "code": "id_format", "ok": true, "value": "FR-652014051" },
      { "code": "siren_key", "ok": true, "value": "652014051" },
      { "code": "vat_format", "ok": true, "value": "FR14652014051" },
      { "code": "identifiers_match", "ok": true, "value": "FR-652014051" },
      { "code": "company_exists", "ok": true, "value": "FR-652014051" },
      { "code": "company_active", "ok": true, "value": "active" },
      { "code": "vat_registered", "ok": true, "value": "valid" }
    ],
    "company": {
      "id": "FR-652014051",
      "country": "FR",
      "registry_id": "652014051",
      "name": "CARREFOUR",
      "status": "active",
      "...": "...",
      "address": { "...": "...", "postal_code": "91300", "city": "MASSY" },
      "vat": { "number": "FR14652014051", "status": "valid", "checked_at": "...", "source": "EU VAT check" }
    }
  }
}

Ingekort antwoord: de basisvelden zijn hier weggelaten.

ControleControleert
id_formatDe globale identificator is correct gevormd voor een ondersteund land; in Zwitserland, Noorwegen en Finland wordt het controlecijfer modulo 11 van het UID-nummer, het organisatienummer of het bedrijfs-ID gecontroleerd. In Australië wordt ook de modulo-89-controle van het ABN gecontroleerd. In Singapore wordt ook de controleletter van het UEN gecontroleerd. In Japan wordt ook het controlecijfer van het ondernemingsnummer gecontroleerd.
siren_keyHet controlecijfer (Luhn) van het SIREN is correct (Frankrijk).
siret_formatHet SIRET telt 14 cijfers.
siret_keyHet controlecijfer (Luhn) van het SIRET is correct; de vestigingen van La Poste volgen hun eigen regel.
siret_existsDe vestiging bestaat in het register.
siret_activeDe vestiging is actief.
vat_formatHet btw-nummer is correct gevormd: in Frankrijk het nummer dat op basis van het SIREN is berekend; in België BE gevolgd door een ondernemingsnummer met een correcte controlesleutel; in Zwitserland het UID-nummer met een correct controlecijfer, gevolgd door MWST, Btw of IVA; in Noorwegen NO, een organisatienummer met een correct controlecijfer en MVA; in Finland FI gevolgd door de 8 tekens van een bedrijfs-ID met een correct controlecijfer; in Letland LV gevolgd door 11 cijfers; in Zweden SE, een organisatienummer met een correct controlecijfer en 01; in Estland EE gevolgd door 9 cijfers; in Litouwen LT gevolgd door de 9 cijfers van de code.
vat_country_supportedHet land van het btw-nummer wordt ondersteund (Frankrijk, België, Zwitserland, Noorwegen, Finland, Letland, Zweden, Estland of Litouwen); altijd mislukt voor een ander land.
identifiers_matchAlle identificatienummers verwijzen naar dezelfde onderneming.
company_existsDe onderneming bestaat in het register.
company_activeDe onderneming is actief.
vat_registeredControlestatus van het btw-nummer: valid, pending (controle bezig, probeer het enkele seconden later opnieuw), not_verified en unavailable (controle niet afgerond) slagen; invalid mislukt.

valid is alleen true als alle teruggegeven controles geslaagd zijn. Alleen relevante controles worden teruggegeven: een controle die afhangt van een andere, mislukte controle wordt weggelaten (een slecht gevormd SIRET wordt niet opgezocht). company wordt ook teruggegeven als de vestiging of de onderneming gesloten is, om aan te geven waarnaar de identificatienummers verwijzen; het is null als de identificatienummers niet naar dezelfde onderneming verwijzen of als de onderneming niet gevonden wordt. Het antwoord wordt niet langer dan 60 seconden gecachet (Cache-Control: private, max-age=60).

Voorbeeld in België: een Belgisch btw-nummer volstaat, de API leidt er de onderneming uit af. Punten worden genegeerd, dus BE0417.497.106 wordt aanvaard.

curl "https://api.jsonpage.com/v2/validate?vat=BE0417497106" \
  -H "X-API-Key: UW_SLEUTEL"
{
  "data": {
    "valid": true,
    "checks": [
      { "code": "vat_country_supported", "ok": true, "value": "BE0417497106" },
      { "code": "vat_format", "ok": true, "value": "BE0417497106" },
      { "code": "company_exists", "ok": true, "value": "BE-0417497106" },
      { "code": "company_active", "ok": true, "value": "active" },
      { "code": "vat_registered", "ok": true, "value": "valid" }
    ],
    "company": {
      "id": "BE-0417497106",
      "country": "BE",
      "registry_id": "0417497106",
      "name": "Anheuser-Busch InBev",
      "status": "active",
      "...": "...",
      "address": { "...": "...", "postal_code": "1000", "city": "Bruxelles" },
      "vat": { "number": "BE0417497106", "status": "valid", "checked_at": "...", "source": "EU VAT check" }
    }
  }
}

Voorbeeld in Zwitserland: ook een Zwitsers btw-nummer volstaat, met of zonder punten, spaties en de vermelding MWST, Btw of IVA.

curl "https://api.jsonpage.com/v2/validate?vat=CHE-105.909.036+MWST" \
  -H "X-API-Key: UW_SLEUTEL"
{
  "data": {
    "valid": true,
    "checks": [
      { "code": "vat_country_supported", "ok": true, "value": "CHE105909036MWST" },
      { "code": "vat_format", "ok": true, "value": "CHE105909036MWST" },
      { "code": "company_exists", "ok": true, "value": "CH-105909036" },
      { "code": "company_active", "ok": true, "value": "active" },
      { "code": "vat_registered", "ok": true, "value": "valid" }
    ],
    "company": {
      "id": "CH-105909036",
      "country": "CH",
      "registry_id": "105909036",
      "name": "Nestlé AG",
      "status": "active",
      "...": "...",
      "address": { "...": "...", "postal_code": "6330", "city": "Cham" },
      "vat": { "number": "CHE-116.281.710 MWST", "status": "valid", "checked_at": "...", "source": "EU VAT check" }
    }
  }
}

Nestlé is lid van een btw-groep: het ingevoerde nummer verwijst wel degelijk naar de onderneming, en het blok vat geeft het nummer van de groep, waarmee ze factureert.

Voorbeeld in Noorwegen, Finland, Letland, Zweden, Estland of Litouwen: ook een btw-nummer volstaat, NO923609016MVA (met of zonder spaties), FI01120389 of LV40003245752. Voor een Noors nummer is vat_registered valid als de eenheid voor de btw is ingeschreven, anders mislukt de controle.

curl "https://api.jsonpage.com/v2/validate?vat=NO923609016MVA" \
  -H "X-API-Key: VOTRE_CLE"
curl "https://api.jsonpage.com/v2/validate?id=FR-652014051&siret=55203253400414" \
  -H "X-API-Key: UW_SLEUTEL"
{
  "data": {
    "valid": false,
    "checks": [
      { "code": "id_format", "ok": true, "value": "FR-652014051" },
      { "code": "siren_key", "ok": true, "value": "652014051" },
      { "code": "siret_format", "ok": true, "value": "55203253400414" },
      { "code": "siret_key", "ok": true, "value": "55203253400414" },
      { "code": "identifiers_match", "ok": false, "value": "FR-552032534" }
    ],
    "company": null
  }
}

Het SIRET behoort toe aan een andere onderneming (FR-552032534): de identificatienummers komen niet overeen.

Fout: 400 invalid_parameter als geen van de drie parameters is opgegeven. Een slecht gevormde identificator is geen fout: die levert een mislukte id_format op.

06 / KLANTENZONE: SLEUTELS, VERRIJKING, LIJSTEN, EXPORTS

Uw account beheren in het dashboard

Deze functies gebruikt u in het dashboard, aangemeld met uw account: het zijn geen endpoints van de openbare API en ze vereisen geen API-sleutel.

API-sleutels

Afhankelijk van het abonnement (Kennismaking (gratis), Standard, Pro) kunt u tegelijk tot 1, 3 of 10 actieve sleutels hebben, elk met een naam. Een sleutel vernieuwen maakt een nieuwe sleutel met dezelfde naam aan: de oude blijft 24 uur geldig, zodat u hem op uw servers kunt vervangen, en wordt daarna gedeactiveerd. Een ingetrokken sleutel wordt onmiddellijk geweigerd met 401 invalid_api_key.

Toegestane IP-adressen (Pro)

Met Pro beperkt u het gebruik van uw sleutels tot maximaal 20 IP-adressen of CIDR-bereiken, in IPv4 of IPv6 (bijvoorbeeld 203.0.113.10 of 2001:db8::/32). De lijst geldt voor alle sleutels van de account; een aanvraag vanaf een ander adres krijgt 403 ip_not_allowed. Een lege lijst aanvaardt alle adressen.

Aanvraaglogboek

Het logboek toont elke API-aanroep (datum, methode, pad met parameters, statuscode en duur) over 7 dagen bij Kennismaking, 30 dagen bij Standard en 90 dagen bij Pro. De inhoud van de antwoorden wordt niet bewaard.

Een bestand verrijken

Laad een CSV-bestand op en kies de kolom met de identificatienummers: SIREN, SIRET, btw-nummer of globale identificator. Alleen die kolom wordt verzonden. Het aangevulde bestand, een CSV met puntkomma's als scheidingsteken, bevat input, id, found, name, status, legal_form, activity_code, activity_label, nace, address, postal_code, city, country, vat_number, vat_status, incorporated_on, closed_on, signals, insolvency, sanctions, error. Een bestand telt tot 10.000 regels bij Standard en 100.000 bij Pro; met Kennismaking kunt u 100 regels per maand verrijken. Elke regel telt als één aanvraag. Per account wordt één bestand tegelijk verwerkt; het resultaat blijft 7 dagen downloadbaar.

Lijsten van ondernemingen (Standard en Pro)

Filter Franse ondernemingen op activiteit (NAF-code zoals 62.01Z of afdeling zoals 62), departement (69, 2A, 974), rechtsvormcategorie en periode van oprichting. Het voorbeeld toont het aantal ondernemingen en tien voorbeelden; het CSV-bestand bevat siren, id, name, naf, naf_label, legal_category, legal_category_label, created_at, address, postal_code, city, department. Quotum: 1.000 regels per kalendermaand bij Standard, 50.000 bij Pro. Alleen actieve ondernemingen met openbare gegevens worden opgenomen, nooit eenmanszaken. U blijft verantwoordelijk voor de naleving van de AVG en van de regels voor direct marketing (zie de algemene voorwaarden).

Export van uw gegevens (Standard en Pro)

Uw gemonitorde ondernemingen, uw gebeurtenissen en uw aanvraaglogboek kunt u downloaden als CSV-bestanden die rechtstreeks in een rekenblad opengaan.

07 / GOEDE PRAKTIJKEN

Een betrouwbare integratie

  • Sla de globale identificatie op die in data.id wordt teruggegeven (FR-552032534, BE-0417497106, CH-101374515, NO-923609016, FI-01120389, LV-40003245752, IE-104547, SE-5560427220, EE-10137025, LT-110053842, AU-51824753556, SG-196800306E, JP-1180301018771, GB-00445790) en hergebruik ze ongewijzigd. Controleer een door een gebruiker ingevoerd nummer eerst met /v2/validate.
  • Vraag in include alleen de blokken die u nodig hebt: een blok dat niet wordt gevraagd, wordt niet gelezen of berekend, en het antwoord blijft licht.
  • Bewaar de API-sleutel op uw server. Om hem te wijzigen, vernieuwt u hem: de oude blijft 24 uur geldig.
  • Wacht bij 429 of 503 de wachttijd Retry-After af en probeer het daarna opnieuw met een steeds langere wachttijd.
  • Stuur de ETag terug in If-None-Match om een ongewijzigde fiche niet opnieuw te lezen, en lees meerdere ondernemingen tegelijk met POST /v2/companies/batch.
  • Om klanten of leveranciers te volgen, gebruikt u beter de monitoring (webhooks of GET /v2/events) dan hun fiches telkens opnieuw te lezen.
  • Respecteer de status van gedeeltelijke verspreiding P van Franse ondernemingen (local.diffusion_status) en de gebruiksvoorwaarden van de gegevens.

Zie ook de SLA-pagina voor de beschikbaarheidsverbintenis van het Pro-abonnement.

08 / GEGEVENSBRON

Gegevensbron

Jsonpage steunt op de officiële ondernemingsregisters van de gedekte landen en op openbare reglementaire informatie: insolventieprocedures, internationale sanctielijsten, status van btw-nummers. Jsonpage verzamelt, controleert, harmoniseert en verrijkt deze informatie om één formaat te bieden, ongeacht het land, met gecontroleerde nummers en duidelijke statussen.

Elk antwoord vermeldt in meta.sources de datum van de gebruikte gegevens, en de status van de dienst is altijd te raadplegen.

MEER WETEN

Een vraag over de dienst?

De FAQ behandelt de gegevens, de limieten voor oproepen en het gebruik van de dienst.

Lees de FAQ