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

Open in Claude
Open in ChatGPT

Accounts

Lookup an account
client.embed.accounts.get(stringaccountID, AccountGetParams { correlationID, requestID } params?, RequestOptionsoptions?): AccountV1 { data, meta, response_type }
get/v1/accounts/{account_id}
Update an account
client.embed.accounts.update(stringaccountID, AccountUpdateParams { business_profile, external_id, metadata, 3 more } params, RequestOptionsoptions?): AccountV1 { data, meta, response_type }
put/v1/accounts/{account_id}
Create an account
client.embed.accounts.create(AccountCreateParams { access_level, account_type, business_profile, 6 more } params, RequestOptionsoptions?): AccountV1 { data, meta, response_type }
post/v1/accounts
List accounts
client.embed.accounts.list(AccountListParams { page_number, page_size, search_text, 6 more } params?, RequestOptionsoptions?): PageNumberSchema<Data { id, access_level, organization_id, 11 more } >
get/v1/accounts
Onboard an account
client.embed.accounts.onboard(stringaccountID, AccountOnboardParams { terms_of_service, correlationID, idempotencyKey, requestID } params, RequestOptionsoptions?): AccountV1 { data, meta, response_type }
post/v1/accounts/{account_id}/onboard
Simulate status transitions for a sandbox account
client.embed.accounts.simulate(stringaccountID, AccountSimulateParams { final_status, correlationID, idempotencyKey, requestID } params?, RequestOptionsoptions?): AccountV1 { data, meta, response_type }
post/v1/accounts/{account_id}/simulate
ModelsExpand Collapse
AccountPagedV1 { data, meta, response_type }
data: Array<Data { id, access_level, organization_id, 11 more } >
id: string

Unique identifier for the account.

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

Accepts one of the following:
"standard"
"managed"
organization_id: string

The unique identifier of the organization this account belongs to.

formatuuid
status: "created" | "onboarding" | "active" | 2 more

The current status of the account (e.g., 'active', 'inactive', 'pending').

Accepts one of the following:
"created"
"onboarding"
"active"
"rejected"
"inactive"
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.

Accepts one of the following:
"unverified"
"in_review"
"pending"
"stuck"
"verified"
"failed_verification"
"disabled"
"terminated"
"new"
source: "watchtower"

Identifies the origin of the status change (e.g., bank_decline, watchtower). This helps in tracking the cause of status updates.

Accepts one of the following:
"watchtower"
type: "business"

The type of account (e.g., 'individual', 'business').

Accepts one of the following:
"business"
business_profile?: 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.

formaturi
address?: AddressV1 { address1, city, state, 6 more } | null

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.

industry?: 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.

The official registered name of the business.

phone?: string | null

The primary contact phone number for the business.

support_channels?: SupportChannelsV1 { email, phone, url }
email?: string | null

The email address for customer support inquiries.

formatemail
phone?: string | null

The phone number for customer support.

url?: string | null

The URL of the business's customer support page or contact form.

formaturi
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 }

Whether the internet payment authorization capability is enabled for the account.

Accepts one of the following:

Whether the signed agreement payment authorization capability is enabled for the account.

Accepts one of the following:
customer_types: CustomerTypes { businesses, individuals }
businesses: CapabilityV1 { capability_status }
capability_status: "active" | "inactive"
Accepts one of the following:
"active"
"inactive"
individuals: CapabilityV1 { capability_status }
capability_status: "active" | "inactive"
Accepts one of the following:
"active"
"inactive"
payment_types: PaymentTypes { charges, payouts }
charges: CapabilityV1 { capability_status }
capability_status: "active" | "inactive"
Accepts one of the following:
"active"
"inactive"
payouts: CapabilityV1 { capability_status }
capability_status: "active" | "inactive"
Accepts one of the following:
"active"
"inactive"
created_at?: string | null

Timestamp of when the account was created.

formatdate-time
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.

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

Accepts one of the following:
"immediate"
"next_day"
"one_day"
"two_day"
"three_day"
linked_bank_account_id: string

The unique identifier of the linked bank account associated with charges. This value is defined by Straddle.

formatuuid
max_amount: number

The maximum amount of a single charge.

formatint32
monthly_amount: number

The maximum dollar amount of charges in a calendar month.

formatint32
monthly_count: number

The maximum number of charges in a calendar month.

formatint32
payouts: Payouts { daily_amount, funding_time, linked_bank_account_id, 3 more }
daily_amount: number

The maximum dollar amount of payouts in a day.

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

Accepts one of the following:
"immediate"
"next_day"
"one_day"
"two_day"
"three_day"
linked_bank_account_id: string

The unique identifier of the linked bank account to use for payouts.

formatuuid
max_amount: number

The maximum amount of a single payout.

formatint32
monthly_amount: number

The maximum dollar amount of payouts in a month.

formatint32
monthly_count: number

The maximum number of payouts in a month.

formatint32
terms_of_service?: 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.

formatdate-time
agreement_type: "embedded" | "direct"

The type or version of the agreement accepted. Use embedded unless your platform was specifically enabled for direct agreements.

Accepts one of the following:
"embedded"
"direct"
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.

formatdate-time
meta: PagedResponseMetadata { api_request_id, api_request_timestamp, max_page_size, 6 more }

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.

formatuuid
api_request_timestamp: string

Timestamp for this API request, useful for troubleshooting.

formatdate-time
max_page_size: number

Maximum allowed page size for this endpoint.

formatint32
page_number: number

Page number for paginated results.

formatint32
page_size: number

Number of items per page in this response.

formatint32
sort_by: string

The field that the results were sorted by.

sort_order: "asc" | "desc"
Accepts one of the following:
"asc"
"desc"
total_items: number

Total number of items returned in this response.

formatint32
total_pages: number

The number of pages available.

formatint32
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"
AccountV1 { data, meta, response_type }
data: Data { id, access_level, organization_id, 11 more }
id: string

Unique identifier for the account.

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

Accepts one of the following:
"standard"
"managed"
organization_id: string

The unique identifier of the organization this account belongs to.

formatuuid
status: "created" | "onboarding" | "active" | 2 more

The current status of the account (e.g., 'active', 'inactive', 'pending').

Accepts one of the following:
"created"
"onboarding"
"active"
"rejected"
"inactive"
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.

Accepts one of the following:
"unverified"
"in_review"
"pending"
"stuck"
"verified"
"failed_verification"
"disabled"
"terminated"
"new"
source: "watchtower"

Identifies the origin of the status change (e.g., bank_decline, watchtower). This helps in tracking the cause of status updates.

Accepts one of the following:
"watchtower"
type: "business"

The type of account (e.g., 'individual', 'business').

Accepts one of the following:
"business"
business_profile?: 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.

formaturi
address?: AddressV1 { address1, city, state, 6 more } | null

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.

industry?: 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.

The official registered name of the business.

phone?: string | null

The primary contact phone number for the business.

support_channels?: SupportChannelsV1 { email, phone, url }
email?: string | null

The email address for customer support inquiries.

formatemail
phone?: string | null

The phone number for customer support.

url?: string | null

The URL of the business's customer support page or contact form.

formaturi
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 }

Whether the internet payment authorization capability is enabled for the account.

Accepts one of the following:

Whether the signed agreement payment authorization capability is enabled for the account.

Accepts one of the following:
customer_types: CustomerTypes { businesses, individuals }
businesses: CapabilityV1 { capability_status }
capability_status: "active" | "inactive"
Accepts one of the following:
"active"
"inactive"
individuals: CapabilityV1 { capability_status }
capability_status: "active" | "inactive"
Accepts one of the following:
"active"
"inactive"
payment_types: PaymentTypes { charges, payouts }
charges: CapabilityV1 { capability_status }
capability_status: "active" | "inactive"
Accepts one of the following:
"active"
"inactive"
payouts: CapabilityV1 { capability_status }
capability_status: "active" | "inactive"
Accepts one of the following:
"active"
"inactive"
created_at?: string | null

Timestamp of when the account was created.

formatdate-time
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.

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

Accepts one of the following:
"immediate"
"next_day"
"one_day"
"two_day"
"three_day"
linked_bank_account_id: string

The unique identifier of the linked bank account associated with charges. This value is defined by Straddle.

formatuuid
max_amount: number

The maximum amount of a single charge.

formatint32
monthly_amount: number

The maximum dollar amount of charges in a calendar month.

formatint32
monthly_count: number

The maximum number of charges in a calendar month.

formatint32
payouts: Payouts { daily_amount, funding_time, linked_bank_account_id, 3 more }
daily_amount: number

The maximum dollar amount of payouts in a day.

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

Accepts one of the following:
"immediate"
"next_day"
"one_day"
"two_day"
"three_day"
linked_bank_account_id: string

The unique identifier of the linked bank account to use for payouts.

formatuuid
max_amount: number

The maximum amount of a single payout.

formatint32
monthly_amount: number

The maximum dollar amount of payouts in a month.

formatint32
monthly_count: number

The maximum number of payouts in a month.

formatint32
terms_of_service?: 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.

formatdate-time
agreement_type: "embedded" | "direct"

The type or version of the agreement accepted. Use embedded unless your platform was specifically enabled for direct agreements.

Accepts one of the following:
"embedded"
"direct"
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.

formatdate-time
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: string

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

formaturi
address?: AddressV1 { address1, city, state, 6 more } | null

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.

industry?: 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.

The official registered name of the business.

phone?: string | null

The primary contact phone number for the business.

support_channels?: SupportChannelsV1 { email, phone, url }
email?: string | null

The email address for customer support inquiries.

formatemail
phone?: string | null

The phone number for customer support.

url?: string | null

The URL of the business's customer support page or contact form.

formaturi
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"
Accepts one of the following:
"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.

formatemail
phone?: string | null

The phone number for customer support.

url?: string | null

The URL of the business's customer support page or contact form.

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

formatdate-time
agreement_type: "embedded" | "direct"

The type or version of the agreement accepted. Use embedded unless your platform was specifically enabled for direct agreements.

Accepts one of the following:
"embedded"
"direct"
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.

AccountsCapability Requests

Request a capability
client.embed.accounts.capabilityRequests.create(stringaccountID, CapabilityRequestCreateParams { businesses, charges, individuals, 6 more } params?, RequestOptionsoptions?): CapabilityRequestPagedV1 { data, meta, response_type }
post/v1/accounts/{account_id}/capability_requests
List capability requests
client.embed.accounts.capabilityRequests.list(stringaccountID, CapabilityRequestListParams { category, page_number, page_size, 6 more } params?, RequestOptionsoptions?): PageNumberSchema<Data { id, account_id, category, 5 more } >
get/v1/accounts/{account_id}/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.

formatuuid
account_id: string

The unique identifier of the account associated with this capability request.

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

Accepts one of the following:
"payment_type"
"customer_type"
"consent_type"
created_at: string

Timestamp of when the capability request was created.

formatdate-time
status: "active" | "inactive" | "in_review" | 3 more

The current status of the capability request.

Accepts one of the following:
"active"
"inactive"
"in_review"
"rejected"
"approved"
"reviewing"
type: "charges" | "payouts" | "individuals" | 3 more

The specific type of capability being requested within the category.

Accepts one of the following:
"charges"
"payouts"
"individuals"
"businesses"
"signed_agreement"
"internet"
updated_at: string

Timestamp of the most recent update to the capability request.

formatdate-time
settings?: Record<string, unknown> | null

Any specific settings or configurations related to the requested capability.

meta: PagedResponseMetadata { api_request_id, api_request_timestamp, max_page_size, 6 more }

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.

formatuuid
api_request_timestamp: string

Timestamp for this API request, useful for troubleshooting.

formatdate-time
max_page_size: number

Maximum allowed page size for this endpoint.

formatint32
page_number: number

Page number for paginated results.

formatint32
page_size: number

Number of items per page in this response.

formatint32
sort_by: string

The field that the results were sorted by.

sort_order: "asc" | "desc"
Accepts one of the following:
"asc"
"desc"
total_items: number

Total number of items returned in this response.

formatint32
total_pages: number

The number of pages available.

formatint32
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"