Benelux Insolvency Radar – NL & BE Bankruptcies avatar

Benelux Insolvency Radar – NL & BE Bankruptcies

Pricing

from $17.00 / 1,000 case delivereds

Go to Apify Store
Benelux Insolvency Radar – NL & BE Bankruptcies

Benelux Insolvency Radar – NL & BE Bankruptcies

Benelux insolvency data in one normalised daily feed: Dutch and Belgian bankruptcies, suspensions of payment, WHOA and judicial reorganisations of legal entities, with company, KvK/KBO number, procedure, event, status, ruling date, court and trustee. Natural persons are never delivered.

Pricing

from $17.00 / 1,000 case delivereds

Rating

0.0

(0)

Developer

Leyten Data

Leyten Data

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

25 days ago

Last modified

Security

Limited permissions

Share

What does Benelux Insolvency Radar do?

Benelux insolvency data in one feed. The Dutch courts publish bankruptcies (faillissementen) and suspensions of payment every working day in the Centraal Insolventieregister and list public WHOA procedures in a separate WHOA register; the Belgian enterprise courts publish bankruptcies and judicial reorganisations in the Belgisch Staatsblad, in Dutch and in French. This Actor reads both registers and delivers one normalised record per case publication: company name, KvK or KBO number, procedure, event (opening, closing, conversion, withdrawal), status, ruling date, court, trustee or administrator, address and trade names, in the same schema for both countries. Company debtors only: a debtor who is a natural person is never delivered, by rule, not by option. Monitor mode delivers only what is new since the previous run.

Why one Benelux feed

A Dutch credit insurer, collection agency or exporter has debtors on both sides of the border. The registers differ in everything: language, structure, case numbering, the words for the same event. Here procedure, event and status mean the same thing in Amsterdam and Antwerp, and the record carries the registration number you already have in your ledger, so a match is a join, not a search.

Natural persons are never delivered

The Dutch register also holds debt restructurings (WSNP), personal bankruptcies and sole traders; the Belgian notices include self-employed persons. Those are people, not counterparties, and their debts are nobody's sales signal. The Actor drops every publication that the registers mark as a natural person (a birth date, a home address, a WSNP case number, "geboren op", "né(e) le", "wonende te", a WHOA debtor described as a sole proprietorship), and every publication without either a legal form or a company registration number. There is no input to switch this off. The counts of dropped publications appear in the run log, without the names.

Sources

  • Netherlands: Centraal Insolventieregister (insolventies.rechtspraak.nl), the register of de Rechtspraak, read through the daily publication feed its own web application uses (one document per publication day, grouped by court and publication type). The same publications appear in the Staatscourant on officielebekendmakingen.nl (CC0). The Rechtspraak's conditions for reuse of the register apply to what you do with the data: use it to inform participants in trade about the insolvency, and delete a case within six months after its termination. The register keeps a case visible for six months after termination and offers about the last month of daily publications.
  • Netherlands: WHOA register (rechtspraak.nl/registers/whoa): public homologation procedures, with KvK number, start declaration date, request date, case number and court. The register has no publication days: a WHOA record's rulingDate is its request date, or else its start declaration date, and publicationDate is the later of the two dates the entry states, or 1970-01-01 when it states neither in a form the Actor reads (a lookup leaves such an entry out and counts it in the run log; a watch delivers it).
  • Belgium: Belgisch Staatsblad / Moniteur belge (ejustice.just.fgov.be): the court notices of openings, closings, withdrawals and administration changes of bankruptcies and judicial reorganisations, found by date and read per notice, in the language of the court. There is no API; the Actor reads the search results and notice pages of the official site, a few requests per notice, paced.

Both registers are read live on every run. A request that fails is repeated: the Dutch registers get four attempts with pauses of a few seconds, the Staatsblad six with pauses of up to a minute. Once per run, the first request of the Dutch insolvency register, or of a Staatsblad search read through a proxy, that still fails after that with a temporary error (a timeout, a network error, a server or throttling status, or, for the Staatsblad, a page that is neither a result list nor a notice) is tried again for up to ten minutes, so an outage of a few minutes does not fail that country. The wait is shorter when the run has less time left: it leaves free the time the delivery of the cases taken so far, and the other country in countries, are expected to need, and a wait that would be shorter than a minute is not made. When a register still does not answer, that country's scope is left untouched and nothing of it is charged; the other country is still delivered. When only the WHOA page fails, the Dutch register publications of the run are still delivered and the run log says the WHOA entries are missing. A country whose register publishes none of the selected procedures and events (only whoa selected for Belgium, say) is skipped without a single request, and the run's status message says so.

Proxies. The Staatsblad's web application firewall rejects requests from data-centre addresses ("Request Rejected", with a support ID), and it throttles above about one request per second. The Actor therefore reads Belgian notices through Apify residential proxies by default (Proxy configuration), at roughly three requests every four seconds. A page that is neither a result list nor a notice is retried and, if it keeps failing, the Belgian part of the run is reported as failed instead of delivered incomplete, unless the run is near its timeout (see Pricing). The proxy is used for the Staatsblad only: the Dutch registers need no proxy and are always read directly, and the webhook is sent directly as well.

Monitor mode

Set mode to monitor, schedule daily. The first run delivers the publications of the window as baseline records, charged per case like a lookup. The WHOA register has no publication days, so a watch's baseline also holds every entry the register currently lists, not only those dated inside the window as in a lookup. Later runs deliver only publications that are new since the previous run, priced per case, with summary lines such as NL Van der Most Beheer B.V (05026225): Faillissement, opening 2026-09-14. Publications the watch already delivered are checked again on every run, free, and never count toward maxItems; when the cap or your maximum cost per run is reached, or the run's timeout is near, the new publications that did not fit arrive in a later run while they are still inside its window. When the register adds to a WHOA entry the watch delivered (its case number or request date, say), the watch delivers it again as a free changed record. A closing or conversion of a case that opened earlier arrives as its own publication, so a debtor's history unfolds as events with the same caseId. Publications older than the window (lookbackDays) leave the state silently. A new stateKey, or another selection of procedures or events (the order they are listed in does not matter), starts a new baseline.

Features

  • Dutch and Belgian bankruptcy data in one schema: the same procedure, event and status values for both countries
  • KvK or KBO number on nearly every record, so a match against your debtor file is a join
  • Bankruptcy, suspension of payment, WHOA and judicial reorganisation covered, with the register's own wording kept in eventLabel
  • Court, ruling date, trustee or administrator and supervisory judge per publication
  • Company debtors only: a debtor who is a natural person, a WSNP case or a sole trader is dropped by rule; the trustee and the supervisory judge the court appointed stay in the record, as the registers publish them
  • Live from both registers on every run; a register that does not answer is never charged
  • Monitor mode: only new publications since the previous run, with a webhook and one-line summaries
  • Runs through the Apify API, on a schedule, or from Make, Zapier and n8n

Use cases

Credit insurers and credit managers

Match registrationNumber against your debtor file every morning. An opening on a debtor is a claim event; a closing with verbindende uitdelingslijst tells you the dividend has been set.

// npm install apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('lwsdjfls/benelux-insolvency-radar').call({ countries: ['NL', 'BE'], lookbackDays: 1 });
const { items } = await client.dataset(run.defaultDatasetId).listItems({ clean: true });
const debtors = new Set(['05026225', '0651.640.159']); // KvK and KBO numbers from your ledger
for (const { payload } of items) {
if (payload.registrationNumber && debtors.has(payload.registrationNumber)) {
console.log(`${payload.country} ${payload.companyName}: ${payload.procedureLabel} – ${payload.event} on ${payload.rulingDate} at ${payload.court}; trustee ${payload.administrators[0]?.name ?? 'n/a'}`);
}
}

Collection agencies

Stop dunning the moment a bankruptcy opens and file the claim with the trustee instead: the record names the trustee and the address to send it to.

B2B sales and account management

A bankrupt customer is a lost debtor; a customer in suspension of payment or judicial reorganisation is a customer to talk to. Feed the openings into the CRM by registration number.

Journalists and researchers

A daily list of the companies whose insolvency the Dutch and Belgian registers published, with court and trustee, in one format. The debtors are companies; private persons in debt are not in the feed.

How to use it

  1. Choose your Countries and a window in Days, then run it. Start with NL alone: the Dutch register answers directly, and a five-day window reaches back past a long weekend. Each case publication becomes one record with the company, its KvK or KBO number, the procedure, the event, the ruling date, the court and the trustee.
  2. Add BE when you need Belgium too. The Belgian Staatsblad refuses data centre addresses, so Belgian sources are read through a residential proxy, which is why the prefilled form in Console starts with the Netherlands only. The schema default does include BE, so an API call that omits countries reads both registers, and a Belgium run costs a little more to operate.
  3. Give it a State key, switch to the change feed and schedule it daily, with Webhook URL pointing at your credit or collections system. An insolvency is only useful while it is fresh.

The cases view is the table per case publication and changes is the daily feed. Both use one schema across both countries, so a Dutch faillissement and a Belgian gerechtelijke reorganisatie arrive in the same fields and you do not need two integrations.

Two boundaries, and the first one is absolute. A debtor who is a natural person is never delivered. A debtor that the register describes as a sole trader is a natural person and is left out entirely, so this feed covers company debtors only. It does carry the people the court appointed to the case: administrators (name, role and office address) and supervisoryJudge are delivered as the registers publish them. Second, the Dutch register is published under a licence that binds you as well: it is meant for informing commercial traffic, and the data has to be destroyed six months after the insolvency ends. Those obligations travel with the data to you.

{
"countries": ["NL"],
"lookbackDays": 5,
"stateKey": "credit-risk-nl"
}

Input

FieldWhat it doesExample
modelookup delivers every case publication of the period; monitor delivers only publications new since the previous run."lookup"
countriesNL (Centraal Insolventieregister) and/or BE (Belgisch Staatsblad).["NL", "BE"]
proceduresWhich procedures to deliver.["faillissement", "surseance", "gerechtelijke-reorganisatie", "whoa"]
eventsWhich events to deliver; openings, closings, conversions and withdrawals are the signal, hearings and distribution lists are available for those who need them.["opening", "closing", "conversion", "withdrawal", "administration"]
lookbackDaysPublication days to read, ending today; the Dutch register offers about the last month.3
maxItemsCaps the charged case publications in one run, taken in the order of countries; publications a watch already delivered do not count. A lookup does not read a country the cap leaves no room for, and a new watch of that country starts only in a run with room under the cap.2000
webhookUrlReceives a POST with a summary after each run that delivered publications; must be a public http(s) address and is stored encrypted.https://hooks.example.com/insolvencies
stateKeySeparates independent monitors. Defaults to the task ID.debtors-nl-be
proxyConfigurationBelgian notices are read through Apify residential proxies by default; the Dutch registers are always read directly.{ "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
{
"countries": ["NL", "BE"],
"procedures": ["faillissement", "surseance", "gerechtelijke-reorganisatie", "whoa"],
"events": ["opening", "closing", "conversion", "withdrawal", "administration"],
"lookbackDays": 3
}

Monitor mode:

{
"mode": "monitor",
"countries": ["NL", "BE"],
"events": ["opening", "conversion", "withdrawal"],
"lookbackDays": 3,
"webhookUrl": "https://hooks.example.com/insolvencies"
}

Output

One record per case publication:

  • id (nl:2026-09-15:Rechtbank Overijssel:12, nl:whoa:61425044, be:2026837388; a WHOA entry is identified by the debtor's KvK number (the first it states), or by its name when it states none, so the record keeps its id while the register adds its case number, and group companies in one procedure each get a record of their own), country, caseId (NL insolvency number such as F.08/26/230, WHOA case number such as 190923 FT RK 23/427, BE court reference), sourceUrl, sourceName, publicationDate
  • companyName, legalForm (B.V., N.V., BV, SRL, SA, VZW…), registrationNumber with registrationNumberKind (kvk, 8 digits; kbo, 0651.640.159), address, tradeNames, activity (BE)
  • procedure: faillissement, surseance, whoa, gerechtelijke-reorganisatie (with procedureLabel in Dutch)
  • event: opening (uitspraak, ouverture), closing (opheffing, vereffening, verbindende uitdelingslijst, clôture), conversion (suspension converted into bankruptcy), withdrawal (vernietiging, intrekking), hearing, distribution-list, administration (trustee or supervisory judge appointed, replaced, case transferred), other; eventLabel keeps the register's own wording
  • status: opened, ongoing, closed, withdrawn, converted
  • rulingDate, scheduledDate (hearings), court, administrators (name, role: curator, bewindvoerder, vereffenaar, gerechtsmandataris; address), supervisoryJudge
  • text: the publication as published, without telephone numbers and e-mail addresses
  • checkedAt
{
"envelopeVersion": 1,
"id": "nl:2026-09-14:Rechtbank Noord-Holland:33",
"scope": "lookup:NL",
"changeType": "added",
"sourceUrl": "https://insolventies.rechtspraak.nl/#!/bekendmakingen/20260914000000",
"scrapedAt": "2026-09-15T20:00:00.000Z",
"firstSeenAt": "2026-09-15T20:00:00.000Z",
"hash": "cf669135c2a152f420fc08328051e4e1882625e571dcba1052a6c80e0f43c88f",
"previousHash": null,
"changes": [],
"summary": "Added: NL De Lekkere Dingen Bakkerij B.V (33120758): Surseance van betaling, opening 2026-09-10",
"diffText": null,
"payload": {
"id": "nl:2026-09-14:Rechtbank Noord-Holland:33",
"country": "NL",
"caseId": "S.15/26/1101",
"companyName": "De Lekkere Dingen Bakkerij B.V",
"legalForm": "B.V",
"registrationNumber": "33120758",
"registrationNumberKind": "kvk",
"procedure": "surseance",
"procedureLabel": "Surseance van betaling",
"event": "opening",
"eventLabel": "surseances › surseance overgedragen van rechtbank",
"status": "opened",
"rulingDate": "2026-09-10",
"publicationDate": "2026-09-14",
"scheduledDate": null,
"court": "Rechtbank Noord-Holland",
"administrators": [
{
"name": "mr K.A. Martijnse",
"role": "bewindvoerder",
"address": "Robijnstraat 11 1812RB ALKMAAR"
},
{
"name": "mr A.G. Moeijes",
"role": "bewindvoerder",
"address": "Velserbeek 1 1981LA VELSEN-ZUID"
}
],
"supervisoryJudge": "mr. M.P. de Valk. Deze surseance van betaling is uitgesproken door Rechtbank Amsterdam. De zaak is overgedragen aan Rechtbank Noord-Holland, met bepaling dat Rechtbank Noord-Holland vanaf heden alle taken die de wet aan de rechtbank opdraagt zal vervullen. Alle vervolg advertenties zullen eveneens door deze rechtbank worden verzorgd",
"address": "Sluispolderweg 27 1505HJ Zaandam",
"tradeNames": [],
"activity": null,
"sourceUrl": "https://insolventies.rechtspraak.nl/#!/bekendmakingen/20260914000000",
"sourceName": "Centraal Insolventieregister (Rechtspraak)",
"text": "Uitspraak surseance van betaling op 10 september 2026 inzake (S.15/26/1101) De Lekkere Dingen Bakkerij B.V, corr.adr. Sluispolderweg 27 1505HJ Zaandam, vest.adr. Sluispolderweg 27 1505HJ Zaandam, KvK: 33120758 hodn De Lekkere Dingen Bakkerij B.V. vest.adr. Sluispolderweg 27 1505HJ Zaandam. Bwv: mr K.A. Martijnse, Robijnstraat 11 1812RB ALKMAAR , Bwv: mr A.G. Moeijes, Velserbeek 1 1981LA VELSEN-ZUID . RC: mr. M.P. de Valk. Deze surseance van betaling is uitgesproken door Rechtbank Amsterdam. De zaak is overgedragen aan Rechtbank Noord-Holland, met bepaling dat Rechtbank Noord-Holland vanaf heden alle taken die de wet aan de rechtbank opdraagt zal vervullen. Alle vervolg advertenties zullen eveneens door deze rechtbank worden verzorgd.",
"checkedAt": "2026-09-15T20:00:00.000Z"
}
}

Pricing

EventNameWhat it meansPrice
apify-actor-startActor startCharged by Apify when a run starts: once for a run of up to 1 GB of memory, and once more for every extra GB. It covers the first five seconds of compute.$0.00005 per run up to 1 GB of memory ($0.05 per 1,000)
case-delivered (primary)Case deliveredOne insolvency publication about a legal entity, normalised: company, registration number, procedure, event, status, ruling date, court and administrator. In monitor mode charged for every case of the first (baseline) run, then for new publications only.$0.02 per case publication ($20.00 per 1,000)

These are list prices, which the Free plan pays. Paid Apify plans pay less for every event except the Actor start: 5% on Apify's Bronze tier, 10% on Silver and 15% on Gold and higher.

Example. A lookup recorded on Tuesday 15 September 2026, with both countries, the default procedures and events and lookbackDays: 2, delivered 25 Dutch and 95 Belgian case publications of 14 and 15 September: 120 × $0.02 = $2.40, plus $0.00005 for the start, $2.40005 for the run. Replayed as a daily watch with a two-day window, the same recorded pages give a first run of 91 × $0.02 = $1.82 plus $0.00005 for the start, $1.82005 (the baseline: the 74 publications of Monday 14 September and the 17 company entries of the WHOA register), and a second run of 46 × $0.02 = $0.92 plus $0.00005, $0.92005 (the new publications of 15 September). The number of publications changes from day to day: 74 on that Monday, 46 on the Tuesday.

The most a run can cost with the default input: maxItems defaults to 2,000 charged case publications per run, so 2,000 × $0.02 = $40.00. Add $0.00005 for the start at the default memory of 512 MB: $40.00005. In a watch, publications it already delivered and changed records are free and do not count toward maxItems. The cap is a ceiling, not a typical cost: the lookup above held 120 case publications over two publication days.

Set your own ceiling. In Apify Console you can set a maximum cost per run in the run options (maxTotalChargeUsd in the API). When a run reaches it, the Actor takes no further charged case: a lookup stops reading at the last case the limit covers, and a watch leaves the new cases that did not fit, uncharged, for a later run.

A lookup charges every case in its window on every run. Scheduled daily with the default lookbackDays of 3, it pays for each publication up to three times. For a daily feed, use monitor mode, which charges a publication once.

A watch pays for its baseline once, on its first run (or after a new stateKey or a change of procedures or events), at the same price per case as a lookup; besides the window, that baseline includes every entry the WHOA register currently lists. A run takes cases in the order of countries: for the Netherlands the insolvency register oldest publication day first, then the WHOA entries; for Belgium the Staatsblad oldest publication day first. A lookup stops reading at the last case that maxItems and your maximum cost per run cover: it reads no further publication day, register or pair of Belgian notices, and a maximum cost per run below one case reads nothing. A run also stops reading the Belgisch Staatsblad when its timeout is near: it starts no search of a Belgian publication day, and no pair of notices, that the time left may not cover at the Staatsblad's pace together with the delivery of the cases taken so far and, when the Netherlands come after Belgium in countries, the time the Dutch registers are expected to need. What it read is delivered and charged as usual, a country after Belgium is still read, and the run log names the days not read; the run ends partial instead of timing out with nothing delivered. A Staatsblad page that is still failing when the time limit ends its retries ends the reading the same way once the run has taken a Belgian case; before that, the Belgian part of the run fails. When the Staatsblad itself ends them (every attempt failed, the ten-minute wait ran its course or had less than two minutes of it left, or the Staatsblad asked for a longer pause than the Actor makes: more than a minute, two during the ten-minute wait), the Belgian part fails at any timeout, as it does without one. A new watch that took no case by then is not recorded and starts in a later run, and the run ends partial. Reading Belgium is paced: the lookup recorded for 14 and 15 September 2026 made 102 and 58 Staatsblad requests, about 2¼ and 1¼ minutes at three requests every four seconds. The default run timeout is 2 hours: enough for both countries over the longest period, 30 days, with every day as busy as the busier recorded one. You can set another timeout in the run options; a shorter one reads less of Belgium, as above. When maxItems or your maximum cost per run ends a first run early, the watch starts from the cases taken until then, and a later run delivers the rest as new cases while their publication day is still inside its lookbackDays window (WHOA entries: while the register lists them). A new watch starts only in a run with room for at least one of its cases after the countries before it, under maxItems and under your maximum cost per run: until then that country is not read or recorded, the run log says why, and the run ends partial, or failed when no other country could be read. Not charged: publications a watch already delivered, debtors who are natural persons (never delivered), and a country whose register did not answer. By default, Belgian notices are read through Apify residential proxies; that traffic is not billed to you. Apify bills you only the events in the table above.

FAQ

How current is the Benelux insolvency data?

The Dutch register publishes on working days and the Actor reads it live; Belgian notices are read by their Staatsblad publication date, the day of the run included. A daily schedule picks up both.

Do you deliver the KvK or KBO number for every case?

For nearly every Dutch company publication (the register prints it) and for every Belgian notice that carries an enterprise number. When a Belgian notice has neither a legal form nor a number, the Actor cannot tell a company from a trader in own name and does not deliver it.

What about suspensions of payment and WHOA in Belgium, or judicial reorganisation in the Netherlands?

They do not exist there; the schema has one procedure field, and each value occurs in the country whose law knows it. A selection that a country's register never publishes skips that country instead of reading it for nothing.

The Rechtspraak's conditions for reuse of the Dutch register require that the data is used to inform participants in trade about insolvencies, and that is the purpose this Actor serves. Every debtor in the feed is a company, which is what keeps it usable under the GDPR for you. The output is not free of personal data even so: administrators carries the names, roles and office addresses of the court-appointed trustees and liquidators, supervisoryJudge the name of the supervisory judge, and text keeps the publication as the register wrote it, so anyone else the court named stays in it. These are natural persons acting in a professional capacity, published by the registers for this purpose. You remain responsible for how long you keep the data (the Dutch conditions say six months after termination) and for your own GDPR basis.

What are the limitations?

  • Luxembourg is not covered. Despite "Benelux" in the name, the Actor reads the Dutch and Belgian registers only: countries accepts NL and BE.
  • Belgian notices must be read through residential proxies because the Staatsblad rejects data-centre traffic; a persistently rejected page makes the Belgian part of the run fail rather than deliver incomplete data, except near the run's timeout (see Pricing).
  • The Dutch register offers about the last month of daily publications; older cases are not available through this Actor.
  • Belgian data comes from the Staatsblad notices, not from the RegSol register: a notice carries what the court published, in the language of the court.
  • Most fields (company name, registration number, address, dates, trustee, supervisory judge) are read from the text of each publication, because the registers publish them as running text. An unusually worded publication can come out with a field empty (2 of the 95 Belgian notices in the lookup recorded for 14 and 15 September 2026 came out without the ruling date they state) or with too much in it (in the output example above, supervisoryJudge runs on into the sentences after the judge's name). text keeps the publication, so you can check a field against it. A publication the Actor cannot assign to a procedure is not delivered; the run log counts it with the publications outside your selection.
  • Hearings and distribution lists are procedural noise for most uses and are off by default.

Support

Found a bug or need a feature? Open an issue on the Actor page.

Last live run against the Centraal Insolventieregister and the WHOA register: 21 September 2026, with the input the Console form opens with. That input is Dutch only; the Belgisch Staatsblad was last read live on 15 September 2026, when the lookup in Pricing was recorded.