Company & Financial Checks
Company Data (KvK)
Verifies a company's registration details via the Dutch Chamber of Commerce (KvK).
{
"checkName": "company-data",
"importance": "SKIPPABLE",
"configuration": {
"checkLevel": "BASIC"
}
}
Check Levels
| Level | Description |
|---|---|
BASIC | Basic KvK data: company name, registration number, legal form, addresses |
EXTENDED | Extended data: all BASIC fields plus UBO information and credit check (optional) |
FULL | Full data: all EXTENDED fields plus additional company insights |
Configuration Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
checkLevel | string | No | Level of detail: BASIC, EXTENDED, or FULL (default: BASIC) |
enableCreditCheck | boolean | No | Enable credit check sub-check (only available for EXTENDED or FULL) |
creditCheckMandatory | boolean | No | If true, the professional cannot proceed without completing the credit check |
Result Fields
| Field | Type | Description |
|---|---|---|
companyName | STRING | Registered company name |
kvkNumber | STRING | KvK registration number |
companyRsin | STRING | RSIN number |
companyLegalForm | STRING | Legal form (e.g. BV, VOF, Eenmanszaak) |
companyAddresses | LIST | Registered addresses |
sbiCodes | LIST | SBI activity codes |
sbiDescriptions | LIST | SBI activity descriptions |
Credit Check
The credit check is an optional sub-check within Company Data. It retrieves a credit assessment from an external data provider and returns a standardised set of fields. No provider name is exposed via the API.
The credit check is only available when company-data is configured with checkLevel: "EXTENDED" or checkLevel: "FULL". Setting enableCreditCheck: true at a lower level has no effect.
Configuration
{
"checkName": "company-data",
"importance": "SKIPPABLE",
"configuration": {
"checkLevel": "EXTENDED",
"enableCreditCheck": true,
"creditCheckMandatory": false
}
}
Set creditCheckMandatory: true if the credit assessment is required to proceed with the screening.
Result Fields
| Field | Type | Description |
|---|---|---|
creditCheckResult | STRING | Current credit rating label (e.g. A, B, C, or NOT_RATED) |
creditCheckDescription | STRING | Human-readable description of the current rating |
creditLimitCurrency | STRING | ISO 4217 currency code for the credit limit (e.g. EUR) |
creditLimitValue | STRING | Credit limit amount |
creditScore | STRING | Numeric credit score from the external data provider |
creditScoreDescription | STRING | Description of the credit score |
creditPod | STRING | Probability of default |
creditRatingChangeDate | STRING | Date of the most recent rating change |
creditPreviousResult | STRING | Previous credit rating label |
creditPreviousDescription | STRING | Human-readable description of the previous rating |
creditPreviousLimitCurrency | STRING | ISO 4217 currency code for the previous credit limit |
creditPreviousLimitValue | STRING | Previous credit limit amount |
creditPreviousProviderDescription | STRING | Description from the external data provider for the previous rating |
Edge Case: Not Rated
When no credit rating is available for a company, the field values will reflect this:
{
"fieldName": "creditCheckResult",
"value": "NOT_RATED",
"verified": true,
"verifiedBy": "otentica",
"verifiedOn": "2025-04-01T09:00:00Z"
},
{
"fieldName": "creditCheckDescription",
"value": "No rating available for this company.",
"verified": true,
"verifiedBy": "otentica",
"verifiedOn": "2025-04-01T09:00:00Z"
}
In this case, creditLimitValue, creditScore, and creditPod may be null.
Privacy & Data Processing (AVG / GDPR)
The credit check is carried out by an external data provider acting as a processor under a data processing agreement. Processing is limited to the purpose of pre-employment screening and company verification. Personal and company data used for the credit check is not retained by Otentica beyond the standard screening retention period. Integration partners should ensure their own processing of these results is consistent with the original screening purpose.
Bank Account Verification
Verifies that a bank account belongs to the expected account holder. Supports both personal and business accounts.
{
"checkName": "bank-data",
"importance": "SKIPPABLE",
"configuration": {
"checkPersonalAccount": true,
"checkBusinessAccount": false
}
}
Configuration Parameters
| Parameter | Type | Description |
|---|---|---|
checkPersonalAccount | boolean | Verify the professional's personal IBAN |
checkBusinessAccount | boolean | Verify a business IBAN (requires company-data) |
Result Fields
| Field | Type | Description |
|---|---|---|
personalIban | STRING | Personal IBAN number |
personalIbanName | STRING | Name of the personal account holder |
personalIbanCountry | STRING | Country of the personal account |
businessIban | STRING | Business IBAN number |
businessIbanName | STRING | Name of the business account holder |
businessIbanCountry | STRING | Country of the business account |
Business Account Enforcement
When checkBusinessAccount: true is configured, the candidate must provide a business IBAN. If a personal IBAN is submitted instead, the API returns the following remark in the response:
business-personal-iban-not-allowed
This remark is returned at the API level and is also reflected in the PDF report and the Otentica dashboard.
Example: Personal Account Result
{
"checkIdentifier": "bank-data",
"status": "SUCCESS",
"results": [
{
"checkName": "bank-data",
"fieldName": "personalIban",
"value": "NL00RABO0123456789",
"verified": true,
"verifiedBy": "otentica",
"verifiedOn": "2025-04-01T09:00:00Z"
},
{
"checkName": "bank-data",
"fieldName": "personalIbanName",
"value": "J. de Vries",
"verified": true,
"verifiedBy": "otentica",
"verifiedOn": "2025-04-01T09:00:00Z"
},
{
"checkName": "bank-data",
"fieldName": "personalIbanCountry",
"value": "NL",
"verified": true,
"verifiedBy": "otentica",
"verifiedOn": "2025-04-01T09:00:00Z"
}
]
}