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(**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.

One of the following:
:charges
:payouts
:billing
status: :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: { 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.

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.

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

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.

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.

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

One of the following:
:charges
:payouts
:billing
status: :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: { 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.

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.

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.
One of the following:
:object
:array
:error
:none