pub struct KycProfile {Show 16 fields
pub declared_purpose: String,
pub expected_monthly_turnover: TurnoverBand,
pub expected_transaction_frequency: FrequencyBand,
pub expected_categories: Vec<ExpectedCategory>,
pub source_of_funds: SourceOfFunds,
pub source_of_wealth: Option<SourceOfWealth>,
pub geographic_exposure: Vec<CountryExposure>,
pub cash_intensity: CashIntensity,
pub beneficial_owner_complexity: u8,
pub international_rate: f64,
pub large_transaction_rate: f64,
pub large_transaction_threshold: u64,
pub completeness_score: f64,
pub true_source_of_funds: Option<SourceOfFunds>,
pub true_turnover: Option<TurnoverBand>,
pub is_truthful: bool,
}Expand description
KYC profile defining expected customer activity.
Fields§
§declared_purpose: StringDeclared purpose of the account
expected_monthly_turnover: TurnoverBandExpected monthly turnover band
expected_transaction_frequency: FrequencyBandExpected transaction frequency band
expected_categories: Vec<ExpectedCategory>Expected merchant/transaction categories
source_of_funds: SourceOfFundsDeclared source of funds
source_of_wealth: Option<SourceOfWealth>Declared source of wealth (for HNW)
geographic_exposure: Vec<CountryExposure>Geographic exposure (countries)
cash_intensity: CashIntensityExpected cash intensity
beneficial_owner_complexity: u8Beneficial owner complexity score (0-10)
international_rate: f64Expected international transaction rate (0.0-1.0)
large_transaction_rate: f64Expected large transaction rate (0.0-1.0)
large_transaction_threshold: u64Threshold for “large” transaction
completeness_score: f64KYC completeness score (0.0-1.0)
true_source_of_funds: Option<SourceOfFunds>True source of funds (if different from declared)
true_turnover: Option<TurnoverBand>True expected turnover (if different from declared)
is_truthful: boolWhether the KYC profile is truthful
Implementations§
Source§impl KycProfile
impl KycProfile
Sourcepub fn new(purpose: &str, source_of_funds: SourceOfFunds) -> Self
pub fn new(purpose: &str, source_of_funds: SourceOfFunds) -> Self
Create a new KYC profile.
Sourcepub fn retail_standard() -> Self
pub fn retail_standard() -> Self
Create a profile for a retail customer.
Sourcepub fn high_net_worth() -> Self
pub fn high_net_worth() -> Self
Create a profile for a high net worth customer.
Sourcepub fn small_business() -> Self
pub fn small_business() -> Self
Create a profile for a small business.
Sourcepub fn cash_intensive_business() -> Self
pub fn cash_intensive_business() -> Self
Create a profile for a cash-intensive business.
Sourcepub fn with_turnover(self, turnover: TurnoverBand) -> Self
pub fn with_turnover(self, turnover: TurnoverBand) -> Self
Set turnover band.
Sourcepub fn with_frequency(self, frequency: FrequencyBand) -> Self
pub fn with_frequency(self, frequency: FrequencyBand) -> Self
Set frequency band.
Sourcepub fn with_expected_category(self, category: ExpectedCategory) -> Self
pub fn with_expected_category(self, category: ExpectedCategory) -> Self
Add expected category.
Sourcepub fn with_country_exposure(self, exposure: CountryExposure) -> Self
pub fn with_country_exposure(self, exposure: CountryExposure) -> Self
Add geographic exposure.
Sourcepub fn with_cash_intensity(self, intensity: CashIntensity) -> Self
pub fn with_cash_intensity(self, intensity: CashIntensity) -> Self
Set cash intensity.
Sourcepub fn with_deception(
self,
true_source: SourceOfFunds,
true_turnover: Option<TurnoverBand>,
) -> Self
pub fn with_deception( self, true_source: SourceOfFunds, true_turnover: Option<TurnoverBand>, ) -> Self
Set as deceptive (ground truth differs from declared).
Sourcepub fn calculate_risk_score(&self) -> u8
pub fn calculate_risk_score(&self) -> u8
Calculate risk score based on profile.
Sourcepub fn is_within_expected_turnover(&self, actual_monthly: u64) -> bool
pub fn is_within_expected_turnover(&self, actual_monthly: u64) -> bool
Check if actual activity matches expected.
Sourcepub fn is_within_expected_frequency(&self, actual_count: u32) -> bool
pub fn is_within_expected_frequency(&self, actual_count: u32) -> bool
Check if transaction frequency is within expected.
Trait Implementations§
Source§impl Clone for KycProfile
impl Clone for KycProfile
Source§fn clone(&self) -> KycProfile
fn clone(&self) -> KycProfile
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more