## Review a customer's identity results `client.Customers.Review.Get(ctx, id, query) (*CustomerReviewV1, error)` **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 string` - `query CustomerReviewGetParams` - `CorrelationID param.Field[string]` Optional client generated identifier to trace and debug a series of requests. - `RequestID param.Field[string]` Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` For use by platforms to specify an account id and set scope of a request. ### Returns - `type CustomerReviewV1 struct{…}` - `Data CustomerReviewV1Data` - `CustomerDetails CustomerReviewV1DataCustomerDetails` - `ID string` Unique identifier for the customer. - `CreatedAt Time` Timestamp of when the customer record was created. - `Email string` The customer's email address. - `Name string` Full name of the individual or business name. - `Phone string` The customer's phone number in E.164 format. - `Status string` - `const CustomerReviewV1DataCustomerDetailsStatusPending CustomerReviewV1DataCustomerDetailsStatus = "pending"` - `const CustomerReviewV1DataCustomerDetailsStatusReview CustomerReviewV1DataCustomerDetailsStatus = "review"` - `const CustomerReviewV1DataCustomerDetailsStatusVerified CustomerReviewV1DataCustomerDetailsStatus = "verified"` - `const CustomerReviewV1DataCustomerDetailsStatusInactive CustomerReviewV1DataCustomerDetailsStatus = "inactive"` - `const CustomerReviewV1DataCustomerDetailsStatusRejected CustomerReviewV1DataCustomerDetailsStatus = "rejected"` - `Type string` - `const CustomerReviewV1DataCustomerDetailsTypeIndividual CustomerReviewV1DataCustomerDetailsType = "individual"` - `const CustomerReviewV1DataCustomerDetailsTypeBusiness CustomerReviewV1DataCustomerDetailsType = "business"` - `UpdatedAt Time` Timestamp of the most recent update to the customer record. - `Address CustomerAddressV1` An object containing the customer's address. This is optional, but if provided, all required fields must be present. - `Address1 string` Primary address line (e.g., street, PO Box). - `City string` City, district, suburb, town, or village. - `State string` Two-letter state code. - `Zip string` Zip or postal code. - `Address2 string` Secondary address line (e.g., apartment, suite, unit, or building). - `ComplianceProfile CustomerReviewV1DataCustomerDetailsComplianceProfileUnion` PII required to trigger Patriot Act compliant KYC verification. - `type CustomerReviewV1DataCustomerDetailsComplianceProfileIndividualComplianceProfile struct{…}` PII required to trigger Patriot Act compliant KYC verification. - `Dob Time` Masked date of birth in ****-**-** format. - `Ssn string` Masked Social Security Number in the format ***-**-*\***. - `type CustomerReviewV1DataCustomerDetailsComplianceProfileBusinessComplianceProfile struct{…}` Business registration data required to trigger Patriot Act compliant KYB verification. - `Ein string` Masked Employer Identification Number in the format **-**\***** - `LegalBusinessName string` The official registered name of the business. This name should be correlated with the `ein` value. - `Representatives []CustomerReviewV1DataCustomerDetailsComplianceProfileBusinessComplianceProfileRepresentative` A list of people related to the company. Only valid where customer type is 'business'. - `Name string` - `Email string` - `Phone string` - `Website string` Official business website URL. Optional but recommended for enhanced KYB. - `Config CustomerReviewV1DataCustomerDetailsConfig` - `ProcessingMethod string` - `const CustomerReviewV1DataCustomerDetailsConfigProcessingMethodInline CustomerReviewV1DataCustomerDetailsConfigProcessingMethod = "inline"` - `const CustomerReviewV1DataCustomerDetailsConfigProcessingMethodBackground CustomerReviewV1DataCustomerDetailsConfigProcessingMethod = "background"` - `const CustomerReviewV1DataCustomerDetailsConfigProcessingMethodSkip CustomerReviewV1DataCustomerDetailsConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const CustomerReviewV1DataCustomerDetailsConfigSandboxOutcomeStandard CustomerReviewV1DataCustomerDetailsConfigSandboxOutcome = "standard"` - `const CustomerReviewV1DataCustomerDetailsConfigSandboxOutcomeVerified CustomerReviewV1DataCustomerDetailsConfigSandboxOutcome = "verified"` - `const CustomerReviewV1DataCustomerDetailsConfigSandboxOutcomeRejected CustomerReviewV1DataCustomerDetailsConfigSandboxOutcome = "rejected"` - `const CustomerReviewV1DataCustomerDetailsConfigSandboxOutcomeReview CustomerReviewV1DataCustomerDetailsConfigSandboxOutcome = "review"` - `Device CustomerReviewV1DataCustomerDetailsDevice` - `IPAddress string` The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration. - `ExternalID string` Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format. - `IdentityDetails CustomerReviewV1DataIdentityDetails` - `Breakdown CustomerReviewV1DataIdentityDetailsBreakdown` Detailed breakdown of the customer verification results, including decisions, risk scores, correlation score, and more. - `Address IdentityVerificationBreakdownV1` - `Codes []string` List of specific result codes from the fraud and risk screening. - `Correlation IdentityVerificationBreakdownV1Correlation` - `const IdentityVerificationBreakdownV1CorrelationLowConfidence IdentityVerificationBreakdownV1Correlation = "low_confidence"` - `const IdentityVerificationBreakdownV1CorrelationPotentialMatch IdentityVerificationBreakdownV1Correlation = "potential_match"` - `const IdentityVerificationBreakdownV1CorrelationLikelyMatch IdentityVerificationBreakdownV1Correlation = "likely_match"` - `const IdentityVerificationBreakdownV1CorrelationHighConfidence IdentityVerificationBreakdownV1Correlation = "high_confidence"` - `CorrelationScore float64` Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation. - `Decision IdentityVerificationBreakdownV1Decision` - `const IdentityVerificationBreakdownV1DecisionAccept IdentityVerificationBreakdownV1Decision = "accept"` - `const IdentityVerificationBreakdownV1DecisionReject IdentityVerificationBreakdownV1Decision = "reject"` - `const IdentityVerificationBreakdownV1DecisionReview IdentityVerificationBreakdownV1Decision = "review"` - `RiskScore float64` Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud. - `BusinessEvaluation IdentityVerificationBreakdownV1` - `BusinessIdentification IdentityVerificationBreakdownV1` - `BusinessValidation IdentityVerificationBreakdownV1` - `Email IdentityVerificationBreakdownV1` - `Fraud IdentityVerificationBreakdownV1` - `Phone IdentityVerificationBreakdownV1` - `Synthetic IdentityVerificationBreakdownV1` - `CreatedAt Time` Timestamp of when the review was initiated. - `Decision string` - `const CustomerReviewV1DataIdentityDetailsDecisionAccept CustomerReviewV1DataIdentityDetailsDecision = "accept"` - `const CustomerReviewV1DataIdentityDetailsDecisionReject CustomerReviewV1DataIdentityDetailsDecision = "reject"` - `const CustomerReviewV1DataIdentityDetailsDecisionReview CustomerReviewV1DataIdentityDetailsDecision = "review"` - `ReviewID string` Unique identifier for the review. - `UpdatedAt Time` Timestamp of the most recent update to the review. - `KYC CustomerReviewV1DataIdentityDetailsKYC` - `Validations CustomerReviewV1DataIdentityDetailsKYCValidations` Boolean values indicating the result of each validation in the KYC process. - `Address bool` - `City bool` - `Dob bool` - `Email bool` - `FirstName bool` - `LastName bool` - `Phone bool` - `Ssn bool` - `State bool` - `Zip bool` - `Codes []string` List of specific result codes from the KYC screening process. - `Decision string` - `const CustomerReviewV1DataIdentityDetailsKYCDecisionAccept CustomerReviewV1DataIdentityDetailsKYCDecision = "accept"` - `const CustomerReviewV1DataIdentityDetailsKYCDecisionReject CustomerReviewV1DataIdentityDetailsKYCDecision = "reject"` - `const CustomerReviewV1DataIdentityDetailsKYCDecisionReview CustomerReviewV1DataIdentityDetailsKYCDecision = "review"` - `Messages map[string, string]` Dictionary of all messages from the customer verification process. - `NetworkAlerts CustomerReviewV1DataIdentityDetailsNetworkAlerts` - `Alerts []string` Any alerts or flags raised during the consortium alert screening. - `Codes []string` List of specific result codes from the consortium alert screening. - `Decision string` - `const CustomerReviewV1DataIdentityDetailsNetworkAlertsDecisionAccept CustomerReviewV1DataIdentityDetailsNetworkAlertsDecision = "accept"` - `const CustomerReviewV1DataIdentityDetailsNetworkAlertsDecisionReject CustomerReviewV1DataIdentityDetailsNetworkAlertsDecision = "reject"` - `const CustomerReviewV1DataIdentityDetailsNetworkAlertsDecisionReview CustomerReviewV1DataIdentityDetailsNetworkAlertsDecision = "review"` - `Reputation CustomerReviewV1DataIdentityDetailsReputation` - `Codes []string` Specific codes related to the Straddle reputation screening results. - `Decision string` - `const CustomerReviewV1DataIdentityDetailsReputationDecisionAccept CustomerReviewV1DataIdentityDetailsReputationDecision = "accept"` - `const CustomerReviewV1DataIdentityDetailsReputationDecisionReject CustomerReviewV1DataIdentityDetailsReputationDecision = "reject"` - `const CustomerReviewV1DataIdentityDetailsReputationDecisionReview CustomerReviewV1DataIdentityDetailsReputationDecision = "review"` - `Insights CustomerReviewV1DataIdentityDetailsReputationInsights` - `AccountsActiveCount int64` - `AccountsClosedCount int64` - `AccountsClosedDates []Time` - `AccountsCount int64` - `AccountsFraudCount int64` - `AccountsFraudLabeledDates []Time` - `AccountsFraudLossTotalAmount float64` - `ACHFraudTransactionsCount int64` - `ACHFraudTransactionsDates []Time` - `ACHFraudTransactionsTotalAmount float64` - `ACHReturnedTransactionsCount int64` - `ACHReturnedTransactionsDates []Time` - `ACHReturnedTransactionsTotalAmount float64` - `ApplicationsApprovedCount int64` - `ApplicationsCount int64` - `ApplicationsDates []Time` - `ApplicationsDeclinedCount int64` - `ApplicationsFraudCount int64` - `CardDisputedTransactionsCount int64` - `CardDisputedTransactionsDates []Time` - `CardDisputedTransactionsTotalAmount float64` - `CardFraudTransactionsCount int64` - `CardFraudTransactionsDates []Time` - `CardFraudTransactionsTotalAmount float64` - `CardStoppedTransactionsCount int64` - `CardStoppedTransactionsDates []Time` - `UserActiveProfileCount int64` - `UserAddressCount int64` - `UserClosedProfileCount int64` - `UserDobCount int64` - `UserEmailCount int64` - `UserInstitutionCount int64` - `UserMobileCount int64` - `RiskScore float64` - `WatchList CustomerReviewV1DataIdentityDetailsWatchList` - `Codes []string` Specific codes related to the Straddle watchlist screening results. - `Decision string` - `const CustomerReviewV1DataIdentityDetailsWatchListDecisionAccept CustomerReviewV1DataIdentityDetailsWatchListDecision = "accept"` - `const CustomerReviewV1DataIdentityDetailsWatchListDecisionReject CustomerReviewV1DataIdentityDetailsWatchListDecision = "reject"` - `const CustomerReviewV1DataIdentityDetailsWatchListDecisionReview CustomerReviewV1DataIdentityDetailsWatchListDecision = "review"` - `Matched []string` Information about any matches found during screening. - `Matches []CustomerReviewV1DataIdentityDetailsWatchListMatch` Information about any matches found during screening. - `Correlation string` - `const CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelationLowConfidence CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelation = "low_confidence"` - `const CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelationPotentialMatch CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelation = "potential_match"` - `const CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelationLikelyMatch CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelation = "likely_match"` - `const CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelationHighConfidence CustomerReviewV1DataIdentityDetailsWatchListMatchCorrelation = "high_confidence"` - `ListName string` The name of the list the match was found. - `MatchFields []string` Data fields that matched. - `URLs []string` Relevent Urls to review. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType CustomerReviewV1ResponseType` 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. - `const CustomerReviewV1ResponseTypeObject CustomerReviewV1ResponseType = "object"` - `const CustomerReviewV1ResponseTypeArray CustomerReviewV1ResponseType = "array"` - `const CustomerReviewV1ResponseTypeError CustomerReviewV1ResponseType = "error"` - `const CustomerReviewV1ResponseTypeNone CustomerReviewV1ResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) customerReviewV1, err := client.Customers.Review.Get( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", straddle.CustomerReviewGetParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", customerReviewV1.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" } ```