B2B E-commerce in Nederland: Bedrijfsvalidatie bij Registratie
· KVKBase Team

B2B E-commerce in Nederland: Bedrijfsvalidatie bij Registratie

Waarom elke Nederlandse B2B-webshop KVK-validatie nodig heeft. Fraudepreventie, factureringsaccuratesse en klantregistratie verbeteren.

b2becommercevalidatie

B2B E-commerce in Nederland: Bedrijfsvalidatie bij Registratie

In de wereld van B2C e-commerce is een naam en e-mailadres vaak genoeg om een klant te laten bestellen. In B2B liggen de eisen fundamenteel anders. Je verkoopt op rekening, hanteert afwijkende BTW-regels en moet correcte facturen sturen naar juridisch geregistreerde entiteiten.

Zonder bedrijfsvalidatie bij registratie bouw je op drijfzand. In dit artikel leggen we uit waarom KVK-validatie essentieel is voor elke Nederlandse B2B-webshop en hoe je het implementeert.

Waarom bedrijfsvalidatie cruciaal is

1. Fraudepreventie

B2B-fraude in e-commerce neemt toe. Een veelvoorkomend patroon: iemand registreert zich als bedrijf, bestelt op rekening en verdwijnt. Zonder validatie heb je geen idee of het opgegeven bedrijf echt bestaat.

Door het KVK-nummer te verifieren bij registratie, controleer je:

  • Of het bedrijf daadwerkelijk is ingeschreven bij de KVK
  • Of het bedrijf nog actief is (niet uitgeschreven)
  • Of de opgegeven bedrijfsnaam overeenkomt met het register
  • Of het adres klopt

Dit sluit het gros van de nep-registraties uit. Een fraudeur die een willekeurig KVK-nummer invult, wordt direct doorgeprikt als de naam niet overeenkomt.

2. Correcte facturatie

Een factuur aan een zakelijke klant moet volgens de wet bepaalde gegevens bevatten:

  • De volledige juridische naam van het bedrijf
  • Het adres
  • Het KVK-nummer
  • Het BTW-nummer (bij BTW-plichtige transacties)

Als een van deze gegevens onjuist is, kan de klant de factuur afkeuren. Dat leidt tot vertraging, handmatige correcties en in het slechtste geval betalingsproblemen.

Door gegevens bij registratie op te halen uit het handelsregister, weet je zeker dat je facturen correct zijn vanaf de eerste bestelling.

3. BTW-compliance

Bij B2B-transacties binnen Nederland reken je standaard 21% BTW. Maar bij intracommunautaire leveringen (ICL) — verkoop aan bedrijven in andere EU-landen — geldt de BTW-verlegging. Hiervoor moet je:

  1. Controleren dat je klant een geldig BTW-nummer heeft
  2. Het BTW-nummer verifieren via VIES
  3. Het geverifieerde nummer op de factuur vermelden

Zonder deze verificatie ben je alsnog BTW verschuldigd over de transactie.

4. Klantervaring verbeteren

Validatie klinkt restrictief, maar het verbetert juist de klantervaring. In plaats van een formulier met tien velden handmatig in te vullen, voert de klant een KVK-nummer in en worden de overige velden automatisch aangevuld.

Het resultaat: minder typewerk, geen fouten en een professionele indruk.

Implementatie: stap voor stap

Stap 1: KVK-nummer als verplicht veld

Voeg het KVK-nummer toe als verplicht veld in je registratieformulier. Valideer het format client-side:

function validateKvkInput(input) {
  const cleaned = input.replace(/\D/g, '');

  if (cleaned.length !== 8) {
    return { valid: false, message: 'Een KVK-nummer bestaat uit 8 cijfers' };
  }

  return { valid: true, value: cleaned };
}

Stap 2: Real-time lookup

Zodra de gebruiker een geldig 8-cijferig nummer invoert, doe je een lookup via de API:

async function onKvkInput(kvkNumber) {
  const validation = validateKvkInput(kvkNumber);
  if (!validation.valid) {
    showError(validation.message);
    return;
  }

  showLoading('Bedrijfsgegevens ophalen...');

  try {
    const response = await fetch(`/api/kvk/${validation.value}`);
    const company = await response.json();

    if (!company.isActive) {
      showError('Dit bedrijf is niet meer actief bij de KVK');
      return;
    }

    fillFormFields(company);
    showSuccess(`${company.tradeName} gevonden`);
  } catch {
    showError('Kon bedrijfsgegevens niet ophalen');
  }
}

Stap 3: Gegevens tonen ter bevestiging

Laat de opgehaalde gegevens zien aan de klant. Dit dient twee doelen: de klant kan controleren of het juiste bedrijf is gevonden, en je toont transparant welke data je gebruikt.

<div id="company-details" class="company-card">
  <h3 id="company-name">Voorbeeld BV</h3>
  <dl>
    <dt>KVK-nummer</dt>
    <dd id="kvk-display">12345678</dd>

    <dt>Adres</dt>
    <dd id="address-display">Voorbeeldstraat 1, 1234AB Amsterdam</dd>

    <dt>Rechtsvorm</dt>
    <dd id="legal-form-display">Besloten Vennootschap</dd>

    <dt>Status</dt>
    <dd id="status-display">Actief</dd>
  </dl>
</div>

Stap 4: Server-side verificatie

Vertrouw nooit alleen op client-side validatie. Verifieer het KVK-nummer nogmaals server-side voordat je het account aanmaakt:

// Server-side (Node.js)
app.post('/api/register', async (req, res) => {
  const { kvkNumber, email, contactName } = req.body;

  // Verifieer KVK-nummer
  const company = await kvkbase.lookup(kvkNumber);
  if (!company) {
    return res.status(400).json({ error: 'KVK-nummer niet gevonden' });
  }

  if (!company.isActive) {
    return res.status(400).json({ error: 'Bedrijf is niet actief' });
  }

  // Check op duplicaten
  const existing = await db.companies.findByKvk(kvkNumber);
  if (existing) {
    return res.status(409).json({ error: 'Dit bedrijf is al geregistreerd' });
  }

  // Maak account aan met geverifieerde gegevens
  const account = await db.companies.create({
    kvkNumber: company.kvkNumber,
    tradeName: company.tradeName,
    legalForm: company.legalForm,
    address: company.address,
    vatNumber: company.vatNumber,
    contactEmail: email,
    contactName: contactName,
    verifiedAt: new Date()
  });

  res.status(201).json({ accountId: account.id });
});

Stap 5: De KVKBase Widget

De snelste manier om dit te implementeren is met de KVKBase widget. Eén scripttag en je hebt een volledig werkende lookup in je registratieformulier:

<script src="https://widget.kvkbase.nl/kvk-lookup.js"
        data-api-key="YOUR_KEY"></script>

<kvk-lookup
  id="registration-kvk"
  placeholder="Voer je KVK-nummer in"
></kvk-lookup>

<script>
document.getElementById('registration-kvk')
  .addEventListener('kvkbase:found', (e) => {
    const c = e.detail;
    document.getElementById('reg-name').value = c.tradeName;
    document.getElementById('reg-address').value =
      `${c.address.street} ${c.address.houseNumber}`;
    document.getElementById('reg-city').value = c.address.city;
    document.getElementById('reg-vat').value = c.vatNumber || '';
  });
</script>

Wat als een klant geen KVK-nummer heeft?

Niet elke klant is een Nederlands bedrijf. Overweeg deze scenario’s:

  • Buitenlandse bedrijven: vraag om een BTW-nummer en valideer via VIES
  • Particulieren: als je ook aan consumenten verkoopt, bied dan een apart registratiepad aan
  • Overheidsinstellingen: deze staan ook in het handelsregister en hebben een KVK-nummer

Resultaten in de praktijk

B2B-webshops die KVK-validatie implementeren, rapporteren doorgaans:

  • Significante afname van frauduleuze registraties
  • Minder creditnota’s door correcte facturatiegegevens
  • Snellere klantonboarding door auto-fill
  • Minder handmatig correctiewerk voor het backoffice-team

De investering in een goede KVK-validatie betaalt zich snel terug in minder operationele kosten en betrouwbaardere klantdata.

Conclusie

Bedrijfsvalidatie bij registratie is geen luxe voor een B2B-webshop — het is een noodzaak. Het beschermt je tegen fraude, garandeert correcte facturatie en verbetert tegelijkertijd de klantervaring.

Met KVKBase kun je validatie toevoegen via de embeddable widget (minuten werk) of via de REST API (meer flexibiliteit). In beide gevallen krijg je gevalideerde data rechtstreeks uit het handelsregister, klaar om op te slaan en te gebruiken in je hele bedrijfsproces.