Skip to content
Get started

Review

Customers represent the end users who send or receive payments through your integration. Each customer undergoes automatic identity verification and fraud screening upon creation. Use customers to track payment history, manage bank account connections, and maintain a secure record of all transactions associated with a user. Customers can be either individuals or businesses with appropriate compliance checks for each type.

Review a customer's identity results
customers.review.get(id, **kwargs) -> CustomerReviewV1 { data, meta, response_type }
GET/v1/customers/{id}/review
Update a customer's verification status
customers.review.decision(id, **kwargs) -> CustomerV1 { data, meta, response_type }
PATCH/v1/customers/{id}/review
Update a customer's identity decision
customers.review.refresh_review(id, **kwargs) -> CustomerV1 { data, meta, response_type }
PUT/v1/customers/{id}/refresh_review
ModelsExpand 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
One of the following:
:pending
:review
:verified
:inactive
:rejected
type: :individual | :business
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.

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
One of the following:
:inline
:background
:skip
sandbox_outcome: :standard | :verified | :rejected | :review
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
One of the following:
:object
:array
:error
:none
class 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
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
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