Validatie- en formatteringshulpmiddelen voor Nederlandse zakelijke gegevens: BSN,
RSIN, KVK-nummer, btw-nummer, IBAN, postcode en telefoonnummer, plus een kleine
btw-rekenmodule. Geen dependencies, target netstandard2.0 (werkt op .NET
Framework 4.6.1+, .NET Core 2.0+ en alle moderne .NET-versies).
Ook beschikbaar voor Node.js: nl-business-utils op npm.
dotnet add package NLBusinessUtilsusing NLBusinessUtils;
Bsn.IsValid("123456782"); // true
KvkNumber.IsValid("12345678"); // true
Iban.IsValidDutch("NL91ABNA0417164300"); // true
Iban.Format("nl91abna0417164300"); // "NL91 ABNA 0417 1643 00"
Postcode.IsValidDutch("1234ab"); // true
Postcode.FormatDutch("1234ab"); // "1234 AB"
PhoneNumber.IsValidDutch("06-12345678"); // true
PhoneNumber.FormatDutch("06-12345678"); // "+31612345678"
VatCalculator.AddVat(100m, VatRates.Standard); // 121
VatCalculator.RemoveVat(121m, VatRates.Standard); // 100-
Bsn.IsValid(string value) : bool— valideert een burgerservicenummer met de elfproef. Accepteert 8 of 9 cijfers. -
Bsn.Normalize(string value) : string— geeft de canonieke 9-cijferige vorm terug, of gooit eenArgumentException. -
Rsin.IsValid(string value) : bool/Rsin.Normalize(string value) : string— zelfde elfproef, voor rechtspersonen.
-
KvkNumber.IsValid(string value) : bool— controleert of de invoer uit precies 8 cijfers bestaat.De KVK publiceert geen checksum-algoritme voor haar nummers. Dit is dus een formaatcontrole, geen bewijs dat het nummer daadwerkelijk geregistreerd is — gebruik hiervoor de KVK API.
-
VatNumber.IsValidFormat(string value) : bool— controleert de structuurNL+ 9 cijfers +B+ 2 cijfers (01-99). -
VatNumber.HasValidLegacyChecksum(string value) : bool— controleert de elfproef op het 9-cijferige deel.Let op: dit werkt alleen voor btw-nummers van vóór 2020, die zijn afgeleid van het BSN/RSIN. Sinds 1 januari 2020 krijgen natuurlijke personen (eenmanszaken/zzp'ers) een nieuw, privacy-vriendelijk nummer dat per ontwerp niet aan de elfproef voldoet — de Belastingdienst heeft het algoritme daarachter niet gepubliceerd. Een
falseresultaat betekent dus niet automatisch dat het nummer ongeldig is. Gebruik voor zekerheid de VIES-dienst van de EU. -
VatNumber.Format(string value) : string— canoniekeNLxxxxxxxxxBxx-vorm, of gooit eenArgumentException.
-
Iban.IsValidDutch(string value) : bool— structuur + MOD-97 checksum (ISO 13616). -
Iban.Format(string value) : string— groepeert in blokken van 4, bv.NL91 ABNA 0417 1643 00.
-
Postcode.IsValidDutch(string value) : bool— 4 cijfers (1000-9999) + 2 letters, met of zonder spatie. Sluit de door PostNL nooit uitgegeven combinatiesSS,SA,SDuit. -
Postcode.FormatDutch(string value) : string— normaliseert naar1234 AB.
-
PhoneNumber.IsValidDutch(string value) : bool— nationaal (0...) of met+31/0031prefix, 10 cijfers. Formaatcontrole, geen controle tegen een netnummer-database. -
PhoneNumber.IsDutchMobile(string value) : bool—truevoor mobiele nummers (06...). -
PhoneNumber.FormatDutch(string value) : string— E.164-formaat, bv.+31612345678.
-
VatRates.Standard/VatRates.Reduced/VatRates.Zero—21m,9m,0m. VatCalculator.CalculateVatAmount(decimal bedragExclBtw, decimal tarief) : decimalVatCalculator.AddVat(decimal bedragExclBtw, decimal tarief) : decimalVatCalculator.RemoveVat(decimal bedragInclBtw, decimal tarief) : decimal
Alle bedragen worden op hele centen afgerond (MidpointRounding.AwayFromZero).
MIT — gratis te gebruiken, ook commercieel.