pub struct BankingCustomer {Show 34 fields
pub customer_id: Uuid,
pub customer_type: BankingCustomerType,
pub name: CustomerName,
pub persona: Option<PersonaVariant>,
pub residence_country: String,
pub citizenship_country: Option<String>,
pub date_of_birth: Option<NaiveDate>,
pub tax_id: Option<String>,
pub national_id: Option<String>,
pub passport_number: Option<String>,
pub onboarding_date: NaiveDate,
pub kyc_profile: KycProfile,
pub risk_tier: RiskTier,
pub account_ids: Vec<Uuid>,
pub relationships: Vec<CustomerRelationship>,
pub beneficial_owners: Vec<BeneficialOwner>,
pub email: Option<String>,
pub phone: Option<String>,
pub address_line1: Option<String>,
pub address_line2: Option<String>,
pub city: Option<String>,
pub state: Option<String>,
pub postal_code: Option<String>,
pub is_active: bool,
pub is_pep: bool,
pub pep_category: Option<PepCategory>,
pub industry_code: Option<String>,
pub industry_description: Option<String>,
pub household_id: Option<Uuid>,
pub last_kyc_review: Option<NaiveDate>,
pub next_kyc_review: Option<NaiveDate>,
pub is_mule: bool,
pub kyc_truthful: bool,
pub true_source_of_funds: Option<SourceOfFunds>,
}Expand description
A banking customer with full KYC information.
Fields§
§customer_id: UuidUnique customer identifier
customer_type: BankingCustomerTypeCustomer type (retail, business, trust)
name: CustomerNameCustomer name
persona: Option<PersonaVariant>Behavioral persona
residence_country: StringCountry of residence (ISO 3166-1 alpha-2)
citizenship_country: Option<String>Country of citizenship (for individuals)
date_of_birth: Option<NaiveDate>Date of birth (for individuals) or incorporation (for entities)
tax_id: Option<String>Tax identification number
national_id: Option<String>National ID number
passport_number: Option<String>Passport number
onboarding_date: NaiveDateCustomer onboarding date
kyc_profile: KycProfileKYC profile with expected activity
risk_tier: RiskTierRisk tier assigned
account_ids: Vec<Uuid>Account IDs owned by this customer
relationships: Vec<CustomerRelationship>Relationships with other customers
beneficial_owners: Vec<BeneficialOwner>Beneficial owners (for entities/trusts)
email: Option<String>Primary contact email
phone: Option<String>Primary contact phone
address_line1: Option<String>Address line 1
address_line2: Option<String>Address line 2
city: Option<String>City
state: Option<String>State/province
postal_code: Option<String>Postal code
is_active: boolWhether customer is active
is_pep: boolWhether customer is a PEP (Politically Exposed Person)
pep_category: Option<PepCategory>PEP category if applicable
industry_code: Option<String>Industry/occupation (NAICS code for businesses)
industry_description: Option<String>Industry description
household_id: Option<Uuid>Household ID for linked retail customers
last_kyc_review: Option<NaiveDate>Date of last KYC review
next_kyc_review: Option<NaiveDate>Next scheduled KYC review
is_mule: boolWhether this is a mule account (ground truth)
kyc_truthful: boolWhether KYC information is truthful
true_source_of_funds: Option<SourceOfFunds>True source of funds if different from declared
Implementations§
Source§impl BankingCustomer
impl BankingCustomer
Sourcepub fn new_retail(
customer_id: Uuid,
first_name: &str,
last_name: &str,
residence_country: &str,
onboarding_date: NaiveDate,
) -> Self
pub fn new_retail( customer_id: Uuid, first_name: &str, last_name: &str, residence_country: &str, onboarding_date: NaiveDate, ) -> Self
Create a new retail customer.
Sourcepub fn new_business(
customer_id: Uuid,
legal_name: &str,
residence_country: &str,
onboarding_date: NaiveDate,
) -> Self
pub fn new_business( customer_id: Uuid, legal_name: &str, residence_country: &str, onboarding_date: NaiveDate, ) -> Self
Create a new business customer.
Sourcepub fn with_persona(self, persona: PersonaVariant) -> Self
pub fn with_persona(self, persona: PersonaVariant) -> Self
Set the persona.
Sourcepub fn with_risk_tier(self, tier: RiskTier) -> Self
pub fn with_risk_tier(self, tier: RiskTier) -> Self
Set the risk tier.
Sourcepub fn add_account(&mut self, account_id: Uuid)
pub fn add_account(&mut self, account_id: Uuid)
Add an account.
Sourcepub fn add_relationship(&mut self, relationship: CustomerRelationship)
pub fn add_relationship(&mut self, relationship: CustomerRelationship)
Add a relationship.
Sourcepub fn add_beneficial_owner(&mut self, owner: BeneficialOwner)
pub fn add_beneficial_owner(&mut self, owner: BeneficialOwner)
Add a beneficial owner.
Sourcepub fn calculate_risk_score(&self) -> u8
pub fn calculate_risk_score(&self) -> u8
Calculate composite risk score.
Trait Implementations§
Source§impl Clone for BankingCustomer
impl Clone for BankingCustomer
Source§fn clone(&self) -> BankingCustomer
fn clone(&self) -> BankingCustomer
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more