The result of running a rule set against one company.
Most endpoints in this API proxy or reshape upstream registry data and are
returned as plain maps, so new upstream fields are never silently dropped. The
assessment is the one response with a contract of its own, so it is modelled
here — with the untouched payload kept on :raw.
The *_summary fields hold the evidence each rule was evaluated against; each
mirrors the corresponding standalone endpoint, so :officers_summary and
KYCCentral.Companies.officers/3 describe the same data.
Summary
Functions
True when no rule in the set raised a flag.
The flag with code, or nil when it was not raised.
Flags matching any of severities.
Flags at severity or more severe.
Build an assessment from a decoded /v1/kyc/assess body.
True when a flag with code was raised, e.g. "ACCOUNTS_OVERDUE".
True when some data was unavailable, so the result is incomplete.
Numeric severity, ascending. Useful for sorting.
Rule results matching status.
Types
@type t() :: %KYCCentral.Assessment{ adverse_media_summary: term(), charges_summary: term(), checked_at: String.t(), company_exemptions_summary: term(), company_name: String.t(), company_number: String.t(), confirmation_statements_summary: term(), corporate_disqualifications_summary: term(), cs01_document_summary: term(), data_fetched_at: String.t(), disqualifications_summary: term(), failed_rules: [String.t()], fca_summary: term(), filing_summary: term(), flags: [KYCCentral.RiskFlag.t()], gleif_summary: term(), individual_insolvency_summary: term(), insolvency_summary: term(), officer_appointments_summary: term(), officers_summary: term(), offshore_leaks_summary: term(), pending_extractions: [String.t()], profile: term(), psc_chain_depth: non_neg_integer(), psc_statements_summary: term(), psc_summary: term(), raw: map(), risk_level: KYCCentral.RiskFlag.severity(), rule_results: [KYCCentral.RuleResult.t()], sanctions_summary: term(), statement_of_capital_summary: term(), timed_out_services: [String.t()], vat_summary: term() }
Functions
True when no rule in the set raised a flag.
@spec flag(t(), String.t()) :: KYCCentral.RiskFlag.t() | nil
The flag with code, or nil when it was not raised.
@spec flags_at(t(), [KYCCentral.RiskFlag.severity()]) :: [KYCCentral.RiskFlag.t()]
Flags matching any of severities.
@spec flags_at_or_above(t(), KYCCentral.RiskFlag.severity()) :: [ KYCCentral.RiskFlag.t() ]
Flags at severity or more severe.
Build an assessment from a decoded /v1/kyc/assess body.
True when a flag with code was raised, e.g. "ACCOUNTS_OVERDUE".
True when some data was unavailable, so the result is incomplete.
A partial assessment is still usable, but an absent flag is not proof of a clean result — treat it as "not yet screened" rather than "clear".
@spec rank(KYCCentral.RiskFlag.severity()) :: 0..3
Numeric severity, ascending. Useful for sorting.
@spec rules_with_status(t(), KYCCentral.RuleResult.status()) :: [ KYCCentral.RuleResult.t() ]
Rule results matching status.