Financial Integrity Checks
Three checks screen the financial integrity of a natural person: insolvency, guardianship/administration, and credit registration. They are presented together as "Financial integrity" in the Otentica dashboard, but each is requested independently and returns its own result fields.
Financial integrity screening reaches into a candidate's personal circumstances, and the credit registration check most of all — the candidate supplies a complete overview of their own credit agreements, including entries that have no bearing on the role. Only request these checks for roles where you have a documented lawful basis, and complete a DPIA before rolling them out. See Privacy & Data Processing below.
Adverse-Finding Convention
All three checks follow the same convention as the PEP and sanctions checks: no hit is the clean outcome.
| Result | completedAsExpected | Meaning |
|---|---|---|
No hit | true | Nothing found. The clean outcome |
Hit | false | A finding was returned. Flagged for attention |
Uncertain | false | The source could not give a definitive answer. Flagged for attention |
Uncertain is not No hitUncertain means the register could not answer — a technical failure, too many matches, or a name match that could not be confirmed against the verified identity. Treating it as a clean result silently converts an unanswered question into a pass.
Insolvency Check (CIR)
Queries the Dutch Centraal Insolventieregister (Central Insolvency Register) for a natural person, using last name, name prefix, date of birth and — where available — postal code and house number.
{
"checkName": "insolvency-data",
"importance": "SKIPPABLE"
}
The API name is insolvency-data. The internal alias cir is accepted on input, but the API always returns insolvency-data in checkIdentifier and in the content type. Use insolvency-data.
The check requires lastName and dateOfBirth, so it runs after the identity step. No additional input is required from the candidate.
Configuration Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
confirmSkip | boolean | No | Require explicit confirmation when the candidate skips this check |
confirmSkipMessage | string | No | Message shown when confirming a skip |
Result Fields
Always present:
| Field | Type | Values / Format |
|---|---|---|
cirCheckResult | STRING | Hit / No hit / Uncertain |
cirCheckDate | DATE | Date the check was performed |
Present only on a hit:
| Field | Type | Values / Format |
|---|---|---|
cirInsolvencyType | STRING | faillissement / surseance van betaling / schuldsanering (WSNP) |
cirCourt | STRING | Court handling the insolvency |
cirPublicationDate | DATE | Publication date of the insolvency |
cirMatchedName | STRING | Name of the matched person |
cirCheckDate matters: the result is a point-in-time snapshot. A No hit is not a guarantee about any later date.
Example Result
{
"checkIdentifier": "insolvency-data",
"status": "SUCCESS",
"contentType": "application/vnd.otentica.singlecheck.check.insolvency-data+json",
"importance": "SKIPPABLE",
"completedAsExpected": true,
"results": [
{
"group": null,
"checkName": "insolvency-data",
"fieldName": "cirCheckResult",
"value": "No hit",
"verified": true,
"verifiedBy": "otentica",
"verifiedOn": "2026-09-18T09:20:11.024113Z"
},
{
"group": null,
"checkName": "insolvency-data",
"fieldName": "cirCheckDate",
"value": "2026-09-18",
"verified": true,
"verifiedBy": "otentica",
"verifiedOn": "2026-09-18T09:20:11.024390Z"
}
]
}
Guardianship Check (CCBR)
Queries the Dutch Centraal Curatele- en Bewindregister (Central Guardianship and Administration Register) for a natural person, using name prefix, last name and date of birth. Only published guardianship and administration orders appear in this register.
{
"checkName": "guardianship-data",
"importance": "SKIPPABLE"
}
The API name is guardianship-data. The internal alias ccbr is accepted on input, but the API always returns guardianship-data. Use guardianship-data.
Configuration Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
confirmSkip | boolean | No | Require explicit confirmation when the candidate skips this check |
confirmSkipMessage | string | No | Message shown when confirming a skip |
Result Fields
Always present:
| Field | Type | Values / Format |
|---|---|---|
ccbrCheckResult | STRING | Hit / No hit / Uncertain |
ccbrCheckDate | DATE | Date the check was performed |
ccbrVerificationCode | STRING | Audit — the register's VerificatieCode, proof the lookup took place |
Present only on a hit:
| Field | Type | Values / Format |
|---|---|---|
ccbrRegisterType | STRING | CB (curatele / guardianship) or BM (bewind / administration of adults) |
ccbrGround | STRING | Ground code, e.g. 01 for squandering or problematic debts — the strongest financial signal in this register |
ccbrRestrictedAdministration | STRING | "true" / "false" — whether the order is a restricted administration |
ccbrValidFrom | DATE | Start date of validity |
ccbrPublicationDate | DATE | Publication date |
ccbrMatchedName | STRING | Name of the matched person |
ccbrVerificationCode is deliberately excluded from the candidate-facing PDF report — it is an opaque code with no meaning to a report reader — but it is returned over the API for your audit trail.
Credit Registration Check (BKR)
Otentica does not query the BKR. The candidate requests their own credit overview ("Mijn Kredietoverzicht") from the BKR and uploads it, after which it is read and assessed. The result is only as reliable as the document the candidate supplied.
{
"checkName": "credit-registration-data",
"importance": "SKIPPABLE",
"configuration": {
"requireCertifiedOverview": false,
"slaWorkingDays": 10,
"confirmAuthorizationDeclaration": true
}
}
Configuration Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
requireCertifiedOverview | boolean | No | When true, only a certified (gewaarmerkt, posted) overview is accepted |
slaWorkingDays | integer | No | Working days the candidate has to deliver a required certified overview |
confirmAuthorizationDeclaration | boolean | No | Require the candidate to accept the authorisation declaration before uploading |
confirmSkip | boolean | No | Require explicit confirmation when the candidate skips this check |
Candidate Input
| Field | Type | Required | Description |
|---|---|---|---|
file | FILE | Yes | The credit overview as a PDF |
additionalFiles | LIST | No | Extra pages or photos of the same overview, for candidates who could not produce one combined file. All pages are merged before analysis, so a finding on a later page is never missed |
orderConfirmationFile | FILE | No | Candidate-supplied proof that a certified overview was ordered. Never confirmed by the BKR |
orderReference | STRING | No | Order reference the candidate received |
The ASYNC_WAITING State
When requireCertifiedOverview is true and the candidate supplies a free self-printed overview, the check enters status ASYNC_WAITING while the certified overview is delivered by post. bkrCheckResult is Pending during this period.
This check can remain in ASYNC_WAITING for days or weeks. It has not failed and needs no action from you. Make sure your integration does not treat a long-running ASYNC_WAITING as an error or a stalled screening.
Result Fields
| Field | Type | Values / Format |
|---|---|---|
bkrCheckResult | STRING | Hit / No hit / Uncertain / Pending |
bkrCheckDate | DATE | Date the overview was assessed |
bkrOverviewDate | DATE | The date printed on the overview itself |
bkrDocument | FILE | File ID of the uploaded overview |
bkrAdditionalDocuments | LIST | File IDs of any extra pages |
bkrDocumentType | STRING | free (self-printed) or gewaarmerkt (certified) |
bkrRegisterVerified | STRING | "true" only when the overview is certified and the certification mark was detected |
bkrNegativeRegistration | STRING | "true" / "false" |
bkrArrearsCoding | STRING | Arrears codes found on the overview, e.g. A |
bkrSpecialCoding | STRING | Special codes found on the overview, e.g. H — the strongest negative signal |
bkrCreditCount | STRING | Number of registered credits (from EUR 250) |
bkrArrearsCount | STRING | Number of reported payment arrears |
bkrOrderReference | STRING | Order reference for a certified overview (self-reported) |
bkrRequestStatus | STRING | NEW / REQUESTED / AWAITING_DELIVERY / UPLOADED / VERIFIED / ERROR |
bkrOrderConfirmation | FILE | File ID of the order confirmation |
A Hit means a negative registration is present: a special code, arrears, or a payment arrangement. Uncertain means the overview was unreadable, ambiguous, or suspected of tampering, and needs human assessment.
bkrRegisterVerified is the field that tells you how much assurance you actually have. A free overview is candidate-declared and returns "false"; only a certified overview with a detected certification mark returns "true". bkrRequestStatus and bkrOrderConfirmation are excluded from the PDF report but returned over the API.
Privacy & Data Processing (AVG / GDPR)
Financial integrity screening processes data about a candidate's personal financial position. It is a materially heavier intrusion than the identity or education checks, and the credit registration check is the heaviest of the three.
- Lawful basis and DPIA. Only deploy these checks for roles where a documented lawful basis exists and a DPIA has been completed. They are not appropriate as a default part of every screening.
- Proportionality. Request only the register you need for the role. Insolvency and guardianship are public registers and a lighter intrusion than a full credit overview; start there and add the credit registration check only where the role genuinely warrants it.
- Data minimisation. For a go/no-go decision you need only
cirCheckResult,ccbrCheckResultandbkrCheckResult. The detail fields returned on a hit — and above all the uploaded credit overview itself — generally do not need to be copied into your own systems. - Retention. For the insolvency check Otentica stores only the minimal verification fact, never the full register response, in line with the register's six-month destruction obligation. Anything you copy into your own systems falls under your own retention policy.
These checks are enabled per environment. If insolvency-data, guardianship-data or credit-registration-data is not available on your account, contact Otentica to have it enabled.