{"service":"x402 Forge","x402Version":2,"network":"eip155:8453","kinds":[{"id":"payments","name":"Payments and banking","description":"Bank accounts, payment references, payment QR codes and transfer checks.","market":{"endpoints":360,"hosts":181,"snapshot":"2026-11-14"},"products":["iban-nl"]},{"id":"tax","name":"Tax and VAT","description":"VAT amounts and numbers, tax rates, filing deadlines and small business schemes.","market":{"endpoints":398,"hosts":109,"snapshot":"2026-11-14"},"products":["btw-nl"]},{"id":"identifiers","name":"Identifiers and checksums","description":"Company, personal and vehicle numbers: format, check digits and normalisation, without registry lookups.","market":{"endpoints":466,"hosts":176,"snapshot":"2026-11-14"},"products":[]},{"id":"contact","name":"Addresses and phone numbers","description":"Postcodes, addresses and phone numbers: validation and formatting.","market":{"endpoints":271,"hosts":150,"snapshot":"2026-11-14"},"products":["postcode-nl","telefoon-nl"]},{"id":"dates","name":"Dates and business days","description":"Working days, public holidays, deadlines and date arithmetic.","market":{"endpoints":322,"hosts":177,"snapshot":"2026-11-14"},"products":["werkdagen-nl"]},{"id":"amounts","name":"Amounts and currency","description":"Money amounts in words, locale formatting and parsing.","market":{"endpoints":5,"hosts":5,"snapshot":"2026-11-14"},"products":[]},{"id":"hr","name":"HR and payroll","description":"Notice periods, holiday pay, leave and salary rules.","market":{"endpoints":160,"hosts":66,"snapshot":"2026-11-14"},"products":[]},{"id":"bookkeeping","name":"Bookkeeping and compliance","description":"Invoices, collection costs, depreciation and record retention.","market":{"endpoints":12,"hosts":11,"snapshot":"2026-11-14"},"products":[]}],"kits":{"nl-business":{"name":"NL Business Kit","description":"Deterministic helpers for Dutch business data: banking, addresses, phone numbers, VAT and working days.","rules":["Parameters use snake_case and are simple strings, numbers, integers or booleans (they arrive as query parameters).","run() always returns { ok, result, warnings[] } when the request was understood, or { ok: false, error, warnings[] } when parameters are unusable.","A well-formed request about invalid data (an invalid IBAN, a bad postcode) is ok: true with result.valid: false and a machine-readable result.reason.","Error and warning texts are in English; Dutch names (holidays, banks) may stay Dutch.","No network, no randomness, no current time unless the input supplies it: same input, same output.","Dates are ISO YYYY-MM-DD in UTC; money is EUR rounded to cents."]},"eu-payments":{"name":"EU Payments Kit","description":"Deterministic helpers for SEPA payments: EPC QR payloads, RF creditor references, Belgian structured communications, BIC checks and Dutch payment references.","rules":["Parameters use snake_case and are simple strings, numbers, integers or booleans (they arrive as query parameters).","run() always returns { ok, result, warnings[] } when the request was understood, or { ok: false, error, warnings[] } when parameters are unusable.","A well-formed request about invalid data (an invalid IBAN, a bad postcode) is ok: true with result.valid: false and a machine-readable result.reason.","Error and warning texts are in English; Dutch names (holidays, banks) may stay Dutch.","No network, no randomness, no current time unless the input supplies it: same input, same output.","Money is EUR with at most two decimals; amounts arrive as numbers and are checked, never silently rounded.","Follow the published standard exactly (EPC069-12 for QR, ISO 11649 for RF, ISO 9362 for BIC) and name it in meta.description."]},"benelux-id":{"name":"Benelux ID Kit","description":"Offline format and checksum checks for Dutch and Belgian identifiers: licence plates, BSN, RSIN, KvK and Belgian enterprise and VAT numbers.","rules":["Parameters use snake_case and are simple strings, numbers, integers or booleans (they arrive as query parameters).","run() always returns { ok, result, warnings[] } when the request was understood, or { ok: false, error, warnings[] } when parameters are unusable.","A well-formed request about invalid data (an invalid IBAN, a bad postcode) is ok: true with result.valid: false and a machine-readable result.reason.","Error and warning texts are in English; Dutch names (holidays, banks) may stay Dutch.","No network, no randomness, no current time unless the input supplies it: same input, same output.","Only check format and checksum; never claim that a number exists or belongs to someone (no registry is consulted).","Personal numbers (BSN, Belgian national number) are never echoed back in full: return at most a masked form such as ***.**.123.","Normalise input first (strip spaces, dots, dashes, country prefixes) and return the normalised form."]},"amounts":{"name":"Amounts Kit","description":"Deterministic formatting of money amounts: amounts in words for invoices and cheques, and locale-correct currency formatting.","rules":["Parameters use snake_case and are simple strings, numbers, integers or booleans (they arrive as query parameters).","run() always returns { ok, result, warnings[] } when the request was understood, or { ok: false, error, warnings[] } when parameters are unusable.","A well-formed request about invalid data (an invalid IBAN, a bad postcode) is ok: true with result.valid: false and a machine-readable result.reason.","Error and warning texts are in English; Dutch names (holidays, banks) may stay Dutch.","No network, no randomness, no current time unless the input supplies it: same input, same output.","Amounts are numbers with at most two decimals; reject more instead of rounding silently.","Language and locale codes are BCP 47 (nl-NL, nl-BE, de-DE, fr-FR, en-GB); list the supported ones in the input schema enum."]},"nl-operations":{"name":"NL Business Operations Kit","description":"Deterministic rules from Dutch business operations for agents that work as bookkeeper, HR assistant, sales clerk or compliance officer: invoice terms, collection costs, notice periods, holiday pay, VAT deadlines.","rules":["Parameters use snake_case and are simple strings, numbers, integers or booleans (they arrive as query parameters).","run() always returns { ok, result, warnings[] } when the request was understood, or { ok: false, error, warnings[] } when parameters are unusable.","A well-formed request about invalid data (an invalid IBAN, a bad postcode) is ok: true with result.valid: false and a machine-readable result.reason.","Error and warning texts are in English; Dutch names (holidays, banks) may stay Dutch.","No network, no randomness, no current time unless the input supplies it: same input, same output.","Only encode rules that are fixed in Dutch law or official guidance; cite the source (law article or Belastingdienst page) in meta.description.","Figures that change by year (caps, rates) are an input parameter or a dated table with valid_from/valid_to; outside the table the tool says so instead of guessing.","Results are information, not legal or tax advice: add one warning saying so when the rule has exceptions."]}},"products":[{"slug":"btw-nl","name":"VAT calculator (NL)","kit":"nl-business","kind":"tax","description":"Calculate Dutch VAT (btw) at 21%, 9% or 0% from an amount excluding or including VAT, rounded to cents.","price":"$0.001","network":"eip155:8453","url":"https://forge.fizzl.eu/p/btw-nl","try_url":"https://forge.fizzl.eu/try/btw-nl","tags":["vat","btw","tax","invoice","netherlands"],"input_schema":{"type":"object","properties":{"amount":{"type":"number","description":"Amount in EUR"},"rate":{"type":"integer","enum":[21,9,0],"default":21,"description":"VAT rate in percent"},"mode":{"type":"string","enum":["excl","incl"],"default":"excl","description":"Whether amount excludes or includes VAT"}},"required":["amount"]},"input_example":{"amount":100,"rate":21,"mode":"excl"},"output_schema":{"type":"object","properties":{"ok":{"type":"boolean"},"result":{"type":"object","properties":{"excl":{"type":"number"},"btw":{"type":"number"},"incl":{"type":"number"}}},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","warnings"]},"output_example":{"ok":true,"result":{"excl":100,"btw":21,"incl":121,"rate":21,"mode":"excl","currency":"EUR"},"warnings":[]},"quality":{"harness_passed":true,"judge_score":null,"human_reviewed":true,"reviewed_by":"human","origin":"seed"},"package":{"url":"https://forge.fizzl.eu/forge/packages/btw-nl","zip_url":"https://forge.fizzl.eu/forge/packages/btw-nl?format=zip","price":"$1.00","exclusive":true},"sale":"for-sale","owner_copy":null,"seller":null},{"slug":"iban-nl","name":"IBAN check (NL)","kit":"nl-business","kind":"payments","description":"Validate an IBAN with the mod-97 checksum and country length, and name the Dutch bank for NL IBANs.","price":"$0.002","network":"eip155:8453","url":"https://forge.fizzl.eu/p/iban-nl","try_url":"https://forge.fizzl.eu/try/iban-nl","tags":["iban","banking","validation","netherlands"],"input_schema":{"type":"object","properties":{"iban":{"type":"string","description":"IBAN, spaces allowed"}},"required":["iban"]},"input_example":{"iban":"NL91 ABNA 0417 1643 00"},"output_schema":{"type":"object","properties":{"ok":{"type":"boolean"},"result":{"type":"object","properties":{"iban":{"type":"string"},"formatted":{"type":"string"},"valid":{"type":"boolean"},"bank_name":{"type":["string","null"]}}},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","warnings"]},"output_example":{"ok":true,"result":{"iban":"NL91ABNA0417164300","formatted":"NL91 ABNA 0417 1643 00","country":"NL","valid":true,"reason":null,"bank_code":"ABNA","bank_name":"ABN AMRO"},"warnings":[]},"quality":{"harness_passed":true,"judge_score":null,"human_reviewed":true,"reviewed_by":"human","origin":"seed"},"package":{"url":"https://forge.fizzl.eu/forge/packages/iban-nl","zip_url":"https://forge.fizzl.eu/forge/packages/iban-nl?format=zip","price":"$1.00","exclusive":true},"sale":"for-sale","owner_copy":null,"seller":null},{"slug":"postcode-nl","name":"Postcode check (NL)","kit":"nl-business","kind":"contact","description":"Normalise a Dutch postcode to '1234 AB' and check its format, including letter pairs that are never issued (SA, SD, SS). Format check only, no address lookup.","price":"$0.001","network":"eip155:8453","url":"https://forge.fizzl.eu/p/postcode-nl","try_url":"https://forge.fizzl.eu/try/postcode-nl","tags":["postcode","address","validation","netherlands"],"input_schema":{"type":"object","properties":{"postcode":{"type":"string","description":"Postcode in any spacing or case"}},"required":["postcode"]},"input_example":{"postcode":"2105pd"},"output_schema":{"type":"object","properties":{"ok":{"type":"boolean"},"result":{"type":"object","properties":{"normalized":{"type":["string","null"]},"valid":{"type":"boolean"}}},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","warnings"]},"output_example":{"ok":true,"result":{"input":"2105pd","normalized":"2105 PD","digits":"2105","letters":"PD","valid":true,"reason":null},"warnings":["Input was reformatted to 2105 PD"]},"quality":{"harness_passed":true,"judge_score":null,"human_reviewed":true,"reviewed_by":"human","origin":"seed"},"package":{"url":"https://forge.fizzl.eu/forge/packages/postcode-nl","zip_url":"https://forge.fizzl.eu/forge/packages/postcode-nl?format=zip","price":"$1.00","exclusive":true},"sale":"for-sale","owner_copy":null,"seller":null},{"slug":"telefoon-nl","name":"Phone number (NL)","kit":"nl-business","kind":"contact","description":"Normalise a Dutch phone number to E.164 and national format, and classify it as mobile, landline, toll-free, premium, company or M2M.","price":"$0.001","network":"eip155:8453","url":"https://forge.fizzl.eu/p/telefoon-nl","try_url":"https://forge.fizzl.eu/try/telefoon-nl","tags":["phone","e164","normalisation","netherlands"],"input_schema":{"type":"object","properties":{"number":{"type":"string","description":"Phone number in any common Dutch notation"}},"required":["number"]},"input_example":{"number":"06-12345678"},"output_schema":{"type":"object","properties":{"ok":{"type":"boolean"},"result":{"type":"object","properties":{"e164":{"type":["string","null"]},"type":{"type":["string","null"]},"valid":{"type":"boolean"}}},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","warnings"]},"output_example":{"ok":true,"result":{"input":"06-12345678","e164":"+31612345678","national":"0612345678","type":"mobile","valid":true,"reason":null},"warnings":[]},"quality":{"harness_passed":true,"judge_score":null,"human_reviewed":true,"reviewed_by":"human","origin":"seed"},"package":{"url":"https://forge.fizzl.eu/forge/packages/telefoon-nl","zip_url":"https://forge.fizzl.eu/forge/packages/telefoon-nl?format=zip","price":"$1.00","exclusive":true},"sale":"for-sale","owner_copy":null,"seller":null},{"slug":"werkdagen-nl","name":"Working days (NL)","kit":"nl-business","kind":"dates","description":"Count Dutch working days between two dates, or add N working days to a date, skipping weekends and Dutch public holidays (Koningsdag, Easter, Ascension, Whit Monday, Christmas; Liberation Day every 5 years by default).","price":"$0.002","network":"eip155:8453","url":"https://forge.fizzl.eu/p/werkdagen-nl","try_url":"https://forge.fizzl.eu/try/werkdagen-nl","tags":["dates","working-days","holidays","delivery","netherlands"],"input_schema":{"type":"object","properties":{"start":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Start date YYYY-MM-DD"},"end":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"End date YYYY-MM-DD (counts days after start up to and including end)"},"add":{"type":"integer","minimum":-1000,"maximum":1000,"description":"Working days to add (negative = go back)"},"goede_vrijdag":{"type":"boolean","default":false,"description":"Treat Good Friday as a holiday"},"bevrijdingsdag":{"type":"string","enum":["lustrum","always","never"],"default":"lustrum","description":"When Liberation Day (5 May) is a day off"}},"required":["start"]},"input_example":{"start":"2026-12-23","add":3},"output_schema":{"type":"object","properties":{"ok":{"type":"boolean"},"result":{"type":"object","properties":{"date":{"type":"string"},"workdays":{"type":"integer"}}},"warnings":{"type":"array","items":{"type":"string"}}},"required":["ok","warnings"]},"output_example":{"ok":true,"result":{"start":"2026-12-23","add":3,"date":"2026-12-29","holidays_skipped":[{"date":"2026-12-25","name":"Eerste kerstdag"}]},"warnings":[]},"quality":{"harness_passed":true,"judge_score":null,"human_reviewed":true,"reviewed_by":"human","origin":"seed"},"package":{"url":"https://forge.fizzl.eu/forge/packages/werkdagen-nl","zip_url":"https://forge.fizzl.eu/forge/packages/werkdagen-nl?format=zip","price":"$1.00","exclusive":true},"sale":"for-sale","owner_copy":null,"seller":null}]}