Skip to content

Facts and credential assertions

Dockt exposes evidence at two levels:

  • A Document’s facts describe values read from that specific file.
  • A Decision’s facts contain a smaller allowlisted set of values resolved across the Assessment, with subject and source lineage.

Documents can also include verifications, enrichment.checks, and credential_assertions when Dockt performs applicable authoritative or external checks.

Use this page as the value and code reference after you know which response field you are handling.

Document.facts is an object keyed by fact name. Every key contains an array because one file can contain the same kind of value more than once.

{
"facts": {
"holder_name": [
{ "value": "Amina Diallo", "confidence": 0.99 }
],
"valid_until": [
{ "value": "2027-05-17", "confidence": 0.96 }
]
}
}

Each entry contains:

Field Type Meaning
value string, number, boolean, object, or null Extracted value. Dates use YYYY-MM-DD strings when a calendar date is available.
confidence number or null Extraction confidence from 0 to 1, or null when no confidence is available. Confidence is not a verification result.

Only facts found on the file are returned. A missing key means Dockt didn’t expose a value for that fact; it doesn’t by itself mean that the document is invalid. Use document_result, issues, and findings for the conclusion.

Key Value type Meaning
document_type string Document type stated or identified for the file.
certificate_type string Certificate category or qualification type shown on the document.
document_number string General identifier printed on the document.
authority_check_url string URL printed on the document for an authority or validity check.
authority_check_reference string Reference value used with an authority check, such as a validation code.
diploma_number string Diploma, certificate, or equivalent evidence number.
issue_date date Date on which the document was issued.
valid_from date First date on which the document or authorization is valid.
valid_until date Last date on which the document or authorization is valid.
issuing_body string Organization or authority that issued the document.
issuer_name string Issuer name as shown on the document.
issuing_center string Issuing, examination, or training center.
issuer_country string Country associated with the issuer.
document_country string Country to which the document belongs or in which it was issued.
language string Language identified for the document.
Key Value type Meaning
holder_name string Full name of the person who holds the document or credential.
first_name string Holder’s first or given name.
last_name string Holder’s last or family name.
date_of_birth date Holder’s date of birth.
nationality string Holder’s nationality as printed or encoded on the document.
person_identifier string Person-specific identifier other than a document number.
identity_document_number string Passport, identity card, or other identity-document number.
Key Value type Meaning
employer_name string Legal or stated name of the worker’s employer.
employer_registration_type string Type of employer registration identifier shown.
employer_registration_number string Employer registration identifier.
employer_country string Country in which the employer is established or registered.
employer_address string Employer address shown on the document.
employer_vat_number string Employer VAT identifier.
service_recipient_name string Name of the customer or organization receiving the service.
service_recipient_registration_type string Type of registration identifier used for the service recipient.
service_recipient_registration_number string Service recipient’s registration identifier.
kbo_number string Belgian Crossroads Bank for Enterprises registration number.
company_registration_status string Company registration state shown by the evidence.
declaration_of_works_number string Reference for a Declaration of Works or equivalent chain registration.
Key Value type Meaning
assignment_start_date date Date on which the assignment starts.
assignment_end_date date Date on which the assignment ends.
assignment_activity string Work or activity described for the assignment.
worksite_name string Name of the site where the work takes place.
worksite_address string Address of the worksite.
project_reference string Project, site, or assignment reference.
social_security_country string Country whose social-security system covers the worker.
posting_declaration_number string Identifier of a worker-posting declaration or notification.
notification_status string Status stated for the posting or other notification.
employment_registration_number string Identifier of an employment registration.
employment_start_date date Employment start date shown in the evidence.
employment_end_date date Employment end date shown in the evidence.
contract_type string Employment or engagement contract type.
wage_amount number Wage amount stated in the evidence. Read wage_period before interpreting it.
wage_period string Period or frequency associated with wage_amount.
Key Value type Meaning
accommodation_address string Address of accommodation provided or declared for the worker.
accommodation_capacity number Number of people the accommodation evidence states it can house.
approval_authority string Person, role, or organization that granted an approval.
approval_date date Date on which the approval was granted.
approval_scope string Work, site, or exception covered by the approval.
Key Value type Meaning
work_permit_number string Work-authorization or work-permit identifier.
residence_permit_number string Residence-permit identifier.
permit_type string Type or category of work or residence permit.
permit_scope string Work, location, employer, or activity covered by the permit.
permit_remarks string Conditions or remarks printed on the permit.
legal_basis string Legal basis stated for the authorization or exemption.
vander_elst_reference string Reference associated with Vander Elst evidence.
prior_residence_days number Number of days of prior legal residence supported by the evidence.
permit_covers_assignment boolean Whether the evidence states that the permit covers the evaluated assignment.
employer_match_status string Result of comparing the employer across relevant evidence.
Key Value type Meaning
debt_check_date date Date on which fiscal or social debt status was checked.
debt_status string Fiscal or social debt state returned by the evidence.
check_in_reference string Reference for a worksite attendance registration.
check_in_at string Check-in timestamp as supplied by the evidence.
check_out_at string Check-out timestamp as supplied by the evidence.
professional_card_number string Professional-card identifier for a self-employed worker.
social_contribution_period string Period covered by social-contribution evidence.
social_contribution_status string Payment or affiliation status for social contributions.
temporary_agency_accreditation_number string Accreditation identifier for a temporary-employment agency.
Key Value type Meaning
skill_scope string Trade, task, role, or competency covered by a certificate.
training_level string Level or category of the completed training.
professional_registration_number string Registration number for a regulated professional.
regulated_profession string Regulated profession named in the evidence.
professional_authorization_status string Status of the authorization to practise the profession.
screening_profile string Role or screening profile against which a check was performed.
screening_result string Outcome stated by the background-screening evidence.

The tables list all 80 public Document fact keys currently supported by Dockt. Only keys applicable to a particular document appear in its response. The response schema allows new keys, so ignore or store unfamiliar keys rather than failing the entire response. Raw document text is never returned as a fact.

Document.enrichment.checks summarizes applicable evidence checks that are separate from the file’s intrinsic document_result:

{
"code": "organization.vat_registration",
"status": "completed",
"source": "SOURCE_CODE",
"reason": null
}
Field Values Meaning
code See the table below Stable code for the kind of check performed.
status completed, not_found, ambiguous, unsupported, unavailable Outcome of that check. It is separate from document_result.
source string or null Customer-safe identifier for the source used. Source identifiers are not a closed enum.
reason string or null Explanation supplied for the outcome when available.
Code Meaning
organization.registry_profile Checks an employer’s official registration profile.
organization.vat_registration Validates an employer VAT registration.
organization.customs_registration Validates an employer customs or EORI registration.
organization.jurisdiction.restrictive_measures Looks up restrictive measures associated with an employer jurisdiction. This is a country-level lookup, not a conclusion that the employer is sanctioned.
credential.registry_profile Looks up the worker’s credentials in an applicable register; source names the register. Confirmed credentials can also appear in credential_assertions.
document.issuer.social_security_directory Checks whether a social-security document issuer matches the applicable institution directory.
document.a1_authority_verification Validates an A1 document through its applicable authority check.
document.limosa_authority_verification Validates a Limosa declaration through its applicable authority check.
document.certificate_registry_verification Validates a safety or training certificate through its applicable register.
document.residence_permit_authority_verification Validates a residence permit’s digital seal with the issuing authority.

An intrinsic authority check may appear in the Document’s verifications array instead of enrichment.checks. verifications uses the statuses verified, not_found, invalid, expired, error, and not_checked and includes an optional source and reason.

credential_assertions contains credentials established through an applicable authoritative check. It is separate from extracted facts: a printed certificate label can be a fact, while an assertion records the credential that was actually confirmed.

{
"scheme_code": "SCHEME_CODE",
"definition_code": "QUALIFICATION_CODE",
"source": "registry",
"status": "verified",
"holder_name": "Amina Diallo",
"certificate_number": "CERTIFICATE_NUMBER",
"valid_from": "2022-05-17",
"valid_until": "2032-05-16"
}
Field Type Meaning
scheme_code string Identifier of the credential scheme.
definition_code string Canonical qualification or credential code confirmed within that scheme.
source string Kind of source that established the assertion.
status string Status returned for the asserted credential.
holder_name string or null Confirmed holder name when available.
certificate_number string or null Confirmed certificate identifier when available.
valid_from string or null Confirmed validity start when available.
valid_until string or null Confirmed validity end when available.

Treat scheme_code, definition_code, source, and status as public identifiers rather than closed enums. Available credential definitions can vary with the configured catalog.

A registry lookup for one worker can return several credentials. The Document response includes those credentials because the upload triggered the lookup. The file is not necessarily proof of each credential returned. For example, a BASIC-VCA certificate upload may also lead to discovery of VOL-VCA, a different qualification.

When policy requires uploaded proof, Dockt independently matches the original document evidence to the accepted credential. Use the requirement’s supporting_document_ids and the Decision’s Findings to understand the accepted proof. Do not infer it from the credential assertion’s presence on a Document.

Decision facts are resolved values included in the immutable result returned by GET /v1/decisions/{decisionId}:

{
"id": "fact_example",
"code": "organization.legal_name",
"subject": {
"id": "employer:1",
"type": "employer"
},
"value": "Example Employer NV",
"resolution": "corroborated",
"assurance": "high",
"sources": [
{
"kind": "document",
"code": "assessment_document",
"document_ids": ["doc_example"],
"observed_at": null,
"fresh_until": null
}
]
}
Field Values Meaning
id string Identifier of this frozen fact in the Decision.
code See the table below Semantic name of the resolved value.
subject.type worker, employer, assignment, credential Kind of entity the fact describes.
subject.id string Subject identifier inside the Decision. Treat it as opaque.
value string, number, boolean, or string array Resolved value. The current fact codes normally return strings.
resolution resolved, corroborated corroborated means more than one consistent statement supports the value.
assurance low, medium, high Source-based assurance: customer input alone is low, document evidence is medium, and external or multiple source kinds produce high assurance.
sources array Lineage for the statements that support the value.
Code Subject Meaning
person.name worker Resolved full name of the worker.
person.date_of_birth worker Resolved worker date of birth.
person.nationality worker Resolved worker nationality.
organization.legal_name employer Resolved legal name of the employer.
organization.registration_number employer Resolved organization registration number.
organization.vat_number employer Resolved VAT identifier.
organization.status employer Resolved registration or operating status of the organization.
assignment.worksite_country assignment Country in which the assignment takes place.
assignment.starts_on assignment Resolved assignment start date.
assignment.ends_on assignment Resolved assignment end date.
credential.type credential Resolved credential or qualification code.
credential.status credential Resolved status of the credential.
credential.valid_from credential Resolved start of the credential’s validity period.
credential.valid_until credential Resolved end of the credential’s validity period.

Only these 14 codes are currently included in public Decision facts. Other evidence can still affect requirements or Findings without appearing in this allowlisted array.

Applicable external checks can add evidence to an Assessment. A value appears in public Decision facts only when its semantic code is one of the 14 allowlisted codes above, its value has a supported public shape, and the available statements resolve to one consistent value.

For example:

  • An organization registration check can contribute organization.legal_name, organization.registration_number, or organization.status.
  • A VAT check can contribute organization.vat_number or organization.legal_name.
  • A credential register can contribute credential.type, credential.status, or credential.valid_until.

External checks can establish additional evidence that isn’t part of the public fact allowlist. Those values may support requirements or Findings, but Dockt doesn’t return their internal evidence codes in Decision.facts. This keeps the public result stable while still preserving the relevant conclusion and source lineage.

Field Values Meaning
kind customer_input, document, external_source Where the supporting statement originated.
code string Customer-safe source code. Treat it as an identifier and allow unfamiliar values.
document_ids string array Documents used by this source, when applicable.
observed_at date-time or null Time at which an external value was observed.
fresh_until date-time or null Time until which that observation is considered fresh, when available.

Use the fact code and subject.type for application logic. Use sources to show evidence lineage or to explain why a resolved value has its assurance level. Don’t infer the Decision result by counting facts; use the top-level decision, requirements, and Findings.

Document and Decision Findings explain why a result needs attention. Use code and impact for routing; use the returned title and explanation for reviewer-facing text.

Code Meaning
document.intrinsic_issue The Document itself contains an issue or signal that needs attention.
identity.cross_document_conflict Verified evidence identifies a person who differs from the worker being assessed.
evidence.required_unresolved Required Assessment information or evidence is missing, unresolved, or invalid.
source.mandatory_unavailable Dockt couldn’t complete a required authoritative check.
source.authoritative_contradiction An authoritative source contradicts a material claim or couldn’t find the claimed record.
integrity.temporal_impossibility Evidence dates or validity periods form a timeline that can’t be reconciled.
agent.unavailable A supporting evaluation step was unavailable and the result requires a safe fallback or review.

The public Finding code set is allowlisted. Always handle an unfamiliar future code by falling back to its returned impact, title, and explanation.