KYC-verificatie automatiseren met de Company Belgium API
Ontdek hoe u uw KYC-verificatieprocessen kunt automatiseren door de Company Belgium API te integreren. Codevoorbeelden, use cases en volledige integratiegids voor domiciliatiekantoren.
In het kort
Belgische domiciliatiekantoren kunnen de tijd voor KYC-verificaties met 80 % verminderen door de REST API van Company Belgium te integreren, die directe toegang biedt tot de officiele KBO/BCE-gegevens. In 2 seconden retourneert de API de status, het adres, de rechtsvorm, het BTW-nummer en de uiteindelijk begunstigden van een onderneming — tegenover 30 minuten handmatige verificatie. Elke respons is getimestamped en archiveerbaar voor de AML/KYC-audits die worden vereist door de wet van 18 september 2017.
Inleiding: Automatisering ten dienste van compliance
Domiciliatiekantoren in België worden geconfronteerd met een toename van KYC-verplichtingen (Know Your Customer) in het kader van de strijd tegen witwassen. Handmatige verificatie van elke klant wordt snel tijdrovend en foutgevoelig.
Company Belgium biedt een moderne technologische oplossing: een krachtige REST API die het mogelijk maakt om al uw KYC-verificatieprocessen te automatiseren door directe toegang tot officiële KBO/BCE-gegevens.
In dit artikel begeleiden we u stap voor stap bij de integratie van de Company Belgium API en verminderen we de tijd besteed aan KYC-verificaties met 80%.
Waarom KYC-verificatie automatiseren?
⏱️ Aanzienlijke tijdsbesparing
Een handmatige verificatie van een bedrijf duurt gemiddeld 30 minuten:
- Zoeken op de KBO/BCE-website: 10 min
- Verificatie UBO-register: 8 min
- BTW-validatie: 5 min
- Raadpleging vestigingen: 7 min
Met de Company Belgium API gebeurt deze verificatie in 2 seconden.
> 💡 Impact berekening: Voor een kantoor dat 100 nieuwe klanten/maand verwerkt, betekent dit 50 uur bespaard elke maand, gelijk aan 1,25 FTE!
✅ Gegarandeerde betrouwbaarheid en compliance
- Officiële gegevens: directe toegang tot de KBO/BCE-database (dagelijkse updates)
- Tijdstempel: elke verificatie wordt getimestamped voor audits
- Volledige traceerbaarheid: historiek van alle verzoeken
- AVG-compliance: veilige opslag en conforme bewaartermijn
🚀 Focus op uw kernactiviteit
Bevrijd uw teams van repetitieve administratieve taken zodat ze zich kunnen concentreren op:
- Adviesbegeleiding van klanten
- Grondige risicoanalyse
- Detectie van zwakke signalen
- Commerciële ontwikkeling
Technische architectuur van de integratie
Belangrijkste endpoints voor KYC
De Company Belgium API biedt verschillende essentiële endpoints:
#### 1. Bedrijfsverificatie
1
GET /api/companies/{enterpriseNumber}
Retourneert alle officiële informatie van een bedrijf:
- Status (actief/inactief)
- Rechtsvorm
- Adres maatschappelijke zetel
- BTW-nummer
- Oprichtingsdatum
- Bestuurders
#### 2. UBO-opzoek
1
GET /api/companies/{enterpriseNumber}/ubo
Toegang tot het register van de uiteindelijk begunstigden (indien publiek beschikbaar).
#### 3. Vestigingsverificatie
1
GET /api/companies/{enterpriseNumber}/establishments
Lijst van alle operationele vestigingen van het bedrijf.
#### 4. Peppol-verificatie
1
GET /api/peppol/check?vatNumber={vatNumber}
Controleert of het bedrijf geregistreerd is op het Peppol-netwerk voor elektronische facturering.
Veilige authenticatie
De API gebruikt een dubbel-sleutel systeem om veiligheid te garanderen:
1 2 3 4
const headers = {
class="code-string">'X-API-Key': class="code-string">'pk_live_uw_publieke_sleutel', class="code-comment">// Identificeert uw applicatie
class="code-string">'X-API-Secret': class="code-string">'sk_live_uw_geheime_sleutel', class="code-comment">// Authenticeert het verzoek
};
> ⚠️ Beveiliging: Stel de geheime sleutel nooit bloot aan de client-side! Gebruik deze alleen server-side.
Integratiegids stap voor stap
Stap 1: Uw API-sleutels verkrijgen
Stap 2: SDK-installatie (optioneel)
Voor Node.js/TypeScript:
1 2 3
npm install @company-belgium/sdk
# of
pnpm add @company-belgium/sdk
Voor Python:
1
pip install company-belgium
Stap 3: Initiële configuratie
Node.js / TypeScript
1 2 3 4 5 6 7
import { CompanyBelgiumClient } from class="code-string">'@company-belgium/sdk';
const client = new CompanyBelgiumClient({
publicKey: process.env.CB_PUBLIC_KEY,
secretKey: process.env.CB_SECRET_KEY,
environment: class="code-string">'production', class="code-comment">// of class="code-string">'sandbox' voor tests
});
Python
1 2 3 4 5 6 7
from company_belgium import Client
client = Client(
public_key=os.getenv(class="code-string">'CB_PUBLIC_KEY'),
secret_key=os.getenv(class="code-string">'CB_SECRET_KEY'),
environment=class="code-string">'production'
)
Stap 4: Eerste KYC-verificatie
Volledig TypeScript voorbeeld
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
async function verifyNewClient(enterpriseNumber: string) {
try {
class="code-comment">// 1. Basisverificatie
const company = await client.companies.get(enterpriseNumber);
class="code-comment">// 2. Compliance controles
const checks = {
isActive: company.status === class="code-string">'AC',
hasValidVAT: company.vatNumber !== null,
hasAddress: company.addresses.length > 0,
isNotBankrupt: company.status !== class="code-string">'ST',
createdRecently: isWithinLastYear(company.startDate),
};
class="code-comment">// 3. UBO-register verificatie (indien nodig)
let uboVerified = false;
if (checks.isActive) {
const ubo = await client.companies.getUBO(enterpriseNumber);
uboVerified = ubo !== null && ubo.beneficiaries.length > 0;
}
class="code-comment">// 4. Peppol-verificatie (bonus)
const peppolRegistered = await client.peppol.check(company.vatNumber);
class="code-comment">// 5. KYC-rapport genereren
const kycReport = {
enterpriseNumber,
companyName: company.denomination,
verificationDate: new Date().toISOString(),
checks,
uboVerified,
peppolRegistered,
riskLevel: calculateRiskLevel(checks),
status: allChecksPassed(checks) ? class="code-string">'APPROVED' : class="code-string">'REVIEW_REQUIRED',
};
class="code-comment">// 6. Opslaan voor audit
await saveKYCReport(kycReport);
return kycReport;
} catch (error) {
console.error(class="code-string">'KYC verification failed:', error);
throw new KYCVerificationError(error.message);
}
}
class="code-comment">// Hulpfunctie
function calculateRiskLevel(checks: Checks): class="code-string">'LOW' | class="code-string">'MEDIUM' | class="code-string">'HIGH' {
const passedChecks = Object.values(checks).filter(Boolean).length;
const totalChecks = Object.values(checks).length;
const ratio = passedChecks / totalChecks;
if (ratio >= 0.9) return class="code-string">'LOW';
if (ratio >= 0.7) return class="code-string">'MEDIUM';
return class="code-string">'HIGH';
}
Geavanceerde use cases
Case 1: Geautomatiseerde onboarding
Creëer een volledige klant onboarding workflow:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
async function automaticOnboarding(clientData: ClientData) {
class="code-comment">// Stap 1: Validatie ondernemingsnummer
if (!isValidKBONumber(clientData.enterpriseNumber)) {
return { status: class="code-string">'REJECTED', reason: class="code-string">'Ongeldig KBO-nummerformaat' };
}
class="code-comment">// Stap 2: KYC-verificatie via API
const kycReport = await verifyNewClient(clientData.enterpriseNumber);
class="code-comment">// Stap 3: Automatische beslissing
if (kycReport.status === class="code-string">'APPROVED' && kycReport.riskLevel === class="code-string">'LOW') {
class="code-comment">// Auto-goedkeuring: klantendossier aanmaken
await createClientFile(clientData, kycReport);
await sendWelcomeEmail(clientData.email);
return { status: class="code-string">'APPROVED', clientId: newClientId };
}
class="code-comment">// Stap 4: Handmatige beoordeling voor complexe gevallen
if (kycReport.riskLevel === class="code-string">'HIGH') {
await notifyComplianceOfficer(kycReport);
return { status: class="code-string">'PENDING_REVIEW', reason: class="code-string">'Hoog risico - handmatige beoordeling vereist' };
}
class="code-comment">// Stap 5: Aanvraag aanvullende documenten
await requestAdditionalDocuments(clientData.email, kycReport.missingData);
return { status: class="code-string">'PENDING_DOCUMENTS' };
}
Conclusie
Automatisering van KYC-verificatie via de Company Belgium API transformeert uw compliance-proces radicaal:
✅ 80% tijdsbesparing op verificaties
✅ 100% betrouwbaarheid met officiële KBO/BCE-gegevens
✅ Gegarandeerde compliance met volledige audit trail
✅ Schaalbaarheid: van 10 tot 10.000 verificaties/maand
✅ Directe ROI vanaf de eerste weken
Begin vandaag nog
> 🚀 Lanceringsaanbieding: Eerste maand gratis op het Professional plan met code AUTOKYC2026
Vragen? Ons team staat tot uw beschikking om u te begeleiden bij uw integratie.
👉 Neem contact op of Boek een demo
---
Gerelateerde artikelen:
Veelgestelde vragen
Hoe automatiseer je KYC-verificatie van een Belgisch bedrijf met de KBO/BCE-API?
Via de Company Belgium-API roept u achtereenvolgens het endpoint GET /api/companies/{nummer} aan voor status, rechtsvorm, adres en BTW-nummer, en vervolgens GET /api/companies/{nummer}/ubo voor toegang tot het UBO-register indien publiek beschikbaar. Elke respons is getimestamped. U kunt vervolgens automatisch een risiconiveau berekenen en een onmiddellijke goedkeuring, handmatige beoordeling of aanvraag om aanvullende documenten triggeren op basis van het resultaat.
Is KYC-verificatie via de BCE-API conform de Belgische antiwitwaswet van 18 september 2017?
De Company Belgium-API geeft toegang tot de officiele KBO/BCE-gegevens, die een erkende referentiebron vormen voor de identiteitsverificatie van rechtspersonen. Voor volledige conformiteit met de wet van 18 september 2017 moet u een volledig audit trail bewaren van elke verificatie met tijdstempel, resultaat en bron, gedurende minimaal 10 jaar. De API levert de tijdstempel en traceerbaarheid; de bewaring valt onder uw documentbeheersysteem.
Hoelang duurt een geautomatiseerde KYC-verificatie versus handmatig voor een Belgisch domiciliatiekantoor?
Een handmatige verificatie duurt gemiddeld 30 minuten: 10 minuten zoeken op de KBO/BCE-website, 8 minuten voor het UBO-register, 5 minuten voor BTW-validatie en 7 minuten voor vestigingen. Met de Company Belgium-API wordt dezelfde verificatie in circa 2 seconden uitgevoerd. Voor een kantoor dat 100 nieuwe klanten per maand verwerkt, bespaart automatisering circa 50 uur per maand.
Hoe omgaan met inactieve of failliete bedrijven in een geautomatiseerd KYC-proces in Belgie?
De API retourneert het veld status voor elk bedrijf: AC betekent actief, ST betekent gestopt, FA betekent faillissement. Uw KYC-code moet deze gevallen specifiek behandelen. Voor een bedrijf met status ST bewaart u de historische gegevens voor AML-conformiteit (bewaarverplichting van 10 jaar). Voor status FA triggert u een onmiddellijke melding aan het compliance-team. De KBO/BCE bewaart gegevens ook van gestopte bedrijven, wat de traceerbaarheid garandeert.
Reacties
Gerelateerde artikelen

Belgian Crossroads Bank for Enterprises (KBO) API: volledige Engelstalige developer-documentatie
Engelstalige developer-documentatie voor de API van de Belgische Kruispuntbank van Ondernemingen. Overzicht van het KBO/BCE-register, wettelijke context, toegangsopties, snelle start met cURL-voorbeelden en integratiepatronen voor internationale developers.

Rate limits, quota en caching om een KBO/BCE-applicatie te schalen: referentie-architectuur
Uw app bevraagt de KBO/BCE-API in volume — hoe 429's vermijden, kosten beheersen en latency garanderen? Referentie-architectuur met meerlaags cache, requestwachtrij, observability en webhooks. Concrete patronen en streefcijfers.

BCE/KBO API endpoints reference: volledige lijst van REST-routes (companies, addresses, NACE, UBO, vestigingen, Peppol)
Technische referentie van de REST-endpoints van de Company Belgium-API: zoeken, bedrijfsfiche, adressen, NACE-activiteiten, vestigingen, bestuurders, UBO, Peppol-verificatie. Met responsschema's, parameters en foutcodes.
