Skip to content
Get started

Linked Bank Accounts

Linked bank accounts connect your platform users' external bank accounts to Straddle for settlements and payment funding. Each linked account undergoes automated verification and continuous monitoring. Use linked accounts to manage where clients receive deposits, fund payouts, and track settlement preferences.

Create a linked bank account
embed.linked_bank_accounts.create(LinkedBankAccountCreateParams**kwargs) -> LinkedBankAccountV1
POST/v1/linked_bank_accounts
List linked bank accounts
embed.linked_bank_accounts.list(LinkedBankAccountListParams**kwargs) -> SyncPageNumberSchema[Data]
GET/v1/linked_bank_accounts
Update a linked bank account
embed.linked_bank_accounts.update(strlinked_bank_account_id, LinkedBankAccountUpdateParams**kwargs) -> LinkedBankAccountV1
PUT/v1/linked_bank_accounts/{linked_bank_account_id}
Lookup a linked bank account
embed.linked_bank_accounts.get(strlinked_bank_account_id, LinkedBankAccountGetParams**kwargs) -> LinkedBankAccountV1
GET/v1/linked_bank_accounts/{linked_bank_account_id}
Unmask a linked bank account
embed.linked_bank_accounts.unmask(strlinked_bank_account_id, LinkedBankAccountUnmaskParams**kwargs) -> LinkedBankAccountUnmaskV1
GET/v1/linked_bank_accounts/{linked_bank_account_id}/unmask
Cancel a linked bank account
embed.linked_bank_accounts.cancel(strlinked_bank_account_id, LinkedBankAccountCancelParams**kwargs) -> LinkedBankAccountV1
PATCH/v1/linked_bank_accounts/{linked_bank_account_id}/cancel
ModelsExpand Collapse
class LinkedBankAccountPagedV1:
data: List[Data]
id: str

Unique identifier for the linked bank account.

formatuuid
account_id: Optional[str]

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

formatuuid
bank_account: DataBankAccount
account_holder: str
account_mask: str
institution_name: str
routing_number: str
created_at: datetime

Timestamp of when the bank account object was created.

formatdate-time
purposes: List[Literal["charges", "payouts", "billing"]]

The purposes for the linked bank account.

One of the following:
"charges"
"payouts"
"billing"
status: Literal["created", "onboarding", "active", 3 more]

The current status of the linked bank account.

One of the following:
"created"
"onboarding"
"active"
"rejected"
"inactive"
"canceled"
status_detail: DataStatusDetail
code: str

A machine-readable code for the specific status, useful for programmatic handling.

message: str

A human-readable message describing the current status.

reason: Literal["unverified", "in_review", "pending", 5 more]

A machine-readable identifier for the specific status, useful for programmatic handling.

One of the following:
"unverified"
"in_review"
"pending"
"stuck"
"verified"
"failed_verification"
"disabled"
"new"
source: Literal["watchtower"]

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

updated_at: datetime

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

formatdate-time
description: Optional[str]

Optional description for the bank account.

metadata: Optional[Dict[str, Optional[str]]]

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: Optional[str]

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

formatuuid

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

api_request_id: str

Unique identifier for this API request, useful for troubleshooting.

formatuuid
api_request_timestamp: datetime

Timestamp for this API request, useful for troubleshooting.

formatdate-time
max_page_size: int

Maximum allowed page size for this endpoint.

formatint32
page_number: int

Page number for paginated results.

formatint32
page_size: int

Number of items per page in this response.

formatint32
sort_by: str

The field that the results were sorted by.

sort_order: Literal["asc", "desc"]
One of the following:
"asc"
"desc"
total_items: int

Total number of items returned in this response.

formatint32
total_pages: int

The number of pages available.

formatint32
response_type: Literal["object", "array", "error", "none"]

Indicates the structure of the returned content.

  • "object" means the data field contains a single JSON object.
  • "array" means the data field contains an array of objects.
  • "error" means the data field contains an error object with details of the issue.
  • "none" means no data is returned.
One of the following:
"object"
"array"
"error"
"none"
class LinkedBankAccountUnmaskV1:
data: Data
id: str

Unique identifier for the linked bank account.

formatuuid
account_id: str

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

formatuuid
bank_account: DataBankAccount

The bank account details associated with the linked bank account.

account_holder: str
account_number: str
institution_name: str
routing_number: str
created_at: datetime

Timestamp of when the linked bank account was created.

formatdate-time
status: Literal["created", "onboarding", "active", 3 more]

The current status of the linked bank account.

One of the following:
"created"
"onboarding"
"active"
"rejected"
"inactive"
"canceled"
status_detail: DataStatusDetail

Additional details about the current status of the linked bank account.

code: str

A machine-readable code for the specific status, useful for programmatic handling.

message: str

A human-readable message describing the current status.

reason: Literal["unverified", "in_review", "pending", 5 more]

A machine-readable identifier for the specific status, useful for programmatic handling.

One of the following:
"unverified"
"in_review"
"pending"
"stuck"
"verified"
"failed_verification"
"disabled"
"new"
source: Literal["watchtower"]

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

updated_at: datetime

Timestamp of when the linked bank account was last updated.

formatdate-time
metadata: Optional[Dict[str, Optional[str]]]

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

api_request_id: str

Unique identifier for this API request, useful for troubleshooting.

formatuuid
api_request_timestamp: datetime

Timestamp for this API request, useful for troubleshooting.

formatdate-time
response_type: Literal["object", "array", "error", "none"]

Indicates the structure of the returned content.

  • "object" means the data field contains a single JSON object.
  • "array" means the data field contains an array of objects.
  • "error" means the data field contains an error object with details of the issue.
  • "none" means no data is returned.
One of the following:
"object"
"array"
"error"
"none"
class LinkedBankAccountV1:
data: Data
id: str

Unique identifier for the linked bank account.

formatuuid
account_id: Optional[str]

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

formatuuid
bank_account: DataBankAccount
account_holder: str
account_mask: str
institution_name: str
routing_number: str
created_at: datetime

Timestamp of when the bank account object was created.

formatdate-time
purposes: List[Literal["charges", "payouts", "billing"]]

The purposes for the linked bank account.

One of the following:
"charges"
"payouts"
"billing"
status: Literal["created", "onboarding", "active", 3 more]

The current status of the linked bank account.

One of the following:
"created"
"onboarding"
"active"
"rejected"
"inactive"
"canceled"
status_detail: DataStatusDetail
code: str

A machine-readable code for the specific status, useful for programmatic handling.

message: str

A human-readable message describing the current status.

reason: Literal["unverified", "in_review", "pending", 5 more]

A machine-readable identifier for the specific status, useful for programmatic handling.

One of the following:
"unverified"
"in_review"
"pending"
"stuck"
"verified"
"failed_verification"
"disabled"
"new"
source: Literal["watchtower"]

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

updated_at: datetime

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

formatdate-time
description: Optional[str]

Optional description for the bank account.

metadata: Optional[Dict[str, Optional[str]]]

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: Optional[str]

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

formatuuid

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

api_request_id: str

Unique identifier for this API request, useful for troubleshooting.

formatuuid
api_request_timestamp: datetime

Timestamp for this API request, useful for troubleshooting.

formatdate-time
response_type: Literal["object", "array", "error", "none"]

Indicates the structure of the returned content.

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