Skip to content
  • Auto
  • Light
  • Dark
Get started
View as Markdown
Copy Markdown

Open in Claude
Open in ChatGPT

Review a customer's identity results

customers.review.get(id, **kwargs) -> CustomerReviewV1 { data, meta, response_type }
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.
ParametersExpand Collapse
id: String
correlation_id: String
request_id: String
straddle_account_id: String
ReturnsExpand Collapse
class CustomerReviewV1 { data, meta, response_type }
data: { customer_details, identity_details}
customer_details: { id, created_at, email, 11 more}
id: String

Unique identifier for the customer.

formatuuid
created_at: Time

Timestamp of when the customer record was created.

formatdate-time
email: String

The customer's email address.

formatemail
name: String

Full name of the individual or business name.

phone: String

The customer's phone number in E.164 format.

status: :pending | :review | :verified | 2 more
Accepts one of the following:
:pending
:review
:verified
:inactive
:rejected
type: :individual | :business
Accepts one of the following:
:individual
:business
updated_at: Time

Timestamp of the most recent update to the customer record.

formatdate-time
address: CustomerAddressV1 { address1, city, state, 2 more }

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).

maxLength100
city: String

City, district, suburb, town, or village.

maxLength100
state: String

Two-letter state code.

zip: String

Zip or postal code.

address2: String

Secondary address line (e.g., apartment, suite, unit, or building).

maxLength100
compliance_profile: { dob, ssn} | { ein, legal_business_name, representatives, website}

PII required to trigger Patriot Act compliant KYC verification.

Accepts one of the following:
class IndividualComplianceProfile { dob, ssn }

PII required to trigger Patriot Act compliant KYC verification.

dob: Date

Masked date of birth in ****-- format.

formatdate
ssn: String

Masked Social Security Number in the format --***.

class BusinessComplianceProfile { ein, legal_business_name, representatives, website }

Business registration data required to trigger Patriot Act compliant KYB verification.

ein: String

Masked Employer Identification Number in the format -*****

The official registered name of the business. This name should be correlated with the ein value.

representatives: Array[{ name, email, phone}]

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.

formaturi
config: { processing_method, sandbox_outcome}
processing_method: :inline | :background | :skip
Accepts one of the following:
:inline
:background
:skip
sandbox_outcome: :standard | :verified | :rejected | :review
Accepts one of the following:
:standard
:verified
:rejected
:review
device: { ip_address}
ip_address: String

The customer's IP address at the time of profile creation. Use 0.0.0.0 to represent an offline customer registration.

minLength1
formatipv4
external_id: String

Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems.

metadata: Hash[Symbol, String]

Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format.

identity_details: { breakdown, created_at, decision, 7 more}
breakdown: { address, business_evaluation, business_identification, 5 more}

Detailed breakdown of the customer verification results, including decisions, risk scores, correlation score, and more.

address: IdentityVerificationBreakdownV1 { codes, correlation, correlation_score, 2 more }
codes: Array[String]

List of specific result codes from the fraud and risk screening.

correlation: :low_confidence | :potential_match | :likely_match | :high_confidence
Accepts one of the following:
:low_confidence
:potential_match
:likely_match
:high_confidence
correlation_score: Float

Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation.

formatdouble
decision: :accept | :reject | :review
Accepts one of the following:
:accept
:reject
:review
risk_score: Float

Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud.

formatdouble
business_evaluation: IdentityVerificationBreakdownV1 { codes, correlation, correlation_score, 2 more }
codes: Array[String]

List of specific result codes from the fraud and risk screening.

correlation: :low_confidence | :potential_match | :likely_match | :high_confidence
Accepts one of the following:
:low_confidence
:potential_match
:likely_match
:high_confidence
correlation_score: Float

Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation.

formatdouble
decision: :accept | :reject | :review
Accepts one of the following:
:accept
:reject
:review
risk_score: Float

Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud.

formatdouble
business_identification: IdentityVerificationBreakdownV1 { codes, correlation, correlation_score, 2 more }
codes: Array[String]

List of specific result codes from the fraud and risk screening.

correlation: :low_confidence | :potential_match | :likely_match | :high_confidence
Accepts one of the following:
:low_confidence
:potential_match
:likely_match
:high_confidence
correlation_score: Float

Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation.

formatdouble
decision: :accept | :reject | :review
Accepts one of the following:
:accept
:reject
:review
risk_score: Float

Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud.

formatdouble
business_validation: IdentityVerificationBreakdownV1 { codes, correlation, correlation_score, 2 more }
codes: Array[String]

List of specific result codes from the fraud and risk screening.

correlation: :low_confidence | :potential_match | :likely_match | :high_confidence
Accepts one of the following:
:low_confidence
:potential_match
:likely_match
:high_confidence
correlation_score: Float

Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation.

formatdouble
decision: :accept | :reject | :review
Accepts one of the following:
:accept
:reject
:review
risk_score: Float

Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud.

formatdouble
email: IdentityVerificationBreakdownV1 { codes, correlation, correlation_score, 2 more }
codes: Array[String]

List of specific result codes from the fraud and risk screening.

correlation: :low_confidence | :potential_match | :likely_match | :high_confidence
Accepts one of the following:
:low_confidence
:potential_match
:likely_match
:high_confidence
correlation_score: Float

Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation.

formatdouble
decision: :accept | :reject | :review
Accepts one of the following:
:accept
:reject
:review
risk_score: Float

Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud.

formatdouble
fraud: IdentityVerificationBreakdownV1 { codes, correlation, correlation_score, 2 more }
codes: Array[String]

List of specific result codes from the fraud and risk screening.

correlation: :low_confidence | :potential_match | :likely_match | :high_confidence
Accepts one of the following:
:low_confidence
:potential_match
:likely_match
:high_confidence
correlation_score: Float

Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation.

formatdouble
decision: :accept | :reject | :review
Accepts one of the following:
:accept
:reject
:review
risk_score: Float

Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud.

formatdouble
phone: IdentityVerificationBreakdownV1 { codes, correlation, correlation_score, 2 more }
codes: Array[String]

List of specific result codes from the fraud and risk screening.

correlation: :low_confidence | :potential_match | :likely_match | :high_confidence
Accepts one of the following:
:low_confidence
:potential_match
:likely_match
:high_confidence
correlation_score: Float

Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation.

formatdouble
decision: :accept | :reject | :review
Accepts one of the following:
:accept
:reject
:review
risk_score: Float

Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud.

formatdouble
synthetic: IdentityVerificationBreakdownV1 { codes, correlation, correlation_score, 2 more }
codes: Array[String]

List of specific result codes from the fraud and risk screening.

correlation: :low_confidence | :potential_match | :likely_match | :high_confidence
Accepts one of the following:
:low_confidence
:potential_match
:likely_match
:high_confidence
correlation_score: Float

Represents the strength of the correlation between provided and known information. A higher score indicates a stronger correlation.

formatdouble
decision: :accept | :reject | :review
Accepts one of the following:
:accept
:reject
:review
risk_score: Float

Predicts the inherent risk associated with the customer for a given module. A higher score indicates a greater likelihood of fraud.

formatdouble
created_at: Time

Timestamp of when the review was initiated.

formatdate-time
decision: :accept | :reject | :review
Accepts one of the following:
:accept
:reject
:review
review_id: String

Unique identifier for the review.

formatuuid
updated_at: Time

Timestamp of the most recent update to the review.

formatdate-time
kyc: { validations, codes, decision}
validations: { address, city, dob, 7 more}

Boolean values indicating the result of each validation in the KYC process.

address: bool
city: bool
dob: bool
email: bool
first_name: bool
last_name: bool
phone: bool
ssn: bool
state: bool
zip: bool
codes: Array[String]

List of specific result codes from the KYC screening process.

decision: :accept | :reject | :review
Accepts one of the following:
:accept
:reject
:review
messages: Hash[Symbol, String]

Dictionary of all messages from the customer verification process.

network_alerts: { alerts, codes, decision}
alerts: Array[String]

Any alerts or flags raised during the consortium alert screening.

codes: Array[String]

List of specific result codes from the consortium alert screening.

decision: :accept | :reject | :review
Accepts one of the following:
:accept
:reject
:review
reputation: { codes, decision, insights, risk_score}
codes: Array[String]

Specific codes related to the Straddle reputation screening results.

decision: :accept | :reject | :review
Accepts one of the following:
:accept
:reject
:review
insights: { accounts_active_count, accounts_closed_count, accounts_closed_dates, 30 more}
accounts_active_count: Integer
accounts_closed_count: Integer
accounts_closed_dates: Array[Date]
accounts_count: Integer
accounts_fraud_count: Integer
accounts_fraud_labeled_dates: Array[Date]
accounts_fraud_loss_total_amount: Float
ach_fraud_transactions_count: Integer
ach_fraud_transactions_dates: Array[Date]
ach_fraud_transactions_total_amount: Float
ach_returned_transactions_count: Integer
ach_returned_transactions_dates: Array[Date]
ach_returned_transactions_total_amount: Float
applications_approved_count: Integer
applications_count: Integer
applications_dates: Array[Date]
applications_declined_count: Integer
applications_fraud_count: Integer
card_disputed_transactions_count: Integer
card_disputed_transactions_dates: Array[Date]
card_disputed_transactions_total_amount: Float
card_fraud_transactions_count: Integer
card_fraud_transactions_dates: Array[Date]
card_fraud_transactions_total_amount: Float
card_stopped_transactions_count: Integer
card_stopped_transactions_dates: Array[Date]
user_active_profile_count: Integer
user_address_count: Integer
user_closed_profile_count: Integer
user_dob_count: Integer
user_email_count: Integer
user_institution_count: Integer
user_mobile_count: Integer
risk_score: Float
watch_list: { codes, decision, matched, matches}
codes: Array[String]

Specific codes related to the Straddle watchlist screening results.

decision: :accept | :reject | :review
Accepts one of the following:
:accept
:reject
:review
matched: Array[String]

Information about any matches found during screening.

matches: Array[{ correlation, list_name, match_fields, urls}]

Information about any matches found during screening.

correlation: :low_confidence | :potential_match | :likely_match | :high_confidence
Accepts one of the following:
:low_confidence
:potential_match
:likely_match
:high_confidence
list_name: String

The name of the list the match was found.

match_fields: Array[String]

Data fields that matched.

urls: Array[String]

Relevent Urls to review.

meta: ResponseMetadata { api_request_id, api_request_timestamp }

Metadata about the API request, including an identifier and timestamp.

api_request_id: String

Unique identifier for this API request, useful for troubleshooting.

formatuuid
api_request_timestamp: Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
response_type: :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.
Accepts one of the following:
:object
:array
:error
:none
Review a customer's identity results
require "straddle"

straddle = Straddle::Client.new(
  api_key: "My API Key",
  environment: "production" # defaults to "sandbox"
)

customer_review_v1 = straddle.customers.review.get("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")

puts(customer_review_v1)
{
  "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"
}
Returns Examples
{
  "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"
}