ToolForte NL
Pricing
from $5.00 / 1,000 processed items
ToolForte NL
Dutch IBAN, BSN, holiday, holiday allowance, severance and UPA test data tools in bulk, via the ToolForte API.
Pricing
from $5.00 / 1,000 processed items
Rating
0.0
(0)
Developer
ToolForte
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Security
Limited permissionsShare
Run Dutch data tools in bulk. One item in, one dataset row out. You can download the dataset as JSON, CSV, Excel or HTML.
With a ToolForte API key the Actor calls https://toolforte.com/api/v1/tools/<slug>. Without a key, Validate IBAN still runs, locally, on the example in the input form. That demo does not call ToolForte and is not billed as a processed item.
What does ToolForte NL do?
It runs seven ToolForte tools over a list of inputs: IBAN validation, test IBAN and test BSN generation, Dutch public holidays, holiday allowance (vakantiegeld), severance (transition payment) and UPA pension-declaration test data.
It does not scrape websites, and it does not call ToolForte's AI or render endpoints. BSN and IBAN generators return fictional test values.
Why use ToolForte NL?
- Run the same tool on up to 1000 items and pick up a dataset.
- Schedule it, call it from the Apify API, or connect it to other Actors.
- See a real IBAN result from the example input before you create a key.
- Pay Apify per successful item. A bad row is not an
item-processedcharge. ToolForte credits, if you use a key, are billed by ToolForte separately.
What data does it return?
| Field | Meaning |
|---|---|
ok | The item was processed. For IBAN, an invalid number is still ok: true; read result.valid. |
demo | true when no API key was set and nothing was sent to ToolForte. |
status | demo, ok, error, needs_api_key, invalid_api_key, unauthorized or payment_required. |
input | The object you sent. |
result | The tool payload. Live calls unwrap ToolForte's { ok, data } envelope, so this is data. |
error | Why this item failed. |
message | Set on demo rows so a local check is not mistaken for a live ToolForte response. |
How to run it
- Open the Actor and leave the API key empty.
- Keep the prefilled operation Validate IBAN and the example item
{"iban": "NL91 ABNA 0417 1643 00"}. - Start the run. It succeeds with one demo row.
result.validis true,result.bankCodeisABNA, andresult.institution.nameisABN AMRO. - Create a key at https://toolforte.com/developers (it starts with
tf_) and paste it into ToolForte API key when you want live data or any operation other than Validate IBAN. - For other tools, change Operation and replace Items. Examples are in the table below.
See the Input tab for the full form. A saved task or an API call that omits operation or items receives the same example, because both fields have a default.
How much does it cost?
Pay per event, in USD, billed by Apify:
| Event | Price | When |
|---|---|---|
apify-actor-start | 0.002 | Once per run, charged by the platform. Demo runs pay this too. |
item-processed | 0.005 | Once per item ToolForte actually processed. |
Demo rows, validation errors, timeouts, a rejected key and a run that stops because credits are exhausted are not item-processed charges. The Actor charges an item only after that item is in the dataset.
There is no apify-default-dataset-item event. Pushing a row does not add a second per-item fee.
ToolForte credits are separate. A live call spends ToolForte credits on the key you provide. A 402 means that balance is empty; the run fails with ToolForte's message after saving the error row.
Memory defaults to 256 MB and can be raised to 1024 MB. The start event is one charge in that range.
Input
| Field | Required | Default |
|---|---|---|
operation | no | validate_iban |
items | no | [{"iban": "NL91 ABNA 0417 1643 00"}] |
apiKey | no | empty. A secret field. Leave it empty for demo mode. |
items holds at most 1000 objects. Each object is the JSON body of one ToolForte call.
Operations
| operation | endpoint | example item |
|---|---|---|
validate_iban | iban-validator | {"iban": "NL91 ABNA 0417 1643 00"} |
generate_iban | test-iban-generator | {"country": "NL", "count": 3} |
generate_bsn | test-bsn-generator | {"count": 3} |
dutch_public_holidays | dutch-holidays | {"year": 2026} |
dutch_holiday_allowance | dutch-holiday-allowance-calculator | {"monthlySalary": 3500, "monthsWorked": 12} |
severance | dutch-severance-calculator | {"monthlySalary": 3500, "startDate": "2018-01-01", "endDate": "2026-12-31"} |
upa | upa-file-generator | {"format": "summary", "options": {"schemeType": "FPR", "population": {"count": 50, "seed": 1}, "period": {"startYear": 2027, "startMonth": 1, "months": 3}}} |
BSN validation is not offered because ToolForte has no REST endpoint for it.
Output
A live IBAN check:
{"input": { "iban": "NL91 ABNA 0417 1643 00" },"ok": true,"demo": false,"status": "ok","result": {"valid": true,"iban": "NL91ABNA0417164300","country": "NL","countryName": "Netherlands","checkDigits": "91","bankCode": "ABNA","accountNumber": "0417164300"}}
The same input with no API key is demo: true, status: "demo", and result comes from the local check. message says so.
A bad item (missing field, timeout, HTTP 400 or 404) is ok: false and the run continues with the next item. A key that does not start with tf_, a 401, or a 402 fails the run after that error is stored, so the log states the reason instead of printing a stack trace.
Demo mode
Demo mode is on when apiKey is missing or blank and the operation is validate_iban.
The local check cleans spaces, checks the country length, checks the Dutch 4-letter bank code plus 10 digits, and runs the ISO 13616 mod-97 checksum. It names a Dutch bank only for a short list of well-known codes. It does not perform the national check digits the live API adds for some countries. An unknown Dutch bank code can still be a valid IBAN.
Any other operation without a key writes status: "needs_api_key" and does not call the network. The run still succeeds so the explanation is in the dataset.
Tips
- Keep the example input small. One IBAN finishes in well under the Store test limit of 5 minutes.
- UPA files can be large. Prefer
"format": "summary"unless you need the XML. - Each live request waits at most 60 seconds. A timeout becomes an error row, not a stuck run.
- The key is sent only as
Authorization: Bearer tf_...to ToolForte. It is not stored in the dataset and is not written to the log.
FAQ
Does the example input work without a key?
Yes. Validate IBAN runs locally and the run succeeds.
What if my key is rejected?
The run fails with ToolForte's message and one unauthorized row. Create or copy the key again from https://toolforte.com/developers. Keys start with tf_.
Is this a scraper?
No. It does not browse the web and it does not collect private profiles. Generated BSN and IBAN values are test data. A real IBAN you submit is sent to ToolForte only when you set a key, over HTTPS, for a format check. That check does not ask the bank whether the account exists.