Skip to main content
POST
Entity Deep Check

Authorizations

X-API-Key
string
header
required

Body

application/json

Request for POST /v1/entity/deep-check.

Takes entity fields rather than an entity_id from a prior check: the audit trail is keyed by sha256(entity_name) and is one-way, so an id could not be resolved back to the name the screens have to query. kvk_number is optional and only consulted by the insolvency source: the Centraal Insolventieregister keys searchUndertaking on the KvK number, which is an exact lookup where a trade-name search is a fuzzy one. credit_report_identifier is only consulted by the credit tier's source: Openapi.com's Italian credit-score lookup keys on a VAT number, tax code or company ID rather than a name, and reports back in identifier_type which one it matched.

entity_name
string
required

Legal entity or person name

Required string length: 1 - 500
country
string
required

ISO 3166-1 alpha-2 country code

Required string length: 2
kvk_number
string | null

Dutch KVK number (8 digits); enables an exact insolvency-register lookup

credit_report_identifier
string | null

VAT number, tax code or company ID for the credit tier's provider (Italy only today); without it the tier still runs but credit_report comes back applicable: false, same as an unsupported country

Maximum string length: 32

Response

Successful Response

Response from /v1/entity/deep-check.

sources_returned is built from payment.DEEP_CHECK_TIER_ADDS[tier] -- the same table enhanced_check_hint advertises -- so what was promised and what was delivered are one value. A name may only join that table together with the field that fills it on that tier.

entity_name
string
required
country
string
required
sources_returned
string[]
required

Sources actually run; equals EnhancedCheckHint.adds

pep_extended
PepScreenResult · object
required

Result of the pep_extended source. screened is never False on a 200.

There is no code path that returns this model without having queried OpenSanctions: app/services/pep.py raises rather than fabricating a clean screen, and the router turns that into a 503 so the payment is never settled.

processing_time_ms
integer
required
Required range: x >= 0
quality
string
default:deep

deep (fresh), extended (enhanced) or credit; see DEEP_CHECK_TIER_NAMES. credit only resolves while OPENAPI_CREDIT_API_KEY is configured.

adverse_media
AdverseMediaResult · object | null

Populated only on a tier whose adds include adverse_media. None means the tier did not include it -- never that a screen ran and found nothing.

insolvency_records
InsolvencyRecordsResult · object | null

Dutch Centraal Insolventieregister screen; on every tier. applicable: false (never null) when country is not NL.

credit_report
CreditReportResult · object | null

Populated only on the credit tier. None means the tier did not include it -- never that a screen ran and found no credit risk. applicable: false inside it (never omission) means the tier was requested but the country has no provider or no identifier was sent.

disclaimers
string[]
sandbox
boolean
default:false
version
string
default:1.0