business_risk_score
Assess the risk of doing business with a company in any country using corporate, financial, compliance, reputation, operational and digital evidence. Returns a 0–100 risk score (100 = highest detected risk), a separate 0–1 confidence, per-category component scores, evidence-backed risk flags and positive signals, sanctions/restricted-party screening with match strength, and machine-readable due-diligence guidance (proceed / proceed_with_monitoring / enhanced_due_diligence / manual_review / avoid_automated_transaction).
When to use
Use before onboarding a supplier or vendor, paying a new business, entering a B2B transaction, approving a marketplace seller, extending credit or insurance, or recommending a company — whenever an autonomous agent needs structured, evidence-backed business due diligence it cannot reliably generate from its own model knowledge.
Selection guidance
Role: supporting. structured risk score and action for a company; automated transaction guardrails; supplier or vendor risk screening
Not for: public reputation only; finding companies; stock or market-price lookup
Use cases
- Before onboarding a supplier or vendor
- Before paying a new business
- Before entering a B2B transaction
- Before recommending a company to a user
- Before approving a marketplace seller
- When evaluating company compliance or reputation risk
- When an autonomous agent needs structured business due diligence
- lending / credit pre-screening
- insurance underwriting pre-check
Access
- REST:
POST https://api.rafidsystem.com/api/v1/risk/business-risk-score - x402:
POST https://api.rafidsystem.com/api/v1/x402/risk/business-risk-score - MCP tool:
business_risk_score - Free preview:
POST https://api.rafidsystem.com/api/v1/preview/business_risk_score
Price: $0.50 USD per call. Payment options are deployment-configured; inspect /api/v1/payment-methods. Prices and payment semantics are unchanged from the canonical registry.
Related tools
- company_reputation_check
- research_company
- company_risk_batch
- company_risk_report
- due_diligence_oman_company
- analyze_company_risk
Example input
{
"companyName": "Example Trading Ltd",
"country": "GB",
"website": "https://example.com"
}Example output
{
"status": "assessed",
"assessmentId": "bra_5a1272f4efd32a9b834150fe",
"business": {
"name": "Example Trading Ltd",
"legalName": "EXAMPLE TRADING LIMITED",
"country": "GB",
"countryName": "United Kingdom",
"registrationNumber": "09876543",
"lei": null,
"registrationStatus": "active",
"incorporationDate": "2015-11-03",
"registry": "UK Companies House",
"website": "https://example.com",
"domain": "example.com",
"city": "London",
"industry": null,
"entityMatchConfidence": 0.95,
"resolutionStatus": "resolved",
"identityVerifiedAgainstRegistry": true,
"matchedOn": [
"name",
"country"
]
},
"riskScore": 35,
"riskLevel": "moderate",
"confidence": 0.93,
"components": {
"corporateRisk": 6,
"financialRisk": 66,
"complianceRisk": 4,
"reputationRisk": 16,
"operationalRisk": 7,
"digitalRisk": 10
},
"scoreBreakdown": {
"corporateContribution": 1.2,
"financialContribution": 13.2,
"complianceContribution": 1,
"reputationContribution": 2.4,
"operationalContribution": 0.7,
"digitalContribution": 1,
"rawWeightedScore": 19.5,
"effectiveWeights": {
"corporate": 0.2,
"financial": 0.2,
"compliance": 0.25,
"reputation": 0.15,
"operational": 0.1,
"digital": 0.1
},
"floorsApplied": [
{
"code": "ACCOUNTS_OVERDUE",
"minimumScore": 35,
"reason": "high signal ACCOUNTS_OVERDUE at confidence 0.95 sets a minimum overall score of 35."
}
]
},
"riskFlags": [
{
"code": "ACCOUNTS_OVERDUE",
"category": "financial",
"severity": "high",
"title": "Statutory accounts overdue",
"description": "Statutory accounts are overdue (were due 2026-08-31).",
"evidenceIds": [
"ev_d65d32d7d57b9d4d"
],
"weight": 1,
"confidence": 0.95,
"scoreImpactPoints": 38,
"factStatus": "observed",
"requiresVerification": false
},
{
"code": "ADVERSE_MEDIA_ALLEGATION",
"category": "reputation",
"severity": "low",
"title": "Adverse allegation, investigation or lawsuit reported: litigation",
"description": "litigation — lawsuit reported as filed (claims not adjudicated): \"Packaging supplier sues Example Trading Ltd over unpaid invoices\" (1 item(s) from trade-news.example, first published 2026-04-14).",
"evidenceIds": [
"ev_6901118ffa111016"
],
"weight": 0.8,
"confidence": 0.45,
"scoreImpactPoints": 2.88,
"factStatus": "alleged",
"requiresVerification": false
}
],
"positiveSignals": [
{
"code": "ACTIVE_REGISTRATION",
"category": "corporate",
"title": "Active registration",
"description": "The company appears with an active registration in UK Companies House.",
"evidenceIds": [
"ev_eb8d74c197c81ccf"
],
"weight": 1,
"confidence": 0.95,
"mitigationPoints": 19
},
{
"code": "VERIFIED_OPERATING_PRESENCE",
"category": "operational",
"title": "Operating website identifies the company",
"description": "The supplied website is reachable and names the company.",
"evidenceIds": [
"ev_a92406ac6c061836"
],
"weight": 1,
"confidence": 0.8,
"mitigationPoints": 16
},
{
"code": "ESTABLISHED_DOMAIN",
"category": "digital",
"title": "Long-established domain (5+ years)",
"description": "Domain registered 2018-02-11 (8 years before the evaluation date).",
"evidenceIds": [
"ev_8829a4e919301c87"
],
"weight": 1,
"confidence": 1,
"mitigationPoints": 8
},
{
"code": "NO_SANCTIONS_MATCH",
"category": "compliance",
"title": "No sanctions / restricted-party list match",
"description": "No sanctions or restricted-party list match in: UN Security Council Consolidated List; US Consolidated Screening List (includes OFAC SDN). Lists not checked are not covered.",
"evidenceIds": [
"ev_5dc846ad534efcef",
"ev_821bb8227b6ff981"
],
"weight": 1,
"confidence": 1,
"mitigationPoints": 8
},
{
"code": "ESTABLISHED_BUSINESS",
"category": "corporate",
"title": "Established business (5+ years)",
"description": "Incorporated 2015-11-03 (10 years before the evaluation date).",
"evidenceIds": [
"ev_eb8d74c197c81ccf"
],
"weight": 1,
"confidence": 0.95,
"mitigationPoints": 7.6
},
{
"code": "CONTACT_INFORMATION_PRESENT",
"category": "operational",
"title": "Contact information published",
"description": "The website publishes contact information (contact page, phone number, email address).",
"evidenceIds": [
"ev_a92406ac6c061836"
],
"weight": 1,
"confidence": 0.8,
"mitigationPoints": 6.4
},
{
"code": "DOMAIN_NAME_CONSISTENT",
"category": "digital",
"title": "Domain consistent with the company name",
"description": "The domain example.com is consistent with the company name.",
"evidenceIds": [
"ev_8829a4e919301c87",
"ev_a92406ac6c061836"
],
"weight": 1,
"confidence": 0.6,
"mitigationPoints": 4.8
},
{
"code": "FAVORABLE_CUSTOMER_RATING",
"category": "reputation",
"title": "Favorable aggregate customer rating",
"description": "Aggregate rating 4.1/5 from 146 reviews on reviews.example (self-selected reviewers).",
"evidenceIds": [
"ev_9fac691518d8b6d4"
],
"weight": 1,
"confidence": 0.48,
"mitigationPoints": 3.84
}
],
"sanctionsScreening": {
"status": "no_match_found",
"listsChecked": [
"UN Security Council Consolidated List",
"US Consolidated Screening List (includes OFAC SDN)"
],
"listsUnavailable": [],
"namesScreened": [
"Example Trading Ltd"
],
"matches": []
},
"evidence": [
{
"id": "ev_d65d32d7d57b9d4d",
"recordType": "source_record",
"type": "company_filing",
"evidenceClass": "official_record",
"sourceName": "UK Companies House filing status",
"sourceUrl": "https://registry.example/company/09876543/filing-history",
"sourceRecordId": "09876543",
"publishedAt": "2025-11-30",
"observedAt": "2025-11-30",
"retrievedAt": "2026-09-23T10:00:00.000Z",
"ageDays": 297,
"stale": false,
"freshness": 1,
"claim": "Filing status of EXAMPLE TRADING LIMITED: Accounts overdue: yes. Confirmation statement overdue: no.",
"reliability": "authoritative",
"relevance": 1,
"fromCache": false
},
{
"id": "ev_5dc846ad534efcef",
"recordType": "lookup_result",
"type": "sanctions_list",
"evidenceClass": "official_record",
"sourceName": "US Consolidated Screening List (includes OFAC SDN)",
"sourceUrl": null,
"sourceRecordId": null,
"publishedAt": null,
"observedAt": "2026-09-23T10:00:00.000Z",
"retrievedAt": "2026-09-23T10:00:00.000Z",
"ageDays": null,
"stale": false,
"freshness": 1,
"claim": "Name screening of \"Example Trading Ltd\" against US Consolidated Screening List (includes OFAC SDN) returned no match at or above the conservative similarity threshold.",
"reliability": "authoritative",
"relevance": 1,
"fromCache": false
},
{
"id": "ev_821bb8227b6ff981",
"recordType": "lookup_result",
"type": "sanctions_list",
"evidenceClass": "official_record",
"sourceName": "UN Security Council Consolidated List",
"sourceUrl": null,
"sourceRecordId": null,
"publishedAt": null,
"observedAt": "2026-09-23T10:00:00.000Z",
"retrievedAt": "2026-09-23T10:00:00.000Z",
"ageDays": null,
"stale": false,
"freshness": 1,
"claim": "Name screening of \"Example Trading Ltd\" against UN Security Council Consolidated List returned no match at or above the conservative similarity threshold.",
"reliability": "authoritative",
"relevance": 1,
"fromCache": false
},
{
"id": "ev_8829a4e919301c87",
"recordType": "source_record",
"type": "domain_registration",
"evidenceClass": "official_record",
"sourceName": "RDAP domain registration data",
"sourceUrl": "https://rdap.example/domain/example.com",
"sourceRecordId": "example.com",
"publishedAt": null,
"observedAt": "2026-09-23T10:00:00.000Z",
"retrievedAt": "2026-09-23T10:00:00.000Z",
"ageDays": null,
"stale": false,
"freshness": 1,
"claim": "Registered: 2018-02-11T00:00:00.000Z; expires: 2027-02-11T00:00:00.000Z.",
"reliability": "authoritative",
"relevance": 1,
"fromCache": false
},
{
"id": "ev_eb8d74c197c81ccf",
"recordType": "source_record",
"type": "company_registry",
"evidenceClass": "official_record",
"sourceName": "UK Companies House",
"sourceUrl": "https://registry.example/record/09876543",
"sourceRecordId": "09876543",
"publishedAt": null,
"observedAt": "2026-09-23T10:00:00.000Z",
"retrievedAt": "2026-09-23T10:00:00.000Z",
"ageDays": null,
"stale": false,
"freshness": 1,
"claim": "UK Companies House record \"EXAMPLE TRADING LIMITED\", registration no. 09876543, country GB, status active, incorporated/created 2015-11-03.",
"reliability": "authoritative",
"relevance": 1,
"fromCache": false
},
{
"id": "ev_9fac691518d8b6d4",
"recordType": "source_record",
"type": "review_platform",
"evidenceClass": "user_generated",
"sourceName": "reviews.example",
"sourceUrl": "https://reviews.example/review/example.com",
"sourceRecordId": null,
"publishedAt": "2026-09-01T00:00:00.000Z",
"observedAt": "2026-09-01T00:00:00.000Z",
"retrievedAt": "2026-09-23T10:00:00.000Z",
"ageDays": 22,
"stale": false,
"freshness": 0.96,
"claim": "Reports: \"Example Trading Reviews | Reviews Example\".",
"reliability": "medium",
"relevance": 1,
"fromCache": false
},
{
"id": "ev_6901118ffa111016",
"recordType": "source_record",
"type": "news",
"evidenceClass": "allegation",
"sourceName": "trade-news.example",
"sourceUrl": "https://trade-news.example/2026/04/example-trading-supplier-lawsuit",
"sourceRecordId": null,
"publishedAt": "2026-04-14T09:00:00.000Z",
"observedAt": "2026-04-14T09:00:00.000Z",
"retrievedAt": "2026-09-23T10:00:00.000Z",
"ageDays": 162,
"stale": false,
"freshness": 0.81,
"claim": "Reports: \"Packaging supplier sues Example Trading Ltd over unpaid invoices\".",
"reliability": "medium",
"relevance": 1,
"fromCache": false
},
{
"id": "ev_c8b3fecccf2578f4",
"recordType": "source_record",
"type": "news",
"evidenceClass": "other_publication",
"sourceName": "city-paper.example",
"sourceUrl": "https://city-paper.example/business/example-trading-new-warehouse",
"sourceRecordId": null,
"publishedAt": "2025-10-02T08:00:00.000Z",
"observedAt": "2025-10-02T08:00:00.000Z",
"retrievedAt": "2026-09-23T10:00:00.000Z",
"ageDays": 356,
"stale": false,
"freshness": 0.63,
"claim": "Reports: \"Example Trading opens new warehouse in Dartford\".",
"reliability": "medium",
"relevance": 1,
"fromCache": false
},
{
"id": "ev_a92406ac6c061836",
"recordType": "source_record",
"type": "company_website",
"evidenceClass": "self_published",
"sourceName": "Company website (example.com)",
"sourceUrl": "https://example.com/",
"sourceRecordId": null,
"publishedAt": null,
"observedAt": "2026-09-23T10:00:00.000Z",
"retrievedAt": "2026-09-23T10:00:00.000Z",
"ageDays": null,
"stale": false,
"freshness": 1,
"claim": "Website responded with HTTP 200 over HTTPS. Title: \"Example Trading Ltd — Wholesale packaging supplies\".",
"reliability": "medium",
"relevance": 1,
"fromCache": false
}
],
"recommendation": {
"action": "enhanced_due_diligence",
"reasonCodes": [
"ACCOUNTS_OVERDUE"
],
"rationale": "Elevated risk indicators or incomplete verification: obtain additional documentation before transacting."
},
"dataCoverage": {
"corporate": "high",
"financial": "high",
"compliance": "high",
"reputation": "high",
"operational": "high",
"digital": "high"
},
"confidenceBreakdown": {
"entityResolution": 0.95,
"categoryCoverage": 1,
"sourceQuality": 0.71,
"authoritativeRecords": 1,
"freshness": 0.91,
"consistency": 1,
"contradictions": [],
"capsApplied": []
},
"providers": [
{
"provider": "GLEIF Global LEI Index",
"role": "corporate",
"stage": 1,
"status": "ok",
"fromCache": false,
"retrievedAt": "2026-09-23T10:00:00.000Z",
"evidenceCount": 0,
"reason": null
},
{
"provider": "Rafid Oman company registry",
"role": "corporate",
"stage": 1,
"status": "not_configured",
"fromCache": false,
"retrievedAt": null,
"evidenceCount": 0,
"reason": "Rafid Oman company registry is not configured (synthetic)."
},
{
"provider": "UK Companies House",
"role": "corporate",
"stage": 1,
"status": "ok",
"fromCache": false,
"retrievedAt": "2026-09-23T10:00:00.000Z",
"evidenceCount": 1,
"reason": null
},
{
"provider": "Domain registration (RDAP)",
"role": "digital",
"stage": 1,
"status": "ok",
"fromCache": false,
"retrievedAt": "2026-09-23T10:00:00.000Z",
"evidenceCount": 1,
"reason": null
},
{
"provider": "Company website",
"role": "digital",
"stage": 1,
"status": "ok",
"fromCache": false,
"retrievedAt": "2026-09-23T10:00:00.000Z",
"evidenceCount": 1,
"reason": null
},
{
"provider": "Google Safe Browsing",
"role": "digital",
"stage": 2,
"status": "not_configured",
"fromCache": false,
"retrievedAt": null,
"evidenceCount": 0,
"reason": "Google Safe Browsing is not configured (synthetic)."
},
{
"provider": "UK Companies House filing status",
"role": "financial",
"stage": 2,
"status": "ok",
"fromCache": false,
"retrievedAt": "2026-09-23T10:00:00.000Z",
"evidenceCount": 1,
"reason": null
},
{
"provider": "EU Financial Sanctions Files (consolidated list)",
"role": "sanctions",
"stage": 2,
"status": "not_configured",
"fromCache": false,
"retrievedAt": null,
"evidenceCount": 0,
"reason": "EU Financial Sanctions Files (consolidated list) is not configured (synthetic)."
},
{
"provider": "UN Security Council Consolidated List",
"role": "sanctions",
"stage": 2,
"status": "ok",
"fromCache": false,
"retrievedAt": "2026-09-23T10:00:00.000Z",
"evidenceCount": 1,
"reason": null
},
{
"provider": "US Consolidated Screening List (includes OFAC SDN)",
"role": "sanctions",
"stage": 2,
"status": "ok",
"fromCache": false,
"retrievedAt": "2026-09-23T10:00:00.000Z",
"evidenceCount": 0,
"reason": null
},
{
"provider": "News and public web search",
"role": "news",
"stage": 2,
"status": "ok",
"fromCache": false,
"retrievedAt": "2026-09-23T10:00:00.000Z",
"evidenceCount": 3,
"reason": null
},
{
"provider": "Review platforms and forums (web search)",
"role": "news",
"stage": 2,
"status": "ok",
"fromCache": false,
"retrievedAt": "2026-09-23T10:00:00.000Z",
"evidenceCount": 1,
"reason": null
},
{
"provider": "Regulator and enforcement publications (web search)",
"role": "regulatory",
"stage": 2,
"status": "ok",
"fromCache": false,
"retrievedAt": "2026-09-23T10:00:00.000Z",
"evidenceCount": 0,
"reason": null
}
],
"warnings": [
{
"code": "PROVIDER_NOT_CONFIGURED",
"message": "Not enabled in this deployment: Rafid Oman company registry; Google Safe Browsing; EU Financial Sanctions Files (consolidated list).",
"provider": null
}
],
"assumptions": [
"Company name is matched on its normalized core \"EXAMPLE TRADING\" (legal-form words such as Ltd/LLC are compared separately, never ignored for disambiguation).",
"Registration number 09876543 was taken from the matched registry record.",
"Ages and freshness are computed as of the evidence snapshot time 2026-09-23T10:00:00.000Z."
],
"limitations": [
"SYNTHETIC DOCUMENTATION EXAMPLE: fictional company, made-up registry numbers and fictional publishers (.example domains). Not an assessment of any real entity.",
"Evidence-based public-source screening for business decisions — not a legal, KYC/AML, credit, insurance or compliance determination, and never a guarantee that a company is safe or unsafe.",
"riskScore and confidence are separate: a low score with low confidence means little evidence, not a safe company.",
"Sanctions and restricted-party results are automated name matching; 'possible' matches are not listings, and even 'high' matches must be verified at the source list.",
"Adverse media is reported at the legal stage the source states; allegations, investigations and lawsuits are not findings of wrongdoing.",
"Company-level intelligence only; no personal data about individuals is collected or returned.",
"Lists checked: UN Security Council Consolidated List; US Consolidated Screening List (includes OFAC SDN). Other national lists and PEP databases were not checked.",
"No malware/phishing threat feed was checked.",
"1 search result(s) appeared to concern a different entity (other country, legal form or name) and were excluded."
],
"methodology": {
"scoringModelVersion": "brs-1.0.0",
"categoryWeights": {
"corporate": 0.2,
"financial": 0.2,
"compliance": 0.25,
"reputation": 0.15,
"operational": 0.1,
"digital": 0.1
},
"weightsSource": "default",
"severityPoints": {
"info": 0,
"low": 8,
"medium": 20,
"high": 40,
"critical": 70
},
"riskLevelBands": [
{
"level": "low",
"min": 0,
"max": 20
},
{
"level": "moderate",
"min": 21,
"max": 40
},
{
"level": "elevated",
"min": 41,
"max": 60
},
{
"level": "high",
"min": 61,
"max": 80
},
{
"level": "critical",
"min": 81,
"max": 100
}
],
"missingDataPolicy": "Absence of information is not treated as evidence of risk: categories without evidence get no score (null), dataCoverage 'none' and lower confidence. The only exceptions are listed in missingDataRiskRules — each is a case where the absence contradicts something the request claimed. LIMITED_FINANCIAL_HISTORY is informational (weight 0) and never changes the score.",
"missingDataRiskRules": [
{
"code": "IDENTITY_NOT_FOUND_IN_REGISTRY",
"rule": "The authoritative registry for the stated country was checked successfully and holds no matching company, while other evidence shows the business exists (otherwise ENTITY_NOT_FOUND is returned)."
},
{
"code": "REGISTRATION_NUMBER_NOT_FOUND",
"rule": "A registration number was supplied and the authoritative registry answered that it does not exist."
},
{
"code": "WEBSITE_UNREACHABLE",
"rule": "A website was supplied and does not respond successfully."
},
{
"code": "DOMAIN_NOT_REGISTERED",
"rule": "A website/domain was supplied and the domain registry (RDAP) has no record of it."
},
{
"code": "NO_CONTACT_INFORMATION",
"rule": "A reachable website was supplied but publishes no contact information at all."
}
],
"highRiskJurisdictionsSource": "FATF call-for-action list as of 2025-06",
"formula": "Each signal contributes SEVERITY_POINTS[severity] × weight × confidence. Category score = baseline − baseline·(1−e^(−positive/30)) + (100−baseline)·(1−e^(−negative/45)), only for categories with data coverage (else null). riskScore = Σ effectiveWeight × categoryScore over covered categories (weights renormalized), raised to any documented floor set by a confident severe signal; clamped to 0–100. Confidence is computed separately (see confidenceBreakdown)."
},
"evaluatedAt": "2026-09-23T10:00:00.000Z"
}Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"companyName": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "Company name as known to the caller (trading or legal name). Required."
},
"country": {
"description": "Country of registration/operation — ISO 3166 alpha-2 (e.g. GB), alpha-3 or English name. Strongly recommended: prevents same-name companies in other countries from being confused.",
"type": "string",
"minLength": 2,
"maxLength": 60
},
"registrationNumber": {
"description": "Company registration number in its home registry (e.g. UK Companies House number, Oman CR number). The strongest disambiguator.",
"type": "string",
"minLength": 2,
"maxLength": 64,
"pattern": "^[A-Za-z0-9][A-Za-z0-9 ./-]*$"
},
"lei": {
"description": "Legal Entity Identifier (ISO 17442), if known — decisive for entity resolution.",
"type": "string",
"minLength": 20,
"maxLength": 24
},
"website": {
"description": "Company website or domain, e.g. https://example.com (normalized to its https origin).",
"type": "string",
"minLength": 4,
"maxLength": 300
},
"address": {
"description": "Street address as supplied by the company (checked against the registered address when the registry publishes one).",
"type": "string",
"minLength": 3,
"maxLength": 300
},
"city": {
"description": "City of registration/headquarters (helps disambiguation).",
"type": "string",
"minLength": 2,
"maxLength": 80
},
"industry": {
"description": "Claimed industry/business activity (checked for consistency with the company's public presence; never scored by itself).",
"type": "string",
"minLength": 2,
"maxLength": 100
},
"knownAliases": {
"description": "Other names the company trades or traded under (max 5). Screened against sanctions/restricted-party lists and used to attribute media.",
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"minLength": 2,
"maxLength": 200
}
},
"includeNews": {
"description": "Default true. false skips news, customer-review and regulator web searches (faster, cheaper; reputation coverage becomes 'none').",
"type": "boolean"
},
"includeDigitalSignals": {
"description": "Default true. false skips website, domain-registration and threat-feed checks (digital coverage becomes 'none').",
"type": "boolean"
}
},
"required": [
"companyName"
],
"additionalProperties": false
}Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"assessed",
"insufficient_data"
]
},
"assessmentId": {
"type": "string",
"description": "Deterministic id of (company identity, scoring model version, evidence snapshot)."
},
"business": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"legalName": {
"type": [
"string",
"null"
]
},
"country": {
"type": [
"string",
"null"
]
},
"countryName": {
"type": [
"string",
"null"
]
},
"registrationNumber": {
"type": [
"string",
"null"
]
},
"lei": {
"type": [
"string",
"null"
]
},
"registrationStatus": {
"type": "string",
"enum": [
"active",
"inactive",
"dissolved",
"liquidation",
"unknown",
"not_verified"
]
},
"incorporationDate": {
"type": [
"string",
"null"
]
},
"registry": {
"type": [
"string",
"null"
]
},
"website": {
"type": [
"string",
"null"
]
},
"domain": {
"type": [
"string",
"null"
]
},
"city": {
"type": [
"string",
"null"
]
},
"industry": {
"type": [
"string",
"null"
]
},
"entityMatchConfidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"resolutionStatus": {
"type": "string",
"enum": [
"resolved",
"probable",
"unverified"
]
},
"identityVerifiedAgainstRegistry": {
"type": "boolean"
},
"matchedOn": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"legalName",
"country",
"countryName",
"registrationNumber",
"lei",
"registrationStatus",
"incorporationDate",
"registry",
"website",
"domain",
"city",
"industry",
"entityMatchConfidence",
"resolutionStatus",
"identityVerifiedAgainstRegistry",
"matchedOn"
],
"additionalProperties": false
},
"riskScore": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100
},
{
"type": "null"
}
],
"description": "0 = lowest detected risk, 100 = highest. null only when status is insufficient_data."
},
"riskLevel": {
"anyOf": [
{
"type": "string",
"enum": [
"low",
"moderate",
"elevated",
"high",
"critical"
]
},
{
"type": "null"
}
]
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "0–1: how strongly the evidence supports the result. Separate from risk: a low score with low confidence means little evidence, not a safe company."
},
"components": {
"type": "object",
"properties": {
"corporateRisk": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100
},
{
"type": "null"
}
]
},
"financialRisk": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100
},
{
"type": "null"
}
]
},
"complianceRisk": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100
},
{
"type": "null"
}
]
},
"reputationRisk": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100
},
{
"type": "null"
}
]
},
"operationalRisk": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100
},
{
"type": "null"
}
]
},
"digitalRisk": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100
},
{
"type": "null"
}
]
}
},
"required": [
"corporateRisk",
"financialRisk",
"complianceRisk",
"reputationRisk",
"operationalRisk",
"digitalRisk"
],
"additionalProperties": false,
"description": "Per-category risk scores (0–100). null = no data coverage for that category (never guessed)."
},
"scoreBreakdown": {
"type": "object",
"properties": {
"corporateContribution": {
"type": [
"number",
"null"
]
},
"financialContribution": {
"type": [
"number",
"null"
]
},
"complianceContribution": {
"type": [
"number",
"null"
]
},
"reputationContribution": {
"type": [
"number",
"null"
]
},
"operationalContribution": {
"type": [
"number",
"null"
]
},
"digitalContribution": {
"type": [
"number",
"null"
]
},
"rawWeightedScore": {
"type": [
"number",
"null"
]
},
"effectiveWeights": {
"type": "object",
"properties": {
"corporate": {
"type": "number"
},
"financial": {
"type": "number"
},
"compliance": {
"type": "number"
},
"reputation": {
"type": "number"
},
"operational": {
"type": "number"
},
"digital": {
"type": "number"
}
},
"required": [
"corporate",
"financial",
"compliance",
"reputation",
"operational",
"digital"
],
"additionalProperties": false
},
"floorsApplied": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"minimumScore": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"reason": {
"type": "string"
}
},
"required": [
"code",
"minimumScore",
"reason"
],
"additionalProperties": false
}
}
},
"required": [
"corporateContribution",
"financialContribution",
"complianceContribution",
"reputationContribution",
"operationalContribution",
"digitalContribution",
"rawWeightedScore",
"effectiveWeights",
"floorsApplied"
],
"additionalProperties": false
},
"riskFlags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"category": {
"type": "string",
"enum": [
"corporate",
"financial",
"compliance",
"reputation",
"operational",
"digital"
]
},
"severity": {
"type": "string",
"enum": [
"info",
"low",
"medium",
"high",
"critical"
]
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"evidenceIds": {
"type": "array",
"items": {
"type": "string"
}
},
"weight": {
"type": "number",
"minimum": 0
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"scoreImpactPoints": {
"type": "number",
"minimum": 0,
"description": "SEVERITY_POINTS[severity] × weight × confidence — this flag's contribution to its category's negative points."
},
"factStatus": {
"anyOf": [
{
"type": "string",
"enum": [
"established",
"reported",
"alleged",
"observed"
]
},
{
"type": "null"
}
],
"description": "What the source establishes: observed (a record/check), reported (an outcome reported by a source), alleged (allegation, investigation, lawsuit, unconfirmed match)."
},
"requiresVerification": {
"type": "boolean"
}
},
"required": [
"code",
"category",
"severity",
"title",
"description",
"evidenceIds",
"weight",
"confidence",
"scoreImpactPoints",
"factStatus",
"requiresVerification"
],
"additionalProperties": false
}
},
"positiveSignals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"category": {
"type": "string",
"enum": [
"corporate",
"financial",
"compliance",
"reputation",
"operational",
"digital"
]
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"evidenceIds": {
"type": "array",
"items": {
"type": "string"
}
},
"weight": {
"type": "number",
"minimum": 0
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"mitigationPoints": {
"type": "number",
"minimum": 0
}
},
"required": [
"code",
"category",
"title",
"description",
"evidenceIds",
"weight",
"confidence",
"mitigationPoints"
],
"additionalProperties": false
}
},
"sanctionsScreening": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"no_match_found",
"possible_match",
"high_confidence_match",
"not_checked",
"unavailable",
"partial"
]
},
"listsChecked": {
"type": "array",
"items": {
"type": "string"
}
},
"listsUnavailable": {
"type": "array",
"items": {
"type": "string"
}
},
"namesScreened": {
"type": "array",
"items": {
"type": "string"
}
},
"matches": {
"type": "array",
"items": {
"type": "object",
"properties": {
"listedName": {
"type": "string"
},
"matchedAlias": {
"type": [
"string",
"null"
]
},
"list": {
"type": "string"
},
"listType": {
"type": "string",
"enum": [
"sanctions",
"export_control_or_debarment"
]
},
"reference": {
"type": [
"string",
"null"
]
},
"sourceUrl": {
"type": [
"string",
"null"
]
},
"matchScore": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"matchType": {
"type": "string",
"enum": [
"exact_normalized_name",
"fuzzy_name"
]
},
"matchStrength": {
"type": "string",
"enum": [
"possible",
"high"
],
"description": "possible: name similarity only — NOT a confirmed listing. high: exact normalized name corroborated by a list identifier/country with nothing contradicting it — still verify at the source list."
},
"corroboratingIdentifiers": {
"type": "array",
"items": {
"type": "string"
}
},
"contradictions": {
"type": "array",
"items": {
"type": "string"
}
},
"evidenceId": {
"type": "string"
}
},
"required": [
"listedName",
"matchedAlias",
"list",
"listType",
"reference",
"sourceUrl",
"matchScore",
"matchType",
"matchStrength",
"corroboratingIdentifiers",
"contradictions",
"evidenceId"
],
"additionalProperties": false
}
}
},
"required": [
"status",
"listsChecked",
"listsUnavailable",
"namesScreened",
"matches"
],
"additionalProperties": false
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"recordType": {
"type": "string",
"enum": [
"source_record",
"lookup_result"
],
"description": "source_record: something a source returned. lookup_result: the documented outcome of a successful check that found nothing (so clean findings are traceable too)."
},
"type": {
"type": "string",
"enum": [
"company_registry",
"lei_registry",
"company_filing",
"sanctions_list",
"export_control_or_debarment_list",
"regulatory_publication",
"court_record",
"news",
"review_platform",
"forum_or_social",
"company_website",
"domain_registration",
"threat_intelligence"
]
},
"evidenceClass": {
"type": "string",
"enum": [
"official_record",
"regulatory_action",
"court_record",
"credible_journalism",
"other_publication",
"user_generated",
"allegation",
"self_published"
]
},
"sourceName": {
"type": "string"
},
"sourceUrl": {
"type": [
"string",
"null"
]
},
"sourceRecordId": {
"type": [
"string",
"null"
]
},
"publishedAt": {
"type": [
"string",
"null"
]
},
"observedAt": {
"type": "string"
},
"retrievedAt": {
"type": "string"
},
"ageDays": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"stale": {
"type": "boolean"
},
"freshness": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"claim": {
"type": "string"
},
"reliability": {
"type": "string",
"enum": [
"authoritative",
"high",
"medium",
"low"
]
},
"relevance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"fromCache": {
"type": "boolean"
}
},
"required": [
"id",
"recordType",
"type",
"evidenceClass",
"sourceName",
"sourceUrl",
"sourceRecordId",
"publishedAt",
"observedAt",
"retrievedAt",
"ageDays",
"stale",
"freshness",
"claim",
"reliability",
"relevance",
"fromCache"
],
"additionalProperties": false
}
},
"recommendation": {
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"proceed",
"proceed_with_monitoring",
"enhanced_due_diligence",
"manual_review",
"avoid_automated_transaction"
]
},
"reasonCodes": {
"type": "array",
"items": {
"type": "string"
}
},
"rationale": {
"type": "string"
}
},
"required": [
"action",
"reasonCodes",
"rationale"
],
"additionalProperties": false
},
"dataCoverage": {
"type": "object",
"properties": {
"corporate": {
"type": "string",
"enum": [
"high",
"medium",
"low",
"none"
]
},
"financial": {
"type": "string",
"enum": [
"high",
"medium",
"low",
"none"
]
},
"compliance": {
"type": "string",
"enum": [
"high",
"medium",
"low",
"none"
]
},
"reputation": {
"type": "string",
"enum": [
"high",
"medium",
"low",
"none"
]
},
"operational": {
"type": "string",
"enum": [
"high",
"medium",
"low",
"none"
]
},
"digital": {
"type": "string",
"enum": [
"high",
"medium",
"low",
"none"
]
}
},
"required": [
"corporate",
"financial",
"compliance",
"reputation",
"operational",
"digital"
],
"additionalProperties": false
},
"confidenceBreakdown": {
"type": "object",
"properties": {
"entityResolution": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"categoryCoverage": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"sourceQuality": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"authoritativeRecords": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"freshness": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"consistency": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"contradictions": {
"type": "array",
"items": {
"type": "string"
}
},
"capsApplied": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"entityResolution",
"categoryCoverage",
"sourceQuality",
"authoritativeRecords",
"freshness",
"consistency",
"contradictions",
"capsApplied"
],
"additionalProperties": false
},
"providers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"provider": {
"type": "string"
},
"role": {
"type": "string",
"enum": [
"corporate",
"financial",
"sanctions",
"news",
"regulatory",
"digital"
]
},
"stage": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
},
"status": {
"type": "string",
"enum": [
"ok",
"not_configured",
"not_applicable",
"unavailable",
"timeout",
"rate_limited",
"stale_cache"
]
},
"fromCache": {
"type": "boolean"
},
"retrievedAt": {
"type": [
"string",
"null"
]
},
"evidenceCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"reason": {
"type": [
"string",
"null"
]
}
},
"required": [
"provider",
"role",
"stage",
"status",
"fromCache",
"retrievedAt",
"evidenceCount",
"reason"
],
"additionalProperties": false
}
},
"warnings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"provider": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"message",
"provider"
],
"additionalProperties": false
}
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
}
},
"limitations": {
"type": "array",
"items": {
"type": "string"
}
},
"methodology": {
"type": "object",
"properties": {
"scoringModelVersion": {
"type": "string"
},
"categoryWeights": {
"type": "object",
"properties": {
"corporate": {
"type": "number"
},
"financial": {
"type": "number"
},
"compliance": {
"type": "number"
},
"reputation": {
"type": "number"
},
"operational": {
"type": "number"
},
"digital": {
"type": "number"
}
},
"required": [
"corporate",
"financial",
"compliance",
"reputation",
"operational",
"digital"
],
"additionalProperties": false
},
"weightsSource": {
"type": "string",
"enum": [
"default",
"env",
"default_env_invalid"
]
},
"severityPoints": {
"type": "object",
"properties": {
"info": {
"type": "number"
},
"low": {
"type": "number"
},
"medium": {
"type": "number"
},
"high": {
"type": "number"
},
"critical": {
"type": "number"
}
},
"required": [
"info",
"low",
"medium",
"high",
"critical"
],
"additionalProperties": false
},
"riskLevelBands": {
"type": "array",
"items": {
"type": "object",
"properties": {
"level": {
"type": "string",
"enum": [
"low",
"moderate",
"elevated",
"high",
"critical"
]
},
"min": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"max": {
"type": "integer",
"minimum": 0,
"maximum": 100
}
},
"required": [
"level",
"min",
"max"
],
"additionalProperties": false
}
},
"missingDataPolicy": {
"type": "string"
},
"missingDataRiskRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"rule": {
"type": "string"
}
},
"required": [
"code",
"rule"
],
"additionalProperties": false
}
},
"highRiskJurisdictionsSource": {
"type": "string"
},
"formula": {
"type": "string"
}
},
"required": [
"scoringModelVersion",
"categoryWeights",
"weightsSource",
"severityPoints",
"riskLevelBands",
"missingDataPolicy",
"missingDataRiskRules",
"highRiskJurisdictionsSource",
"formula"
],
"additionalProperties": false
},
"evaluatedAt": {
"description": "As-of time of the evidence snapshot the assessment was computed from (latest retrieval time among the providers used; cached evidence keeps its original retrieval time). Re-evaluating the same snapshot yields the same result. null when nothing could be checked.",
"type": [
"string",
"null"
]
}
},
"required": [
"status",
"assessmentId",
"business",
"riskScore",
"riskLevel",
"confidence",
"components",
"scoreBreakdown",
"riskFlags",
"positiveSignals",
"sanctionsScreening",
"evidence",
"recommendation",
"dataCoverage",
"confidenceBreakdown",
"providers",
"warnings",
"assumptions",
"limitations",
"methodology",
"evaluatedAt"
],
"additionalProperties": false
}Category: Company & Risk Intelligence · hierarchy: supporting · idempotent: yes · side effects: no