Een bedrijfsdatagenerator produceert de set velden die een onboardingformulier voor bedrijven vraagt — een juridische naam met het juiste suffix voor zijn jurisdictie, een registratienummer, een belastingidentificatie, een adres en vaak een rechtsvorm en een contactpersoon — zodanig gerangschikt dat de onderdelen met elkaar overeenstemmen. De moeilijkheid is niet het verzinnen van een bedrijfsnaam; het is het consistent houden van een dozijn onderling afhankelijke identificaties met één enkele jurisdictie.
Deze gids behandelt hoe naamconventies voor bedrijven tussen landen veranderen, waarom registratie- en belastingnummers andere regels volgen dan de meeste teams verwachten, welke velden een KYB-stroom werkelijk nodig heeft, en waarvoor een gegenereerde entiteit nooit mag worden gebruikt. Aan het einde weet je welke consistentiecontroles in je eigen testsuite thuishoren en welke aannames over bedrijfsdata simpelweg onjuist zijn.
Waarom dragen bedrijfsnamen de jurisdictie in het suffix?
Het suffix aan het einde van een bedrijfsnaam is geen versiering. Het identificeert de rechtsvorm waarin de entiteit bestaat, en het is in de meeste jurisdicties verplicht. Een Duitse vennootschap met beperkte aansprakelijkheid draagt GmbH, een Frans of Spaans bedrijf kan S.A. of S.A.S. dragen, een Maleisisch bedrijf draagt Sdn. Bhd., een Australisch bedrijf draagt Pty Ltd, een Amerikaanse vennootschap met beperkte aansprakelijkheid draagt LLC, en een Turkse naamloze vennootschap draagt A.Ş.
Omdat het suffix de rechtsvorm codeert, beperkt het ook de rest van het record. Een entiteit met een GmbH-suffix valt onder Duits vennootschapsrecht, dus volgt haar registratienummer het Duitse patroon, volgt haar belastingidentificatie het Duitse patroon, en ligt haar adres in Duitsland. Een record dat een Duits suffix met een Brits registratienummer mengt, is niet subtiel fout; het beschrijft een bedrijf dat niet kan bestaan.
Leestekens en diakritische tekens voegen een tweede laag toe. Verscheidene suffixen bevatten punten, sommige bevatten letters met accenten, en sommige worden conventioneel zonder spaties geschreven. Een naamveld dat leestekens bij invoer verwijdert, zal een juridische naam corrumperen, en een validator die één suffixlijst verwacht, zal de suffixen afwijzen die hij nooit heeft gezien. Het artikel over bedrijfsnaamsuffixen per land verzamelt de gangbare vormen en hun conventies.
Hoe registratienummers en belastingidentificaties verschillen
Een registratienummer wordt uitgegeven door het handelsregister van een specifieke jurisdictie. De lengte, het formaat en de vraag of het letters bevat, variëren allemaal. Sommige registers gebruiken een zuiver numerieke reeks, sommige bevatten een jaar of een district, en sommige geven een alfanumerieke reeks uit. Er is geen internationale standaard die deze nummers onderling verwisselbaar maakt, en een systeem dat ze in één veld met één validatieregel opslaat, zal geldige invoer uit het grootste deel van de wereld afwijzen.
Een belastingidentificatie is een ander nummer dat door een andere autoriteit wordt uitgegeven, en het door elkaar halen van de twee is een van de meest voorkomende modelleringsfouten in onboardingsystemen. In veel landen heeft een bedrijf zowel een registratienummer als een belastingnummer, ze hebben verschillende formaten, en ze verschijnen in verschillende velden van een formulier. Een record dat beide velden met dezelfde waarde vult, is intern inconsistent, zelfs als elke waarde op zichzelf plausibel is.
De btw-identificatie voegt een derde variant toe. Binnen de Europese Unie begint die meestal met een tweeletterige landcode gevolgd door het binnenlandse belastingnummer, en de landcode moet overeenstemmen met het land van het adres en de registratie. Het artikel over btw-nummerformaten per land toont het bereik aan vormen dat in het spel is, en het artikel over validatieregels voor belasting-ID’s behandelt de controles die ze onderscheiden.
Hoe zit het met LEI- en D-U-N-S-identificaties?
De Legal Entity Identifier is een alfanumerieke code van twintig tekens die wordt toegewezen aan entiteiten die aan financiële transacties deelnemen, en hij is wereldwijd uniek. Het is geen registratienummer en vervangt er ook geen; het is een extra identificatie die een financiële tegenpartij kan opvragen. De structuur bevat een voorvoegsel van een lokale operationele eenheid, een gereserveerd deel, en twee controlecijfers die volgens een gepubliceerde standaard worden berekend.
Het D-U-N-S-nummer is een identificatie van negen cijfers die door een commerciële dataprovider wordt uitgegeven en breed wordt gebruikt bij krediet- en leveranciersbeoordelingen. Het is geen overheidsidentificatie, en het bestaat alleen voor entiteiten die die provider heeft vastgelegd. Het als verplicht behandelen in een formulier zal de meeste bedrijven in de meeste landen uitsluiten.
Beide identificaties zijn het waard om in een testdataset te hebben omdat hun lengte- en tekenregels onderscheidend zijn, en omdat hun aanwezigheid in een formulier het validatiepad verandert. Maar een generator hoort expliciet te zijn over de vraag of de LEI die hij produceert aan de gepubliceerde checksum voldoet, want een goed gevormd uitziende LEI met een verkeerd controlecijfer zal precies falen op het punt dat je probeerde te testen. Het artikel over bedrijfsidentificaties behandelt beide diepgaander.
Welke velden maken een KYB-record samenhangend?
Een know-your-business-stroom vraagt om de juridische naam van een entiteit, haar jurisdictie en rechtsvorm, haar geregistreerde adres, haar registratienummer, haar belastingidentificatie, haar vertegenwoordigers, en vaak haar eigendomsstructuur. De samenhangseis is dat deze velden één entiteit op één plek beschrijven.
Dat betekent dat de jurisdictie de naamconventie, het formaat van het registratienummer en het formaat van het belastingnummer bepaalt. Het geregistreerde adres ligt in hetzelfde land, en als het in een onderverdeling ligt, moet de postcode bij die onderverdeling passen. De vertegenwoordigers dragen namen en adressen die bij de jurisdictie passen, en de oprichtingsdatum gaat vooraf aan elk document dat de entiteit ondertekent. De twee nummers zijn afzonderlijke feiten en een formulier dat ze door elkaar haalt, zal een belastingidentificatie in het registratieveld accepteren, wat een fout is die alleen verschijnt wanneer een jurisdictie één nummer voor beide gebruikt. Het artikel over het bedrijfsregistratienummer per land somt de formaten op die een samenhangcontrole moet handhaven.
Samenhang heeft ook een richting. Het wijzigen van de jurisdictie hoort elk afhankelijk veld mee te trekken, dus een test die het land op een bestaand record omzet, test meer dan een label. In de praktijk doen de meeste formulieren dit niet, en blijft er een verouderd registratienummer achter onder het nieuwe land, en dat is precies het soort fout dat een samenhangende dataset in één run aan het licht brengt in plaats van in productie.
Het veld dat het vaakst de samenhang breekt, is het adres, omdat het het veld is dat teams hergebruiken uit een persoonsrecord zonder het land aan te passen. Een Duits bedrijf met een Britse postcode is een voor de hand liggende fout die een geneste validator onmiddellijk opvangt, en dezelfde logica geldt voor de telefoonlandcode op het contactrecord. Het artikel met de KYB-testchecklist zet de controles uiteen in de volgorde waarin een echte onboardingpijplijn ze toepast.
Er is ook een set velden die veel systemen toevoegen en die helemaal geen universeel formaat hebben: aantal werknemers, jaarlijkse omzet, industriële classificatie en website. Deze zijn vrij of op classificatie gebaseerd, en een testdataset hoort ze bewust te variëren in plaats van elke gegenereerde entiteit identiek te laten in omvang en sector. Ze variëren doet ertoe omdat validatielogica die nooit een ongebruikelijke waarde tegenkomt, validatielogica is die nooit is beoefend.
Zijn gegenereerde bedrijven echte entiteiten?
Nee. Een gegenereerd bedrijf heeft een juridische naam met een geldig suffix, een registratienummer in het juiste formaat, een belastingidentificatie in het juiste formaat en een adres in het juiste land, en niets daarvan is ergens geregistreerd. Er zit geen deponering achter het registratienummer, geen belastingregistratie achter de identificatie, en geen entiteit achter de naam.
Die eigenschap is wat de data veilig maakt om te gebruiken. Omdat het bedrijf niet bestaat, kan geen derde partij door het record worden geschaad, kan geen krediet ertegen worden verstrekt, en kan geen tegenpartij worden misleid als het record duidelijk is gelabeld. Het betekent ook dat elke controle die een register raadpleegt, zal falen, wat de juiste uitkomst is en het verwachte gedrag hoort te zijn in een test. Een gegenereerde bedrijfsnaam hoort daarom ook te voorkomen dat hij met een echte botst, en de eenvoudigste waarborg is om gegenereerde namen overduidelijk generiek te houden in plaats van plausibel genoeg om doorzoekbaar te zijn.
De grens is het waard om ronduit in de dataset zelf te vermelden. Records van dit soort zijn synthetische bedrijfsdata, ze komen overeen met geen geregistreerde entiteit, en ze mogen niet worden gebruikt om een echt account te openen, een echte KYB- of kredietcontrole te doorstaan, goederen of diensten op krediet te verkrijgen, betalingen onder een valse naam te versturen, of enig echt bedrijf te vertegenwoordigen.
Waar een gegenereerd bedrijf met een gegenereerd persoon als vertegenwoordiger wordt gecombineerd, blijft het hele record synthetisch, en hetzelfde verbod geldt voor de combinatie. Een record wordt niet bruikbaar voor een echte transactie omdat het intern consistent is; interne consistentie is een testeigenschap, en niets meer.
Wat moeten je B2B-formuliertests dekken?
Test eerst de koppeling tussen jurisdictie en rechtsvorm, want die stuurt al het andere. Selecteer een land, bevestig dat de aangeboden rechtsvormen degene zijn die dat land erkent, en bevestig dat het suffix in het naamveld tegen de selectie wordt gevalideerd in plaats van vrij te blijven.
Test het registratienummerveld tegen verscheidene landen in dezelfde run, met één waarde van de juiste lengte en één die te kort is. Hier verraadt een enkele hardgecodeerde regel zichzelf, want het veld zal het geldige buitenlandse nummer afwijzen in plaats van het ongeldige lokale.
Test de belastingidentificatie als een afzonderlijk veld met zijn eigen controles, inclusief de landcode waar die wordt verwacht, en bevestig dat het formulier een nummer weigert waarvan de landcode het geselecteerde land tegenspreekt. Het artikel over testgevallen voor factuurformulieren breidt dit uit naar de betalingsnabije delen van de stroom, waar het bedrijfsrecord een factuur ontmoet.
Test ook de volgorde waarin de velden worden gepresenteerd, want één mondiaal formulier legt elke jurisdictie één volgorde op en die volgorde is ergens verkeerd. Een veld dat in het ene land verplicht is en in het andere betekenisloos, wordt voor beide als vereist gemarkeerd, en de resulterende wrijving is een fout die gebruikers als verwarring melden in plaats van als een bug. Het artikel over rechtsvormen per jurisdictie brengt de koppelingen tussen land en rechtsvorm in kaart die een testmatrix zou moeten dekken.
Test daarna de velden die vrij zijn. Een juridische naam met een ampersand, een naam met een punt uit een afkortingssuffix, een naam op de lengtelimiet en een naam één teken daarboven dekken samen de meeste manieren waarop een naamveld breekt. De bedrijvengenerator op deze site produceert records over deze jurisdicties met de identificaties consistent gehouden, zodat één geëxporteerde rij als een samenhangende fixture kan worden gebruikt in plaats van met de hand te worden samengesteld.
Elk record dat op deze manier wordt geproduceerd, is synthetische testdata, alleen voor softwaretesten. Het beschrijft geen geregistreerde of handeldrijvende entiteit, het verleent geen juridisch bestaan, en het mag niet worden gebruikt om een bedrijf na te doen, om echte accounts te openen of te registreren, om krediet of goederen te verkrijgen, of om enige echte bedrijfsverificatie te doorstaan.