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

Open in Claude
Open in ChatGPT

Embed

EmbedAccounts

Lookup an account
embed.accounts.get(account_id, **kwargs) -> AccountV1 { data, meta, response_type }
get/v1/accounts/{account_id}
Update an account
embed.accounts.update(account_id, **kwargs) -> AccountV1 { data, meta, response_type }
put/v1/accounts/{account_id}
Create an account
embed.accounts.create(**kwargs) -> AccountV1 { data, meta, response_type }
post/v1/accounts
List accounts
embed.accounts.list(**kwargs) -> PageNumberSchema<{ id, access_level, organization_id, 11 more}>
get/v1/accounts
Onboard an account
embed.accounts.onboard(account_id, **kwargs) -> AccountV1 { data, meta, response_type }
post/v1/accounts/{account_id}/onboard
Simulate status transitions for a sandbox account
embed.accounts.simulate(account_id, **kwargs) -> AccountV1 { data, meta, response_type }
post/v1/accounts/{account_id}/simulate
ModelsExpand Collapse
class AccountPagedV1 { data, meta, response_type }
data: Array[{ 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: { 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 }

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

City, district, suburb, town, or village.

state: String

Two-letter state code.

zip: String

Zip or postal code.

address2: String

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

country: String

The country of the address, in ISO 3166-1 alpha-2 format.

line1: String

Primary address line (e.g., street, PO Box).

line2: String

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

postal_code: String

Postal or ZIP code.

description: String

A brief description of the business and its products or services.

industry: IndustryV1 { category, mcc, sector }
category: String

The general category of the industry. Required if not providing MCC.

mcc: String

The Merchant Category Code (MCC) that best describes the business. Optional.

sector: String

The specific sector within the industry category. Required if not providing MCC.

The official registered name of the business.

phone: String

The primary contact phone number for the business.

support_channels: SupportChannelsV1 { email, phone, url }
email: String

The email address for customer support inquiries.

formatemail
phone: String

The phone number for customer support.

url: String

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

formaturi
tax_id: String

The business's tax identification number (e.g., EIN in the US).

use_case: String

A description of how the business intends to use Straddle's services.

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: { 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: { 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: Time

Timestamp of when the account was created.

formatdate-time
external_id: String

Unique identifier for the account 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 account in a structured format.

settings: { charges, payouts}
charges: { daily_amount, funding_time, linked_bank_account_id, 3 more}
daily_amount: Integer

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: Integer

The maximum amount of a single charge.

formatint32
monthly_amount: Integer

The maximum dollar amount of charges in a calendar month.

formatint32
monthly_count: Integer

The maximum number of charges in a calendar month.

formatint32
payouts: { daily_amount, funding_time, linked_bank_account_id, 3 more}
daily_amount: Integer

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: Integer

The maximum amount of a single payout.

formatint32
monthly_amount: Integer

The maximum dollar amount of payouts in a month.

formatint32
monthly_count: Integer

The maximum number of payouts in a month.

formatint32
terms_of_service: TermsOfServiceV1 { accepted_date, agreement_type, agreement_url, 2 more }
accepted_date: Time

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

The URL where the full text of the accepted agreement can be found.

accepted_ip: String

The IP address from which the terms of service were accepted.

accepted_user_agent: String

The user agent string of the browser or application used to accept the terms.

updated_at: Time

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: Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
max_page_size: Integer

Maximum allowed page size for this endpoint.

formatint32
page_number: Integer

Page number for paginated results.

formatint32
page_size: Integer

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: Integer

Total number of items returned in this response.

formatint32
total_pages: Integer

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
class AccountV1 { data, meta, response_type }
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: { 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 }

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

City, district, suburb, town, or village.

state: String

Two-letter state code.

zip: String

Zip or postal code.

address2: String

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

country: String

The country of the address, in ISO 3166-1 alpha-2 format.

line1: String

Primary address line (e.g., street, PO Box).

line2: String

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

postal_code: String

Postal or ZIP code.

description: String

A brief description of the business and its products or services.

industry: IndustryV1 { category, mcc, sector }
category: String

The general category of the industry. Required if not providing MCC.

mcc: String

The Merchant Category Code (MCC) that best describes the business. Optional.

sector: String

The specific sector within the industry category. Required if not providing MCC.

The official registered name of the business.

phone: String

The primary contact phone number for the business.

support_channels: SupportChannelsV1 { email, phone, url }
email: String

The email address for customer support inquiries.

formatemail
phone: String

The phone number for customer support.

url: String

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

formaturi
tax_id: String

The business's tax identification number (e.g., EIN in the US).

use_case: String

A description of how the business intends to use Straddle's services.

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: { 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: { 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: Time

Timestamp of when the account was created.

formatdate-time
external_id: String

Unique identifier for the account 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 account in a structured format.

settings: { charges, payouts}
charges: { daily_amount, funding_time, linked_bank_account_id, 3 more}
daily_amount: Integer

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: Integer

The maximum amount of a single charge.

formatint32
monthly_amount: Integer

The maximum dollar amount of charges in a calendar month.

formatint32
monthly_count: Integer

The maximum number of charges in a calendar month.

formatint32
payouts: { daily_amount, funding_time, linked_bank_account_id, 3 more}
daily_amount: Integer

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: Integer

The maximum amount of a single payout.

formatint32
monthly_amount: Integer

The maximum dollar amount of payouts in a month.

formatint32
monthly_count: Integer

The maximum number of payouts in a month.

formatint32
terms_of_service: TermsOfServiceV1 { accepted_date, agreement_type, agreement_url, 2 more }
accepted_date: Time

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

The URL where the full text of the accepted agreement can be found.

accepted_ip: String

The IP address from which the terms of service were accepted.

accepted_user_agent: String

The user agent string of the browser or application used to accept the terms.

updated_at: Time

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: Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
response_type: :object | :array | :error | :none

Indicates the structure of the returned content.

  • "object" means the data field contains a single JSON object.
  • "array" means the data field contains an array of objects.
  • "error" means the data field contains an error object with details of the issue.
  • "none" means no data is returned.
Accepts one of the following:
:object
:array
:error
:none
class 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

City, district, suburb, town, or village.

state: String

Two-letter state code.

zip: String

Zip or postal code.

address2: String

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

country: String

The country of the address, in ISO 3166-1 alpha-2 format.

line1: String

Primary address line (e.g., street, PO Box).

line2: String

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

postal_code: String

Postal or ZIP code.

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

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

City, district, suburb, town, or village.

state: String

Two-letter state code.

zip: String

Zip or postal code.

address2: String

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

country: String

The country of the address, in ISO 3166-1 alpha-2 format.

line1: String

Primary address line (e.g., street, PO Box).

line2: String

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

postal_code: String

Postal or ZIP code.

description: String

A brief description of the business and its products or services.

industry: IndustryV1 { category, mcc, sector }
category: String

The general category of the industry. Required if not providing MCC.

mcc: String

The Merchant Category Code (MCC) that best describes the business. Optional.

sector: String

The specific sector within the industry category. Required if not providing MCC.

The official registered name of the business.

phone: String

The primary contact phone number for the business.

support_channels: SupportChannelsV1 { email, phone, url }
email: String

The email address for customer support inquiries.

formatemail
phone: String

The phone number for customer support.

url: String

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

formaturi
tax_id: String

The business's tax identification number (e.g., EIN in the US).

use_case: String

A description of how the business intends to use Straddle's services.

class CapabilityV1 { capability_status }
capability_status: :active | :inactive
Accepts one of the following:
:active
:inactive
class IndustryV1 { category, mcc, sector }
category: String

The general category of the industry. Required if not providing MCC.

mcc: String

The Merchant Category Code (MCC) that best describes the business. Optional.

sector: String

The specific sector within the industry category. Required if not providing MCC.

class SupportChannelsV1 { email, phone, url }
email: String

The email address for customer support inquiries.

formatemail
phone: String

The phone number for customer support.

url: String

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

formaturi
class TermsOfServiceV1 { accepted_date, agreement_type, agreement_url, 2 more }
accepted_date: Time

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

The URL where the full text of the accepted agreement can be found.

accepted_ip: String

The IP address from which the terms of service were accepted.

accepted_user_agent: String

The user agent string of the browser or application used to accept the terms.

EmbedAccountsCapability Requests

Request a capability
embed.accounts.capability_requests.create(account_id, **kwargs) -> CapabilityRequestPagedV1 { data, meta, response_type }
post/v1/accounts/{account_id}/capability_requests
List capability requests
embed.accounts.capability_requests.list(account_id, **kwargs) -> PageNumberSchema<{ id, account_id, category, 5 more}>
get/v1/accounts/{account_id}/capability_requests
ModelsExpand Collapse
class CapabilityRequestPagedV1 { data, meta, response_type }
data: Array[{ 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: Time

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: Time

Timestamp of the most recent update to the capability request.

formatdate-time
settings: Hash[Symbol, untyped]

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: Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
max_page_size: Integer

Maximum allowed page size for this endpoint.

formatint32
page_number: Integer

Page number for paginated results.

formatint32
page_size: Integer

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: Integer

Total number of items returned in this response.

formatint32
total_pages: Integer

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

EmbedLinked Bank Accounts

Create a linked bank account
embed.linked_bank_accounts.create(**kwargs) -> LinkedBankAccountV1 { data, meta, response_type }
post/v1/linked_bank_accounts
List linked bank accounts
embed.linked_bank_accounts.list(**kwargs) -> PageNumberSchema<{ id, account_id, bank_account, 8 more}>
get/v1/linked_bank_accounts
Update a linked bank account
embed.linked_bank_accounts.update(linked_bank_account_id, **kwargs) -> LinkedBankAccountV1 { data, meta, response_type }
put/v1/linked_bank_accounts/{linked_bank_account_id}
Lookup a linked bank account
embed.linked_bank_accounts.get(linked_bank_account_id, **kwargs) -> LinkedBankAccountV1 { data, meta, response_type }
get/v1/linked_bank_accounts/{linked_bank_account_id}
Unmask a linked bank account
embed.linked_bank_accounts.unmask(linked_bank_account_id, **kwargs) -> LinkedBankAccountUnmaskV1 { data, meta, response_type }
get/v1/linked_bank_accounts/{linked_bank_account_id}/unmask
Cancel a linked bank account
embed.linked_bank_accounts.cancel(linked_bank_account_id, **kwargs) -> LinkedBankAccountV1 { data, meta, response_type }
patch/v1/linked_bank_accounts/{linked_bank_account_id}/cancel
ModelsExpand Collapse
class LinkedBankAccountPagedV1 { data, meta, response_type }
data: Array[{ id, account_id, bank_account, 8 more}]
id: String

Unique identifier for the linked bank account.

formatuuid
account_id: String

The unique identifier of the Straddle account related to this bank account.

formatuuid
bank_account: { account_holder, account_mask, institution_name, routing_number}
account_holder: String
account_mask: String
institution_name: String
routing_number: String
created_at: Time

Timestamp of when the bank account object was created.

formatdate-time
purposes: Array[:charges | :payouts | :billing]

The purposes for the linked bank account.

Accepts one of the following:
:charges
:payouts
:billing
status: :created | :onboarding | :active | 3 more

The current status of the linked bank account.

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

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

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

Accepts one of the following:
:watchtower
updated_at: Time

Timestamp of the most recent update to the linked bank account.

formatdate-time
description: String

Optional description for the bank account.

metadata: Hash[Symbol, String]

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

The unique identifier of the Straddle Platform relatd to this bank account.

formatuuid
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: Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
max_page_size: Integer

Maximum allowed page size for this endpoint.

formatint32
page_number: Integer

Page number for paginated results.

formatint32
page_size: Integer

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: Integer

Total number of items returned in this response.

formatint32
total_pages: Integer

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
class LinkedBankAccountUnmaskV1 { data, meta, response_type }
data: { id, account_id, bank_account, 5 more}
id: String

Unique identifier for the linked bank account.

formatuuid
account_id: String

Unique identifier for the Straddle account related to this bank account.

formatuuid
bank_account: { account_holder, account_number, institution_name, routing_number}

The bank account details associated with the linked bank account.

account_holder: String
account_number: String
institution_name: String
routing_number: String
created_at: Time

Timestamp of when the linked bank account was created.

formatdate-time
status: :created | :onboarding | :active | 3 more

The current status of the linked bank account.

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

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

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

Accepts one of the following:
:watchtower
updated_at: Time

Timestamp of when the linked bank account was last updated.

formatdate-time
metadata: Hash[Symbol, String]
meta: ResponseMetadata { api_request_id, api_request_timestamp }

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

api_request_id: String

Unique identifier for this API request, useful for troubleshooting.

formatuuid
api_request_timestamp: Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
response_type: :object | :array | :error | :none

Indicates the structure of the returned content.

  • "object" means the data field contains a single JSON object.
  • "array" means the data field contains an array of objects.
  • "error" means the data field contains an error object with details of the issue.
  • "none" means no data is returned.
Accepts one of the following:
:object
:array
:error
:none
class LinkedBankAccountV1 { data, meta, response_type }
data: { id, account_id, bank_account, 8 more}
id: String

Unique identifier for the linked bank account.

formatuuid
account_id: String

The unique identifier of the Straddle account related to this bank account.

formatuuid
bank_account: { account_holder, account_mask, institution_name, routing_number}
account_holder: String
account_mask: String
institution_name: String
routing_number: String
created_at: Time

Timestamp of when the bank account object was created.

formatdate-time
purposes: Array[:charges | :payouts | :billing]

The purposes for the linked bank account.

Accepts one of the following:
:charges
:payouts
:billing
status: :created | :onboarding | :active | 3 more

The current status of the linked bank account.

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

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

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

Accepts one of the following:
:watchtower
updated_at: Time

Timestamp of the most recent update to the linked bank account.

formatdate-time
description: String

Optional description for the bank account.

metadata: Hash[Symbol, String]

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

The unique identifier of the Straddle Platform relatd to this bank account.

formatuuid
meta: ResponseMetadata { api_request_id, api_request_timestamp }

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

api_request_id: String

Unique identifier for this API request, useful for troubleshooting.

formatuuid
api_request_timestamp: Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
response_type: :object | :array | :error | :none

Indicates the structure of the returned content.

  • "object" means the data field contains a single JSON object.
  • "array" means the data field contains an array of objects.
  • "error" means the data field contains an error object with details of the issue.
  • "none" means no data is returned.
Accepts one of the following:
:object
:array
:error
:none

EmbedOrganizations

Create an organization
embed.organizations.create(**kwargs) -> OrganizationV1 { data, meta, response_type }
post/v1/organizations
List organizations
embed.organizations.list(**kwargs) -> PageNumberSchema<{ id, created_at, name, 3 more}>
get/v1/organizations
Retrieve organization details
embed.organizations.get(organization_id, **kwargs) -> OrganizationV1 { data, meta, response_type }
get/v1/organizations/{organization_id}
ModelsExpand Collapse
class OrganizationPagedV1 { data, meta, response_type }
data: Array[{ id, created_at, name, 3 more}]
id: String

Straddle's unique identifier for the organization.

formatuuid
created_at: Time

Timestamp of when the organization was created.

formatdate-time
name: String

The name of the organization.

updated_at: Time

Timestamp of the most recent update to the organization.

formatdate-time
external_id: String

Unique identifier for the organization 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 organization in a structured format.

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: Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
max_page_size: Integer

Maximum allowed page size for this endpoint.

formatint32
page_number: Integer

Page number for paginated results.

formatint32
page_size: Integer

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: Integer

Total number of items returned in this response.

formatint32
total_pages: Integer

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
class OrganizationV1 { data, meta, response_type }
data: { id, created_at, name, 3 more}
id: String

Straddle's unique identifier for the organization.

formatuuid
created_at: Time

Timestamp of when the organization was created.

formatdate-time
name: String

The name of the organization.

updated_at: Time

Timestamp of the most recent update to the organization.

formatdate-time
external_id: String

Unique identifier for the organization 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 organization in a structured format.

meta: ResponseMetadata { api_request_id, api_request_timestamp }

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

api_request_id: String

Unique identifier for this API request, useful for troubleshooting.

formatuuid
api_request_timestamp: Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
response_type: :object | :array | :error | :none

Indicates the structure of the returned content.

  • "object" means the data field contains a single JSON object.
  • "array" means the data field contains an array of objects.
  • "error" means the data field contains an error object with details of the issue.
  • "none" means no data is returned.
Accepts one of the following:
:object
:array
:error
:none

EmbedRepresentatives

Create a representative
embed.representatives.create(**kwargs) -> Representative { data, meta, response_type }
post/v1/representatives
List representatives
embed.representatives.list(**kwargs) -> PageNumberSchema<{ id, account_id, created_at, 15 more}>
get/v1/representatives
Update a representative
embed.representatives.update(representative_id, **kwargs) -> Representative { data, meta, response_type }
put/v1/representatives/{representative_id}
Lookup a representative
embed.representatives.get(representative_id, **kwargs) -> Representative { data, meta, response_type }
get/v1/representatives/{representative_id}
Retrieve unmasked representative details
embed.representatives.unmask(representative_id, **kwargs) -> Representative { data, meta, response_type }
get/v1/representatives/{representative_id}/unmask
ModelsExpand Collapse
class Representative { data, meta, response_type }
data: { id, account_id, created_at, 15 more}
id: String

Unique identifier for the representative.

formatuuid
account_id: String

The unique identifier of the account this representative is associated with.

formatuuid
created_at: Time

Timestamp of when the representative was created.

formatdate-time
dob: Date

The date of birth of the representative, in ISO 8601 format (YYYY-MM-DD).

formatdate
email: String

The email address of the representative.

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

name: String
relationship: { control, owner, primary, 2 more}
control: bool

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: bool

Whether the representative owns any percentage of of the equity interests of the legal entity.

primary: bool

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: Float

The percentage of ownership the representative has. Required if 'Owner' is true.

formatdouble
title: String

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.

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

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

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

Accepts one of the following:
:watchtower
updated_at: Time

Timestamp of the most recent update to the representative.

formatdate-time
external_id: String

Unique identifier for the representative 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 represetative in a structured format.

phone: String
user_id: String

The unique identifier of the user account associated with this representative, if applicable.

formatuuid
meta: ResponseMetadata { api_request_id, api_request_timestamp }

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

api_request_id: String

Unique identifier for this API request, useful for troubleshooting.

formatuuid
api_request_timestamp: Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
response_type: :object | :array | :error | :none

Indicates the structure of the returned content.

  • "object" means the data field contains a single JSON object.
  • "array" means the data field contains an array of objects.
  • "error" means the data field contains an error object with details of the issue.
  • "none" means no data is returned.
Accepts one of the following:
:object
:array
:error
:none
class RepresentativePaged { data, meta, response_type }
data: Array[{ id, account_id, created_at, 15 more}]
id: String

Unique identifier for the representative.

formatuuid
account_id: String

The unique identifier of the account this representative is associated with.

formatuuid
created_at: Time

Timestamp of when the representative was created.

formatdate-time
dob: Date

The date of birth of the representative, in ISO 8601 format (YYYY-MM-DD).

formatdate
email: String

The email address of the representative.

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

name: String
relationship: { control, owner, primary, 2 more}
control: bool

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: bool

Whether the representative owns any percentage of of the equity interests of the legal entity.

primary: bool

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: Float

The percentage of ownership the representative has. Required if 'Owner' is true.

formatdouble
title: String

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.

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

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

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

Accepts one of the following:
:watchtower
updated_at: Time

Timestamp of the most recent update to the representative.

formatdate-time
external_id: String

Unique identifier for the representative 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 represetative in a structured format.

phone: String
user_id: String

The unique identifier of the user account associated with this representative, if applicable.

formatuuid
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: Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
max_page_size: Integer

Maximum allowed page size for this endpoint.

formatint32
page_number: Integer

Page number for paginated results.

formatint32
page_size: Integer

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: Integer

Total number of items returned in this response.

formatint32
total_pages: Integer

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