Skip to content
Get started

Customers

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.

Lookup a customer
$ straddle customers get
GET/v1/customers/{id}
Update a customer
$ straddle customers update
PUT/v1/customers/{id}
Delete a customer
$ straddle customers delete
DELETE/v1/customers/{id}
List customers
$ straddle customers list
GET/v1/customers
Create a customer
$ straddle customers create
POST/v1/customers
Unmask customer data
$ straddle customers unmasked
GET/v1/customers/{id}/unmasked
ModelsExpand Collapse
customerAddressV1: object { 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).

city: string

City, district, suburb, town, or village.

state: string

Two-letter state code.

zip: string

Zip or postal code.

address2: optional string

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

customerSummaryPagedV1: object { data, meta, response_type }
data: array of object { id, created_at, email, 6 more }
id: string

Unique identifier for the customer.

created_at: string

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: "pending" or "review" or "verified" or 2 more
"pending"
"review"
"verified"
"inactive"
"rejected"
type: "individual" or "business"
"individual"
"business"
updated_at: string

Timestamp of the most recent update to the customer record.

external_id: optional string

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

meta: object { api_request_id, api_request_timestamp, max_page_size, 6 more }
api_request_id: string

Unique identifier for this API request, useful for troubleshooting.

api_request_timestamp: string

Timestamp for this API request, useful for troubleshooting.

max_page_size: number

Maximum allowed page size for this endpoint.

page_number: number

Page number for paginated results.

page_size: number

Number of items per page in this response.

sort_by: string

The field that the results were sorted by.

sort_order: "asc" or "desc"
"asc"
"desc"
total_items: number
total_pages: number

The number of pages available.

response_type: "object" or "array" or "error" or "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"
customerUnmaskedV1: object { data, meta, response_type }
data: object { id, created_at, email, 11 more }
id: string

Unique identifier for the customer.

created_at: string

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: "pending" or "review" or "verified" or 2 more
"pending"
"review"
"verified"
"inactive"
"rejected"
type: "individual" or "business"
"individual"
"business"
updated_at: string

Timestamp of the most recent update to the customer record.

address: optional object { 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).

city: string

City, district, suburb, town, or village.

state: string

Two-letter state code.

zip: string

Zip or postal code.

address2: optional string

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

compliance_profile: optional object { dob, ssn } or object { ein, legal_business_name, representatives, website }

Individual PII data required to trigger Patriot Act compliant KYC verification.

Individual Compliance Profile: object { dob, ssn }

Individual PII data required to trigger Patriot Act compliant KYC verification.

dob: string

Date of birth (YYYY-MM-DD). Required for Patriot Act-compliant KYC verification.

ssn: string

Social Security Number (format XXX-XX-XXXX). Required for Patriot Act-compliant KYC verification.

Business Compliance Profile: object { ein, legal_business_name, representatives, website }

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

ein: string

Employer Identification Number (format XX-XXXXXXX). Required for Patriot Act-compliant KYB verification.

Official registered business name as listed with the IRS. This value will be matched against the 'legal_business name'.

representatives: optional array of object { name, email, phone }

A list of people related to the company. Only valid where customer type is 'business'.

name: string
email: optional string
phone: optional string
website: optional string

Official business website URL. Optional but recommended for enhanced KYB.

config: optional object { processing_method, sandbox_outcome }
processing_method: optional "inline" or "background" or "skip"
"inline"
"background"
"skip"
sandbox_outcome: optional "standard" or "verified" or "rejected" or "review"
"standard"
"verified"
"rejected"
"review"
device: optional object { 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.

external_id: optional string

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

metadata: optional map[string]

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

meta: object { 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.

api_request_timestamp: string

Timestamp for this API request, useful for troubleshooting.

response_type: "object" or "array" or "error" or "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"
customerV1: object { data, meta, response_type }
data: object { id, created_at, email, 11 more }
id: string

Unique identifier for the customer.

created_at: string

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: "pending" or "review" or "verified" or 2 more
"pending"
"review"
"verified"
"inactive"
"rejected"
type: "individual" or "business"
"individual"
"business"
updated_at: string

Timestamp of the most recent update to the customer record.

address: optional object { 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).

city: string

City, district, suburb, town, or village.

state: string

Two-letter state code.

zip: string

Zip or postal code.

address2: optional string

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

compliance_profile: optional object { dob, ssn } or object { ein, legal_business_name, representatives, website }

PII required to trigger Patriot Act compliant KYC verification.

Individual Compliance Profile: object { dob, ssn }

PII required to trigger Patriot Act compliant KYC verification.

dob: string

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

ssn: string

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

Business Compliance Profile: object { 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: optional array of object { name, email, phone }

A list of people related to the company. Only valid where customer type is 'business'.

name: string
email: optional string
phone: optional string
website: optional string

Official business website URL. Optional but recommended for enhanced KYB.

config: optional object { processing_method, sandbox_outcome }
processing_method: optional "inline" or "background" or "skip"
"inline"
"background"
"skip"
sandbox_outcome: optional "standard" or "verified" or "rejected" or "review"
"standard"
"verified"
"rejected"
"review"
device: optional object { 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.

external_id: optional string

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

metadata: optional map[string]

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

meta: object { 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.

api_request_timestamp: string

Timestamp for this API request, useful for troubleshooting.

response_type: "object" or "array" or "error" or "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"
deviceUnmaskedV1: object { 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.

CustomersReview

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
$ straddle customers:review get
GET/v1/customers/{id}/review
Update a customer's verification status
$ straddle customers:review decision
PATCH/v1/customers/{id}/review
Update a customer's identity decision
$ straddle customers:review refresh-review
PUT/v1/customers/{id}/refresh_review
ModelsExpand Collapse
customerReviewV1: object { data, meta, response_type }
data: object { customer_details, identity_details }
customer_details: object { id, created_at, email, 11 more }
id: string

Unique identifier for the customer.

created_at: string

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: "pending" or "review" or "verified" or 2 more
"pending"
"review"
"verified"
"inactive"
"rejected"
type: "individual" or "business"
"individual"
"business"
updated_at: string

Timestamp of the most recent update to the customer record.

address: optional object { 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).

city: string

City, district, suburb, town, or village.

state: string

Two-letter state code.

zip: string

Zip or postal code.

address2: optional string

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

compliance_profile: optional object { dob, ssn } or object { ein, legal_business_name, representatives, website }

PII required to trigger Patriot Act compliant KYC verification.

Individual Compliance Profile: object { dob, ssn }

PII required to trigger Patriot Act compliant KYC verification.

dob: string

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

ssn: string

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

Business Compliance Profile: object { 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: optional array of object { name, email, phone }

A list of people related to the company. Only valid where customer type is 'business'.

name: string
email: optional string
phone: optional string
website: optional string

Official business website URL. Optional but recommended for enhanced KYB.

config: optional object { processing_method, sandbox_outcome }
processing_method: optional "inline" or "background" or "skip"
"inline"
"background"
"skip"
sandbox_outcome: optional "standard" or "verified" or "rejected" or "review"
"standard"
"verified"
"rejected"
"review"
device: optional object { 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.

external_id: optional string

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

metadata: optional map[string]

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

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

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

address: optional object { codes, correlation, correlation_score, 2 more }
codes: optional array of string

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

correlation: optional "low_confidence" or "potential_match" or "likely_match" or "high_confidence"
"low_confidence"
"potential_match"
"likely_match"
"high_confidence"
correlation_score: optional number

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

decision: optional "accept" or "reject" or "review"
"accept"
"reject"
"review"
risk_score: optional number

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

business_evaluation: optional object { codes, correlation, correlation_score, 2 more }
codes: optional array of string

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

correlation: optional "low_confidence" or "potential_match" or "likely_match" or "high_confidence"
"low_confidence"
"potential_match"
"likely_match"
"high_confidence"
correlation_score: optional number

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

decision: optional "accept" or "reject" or "review"
"accept"
"reject"
"review"
risk_score: optional number

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

business_identification: optional object { codes, correlation, correlation_score, 2 more }
codes: optional array of string

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

correlation: optional "low_confidence" or "potential_match" or "likely_match" or "high_confidence"
"low_confidence"
"potential_match"
"likely_match"
"high_confidence"
correlation_score: optional number

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

decision: optional "accept" or "reject" or "review"
"accept"
"reject"
"review"
risk_score: optional number

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

business_validation: optional object { codes, correlation, correlation_score, 2 more }
codes: optional array of string

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

correlation: optional "low_confidence" or "potential_match" or "likely_match" or "high_confidence"
"low_confidence"
"potential_match"
"likely_match"
"high_confidence"
correlation_score: optional number

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

decision: optional "accept" or "reject" or "review"
"accept"
"reject"
"review"
risk_score: optional number

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

email: optional object { codes, correlation, correlation_score, 2 more }
codes: optional array of string

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

correlation: optional "low_confidence" or "potential_match" or "likely_match" or "high_confidence"
"low_confidence"
"potential_match"
"likely_match"
"high_confidence"
correlation_score: optional number

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

decision: optional "accept" or "reject" or "review"
"accept"
"reject"
"review"
risk_score: optional number

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

fraud: optional object { codes, correlation, correlation_score, 2 more }
codes: optional array of string

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

correlation: optional "low_confidence" or "potential_match" or "likely_match" or "high_confidence"
"low_confidence"
"potential_match"
"likely_match"
"high_confidence"
correlation_score: optional number

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

decision: optional "accept" or "reject" or "review"
"accept"
"reject"
"review"
risk_score: optional number

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

phone: optional object { codes, correlation, correlation_score, 2 more }
codes: optional array of string

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

correlation: optional "low_confidence" or "potential_match" or "likely_match" or "high_confidence"
"low_confidence"
"potential_match"
"likely_match"
"high_confidence"
correlation_score: optional number

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

decision: optional "accept" or "reject" or "review"
"accept"
"reject"
"review"
risk_score: optional number

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

synthetic: optional object { codes, correlation, correlation_score, 2 more }
codes: optional array of string

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

correlation: optional "low_confidence" or "potential_match" or "likely_match" or "high_confidence"
"low_confidence"
"potential_match"
"likely_match"
"high_confidence"
correlation_score: optional number

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

decision: optional "accept" or "reject" or "review"
"accept"
"reject"
"review"
risk_score: optional number

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

created_at: string

Timestamp of when the review was initiated.

decision: "accept" or "reject" or "review"
"accept"
"reject"
"review"
review_id: string

Unique identifier for the review.

updated_at: string

Timestamp of the most recent update to the review.

kyc: optional object { validations, codes, decision }
validations: object { address, city, dob, 7 more }

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

address: optional boolean
city: optional boolean
dob: optional boolean
email: optional boolean
first_name: optional boolean
last_name: optional boolean
phone: optional boolean
ssn: optional boolean
state: optional boolean
zip: optional boolean
codes: optional array of string

List of specific result codes from the KYC screening process.

decision: optional "accept" or "reject" or "review"
"accept"
"reject"
"review"
messages: optional map[string]

Dictionary of all messages from the customer verification process.

network_alerts: optional object { alerts, codes, decision }
alerts: optional array of string

Any alerts or flags raised during the consortium alert screening.

codes: optional array of string

List of specific result codes from the consortium alert screening.

decision: optional "accept" or "reject" or "review"
"accept"
"reject"
"review"
reputation: optional object { codes, decision, insights, risk_score }
codes: optional array of string

Specific codes related to the Straddle reputation screening results.

decision: optional "accept" or "reject" or "review"
"accept"
"reject"
"review"
insights: optional object { accounts_active_count, accounts_closed_count, accounts_closed_dates, 30 more }
accounts_active_count: optional number
accounts_closed_count: optional number
accounts_closed_dates: optional array of string
accounts_count: optional number
accounts_fraud_count: optional number
accounts_fraud_labeled_dates: optional array of string
accounts_fraud_loss_total_amount: optional number
ach_fraud_transactions_count: optional number
ach_fraud_transactions_dates: optional array of string
ach_fraud_transactions_total_amount: optional number
ach_returned_transactions_count: optional number
ach_returned_transactions_dates: optional array of string
ach_returned_transactions_total_amount: optional number
applications_approved_count: optional number
applications_count: optional number
applications_dates: optional array of string
applications_declined_count: optional number
applications_fraud_count: optional number
card_disputed_transactions_count: optional number
card_disputed_transactions_dates: optional array of string
card_disputed_transactions_total_amount: optional number
card_fraud_transactions_count: optional number
card_fraud_transactions_dates: optional array of string
card_fraud_transactions_total_amount: optional number
card_stopped_transactions_count: optional number
card_stopped_transactions_dates: optional array of string
user_active_profile_count: optional number
user_address_count: optional number
user_closed_profile_count: optional number
user_dob_count: optional number
user_email_count: optional number
user_institution_count: optional number
user_mobile_count: optional number
risk_score: optional number
watch_list: optional object { codes, decision, matched, matches }
codes: optional array of string

Specific codes related to the Straddle watchlist screening results.

decision: optional "accept" or "reject" or "review"
"accept"
"reject"
"review"
matched: optional array of string

Information about any matches found during screening.

matches: optional array of object { correlation, list_name, match_fields, urls }

Information about any matches found during screening.

correlation: "low_confidence" or "potential_match" or "likely_match" or "high_confidence"
"low_confidence"
"potential_match"
"likely_match"
"high_confidence"
list_name: string

The name of the list the match was found.

match_fields: array of string

Data fields that matched.

urls: array of string

Relevent Urls to review.

meta: object { 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.

api_request_timestamp: string

Timestamp for this API request, useful for troubleshooting.

response_type: "object" or "array" or "error" or "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"
identityVerificationBreakdownV1: object { codes, correlation, correlation_score, 2 more }
codes: optional array of string

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

correlation: optional "low_confidence" or "potential_match" or "likely_match" or "high_confidence"
"low_confidence"
"potential_match"
"likely_match"
"high_confidence"
correlation_score: optional number

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

decision: optional "accept" or "reject" or "review"
"accept"
"reject"
"review"
risk_score: optional number

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