Skip to main content

Company Verification

Verify a company end-to-end with registry checks, director screening, and UBO screening. This guide covers submitting company data, retrieving results, and interpreting the compliance report.

What Company Verification checks

When you submit a company for verification, Zenoo orchestrates four check types:
  1. Company Registry Verification. Legal name, registration number, incorporation status, registered address, directors, and shareholders from official registries.
  2. Company Screening (WorldCheck). PEP, sanctions, and adverse media screening on the company entity itself.
  3. Director Screening (WorldCheck). Individual screening for each director you provide or that the registry returns.
  4. UBO Screening (WorldCheck). Individual screening for each beneficial owner.

Data tiers

You can submit three levels of data. More data produces better matching and richer risk scoring.
Providing Standard tier or above is recommended for production. Minimum tier works for testing but produces less accurate risk scoring.
The bare minimum to run a registry check and company screening.
Adds external reference for idempotency, financial data, and entity identifiers.

Field reference

Director and UBO fields:
1

Submit company data

Results are returned directly in the response body. Add the X-SYNC-TIMEOUT header to set the maximum wait time in milliseconds.

Async mode

If you prefer non-blocking execution, call the /init endpoint without the X-SYNC-TIMEOUT header.
Response:
Store the pull token immediately. It is the only way to retrieve results. If you lose it, you must reinitiate the verification.
2

Retrieve results

Sync mode

Results are returned directly in the response body. Skip to the next step.

Async mode: poll for results

Polling strategy:
  • First 2 minutes: poll every 10 seconds
  • After 2 minutes: poll every 30 seconds
  • Typical completion time: 30 seconds to 5 minutes

Async mode: webhook notification

Configure a webhook endpoint to receive a verification.completed event when processing finishes. See Webhooks Guide for setup instructions.You can use both strategies together: webhooks for real-time notification, polling as a fallback.
3

Interpret the compliance report

A complete Company Verification response contains six sections: company details, screening results, beneficial owners, directors, risk assessment, and checks summary.
Key fields to check:
  • overall_verdict. The top-level recommendation: Pass, Refer, or Fail.
  • risk_tier. Risk classification: Low, Medium, or High.
  • screening.*_status. Whether any screening category returned a match.
  • checks_summary.checks[]. Status of each individual check.
Store the case_reference in your database. You will need it for support queries, audit trails, and linking future updates.
4

Decision logic

Use the overall_verdict and risk_tier together to drive your onboarding workflow.
If sanctions_status is "Hit" on any entity (company, director, or UBO), halt onboarding immediately and escalate. Processing sanctioned entities may violate legal obligations in your jurisdiction.

How checks are orchestrated

When you submit a company for verification, the check framework automatically creates, executes, and tracks every verification requirement. Here is the orchestration flow: For Company Verification, all four check types (registry, company screening, director screening, UBO screening) are API-based and auto-execute immediately after case creation. You do not need to trigger them manually. Checks that return Refer or Fail automatically generate alerts in the case management system. Alerts for sanctions hits are always marked Critical priority.

Verdict mapping

The full Company Verification verdict mapping combines overall_verdict and risk_tier to determine the appropriate action across all scenarios:

Auto-approve criteria

You can safely auto-approve a Company Verification when ALL of the following are true:
  • overall_verdict is "Pass".
  • risk_tier is "Low".
  • sanctions_status is "No Hit" on ALL entities (company, directors, UBOs).
  • pep_status is "No Hit" on ALL entities.
  • adverse_media_status is "No Hit".
decision-handler.js
Any other combination should go to manual review. Do not attempt to auto-approve verifications that do not meet every criterion above.

Idempotency

Always include external_reference in production requests to prevent duplicate verifications. If you submit the same reference twice, Zenoo returns the existing case tokens without creating a duplicate.

Country codes

Use ISO 3166-1 alpha-2 codes for all country fields. Common codes: The country field determines which registry Zenoo queries and which screening jurisdiction applies.
Using UK instead of GB will return an error. Always use the ISO 3166-1 alpha-2 standard code GB for United Kingdom.

Next steps

  • Person Verification. Verify directors and UBOs individually with document and biometric checks.
  • Screening. Run standalone screening for ongoing monitoring.
  • Sync vs Async. Choose the right execution model for your integration.