# Review ## Review a customer's identity results `customers.review.get(strid, ReviewGetParams**kwargs) -> CustomerReviewV1` **get** `/v1/customers/{id}/review` Retrieves and analyzes the results of a customer's identity validation and fraud score. This endpoint provides a comprehensive breakdown of the validation outcome, including: - Risk and correlation scores - Reason codes for the decision - Results of watchlist screening - Any network alerts detected Use this endpoint to gain insights into the verification process and make informed decisions about customer onboarding. ### Parameters - `id: str` - `correlation_id: Optional[str]` - `request_id: Optional[str]` - `straddle_account_id: Optional[str]` ### Returns - `class CustomerReviewV1: …` - `data: Data` - `customer_details: DataCustomerDetails` - `id: str` Unique identifier for the customer. - `created_at: datetime` Timestamp of when the customer record was created. - `email: str` The customer's email address. - `name: str` Full name of the individual or business name. - `phone: str` The customer's phone number in E.164 format. - `status: Literal["pending", "review", "verified", 2 more]` - `"pending"` - `"review"` - `"verified"` - `"inactive"` - `"rejected"` - `type: Literal["individual", "business"]` - `"individual"` - `"business"` - `updated_at: datetime` Timestamp of the most recent update to the customer record. - `address: Optional[CustomerAddressV1]` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `address1: str` Primary address line (e.g., street, PO Box). - `city: str` City, district, suburb, town, or village. - `state: str` Two-letter state code. - `zip: str` Zip or postal code. - `address2: Optional[str]` Secondary address line (e.g., apartment, suite, unit, or building). - `compliance_profile: Optional[DataCustomerDetailsComplianceProfile]` PII required to trigger Patriot Act compliant KYC verification. - `class DataCustomerDetailsComplianceProfileIndividualComplianceProfile: …` PII required to trigger Patriot Act compliant KYC verification. - `dob: Optional[date]` Masked date of birth in ****-**-** format. - `ssn: Optional[str]` Masked Social Security Number in the format ***-**-*\***. - `class DataCustomerDetailsComplianceProfileBusinessComplianceProfile: …` Business registration data required to trigger Patriot Act compliant KYB verification. - `ein: Optional[str]` Masked Employer Identification Number in the format **-**\***** - `legal_business_name: Optional[str]` The official registered name of the business. This name should be correlated with the `ein` value. - `representatives: Optional[List[DataCustomerDetailsComplianceProfileBusinessComplianceProfileRepresentative]]` A list of people related to the company. Only valid where customer type is 'business'. - `name: str` - `email: Optional[str]` - `phone: Optional[str]` - `website: Optional[str]` Official business website URL. Optional but recommended for enhanced KYB. - `config: Optional[DataCustomerDetailsConfig]` - `processing_method: Optional[Literal["inline", "background", "skip"]]` - `"inline"` - `"background"` - `"skip"` - `sandbox_outcome: Optional[Literal["standard", "verified", "rejected", "review"]]` - `"standard"` - `"verified"` - `"rejected"` - `"review"` - `device: Optional[DataCustomerDetailsDevice]` - `ip_address: str` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `external_id: Optional[str]` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `metadata: Optional[Dict[str, str]]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `identity_details: Optional[DataIdentityDetails]` - `breakdown: DataIdentityDetailsBreakdown` Detailed breakdown of the customer verification results, including decisions, risk scores, correlation score, and more. - `address: Optional[IdentityVerificationBreakdownV1]` - `codes: Optional[List[str]]` List of specific result codes from the fraud and risk screening. - `correlation: Optional[Literal["low_confidence", "potential_match", "likely_match", "high_confidence"]]` - `"low_confidence"` - `"potential_match"` - `"likely_match"` - `"high_confidence"` - `correlation_score: Optional[float]` Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation. - `decision: Optional[Literal["accept", "reject", "review"]]` - `"accept"` - `"reject"` - `"review"` - `risk_score: Optional[float]` Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud. - `business_evaluation: Optional[IdentityVerificationBreakdownV1]` - `business_identification: Optional[IdentityVerificationBreakdownV1]` - `business_validation: Optional[IdentityVerificationBreakdownV1]` - `email: Optional[IdentityVerificationBreakdownV1]` - `fraud: Optional[IdentityVerificationBreakdownV1]` - `phone: Optional[IdentityVerificationBreakdownV1]` - `synthetic: Optional[IdentityVerificationBreakdownV1]` - `created_at: datetime` Timestamp of when the review was initiated. - `decision: Literal["accept", "reject", "review"]` - `"accept"` - `"reject"` - `"review"` - `review_id: str` Unique identifier for the review. - `updated_at: datetime` Timestamp of the most recent update to the review. - `kyc: Optional[DataIdentityDetailsKYC]` - `validations: DataIdentityDetailsKYCValidations` Boolean values indicating the result of each validation in the KYC process. - `address: Optional[bool]` - `city: Optional[bool]` - `dob: Optional[bool]` - `email: Optional[bool]` - `first_name: Optional[bool]` - `last_name: Optional[bool]` - `phone: Optional[bool]` - `ssn: Optional[bool]` - `state: Optional[bool]` - `zip: Optional[bool]` - `codes: Optional[List[str]]` List of specific result codes from the KYC screening process. - `decision: Optional[Literal["accept", "reject", "review"]]` - `"accept"` - `"reject"` - `"review"` - `messages: Optional[Dict[str, str]]` Dictionary of all messages from the customer verification process. - `network_alerts: Optional[DataIdentityDetailsNetworkAlerts]` - `alerts: Optional[List[str]]` Any alerts or flags raised during the consortium alert screening. - `codes: Optional[List[str]]` List of specific result codes from the consortium alert screening. - `decision: Optional[Literal["accept", "reject", "review"]]` - `"accept"` - `"reject"` - `"review"` - `reputation: Optional[DataIdentityDetailsReputation]` - `codes: Optional[List[str]]` Specific codes related to the Straddle reputation screening results. - `decision: Optional[Literal["accept", "reject", "review"]]` - `"accept"` - `"reject"` - `"review"` - `insights: Optional[DataIdentityDetailsReputationInsights]` - `accounts_active_count: Optional[int]` - `accounts_closed_count: Optional[int]` - `accounts_closed_dates: Optional[List[date]]` - `accounts_count: Optional[int]` - `accounts_fraud_count: Optional[int]` - `accounts_fraud_labeled_dates: Optional[List[date]]` - `accounts_fraud_loss_total_amount: Optional[float]` - `ach_fraud_transactions_count: Optional[int]` - `ach_fraud_transactions_dates: Optional[List[date]]` - `ach_fraud_transactions_total_amount: Optional[float]` - `ach_returned_transactions_count: Optional[int]` - `ach_returned_transactions_dates: Optional[List[date]]` - `ach_returned_transactions_total_amount: Optional[float]` - `applications_approved_count: Optional[int]` - `applications_count: Optional[int]` - `applications_dates: Optional[List[date]]` - `applications_declined_count: Optional[int]` - `applications_fraud_count: Optional[int]` - `card_disputed_transactions_count: Optional[int]` - `card_disputed_transactions_dates: Optional[List[date]]` - `card_disputed_transactions_total_amount: Optional[float]` - `card_fraud_transactions_count: Optional[int]` - `card_fraud_transactions_dates: Optional[List[date]]` - `card_fraud_transactions_total_amount: Optional[float]` - `card_stopped_transactions_count: Optional[int]` - `card_stopped_transactions_dates: Optional[List[date]]` - `user_active_profile_count: Optional[int]` - `user_address_count: Optional[int]` - `user_closed_profile_count: Optional[int]` - `user_dob_count: Optional[int]` - `user_email_count: Optional[int]` - `user_institution_count: Optional[int]` - `user_mobile_count: Optional[int]` - `risk_score: Optional[float]` - `watch_list: Optional[DataIdentityDetailsWatchList]` - `codes: Optional[List[str]]` Specific codes related to the Straddle watchlist screening results. - `decision: Optional[Literal["accept", "reject", "review"]]` - `"accept"` - `"reject"` - `"review"` - `matched: Optional[List[str]]` Information about any matches found during screening. - `matches: Optional[List[DataIdentityDetailsWatchListMatch]]` Information about any matches found during screening. - `correlation: Literal["low_confidence", "potential_match", "likely_match", "high_confidence"]` - `"low_confidence"` - `"potential_match"` - `"likely_match"` - `"high_confidence"` - `list_name: str` The name of the list the match was found. - `match_fields: List[str]` Data fields that matched. - `urls: List[str]` Relevent Urls to review. - `meta: ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `api_request_id: str` Unique identifier for this API request, useful for troubleshooting. - `api_request_timestamp: datetime` Timestamp for this API request, useful for troubleshooting. - `response_type: Literal["object", "array", "error", "none"]` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"` - `"array"` - `"error"` - `"none"` ### Example ```python import os from straddle import Straddle client = Straddle( api_key=os.environ.get("STRADDLE_API_KEY"), # This is the default and can be omitted ) customer_review_v1 = client.customers.review.get( id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", ) print(customer_review_v1.data) ``` #### Response ```json { "data": { "customer_details": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "email": "ron.swanson@pawnee.com", "name": "Ron Swanson", "phone": "+12128675309", "status": "pending", "type": "individual", "updated_at": "2019-12-27T18:11:19.117Z", "address": { "address1": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345", "address2": "Apt 1" }, "compliance_profile": { "dob": "2019-12-27", "ssn": "***-**-****" }, "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "device": { "ip_address": "192.168.1.1" }, "external_id": "external_id", "metadata": { "foo": "string" } }, "identity_details": { "breakdown": { "address": { "codes": [ "string" ], "correlation": "low_confidence", "correlation_score": 0, "decision": "accept", "risk_score": 0 }, "business_evaluation": { "codes": [ "string" ], "correlation": "low_confidence", "correlation_score": 0, "decision": "accept", "risk_score": 0 }, "business_identification": { "codes": [ "string" ], "correlation": "low_confidence", "correlation_score": 0, "decision": "accept", "risk_score": 0 }, "business_validation": { "codes": [ "string" ], "correlation": "low_confidence", "correlation_score": 0, "decision": "accept", "risk_score": 0 }, "email": { "codes": [ "string" ], "correlation": "low_confidence", "correlation_score": 0, "decision": "accept", "risk_score": 0 }, "fraud": { "codes": [ "string" ], "correlation": "low_confidence", "correlation_score": 0, "decision": "accept", "risk_score": 0 }, "phone": { "codes": [ "string" ], "correlation": "low_confidence", "correlation_score": 0, "decision": "accept", "risk_score": 0 }, "synthetic": { "codes": [ "string" ], "correlation": "low_confidence", "correlation_score": 0, "decision": "accept", "risk_score": 0 } }, "created_at": "2019-12-27T18:11:19.117Z", "decision": "accept", "review_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "updated_at": "2019-12-27T18:11:19.117Z", "kyc": { "validations": { "address": true, "city": true, "dob": true, "email": true, "first_name": true, "last_name": true, "phone": true, "ssn": true, "state": true, "zip": true }, "codes": [ "string" ], "decision": "accept" }, "messages": { "foo": "string" }, "network_alerts": { "alerts": [ "string" ], "codes": [ "string" ], "decision": "accept" }, "reputation": { "codes": [ "string" ], "decision": "accept", "insights": { "accounts_active_count": 0, "accounts_closed_count": 0, "accounts_closed_dates": [ "2019-12-27" ], "accounts_count": 0, "accounts_fraud_count": 0, "accounts_fraud_labeled_dates": [ "2019-12-27" ], "accounts_fraud_loss_total_amount": 0, "ach_fraud_transactions_count": 0, "ach_fraud_transactions_dates": [ "2019-12-27" ], "ach_fraud_transactions_total_amount": 0, "ach_returned_transactions_count": 0, "ach_returned_transactions_dates": [ "2019-12-27" ], "ach_returned_transactions_total_amount": 0, "applications_approved_count": 0, "applications_count": 0, "applications_dates": [ "2019-12-27" ], "applications_declined_count": 0, "applications_fraud_count": 0, "card_disputed_transactions_count": 0, "card_disputed_transactions_dates": [ "2019-12-27" ], "card_disputed_transactions_total_amount": 0, "card_fraud_transactions_count": 0, "card_fraud_transactions_dates": [ "2019-12-27" ], "card_fraud_transactions_total_amount": 0, "card_stopped_transactions_count": 0, "card_stopped_transactions_dates": [ "2019-12-27" ], "user_active_profile_count": 0, "user_address_count": 0, "user_closed_profile_count": 0, "user_dob_count": 0, "user_email_count": 0, "user_institution_count": 0, "user_mobile_count": 0 }, "risk_score": 0 }, "watch_list": { "codes": [ "string" ], "decision": "accept", "matched": [ "string" ], "matches": [ { "correlation": "low_confidence", "list_name": "list_name", "match_fields": [ "string" ], "urls": [ "string" ] } ] } } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Update a customer's verification status `customers.review.decision(strid, ReviewDecisionParams**kwargs) -> CustomerV1` **patch** `/v1/customers/{id}/review` Updates the status of a customer's identity decision. This endpoint allows you to modify the outcome of a customer risk screening and is useful for correcting or updating the status of a customer's verification. Note that this endpoint is only available for customers with a current status of `review`. ### Parameters - `id: str` - `status: Literal["verified", "rejected"]` The final status of the customer review. - `"verified"` - `"rejected"` - `correlation_id: Optional[str]` - `idempotency_key: Optional[str]` - `request_id: Optional[str]` - `straddle_account_id: Optional[str]` ### Returns - `class CustomerV1: …` - `data: Data` - `id: str` Unique identifier for the customer. - `created_at: datetime` Timestamp of when the customer record was created. - `email: str` The customer's email address. - `name: str` Full name of the individual or business name. - `phone: str` The customer's phone number in E.164 format. - `status: Literal["pending", "review", "verified", 2 more]` - `"pending"` - `"review"` - `"verified"` - `"inactive"` - `"rejected"` - `type: Literal["individual", "business"]` - `"individual"` - `"business"` - `updated_at: datetime` Timestamp of the most recent update to the customer record. - `address: Optional[CustomerAddressV1]` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `address1: str` Primary address line (e.g., street, PO Box). - `city: str` City, district, suburb, town, or village. - `state: str` Two-letter state code. - `zip: str` Zip or postal code. - `address2: Optional[str]` Secondary address line (e.g., apartment, suite, unit, or building). - `compliance_profile: Optional[DataComplianceProfile]` PII required to trigger Patriot Act compliant KYC verification. - `class DataComplianceProfileIndividualComplianceProfile: …` PII required to trigger Patriot Act compliant KYC verification. - `dob: Optional[date]` Masked date of birth in ****-**-** format. - `ssn: Optional[str]` Masked Social Security Number in the format ***-**-*\***. - `class DataComplianceProfileBusinessComplianceProfile: …` Business registration data required to trigger Patriot Act compliant KYB verification. - `ein: Optional[str]` Masked Employer Identification Number in the format **-**\***** - `legal_business_name: Optional[str]` The official registered name of the business. This name should be correlated with the `ein` value. - `representatives: Optional[List[DataComplianceProfileBusinessComplianceProfileRepresentative]]` A list of people related to the company. Only valid where customer type is 'business'. - `name: str` - `email: Optional[str]` - `phone: Optional[str]` - `website: Optional[str]` Official business website URL. Optional but recommended for enhanced KYB. - `config: Optional[DataConfig]` - `processing_method: Optional[Literal["inline", "background", "skip"]]` - `"inline"` - `"background"` - `"skip"` - `sandbox_outcome: Optional[Literal["standard", "verified", "rejected", "review"]]` - `"standard"` - `"verified"` - `"rejected"` - `"review"` - `device: Optional[DataDevice]` - `ip_address: str` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `external_id: Optional[str]` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `metadata: Optional[Dict[str, str]]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `meta: ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `api_request_id: str` Unique identifier for this API request, useful for troubleshooting. - `api_request_timestamp: datetime` Timestamp for this API request, useful for troubleshooting. - `response_type: Literal["object", "array", "error", "none"]` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"` - `"array"` - `"error"` - `"none"` ### Example ```python import os from straddle import Straddle client = Straddle( api_key=os.environ.get("STRADDLE_API_KEY"), # This is the default and can be omitted ) customer_v1 = client.customers.review.decision( id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", status="verified", ) print(customer_v1.data) ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "email": "ron.swanson@pawnee.com", "name": "Ron Swanson", "phone": "+12128675309", "status": "pending", "type": "individual", "updated_at": "2019-12-27T18:11:19.117Z", "address": { "address1": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345", "address2": "Apt 1" }, "compliance_profile": { "dob": "2019-12-27", "ssn": "***-**-****" }, "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "device": { "ip_address": "192.168.1.1" }, "external_id": "external_id", "metadata": { "foo": "string" } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Update a customer's identity decision `customers.review.refresh_review(strid, ReviewRefreshReviewParams**kwargs) -> CustomerV1` **put** `/v1/customers/{id}/refresh_review` Updates the decision of a customer's identity validation. This endpoint allows you to modify the outcome of a customer decision and is useful for correcting or updating the status of a customer's verification. ### Parameters - `id: str` - `correlation_id: Optional[str]` - `idempotency_key: Optional[str]` - `request_id: Optional[str]` - `straddle_account_id: Optional[str]` ### Returns - `class CustomerV1: …` - `data: Data` - `id: str` Unique identifier for the customer. - `created_at: datetime` Timestamp of when the customer record was created. - `email: str` The customer's email address. - `name: str` Full name of the individual or business name. - `phone: str` The customer's phone number in E.164 format. - `status: Literal["pending", "review", "verified", 2 more]` - `"pending"` - `"review"` - `"verified"` - `"inactive"` - `"rejected"` - `type: Literal["individual", "business"]` - `"individual"` - `"business"` - `updated_at: datetime` Timestamp of the most recent update to the customer record. - `address: Optional[CustomerAddressV1]` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `address1: str` Primary address line (e.g., street, PO Box). - `city: str` City, district, suburb, town, or village. - `state: str` Two-letter state code. - `zip: str` Zip or postal code. - `address2: Optional[str]` Secondary address line (e.g., apartment, suite, unit, or building). - `compliance_profile: Optional[DataComplianceProfile]` PII required to trigger Patriot Act compliant KYC verification. - `class DataComplianceProfileIndividualComplianceProfile: …` PII required to trigger Patriot Act compliant KYC verification. - `dob: Optional[date]` Masked date of birth in ****-**-** format. - `ssn: Optional[str]` Masked Social Security Number in the format ***-**-*\***. - `class DataComplianceProfileBusinessComplianceProfile: …` Business registration data required to trigger Patriot Act compliant KYB verification. - `ein: Optional[str]` Masked Employer Identification Number in the format **-**\***** - `legal_business_name: Optional[str]` The official registered name of the business. This name should be correlated with the `ein` value. - `representatives: Optional[List[DataComplianceProfileBusinessComplianceProfileRepresentative]]` A list of people related to the company. Only valid where customer type is 'business'. - `name: str` - `email: Optional[str]` - `phone: Optional[str]` - `website: Optional[str]` Official business website URL. Optional but recommended for enhanced KYB. - `config: Optional[DataConfig]` - `processing_method: Optional[Literal["inline", "background", "skip"]]` - `"inline"` - `"background"` - `"skip"` - `sandbox_outcome: Optional[Literal["standard", "verified", "rejected", "review"]]` - `"standard"` - `"verified"` - `"rejected"` - `"review"` - `device: Optional[DataDevice]` - `ip_address: str` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `external_id: Optional[str]` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `metadata: Optional[Dict[str, str]]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `meta: ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `api_request_id: str` Unique identifier for this API request, useful for troubleshooting. - `api_request_timestamp: datetime` Timestamp for this API request, useful for troubleshooting. - `response_type: Literal["object", "array", "error", "none"]` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"` - `"array"` - `"error"` - `"none"` ### Example ```python import os from straddle import Straddle client = Straddle( api_key=os.environ.get("STRADDLE_API_KEY"), # This is the default and can be omitted ) customer_v1 = client.customers.review.refresh_review( id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", ) print(customer_v1.data) ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "email": "ron.swanson@pawnee.com", "name": "Ron Swanson", "phone": "+12128675309", "status": "pending", "type": "individual", "updated_at": "2019-12-27T18:11:19.117Z", "address": { "address1": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345", "address2": "Apt 1" }, "compliance_profile": { "dob": "2019-12-27", "ssn": "***-**-****" }, "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "device": { "ip_address": "192.168.1.1" }, "external_id": "external_id", "metadata": { "foo": "string" } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Domain Types ### Customer Review V1 - `class CustomerReviewV1: …` - `data: Data` - `customer_details: DataCustomerDetails` - `id: str` Unique identifier for the customer. - `created_at: datetime` Timestamp of when the customer record was created. - `email: str` The customer's email address. - `name: str` Full name of the individual or business name. - `phone: str` The customer's phone number in E.164 format. - `status: Literal["pending", "review", "verified", 2 more]` - `"pending"` - `"review"` - `"verified"` - `"inactive"` - `"rejected"` - `type: Literal["individual", "business"]` - `"individual"` - `"business"` - `updated_at: datetime` Timestamp of the most recent update to the customer record. - `address: Optional[CustomerAddressV1]` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `address1: str` Primary address line (e.g., street, PO Box). - `city: str` City, district, suburb, town, or village. - `state: str` Two-letter state code. - `zip: str` Zip or postal code. - `address2: Optional[str]` Secondary address line (e.g., apartment, suite, unit, or building). - `compliance_profile: Optional[DataCustomerDetailsComplianceProfile]` PII required to trigger Patriot Act compliant KYC verification. - `class DataCustomerDetailsComplianceProfileIndividualComplianceProfile: …` PII required to trigger Patriot Act compliant KYC verification. - `dob: Optional[date]` Masked date of birth in ****-**-** format. - `ssn: Optional[str]` Masked Social Security Number in the format ***-**-*\***. - `class DataCustomerDetailsComplianceProfileBusinessComplianceProfile: …` Business registration data required to trigger Patriot Act compliant KYB verification. - `ein: Optional[str]` Masked Employer Identification Number in the format **-**\***** - `legal_business_name: Optional[str]` The official registered name of the business. This name should be correlated with the `ein` value. - `representatives: Optional[List[DataCustomerDetailsComplianceProfileBusinessComplianceProfileRepresentative]]` A list of people related to the company. Only valid where customer type is 'business'. - `name: str` - `email: Optional[str]` - `phone: Optional[str]` - `website: Optional[str]` Official business website URL. Optional but recommended for enhanced KYB. - `config: Optional[DataCustomerDetailsConfig]` - `processing_method: Optional[Literal["inline", "background", "skip"]]` - `"inline"` - `"background"` - `"skip"` - `sandbox_outcome: Optional[Literal["standard", "verified", "rejected", "review"]]` - `"standard"` - `"verified"` - `"rejected"` - `"review"` - `device: Optional[DataCustomerDetailsDevice]` - `ip_address: str` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `external_id: Optional[str]` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `metadata: Optional[Dict[str, str]]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `identity_details: Optional[DataIdentityDetails]` - `breakdown: DataIdentityDetailsBreakdown` Detailed breakdown of the customer verification results, including decisions, risk scores, correlation score, and more. - `address: Optional[IdentityVerificationBreakdownV1]` - `codes: Optional[List[str]]` List of specific result codes from the fraud and risk screening. - `correlation: Optional[Literal["low_confidence", "potential_match", "likely_match", "high_confidence"]]` - `"low_confidence"` - `"potential_match"` - `"likely_match"` - `"high_confidence"` - `correlation_score: Optional[float]` Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation. - `decision: Optional[Literal["accept", "reject", "review"]]` - `"accept"` - `"reject"` - `"review"` - `risk_score: Optional[float]` Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud. - `business_evaluation: Optional[IdentityVerificationBreakdownV1]` - `business_identification: Optional[IdentityVerificationBreakdownV1]` - `business_validation: Optional[IdentityVerificationBreakdownV1]` - `email: Optional[IdentityVerificationBreakdownV1]` - `fraud: Optional[IdentityVerificationBreakdownV1]` - `phone: Optional[IdentityVerificationBreakdownV1]` - `synthetic: Optional[IdentityVerificationBreakdownV1]` - `created_at: datetime` Timestamp of when the review was initiated. - `decision: Literal["accept", "reject", "review"]` - `"accept"` - `"reject"` - `"review"` - `review_id: str` Unique identifier for the review. - `updated_at: datetime` Timestamp of the most recent update to the review. - `kyc: Optional[DataIdentityDetailsKYC]` - `validations: DataIdentityDetailsKYCValidations` Boolean values indicating the result of each validation in the KYC process. - `address: Optional[bool]` - `city: Optional[bool]` - `dob: Optional[bool]` - `email: Optional[bool]` - `first_name: Optional[bool]` - `last_name: Optional[bool]` - `phone: Optional[bool]` - `ssn: Optional[bool]` - `state: Optional[bool]` - `zip: Optional[bool]` - `codes: Optional[List[str]]` List of specific result codes from the KYC screening process. - `decision: Optional[Literal["accept", "reject", "review"]]` - `"accept"` - `"reject"` - `"review"` - `messages: Optional[Dict[str, str]]` Dictionary of all messages from the customer verification process. - `network_alerts: Optional[DataIdentityDetailsNetworkAlerts]` - `alerts: Optional[List[str]]` Any alerts or flags raised during the consortium alert screening. - `codes: Optional[List[str]]` List of specific result codes from the consortium alert screening. - `decision: Optional[Literal["accept", "reject", "review"]]` - `"accept"` - `"reject"` - `"review"` - `reputation: Optional[DataIdentityDetailsReputation]` - `codes: Optional[List[str]]` Specific codes related to the Straddle reputation screening results. - `decision: Optional[Literal["accept", "reject", "review"]]` - `"accept"` - `"reject"` - `"review"` - `insights: Optional[DataIdentityDetailsReputationInsights]` - `accounts_active_count: Optional[int]` - `accounts_closed_count: Optional[int]` - `accounts_closed_dates: Optional[List[date]]` - `accounts_count: Optional[int]` - `accounts_fraud_count: Optional[int]` - `accounts_fraud_labeled_dates: Optional[List[date]]` - `accounts_fraud_loss_total_amount: Optional[float]` - `ach_fraud_transactions_count: Optional[int]` - `ach_fraud_transactions_dates: Optional[List[date]]` - `ach_fraud_transactions_total_amount: Optional[float]` - `ach_returned_transactions_count: Optional[int]` - `ach_returned_transactions_dates: Optional[List[date]]` - `ach_returned_transactions_total_amount: Optional[float]` - `applications_approved_count: Optional[int]` - `applications_count: Optional[int]` - `applications_dates: Optional[List[date]]` - `applications_declined_count: Optional[int]` - `applications_fraud_count: Optional[int]` - `card_disputed_transactions_count: Optional[int]` - `card_disputed_transactions_dates: Optional[List[date]]` - `card_disputed_transactions_total_amount: Optional[float]` - `card_fraud_transactions_count: Optional[int]` - `card_fraud_transactions_dates: Optional[List[date]]` - `card_fraud_transactions_total_amount: Optional[float]` - `card_stopped_transactions_count: Optional[int]` - `card_stopped_transactions_dates: Optional[List[date]]` - `user_active_profile_count: Optional[int]` - `user_address_count: Optional[int]` - `user_closed_profile_count: Optional[int]` - `user_dob_count: Optional[int]` - `user_email_count: Optional[int]` - `user_institution_count: Optional[int]` - `user_mobile_count: Optional[int]` - `risk_score: Optional[float]` - `watch_list: Optional[DataIdentityDetailsWatchList]` - `codes: Optional[List[str]]` Specific codes related to the Straddle watchlist screening results. - `decision: Optional[Literal["accept", "reject", "review"]]` - `"accept"` - `"reject"` - `"review"` - `matched: Optional[List[str]]` Information about any matches found during screening. - `matches: Optional[List[DataIdentityDetailsWatchListMatch]]` Information about any matches found during screening. - `correlation: Literal["low_confidence", "potential_match", "likely_match", "high_confidence"]` - `"low_confidence"` - `"potential_match"` - `"likely_match"` - `"high_confidence"` - `list_name: str` The name of the list the match was found. - `match_fields: List[str]` Data fields that matched. - `urls: List[str]` Relevent Urls to review. - `meta: ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `api_request_id: str` Unique identifier for this API request, useful for troubleshooting. - `api_request_timestamp: datetime` Timestamp for this API request, useful for troubleshooting. - `response_type: Literal["object", "array", "error", "none"]` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `"object"` - `"array"` - `"error"` - `"none"` ### Identity Verification Breakdown V1 - `class IdentityVerificationBreakdownV1: …` - `codes: Optional[List[str]]` List of specific result codes from the fraud and risk screening. - `correlation: Optional[Literal["low_confidence", "potential_match", "likely_match", "high_confidence"]]` - `"low_confidence"` - `"potential_match"` - `"likely_match"` - `"high_confidence"` - `correlation_score: Optional[float]` Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation. - `decision: Optional[Literal["accept", "reject", "review"]]` - `"accept"` - `"reject"` - `"review"` - `risk_score: Optional[float]` Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud.