Embed
EmbedAccounts
Lookup an account
Update an account
Create an account
List accounts
Onboard an account
Simulate status transitions for a sandbox account
ModelsExpand Collapse
AccountPagedV1 { data, meta, response_type }
data: Array<Data { id, access_level, organization_id, 11 more } >
id: string
Unique identifier for the account.
access_level: "standard" | "managed"
The access level granted to the account. This is determined by your platform configuration. Use standard unless instructed otherwise by Straddle.
organization_id: string
The unique identifier of the organization this account belongs to.
status: "created" | "onboarding" | "active" | 2 more
The current status of the account (e.g., 'active', 'inactive', 'pending').
status_detail: StatusDetail { code, message, reason, source }
code: string
A machine-readable code for the specific status, useful for programmatic handling.
message: string
A human-readable message describing the current status.
reason: "unverified" | "in_review" | "pending" | 6 more
A machine-readable identifier for the specific status, useful for programmatic handling.
source: "watchtower"
Identifies the origin of the status change (e.g., bank_decline, watchtower). This helps in tracking the cause of status updates.
type: "business"
The type of account (e.g., 'individual', 'business').
name: string
The operating or trade name of the business.
website: string
URL of the business's primary marketing website.
The address object is optional. If provided, it must be a valid address.
address1: string
Primary address line (e.g., street, PO Box).
city: string | null
City, district, suburb, town, or village.
state: string | null
Two-letter state code.
zip: string
Zip or postal code.
address2?: string | null
Secondary address line (e.g., apartment, suite, unit, or building).
country?: string | null
The country of the address, in ISO 3166-1 alpha-2 format.
line1?: string | null
Primary address line (e.g., street, PO Box).
line2?: string | null
Secondary address line (e.g., apartment, suite, unit, or building).
postal_code?: string | null
Postal or ZIP code.
description?: string | null
A brief description of the business and its products or services.
category?: string | null
The general category of the industry. Required if not providing MCC.
mcc?: string | null
The Merchant Category Code (MCC) that best describes the business. Optional.
sector?: string | null
The specific sector within the industry category. Required if not providing MCC.
legal_name?: string | null
The official registered name of the business.
phone?: string | null
The primary contact phone number for the business.
email?: string | null
The email address for customer support inquiries.
phone?: string | null
The phone number for customer support.
url?: string | null
The URL of the business's customer support page or contact form.
tax_id?: string | null
The business's tax identification number (e.g., EIN in the US).
use_case?: string | null
A description of how the business intends to use Straddle's services.
capabilities?: Capabilities { consent_types, customer_types, payment_types }
consent_types: ConsentTypes { internet, signed_agreement }
Whether the internet payment authorization capability is enabled for the account.
capability_status: "active" | "inactive"
Whether the signed agreement payment authorization capability is enabled for the account.
capability_status: "active" | "inactive"
customer_types: CustomerTypes { businesses, individuals }
capability_status: "active" | "inactive"
capability_status: "active" | "inactive"
payment_types: PaymentTypes { charges, payouts }
capability_status: "active" | "inactive"
capability_status: "active" | "inactive"
created_at?: string | null
Timestamp of when the account was created.
external_id?: string | null
Unique identifier for the account in your database, used for cross-referencing between Straddle and your systems.
metadata?: Record<string, string | null> | null
Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the account in a structured format.
settings?: Settings { charges, payouts }
charges: Charges { daily_amount, funding_time, linked_bank_account_id, 3 more }
daily_amount: number
The maximum dollar amount of charges in a calendar day.
funding_time: "immediate" | "next_day" | "one_day" | 2 more
The amount of time it takes for a charge to be funded. This value is defined by Straddle.
linked_bank_account_id: string
The unique identifier of the linked bank account associated with charges. This value is defined by Straddle.
max_amount: number
The maximum amount of a single charge.
monthly_amount: number
The maximum dollar amount of charges in a calendar month.
monthly_count: number
The maximum number of charges in a calendar month.
payouts: Payouts { daily_amount, funding_time, linked_bank_account_id, 3 more }
daily_amount: number
The maximum dollar amount of payouts in a day.
funding_time: "immediate" | "next_day" | "one_day" | 2 more
The amount of time it takes for a payout to be funded. This value is defined by Straddle.
linked_bank_account_id: string
The unique identifier of the linked bank account to use for payouts.
max_amount: number
The maximum amount of a single payout.
monthly_amount: number
The maximum dollar amount of payouts in a month.
monthly_count: number
The maximum number of payouts in a month.
accepted_date: string
The datetime of when the terms of service were accepted, in ISO 8601 format.
agreement_type: "embedded" | "direct"
The type or version of the agreement accepted. Use embedded unless your platform was specifically enabled for direct agreements.
agreement_url: string | null
The URL where the full text of the accepted agreement can be found.
accepted_ip?: string | null
The IP address from which the terms of service were accepted.
accepted_user_agent?: string | null
The user agent string of the browser or application used to accept the terms.
updated_at?: string | null
Timestamp of the most recent update to the account.
Metadata about the API request, including an identifier, timestamp, and pagination details.
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" | "desc"
total_items: number
Total number of items returned in this response.
total_pages: number
The number of pages available.
response_type: "object" | "array" | "error" | "none"
Indicates the structure of the returned content.
- "object" means the
datafield contains a single JSON object. - "array" means the
datafield contains an array of objects. - "error" means the
datafield contains an error object with details of the issue. - "none" means no data is returned.
AccountV1 { data, meta, response_type }
data: Data { id, access_level, organization_id, 11 more }
id: string
Unique identifier for the account.
access_level: "standard" | "managed"
The access level granted to the account. This is determined by your platform configuration. Use standard unless instructed otherwise by Straddle.
organization_id: string
The unique identifier of the organization this account belongs to.
status: "created" | "onboarding" | "active" | 2 more
The current status of the account (e.g., 'active', 'inactive', 'pending').
status_detail: StatusDetail { code, message, reason, source }
code: string
A machine-readable code for the specific status, useful for programmatic handling.
message: string
A human-readable message describing the current status.
reason: "unverified" | "in_review" | "pending" | 6 more
A machine-readable identifier for the specific status, useful for programmatic handling.
source: "watchtower"
Identifies the origin of the status change (e.g., bank_decline, watchtower). This helps in tracking the cause of status updates.
type: "business"
The type of account (e.g., 'individual', 'business').
name: string
The operating or trade name of the business.
website: string
URL of the business's primary marketing website.
The address object is optional. If provided, it must be a valid address.
address1: string
Primary address line (e.g., street, PO Box).
city: string | null
City, district, suburb, town, or village.
state: string | null
Two-letter state code.
zip: string
Zip or postal code.
address2?: string | null
Secondary address line (e.g., apartment, suite, unit, or building).
country?: string | null
The country of the address, in ISO 3166-1 alpha-2 format.
line1?: string | null
Primary address line (e.g., street, PO Box).
line2?: string | null
Secondary address line (e.g., apartment, suite, unit, or building).
postal_code?: string | null
Postal or ZIP code.
description?: string | null
A brief description of the business and its products or services.
category?: string | null
The general category of the industry. Required if not providing MCC.
mcc?: string | null
The Merchant Category Code (MCC) that best describes the business. Optional.
sector?: string | null
The specific sector within the industry category. Required if not providing MCC.
legal_name?: string | null
The official registered name of the business.
phone?: string | null
The primary contact phone number for the business.
email?: string | null
The email address for customer support inquiries.
phone?: string | null
The phone number for customer support.
url?: string | null
The URL of the business's customer support page or contact form.
tax_id?: string | null
The business's tax identification number (e.g., EIN in the US).
use_case?: string | null
A description of how the business intends to use Straddle's services.
capabilities?: Capabilities { consent_types, customer_types, payment_types }
consent_types: ConsentTypes { internet, signed_agreement }
Whether the internet payment authorization capability is enabled for the account.
capability_status: "active" | "inactive"
Whether the signed agreement payment authorization capability is enabled for the account.
capability_status: "active" | "inactive"
customer_types: CustomerTypes { businesses, individuals }
capability_status: "active" | "inactive"
capability_status: "active" | "inactive"
payment_types: PaymentTypes { charges, payouts }
capability_status: "active" | "inactive"
capability_status: "active" | "inactive"
created_at?: string | null
Timestamp of when the account was created.
external_id?: string | null
Unique identifier for the account in your database, used for cross-referencing between Straddle and your systems.
metadata?: Record<string, string | null> | null
Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the account in a structured format.
settings?: Settings { charges, payouts }
charges: Charges { daily_amount, funding_time, linked_bank_account_id, 3 more }
daily_amount: number
The maximum dollar amount of charges in a calendar day.
funding_time: "immediate" | "next_day" | "one_day" | 2 more
The amount of time it takes for a charge to be funded. This value is defined by Straddle.
linked_bank_account_id: string
The unique identifier of the linked bank account associated with charges. This value is defined by Straddle.
max_amount: number
The maximum amount of a single charge.
monthly_amount: number
The maximum dollar amount of charges in a calendar month.
monthly_count: number
The maximum number of charges in a calendar month.
payouts: Payouts { daily_amount, funding_time, linked_bank_account_id, 3 more }
daily_amount: number
The maximum dollar amount of payouts in a day.
funding_time: "immediate" | "next_day" | "one_day" | 2 more
The amount of time it takes for a payout to be funded. This value is defined by Straddle.
linked_bank_account_id: string
The unique identifier of the linked bank account to use for payouts.
max_amount: number
The maximum amount of a single payout.
monthly_amount: number
The maximum dollar amount of payouts in a month.
monthly_count: number
The maximum number of payouts in a month.
accepted_date: string
The datetime of when the terms of service were accepted, in ISO 8601 format.
agreement_type: "embedded" | "direct"
The type or version of the agreement accepted. Use embedded unless your platform was specifically enabled for direct agreements.
agreement_url: string | null
The URL where the full text of the accepted agreement can be found.
accepted_ip?: string | null
The IP address from which the terms of service were accepted.
accepted_user_agent?: string | null
The user agent string of the browser or application used to accept the terms.
updated_at?: string | null
Timestamp of the most recent update to the account.
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" | "array" | "error" | "none"
Indicates the structure of the returned content.
- "object" means the
datafield contains a single JSON object. - "array" means the
datafield contains an array of objects. - "error" means the
datafield contains an error object with details of the issue. - "none" means no data is returned.
AddressV1 { address1, city, state, 6 more }
The address object is optional. If provided, it must be a valid address.
address1: string
Primary address line (e.g., street, PO Box).
city: string | null
City, district, suburb, town, or village.
state: string | null
Two-letter state code.
zip: string
Zip or postal code.
address2?: string | null
Secondary address line (e.g., apartment, suite, unit, or building).
country?: string | null
The country of the address, in ISO 3166-1 alpha-2 format.
line1?: string | null
Primary address line (e.g., street, PO Box).
line2?: string | null
Secondary address line (e.g., apartment, suite, unit, or building).
postal_code?: string | null
Postal or ZIP code.
BusinessProfileV1 { name, website, address, 7 more }
name: string
The operating or trade name of the business.
website: string
URL of the business's primary marketing website.
The address object is optional. If provided, it must be a valid address.
address1: string
Primary address line (e.g., street, PO Box).
city: string | null
City, district, suburb, town, or village.
state: string | null
Two-letter state code.
zip: string
Zip or postal code.
address2?: string | null
Secondary address line (e.g., apartment, suite, unit, or building).
country?: string | null
The country of the address, in ISO 3166-1 alpha-2 format.
line1?: string | null
Primary address line (e.g., street, PO Box).
line2?: string | null
Secondary address line (e.g., apartment, suite, unit, or building).
postal_code?: string | null
Postal or ZIP code.
description?: string | null
A brief description of the business and its products or services.
category?: string | null
The general category of the industry. Required if not providing MCC.
mcc?: string | null
The Merchant Category Code (MCC) that best describes the business. Optional.
sector?: string | null
The specific sector within the industry category. Required if not providing MCC.
legal_name?: string | null
The official registered name of the business.
phone?: string | null
The primary contact phone number for the business.
email?: string | null
The email address for customer support inquiries.
phone?: string | null
The phone number for customer support.
url?: string | null
The URL of the business's customer support page or contact form.
tax_id?: string | null
The business's tax identification number (e.g., EIN in the US).
use_case?: string | null
A description of how the business intends to use Straddle's services.
CapabilityV1 { capability_status }
capability_status: "active" | "inactive"
IndustryV1 { category, mcc, sector }
category?: string | null
The general category of the industry. Required if not providing MCC.
mcc?: string | null
The Merchant Category Code (MCC) that best describes the business. Optional.
sector?: string | null
The specific sector within the industry category. Required if not providing MCC.
SupportChannelsV1 { email, phone, url }
email?: string | null
The email address for customer support inquiries.
phone?: string | null
The phone number for customer support.
url?: string | null
The URL of the business's customer support page or contact form.
TermsOfServiceV1 { accepted_date, agreement_type, agreement_url, 2 more }
accepted_date: string
The datetime of when the terms of service were accepted, in ISO 8601 format.
agreement_type: "embedded" | "direct"
The type or version of the agreement accepted. Use embedded unless your platform was specifically enabled for direct agreements.
agreement_url: string | null
The URL where the full text of the accepted agreement can be found.
accepted_ip?: string | null
The IP address from which the terms of service were accepted.
accepted_user_agent?: string | null
The user agent string of the browser or application used to accept the terms.
EmbedAccountsCapability Requests
Request a capability
List capability requests
ModelsExpand Collapse
CapabilityRequestPagedV1 { data, meta, response_type }
data: Array<Data { id, account_id, category, 5 more } >
id: string
Unique identifier for the capability request.
account_id: string
The unique identifier of the account associated with this capability request.
category: "payment_type" | "customer_type" | "consent_type"
The category of the requested capability. Use payment_type for charges and payouts, customer_type to define individuals or businesses, and consent_type for signed_agreement or internet payment authorization.
created_at: string
Timestamp of when the capability request was created.
status: "active" | "inactive" | "in_review" | 3 more
The current status of the capability request.
type: "charges" | "payouts" | "individuals" | 3 more
The specific type of capability being requested within the category.
updated_at: string
Timestamp of the most recent update to the capability request.
settings?: Record<string, unknown> | null
Any specific settings or configurations related to the requested capability.
Metadata about the API request, including an identifier, timestamp, and pagination details.
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" | "desc"
total_items: number
Total number of items returned in this response.
total_pages: number
The number of pages available.
response_type: "object" | "array" | "error" | "none"
Indicates the structure of the returned content.
- "object" means the
datafield contains a single JSON object. - "array" means the
datafield contains an array of objects. - "error" means the
datafield contains an error object with details of the issue. - "none" means no data is returned.
EmbedLinked Bank Accounts
Create a linked bank account
List linked bank accounts
Update a linked bank account
Lookup a linked bank account
Unmask a linked bank account
Cancel a linked bank account
ModelsExpand Collapse
LinkedBankAccountPagedV1 { data, meta, response_type }
data: Array<Data { id, account_id, bank_account, 8 more } >
id: string
Unique identifier for the linked bank account.
account_id: string | null
The unique identifier of the Straddle account related to this bank account.
bank_account: BankAccount { account_holder, account_mask, institution_name, routing_number }
created_at: string
Timestamp of when the bank account object was created.
purposes: Array<"charges" | "payouts" | "billing">
The purposes for the linked bank account.
status: "created" | "onboarding" | "active" | 3 more
The current status of the linked bank account.
status_detail: StatusDetail { code, message, reason, source }
code: string
A machine-readable code for the specific status, useful for programmatic handling.
message: string
A human-readable message describing the current status.
reason: "unverified" | "in_review" | "pending" | 5 more
A machine-readable identifier for the specific status, useful for programmatic handling.
source: "watchtower"
Identifies the origin of the status change (e.g., watchtower). This helps in tracking the cause of status updates.
updated_at: string
Timestamp of the most recent update to the linked bank account.
description?: string | null
Optional description for the bank account.
metadata?: Record<string, string | null> | null
Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the linked bank account in a structured format.
platform_id?: string | null
The unique identifier of the Straddle Platform relatd to this bank account.
Metadata about the API request, including an identifier, timestamp, and pagination details.
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" | "desc"
total_items: number
Total number of items returned in this response.
total_pages: number
The number of pages available.
response_type: "object" | "array" | "error" | "none"
Indicates the structure of the returned content.
- "object" means the
datafield contains a single JSON object. - "array" means the
datafield contains an array of objects. - "error" means the
datafield contains an error object with details of the issue. - "none" means no data is returned.
LinkedBankAccountUnmaskV1 { data, meta, response_type }
data: Data { id, account_id, bank_account, 5 more }
id: string
Unique identifier for the linked bank account.
account_id: string
Unique identifier for the Straddle account related to this bank account.
bank_account: BankAccount { account_holder, account_number, institution_name, routing_number }
The bank account details associated with the linked bank account.
created_at: string
Timestamp of when the linked bank account was created.
status: "created" | "onboarding" | "active" | 3 more
The current status of the linked bank account.
status_detail: StatusDetail { code, message, reason, source }
Additional details about the current status of the linked bank account.
code: string
A machine-readable code for the specific status, useful for programmatic handling.
message: string
A human-readable message describing the current status.
reason: "unverified" | "in_review" | "pending" | 5 more
A machine-readable identifier for the specific status, useful for programmatic handling.
source: "watchtower"
Identifies the origin of the status change (e.g., watchtower). This helps in tracking the cause of status updates.
updated_at: string
Timestamp of when the linked bank account was last updated.
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" | "array" | "error" | "none"
Indicates the structure of the returned content.
- "object" means the
datafield contains a single JSON object. - "array" means the
datafield contains an array of objects. - "error" means the
datafield contains an error object with details of the issue. - "none" means no data is returned.
LinkedBankAccountV1 { data, meta, response_type }
data: Data { id, account_id, bank_account, 8 more }
id: string
Unique identifier for the linked bank account.
account_id: string | null
The unique identifier of the Straddle account related to this bank account.
bank_account: BankAccount { account_holder, account_mask, institution_name, routing_number }
created_at: string
Timestamp of when the bank account object was created.
purposes: Array<"charges" | "payouts" | "billing">
The purposes for the linked bank account.
status: "created" | "onboarding" | "active" | 3 more
The current status of the linked bank account.
status_detail: StatusDetail { code, message, reason, source }
code: string
A machine-readable code for the specific status, useful for programmatic handling.
message: string
A human-readable message describing the current status.
reason: "unverified" | "in_review" | "pending" | 5 more
A machine-readable identifier for the specific status, useful for programmatic handling.
source: "watchtower"
Identifies the origin of the status change (e.g., watchtower). This helps in tracking the cause of status updates.
updated_at: string
Timestamp of the most recent update to the linked bank account.
description?: string | null
Optional description for the bank account.
metadata?: Record<string, string | null> | null
Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the linked bank account in a structured format.
platform_id?: string | null
The unique identifier of the Straddle Platform relatd to this bank account.
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" | "array" | "error" | "none"
Indicates the structure of the returned content.
- "object" means the
datafield contains a single JSON object. - "array" means the
datafield contains an array of objects. - "error" means the
datafield contains an error object with details of the issue. - "none" means no data is returned.
EmbedOrganizations
Create an organization
List organizations
Retrieve organization details
ModelsExpand Collapse
OrganizationPagedV1 { data, meta, response_type }
data: Array<Data { id, created_at, name, 3 more } >
id: string
Straddle's unique identifier for the organization.
created_at: string
Timestamp of when the organization was created.
name: string
The name of the organization.
updated_at: string
Timestamp of the most recent update to the organization.
external_id?: string | null
Unique identifier for the organization in your database, used for cross-referencing between Straddle and your systems.
metadata?: Record<string, string | null> | null
Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the organization in a structured format.
Metadata about the API request, including an identifier, timestamp, and pagination details.
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" | "desc"
total_items: number
Total number of items returned in this response.
total_pages: number
The number of pages available.
response_type: "object" | "array" | "error" | "none"
Indicates the structure of the returned content.
- "object" means the
datafield contains a single JSON object. - "array" means the
datafield contains an array of objects. - "error" means the
datafield contains an error object with details of the issue. - "none" means no data is returned.
OrganizationV1 { data, meta, response_type }
data: Data { id, created_at, name, 3 more }
id: string
Straddle's unique identifier for the organization.
created_at: string
Timestamp of when the organization was created.
name: string
The name of the organization.
updated_at: string
Timestamp of the most recent update to the organization.
external_id?: string | null
Unique identifier for the organization in your database, used for cross-referencing between Straddle and your systems.
metadata?: Record<string, string | null> | null
Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the organization in a structured format.
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" | "array" | "error" | "none"
Indicates the structure of the returned content.
- "object" means the
datafield contains a single JSON object. - "array" means the
datafield contains an array of objects. - "error" means the
datafield contains an error object with details of the issue. - "none" means no data is returned.
EmbedRepresentatives
Create a representative
List representatives
Update a representative
Lookup a representative
Retrieve unmasked representative details
ModelsExpand Collapse
Representative { data, meta, response_type }
data: Data { id, account_id, created_at, 15 more }
id: string
Unique identifier for the representative.
account_id: string
The unique identifier of the account this representative is associated with.
created_at: string
Timestamp of when the representative was created.
dob: string
The date of birth of the representative, in ISO 8601 format (YYYY-MM-DD).
email: string | null
The email address of the representative.
first_name: string
The first name of the representative.
last_name: string
The last name of the representative.
mobile_number: string
The mobile phone number of the representative.
relationship: Relationship { control, owner, primary, 2 more }
control: boolean
Whether the representative has significant responsibility to control, manage, or direct the organization. One representative must be identified under the control prong for each legal entity.
owner: boolean
Whether the representative owns any percentage of of the equity interests of the legal entity.
primary: boolean
Whether the person is authorized as the primary representative of the account. This is the person chosen by the business to provide information about themselves, general information about the account, and who consented to the services agreement.
There can be only one primary representative for an account at a time.
percent_ownership?: number | null
The percentage of ownership the representative has. Required if 'Owner' is true.
title?: string | null
The job title of the representative.
ssn_last4: string
The last 4 digits of the representative's Social Security Number.
status: "created" | "onboarding" | "active" | 2 more
The current status of the representative.
status_detail: StatusDetail { code, message, reason, source }
code: string
A machine-readable code for the specific status, useful for programmatic handling.
message: string
A human-readable message describing the current status.
reason: "unverified" | "in_review" | "pending" | 5 more
A machine-readable identifier for the specific status, useful for programmatic handling.
source: "watchtower"
Identifies the origin of the status change (e.g., watchtower). This helps in tracking the cause of status updates.
updated_at: string
Timestamp of the most recent update to the representative.
external_id?: string | null
Unique identifier for the representative in your database, used for cross-referencing between Straddle and your systems.
metadata?: Record<string, string> | null
Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the represetative in a structured format.
user_id?: string | null
The unique identifier of the user account associated with this representative, if applicable.
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" | "array" | "error" | "none"
Indicates the structure of the returned content.
- "object" means the
datafield contains a single JSON object. - "array" means the
datafield contains an array of objects. - "error" means the
datafield contains an error object with details of the issue. - "none" means no data is returned.
RepresentativePaged { data, meta, response_type }
data: Array<Data { id, account_id, created_at, 15 more } >
id: string
Unique identifier for the representative.
account_id: string
The unique identifier of the account this representative is associated with.
created_at: string
Timestamp of when the representative was created.
dob: string
The date of birth of the representative, in ISO 8601 format (YYYY-MM-DD).
email: string | null
The email address of the representative.
first_name: string
The first name of the representative.
last_name: string
The last name of the representative.
mobile_number: string
The mobile phone number of the representative.
relationship: Relationship { control, owner, primary, 2 more }
control: boolean
Whether the representative has significant responsibility to control, manage, or direct the organization. One representative must be identified under the control prong for each legal entity.
owner: boolean
Whether the representative owns any percentage of of the equity interests of the legal entity.
primary: boolean
Whether the person is authorized as the primary representative of the account. This is the person chosen by the business to provide information about themselves, general information about the account, and who consented to the services agreement.
There can be only one primary representative for an account at a time.
percent_ownership?: number | null
The percentage of ownership the representative has. Required if 'Owner' is true.
title?: string | null
The job title of the representative.
ssn_last4: string
The last 4 digits of the representative's Social Security Number.
status: "created" | "onboarding" | "active" | 2 more
The current status of the representative.
status_detail: StatusDetail { code, message, reason, source }
code: string
A machine-readable code for the specific status, useful for programmatic handling.
message: string
A human-readable message describing the current status.
reason: "unverified" | "in_review" | "pending" | 5 more
A machine-readable identifier for the specific status, useful for programmatic handling.
source: "watchtower"
Identifies the origin of the status change (e.g., watchtower). This helps in tracking the cause of status updates.
updated_at: string
Timestamp of the most recent update to the representative.
external_id?: string | null
Unique identifier for the representative in your database, used for cross-referencing between Straddle and your systems.
metadata?: Record<string, string> | null
Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the represetative in a structured format.
user_id?: string | null
The unique identifier of the user account associated with this representative, if applicable.
Metadata about the API request, including an identifier, timestamp, and pagination details.
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" | "desc"
total_items: number
Total number of items returned in this response.
total_pages: number
The number of pages available.
response_type: "object" | "array" | "error" | "none"
Indicates the structure of the returned content.
- "object" means the
datafield contains a single JSON object. - "array" means the
datafield contains an array of objects. - "error" means the
datafield contains an error object with details of the issue. - "none" means no data is returned.