## Create a linked bank account `embed.linked_bank_accounts.create(LinkedBankAccountCreateParams**kwargs) -> LinkedBankAccountV1` **post** `/v1/linked_bank_accounts` Creates a new linked bank account associated with a Straddle account. This endpoint allows you to associate external bank accounts with a Straddle account for various payment operations such as payment deposits, payout withdrawals, and more. ### Parameters - `account_id: Optional[str]` The unique identifier of the Straddle account to associate this bank account with. - `bank_account: BankAccount` - `account_holder: str` The name of the account holder as it appears on the bank account. Typically, this is the legal name of the business associated with the account. - `account_number: str` The bank account number. - `routing_number: str` The routing number of the bank account. - `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 to associate this bank account with. - `purposes: Optional[List[Literal["charges", "payouts", "billing"]]]` The purposes for the linked bank account. - `"charges"` - `"payouts"` - `"billing"` - `correlation_id: Optional[str]` - `idempotency_key: Optional[str]` - `request_id: Optional[str]` ### Returns - `class LinkedBankAccountV1: …` - `data: Data` - `id: str` Unique identifier for the linked bank account. - `account_id: Optional[str]` The unique identifier of the Straddle account related to this bank account. - `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. - `purposes: List[Literal["charges", "payouts", "billing"]]` The purposes for the linked bank account. - `"charges"` - `"payouts"` - `"billing"` - `status: Literal["created", "onboarding", "active", 3 more]` The current status of the linked bank account. - `"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. - `"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. - `"watchtower"` - `updated_at: datetime` Timestamp of the most recent update to the linked bank account. - `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. - `meta: ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `api_request_id: str` Unique identifier for this API request, useful for troubleshooting. - `api_request_timestamp: datetime` Timestamp for this API request, useful for troubleshooting. - `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. - `"object"` - `"array"` - `"error"` - `"none"` ### Example ```python import os from straddle import Straddle client = Straddle( api_key=os.environ.get("STRADDLE_API_KEY"), # This is the default and can be omitted ) linked_bank_account_v1 = client.embed.linked_bank_accounts.create( account_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", bank_account={ "account_holder": "account_holder", "account_number": "account_number", "routing_number": "xxxxxxxxx", }, ) print(linked_bank_account_v1.data) ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "bank_account": { "account_holder": "account_holder", "account_mask": "account_mask", "institution_name": "institution_name", "routing_number": "routing_number" }, "created_at": "2019-12-27T18:11:19.117Z", "purposes": [ "charges" ], "status": "created", "status_detail": { "code": "code", "message": "message", "reason": "unverified", "source": "watchtower" }, "updated_at": "2019-12-27T18:11:19.117Z", "description": "description", "metadata": { "foo": "string" }, "platform_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ```