# Linked Bank Accounts ## Create a linked bank account `LinkedBankAccountV1 Embed.LinkedBankAccounts.Create(LinkedBankAccountCreateParamsparameters, CancellationTokencancellationToken = default)` **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 - `LinkedBankAccountCreateParams parameters` - `required string? accountID` Body param: The unique identifier of the Straddle account to associate this bank account with. - `required BankAccount bankAccount` Body param - `required string AccountHolder` 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. - `required string AccountNumber` The bank account number. - `required string RoutingNumber` The routing number of the bank account. - `string? description` Body param: Optional description for the bank account. - `IReadOnlyDictionary? metadata` Body param: Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the linked bank account in a structured format. - `string? platformID` Body param: The unique identifier of the Straddle Platform to associate this bank account with. - `IReadOnlyList? purposes` Body param: The purposes for the linked bank account. - `"charges"Charges` - `"payouts"Payouts` - `"billing"Billing` - `string correlationID` Header param: Optional client generated identifier to trace and debug a series of requests. - `string idempotencyKey` Header param: Optional client generated value to use for idempotent requests. - `string requestID` Header param: Optional client generated identifier to trace and debug a request. ### Returns - `class LinkedBankAccountV1:` - `required Data Data` - `required string ID` Unique identifier for the linked bank account. - `required string? AccountID` The unique identifier of the Straddle account related to this bank account. - `required BankAccount BankAccount` - `required string AccountHolder` - `required string AccountMask` - `required string InstitutionName` - `required string RoutingNumber` - `required DateTimeOffset CreatedAt` Timestamp of when the bank account object was created. - `required IReadOnlyList Purposes` The purposes for the linked bank account. - `"charges"Charges` - `"payouts"Payouts` - `"billing"Billing` - `required Status Status` The current status of the linked bank account. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `"canceled"Canceled` - `required StatusDetail StatusDetail` - `required string Code` A machine-readable code for the specific status, useful for programmatic handling. - `required string Message` A human-readable message describing the current status. - `required Reason Reason` A machine-readable identifier for the specific status, useful for programmatic handling. - `"unverified"Unverified` - `"in_review"InReview` - `"pending"Pending` - `"stuck"Stuck` - `"verified"Verified` - `"failed_verification"FailedVerification` - `"disabled"Disabled` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the linked bank account. - `string? Description` Optional description for the bank account. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the linked bank account in a structured format. - `string? PlatformID` The unique identifier of the Straddle Platform relatd to this bank account. - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` 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"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Example ```csharp LinkedBankAccountCreateParams parameters = new() { AccountID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", BankAccount = new() { AccountHolder = "account_holder", AccountNumber = "account_number", RoutingNumber = "xxxxxxxxx", }, }; var linkedBankAccountV1 = await client.Embed.LinkedBankAccounts.Create(parameters); Console.WriteLine(linkedBankAccountV1); ``` #### 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" } ``` ## List linked bank accounts `LinkedBankAccountPagedV1 Embed.LinkedBankAccounts.List(LinkedBankAccountListParams?parameters, CancellationTokencancellationToken = default)` **get** `/v1/linked_bank_accounts` Returns a list of bank accounts associated with a specific Straddle account. The linked bank accounts are returned sorted by creation date, with the most recently created appearing first. This endpoint supports pagination to handle accounts with multiple linked bank accounts. ### Parameters - `LinkedBankAccountListParams parameters` - `string accountID` Query param: The unique identifier of the related account. - `Level level` Query param - `"account"Account` - `"platform"Platform` - `Int pageNumber` Query param: Results page number. Starts at page 1. - `Int pageSize` Query param: Page size. Max value: 1000 - `Purpose purpose` Query param: The purpose of the linked bank accounts to return. Possible values: 'charges', 'payouts', 'billing'. - `"charges"Charges` - `"payouts"Payouts` - `"billing"Billing` - `string sortBy` Query param: Sort By. - `SortOrder sortOrder` Query param: Sort Order. - `"asc"Asc` - `"desc"Desc` - `Status status` Query param: The status of the linked bank accounts to return. Possible values: 'created', 'onboarding', 'active', 'inactive', 'rejected'. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `"canceled"Canceled` - `string correlationID` Header param: Optional client generated identifier to trace and debug a series of requests. - `string requestID` Header param: Optional client generated identifier to trace and debug a request. ### Returns - `class LinkedBankAccountPagedV1:` - `required IReadOnlyList Data` - `required string ID` Unique identifier for the linked bank account. - `required string? AccountID` The unique identifier of the Straddle account related to this bank account. - `required BankAccount BankAccount` - `required string AccountHolder` - `required string AccountMask` - `required string InstitutionName` - `required string RoutingNumber` - `required DateTimeOffset CreatedAt` Timestamp of when the bank account object was created. - `required IReadOnlyList Purposes` The purposes for the linked bank account. - `"charges"Charges` - `"payouts"Payouts` - `"billing"Billing` - `required Status Status` The current status of the linked bank account. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `"canceled"Canceled` - `required StatusDetail StatusDetail` - `required string Code` A machine-readable code for the specific status, useful for programmatic handling. - `required string Message` A human-readable message describing the current status. - `required Reason Reason` A machine-readable identifier for the specific status, useful for programmatic handling. - `"unverified"Unverified` - `"in_review"InReview` - `"pending"Pending` - `"stuck"Stuck` - `"verified"Verified` - `"failed_verification"FailedVerification` - `"disabled"Disabled` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the linked bank account. - `string? Description` Optional description for the bank account. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the linked bank account in a structured format. - `string? PlatformID` The unique identifier of the Straddle Platform relatd to this bank account. - `required PagedResponseMetadata Meta` Metadata about the API request, including an identifier, timestamp, and pagination details. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required Int MaxPageSize` Maximum allowed page size for this endpoint. - `required Int PageNumber` Page number for paginated results. - `required Int PageSize` Number of items per page in this response. - `required string SortBy` The field that the results were sorted by. - `required SortOrder SortOrder` - `"asc"Asc` - `"desc"Desc` - `required Int TotalItems` Total number of items returned in this response. - `required Int TotalPages` The number of pages available. - `required ResponseType ResponseType` 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"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Example ```csharp LinkedBankAccountListParams parameters = new(); var page = await client.Embed.LinkedBankAccounts.List(parameters); await foreach (var item in page.Paginate()) { Console.WriteLine(item); } ``` #### 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", "max_page_size": 0, "page_number": 0, "page_size": 0, "sort_by": "sort_by", "sort_order": "asc", "total_items": 0, "total_pages": 0 }, "response_type": "object" } ``` ## Update a linked bank account `LinkedBankAccountV1 Embed.LinkedBankAccounts.Update(LinkedBankAccountUpdateParamsparameters, CancellationTokencancellationToken = default)` **put** `/v1/linked_bank_accounts/{linked_bank_account_id}` Updates an existing linked bank account's information. This can be used to update account details during onboarding or to update metadata associated with the linked account. The linked bank account must be in 'created' or 'onboarding' status. ### Parameters - `LinkedBankAccountUpdateParams parameters` - `required string linkedBankAccountID` Path param - `required BankAccount bankAccount` Body param - `required string AccountHolder` 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. - `required string AccountNumber` The bank account number. - `required string RoutingNumber` The routing number of the bank account. - `IReadOnlyDictionary? metadata` Body param: Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the linked bank account in a structured format. - `string correlationID` Header param: Optional client generated identifier to trace and debug a series of requests. - `string idempotencyKey` Header param: Optional client generated value to use for idempotent requests. - `string requestID` Header param: Optional client generated identifier to trace and debug a request. ### Returns - `class LinkedBankAccountV1:` - `required Data Data` - `required string ID` Unique identifier for the linked bank account. - `required string? AccountID` The unique identifier of the Straddle account related to this bank account. - `required BankAccount BankAccount` - `required string AccountHolder` - `required string AccountMask` - `required string InstitutionName` - `required string RoutingNumber` - `required DateTimeOffset CreatedAt` Timestamp of when the bank account object was created. - `required IReadOnlyList Purposes` The purposes for the linked bank account. - `"charges"Charges` - `"payouts"Payouts` - `"billing"Billing` - `required Status Status` The current status of the linked bank account. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `"canceled"Canceled` - `required StatusDetail StatusDetail` - `required string Code` A machine-readable code for the specific status, useful for programmatic handling. - `required string Message` A human-readable message describing the current status. - `required Reason Reason` A machine-readable identifier for the specific status, useful for programmatic handling. - `"unverified"Unverified` - `"in_review"InReview` - `"pending"Pending` - `"stuck"Stuck` - `"verified"Verified` - `"failed_verification"FailedVerification` - `"disabled"Disabled` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the linked bank account. - `string? Description` Optional description for the bank account. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the linked bank account in a structured format. - `string? PlatformID` The unique identifier of the Straddle Platform relatd to this bank account. - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` 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"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Example ```csharp LinkedBankAccountUpdateParams parameters = new() { LinkedBankAccountID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", BankAccount = new() { AccountHolder = "account_holder", AccountNumber = "account_number", RoutingNumber = "xxxxxxxxx", }, }; var linkedBankAccountV1 = await client.Embed.LinkedBankAccounts.Update(parameters); Console.WriteLine(linkedBankAccountV1); ``` #### 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" } ``` ## Lookup a linked bank account `LinkedBankAccountV1 Embed.LinkedBankAccounts.Get(LinkedBankAccountGetParamsparameters, CancellationTokencancellationToken = default)` **get** `/v1/linked_bank_accounts/{linked_bank_account_id}` Retrieves the details of a linked bank account that has previously been created. Supply the unique linked bank account `id`, and Straddle will return the corresponding information. The response includes masked account details for security purposes. ### Parameters - `LinkedBankAccountGetParams parameters` - `required string linkedBankAccountID` - `string correlationID` Optional client generated identifier to trace and debug a series of requests. - `string requestID` Optional client generated identifier to trace and debug a request. ### Returns - `class LinkedBankAccountV1:` - `required Data Data` - `required string ID` Unique identifier for the linked bank account. - `required string? AccountID` The unique identifier of the Straddle account related to this bank account. - `required BankAccount BankAccount` - `required string AccountHolder` - `required string AccountMask` - `required string InstitutionName` - `required string RoutingNumber` - `required DateTimeOffset CreatedAt` Timestamp of when the bank account object was created. - `required IReadOnlyList Purposes` The purposes for the linked bank account. - `"charges"Charges` - `"payouts"Payouts` - `"billing"Billing` - `required Status Status` The current status of the linked bank account. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `"canceled"Canceled` - `required StatusDetail StatusDetail` - `required string Code` A machine-readable code for the specific status, useful for programmatic handling. - `required string Message` A human-readable message describing the current status. - `required Reason Reason` A machine-readable identifier for the specific status, useful for programmatic handling. - `"unverified"Unverified` - `"in_review"InReview` - `"pending"Pending` - `"stuck"Stuck` - `"verified"Verified` - `"failed_verification"FailedVerification` - `"disabled"Disabled` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the linked bank account. - `string? Description` Optional description for the bank account. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the linked bank account in a structured format. - `string? PlatformID` The unique identifier of the Straddle Platform relatd to this bank account. - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` 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"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Example ```csharp LinkedBankAccountGetParams parameters = new() { LinkedBankAccountID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }; var linkedBankAccountV1 = await client.Embed.LinkedBankAccounts.Get(parameters); Console.WriteLine(linkedBankAccountV1); ``` #### 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" } ``` ## Unmask a linked bank account `LinkedBankAccountUnmaskV1 Embed.LinkedBankAccounts.Unmask(LinkedBankAccountUnmaskParamsparameters, CancellationTokencancellationToken = default)` **get** `/v1/linked_bank_accounts/{linked_bank_account_id}/unmask` Retrieves the unmasked details of a linked bank account that has previously been created. Supply the unique linked bank account `id`, and Straddle will return the corresponding information, including sensitive details. This endpoint needs to be enabled by Straddle for your account and should only be used when absolutely necessary. ### Parameters - `LinkedBankAccountUnmaskParams parameters` - `required string linkedBankAccountID` - `string correlationID` Optional client generated identifier to trace and debug a series of requests. - `string requestID` Optional client generated identifier to trace and debug a request. ### Returns - `class LinkedBankAccountUnmaskV1:` - `required Data Data` - `required string ID` Unique identifier for the linked bank account. - `required string AccountID` Unique identifier for the Straddle account related to this bank account. - `required BankAccount BankAccount` The bank account details associated with the linked bank account. - `required string AccountHolder` - `required string AccountNumber` - `required string InstitutionName` - `required string RoutingNumber` - `required DateTimeOffset CreatedAt` Timestamp of when the linked bank account was created. - `required Status Status` The current status of the linked bank account. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `"canceled"Canceled` - `required StatusDetail StatusDetail` Additional details about the current status of the linked bank account. - `required string Code` A machine-readable code for the specific status, useful for programmatic handling. - `required string Message` A human-readable message describing the current status. - `required Reason Reason` A machine-readable identifier for the specific status, useful for programmatic handling. - `"unverified"Unverified` - `"in_review"InReview` - `"pending"Pending` - `"stuck"Stuck` - `"verified"Verified` - `"failed_verification"FailedVerification` - `"disabled"Disabled` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required DateTimeOffset UpdatedAt` Timestamp of when the linked bank account was last updated. - `IReadOnlyDictionary? Metadata` - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` 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"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Example ```csharp LinkedBankAccountUnmaskParams parameters = new() { LinkedBankAccountID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }; var linkedBankAccountUnmaskV1 = await client.Embed.LinkedBankAccounts.Unmask(parameters); Console.WriteLine(linkedBankAccountUnmaskV1); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "bank_account": { "account_holder": "account_holder", "account_number": "account_number", "institution_name": "institution_name", "routing_number": "routing_number" }, "created_at": "2019-12-27T18:11:19.117Z", "status": "created", "status_detail": { "code": "code", "message": "message", "reason": "unverified", "source": "watchtower" }, "updated_at": "2019-12-27T18:11:19.117Z", "metadata": { "foo": "string" } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Cancel a linked bank account `LinkedBankAccountV1 Embed.LinkedBankAccounts.Cancel(LinkedBankAccountCancelParamsparameters, CancellationTokencancellationToken = default)` **patch** `/v1/linked_bank_accounts/{linked_bank_account_id}/cancel` Cancels an existing linked bank account. This can be used to cancel a linked bank account before it has been reviewed. The linked bank account must be in 'created' status. ### Parameters - `LinkedBankAccountCancelParams parameters` - `required string linkedBankAccountID` - `string correlationID` Optional client generated identifier to trace and debug a series of requests. - `string idempotencyKey` Optional client generated value to use for idempotent requests. - `string requestID` Optional client generated identifier to trace and debug a request. ### Returns - `class LinkedBankAccountV1:` - `required Data Data` - `required string ID` Unique identifier for the linked bank account. - `required string? AccountID` The unique identifier of the Straddle account related to this bank account. - `required BankAccount BankAccount` - `required string AccountHolder` - `required string AccountMask` - `required string InstitutionName` - `required string RoutingNumber` - `required DateTimeOffset CreatedAt` Timestamp of when the bank account object was created. - `required IReadOnlyList Purposes` The purposes for the linked bank account. - `"charges"Charges` - `"payouts"Payouts` - `"billing"Billing` - `required Status Status` The current status of the linked bank account. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `"canceled"Canceled` - `required StatusDetail StatusDetail` - `required string Code` A machine-readable code for the specific status, useful for programmatic handling. - `required string Message` A human-readable message describing the current status. - `required Reason Reason` A machine-readable identifier for the specific status, useful for programmatic handling. - `"unverified"Unverified` - `"in_review"InReview` - `"pending"Pending` - `"stuck"Stuck` - `"verified"Verified` - `"failed_verification"FailedVerification` - `"disabled"Disabled` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the linked bank account. - `string? Description` Optional description for the bank account. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the linked bank account in a structured format. - `string? PlatformID` The unique identifier of the Straddle Platform relatd to this bank account. - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` 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"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Example ```csharp LinkedBankAccountCancelParams parameters = new() { LinkedBankAccountID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }; var linkedBankAccountV1 = await client.Embed.LinkedBankAccounts.Cancel(parameters); Console.WriteLine(linkedBankAccountV1); ``` #### 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" } ``` ## Domain Types ### Linked Bank Account Paged V1 - `class LinkedBankAccountPagedV1:` - `required IReadOnlyList Data` - `required string ID` Unique identifier for the linked bank account. - `required string? AccountID` The unique identifier of the Straddle account related to this bank account. - `required BankAccount BankAccount` - `required string AccountHolder` - `required string AccountMask` - `required string InstitutionName` - `required string RoutingNumber` - `required DateTimeOffset CreatedAt` Timestamp of when the bank account object was created. - `required IReadOnlyList Purposes` The purposes for the linked bank account. - `"charges"Charges` - `"payouts"Payouts` - `"billing"Billing` - `required Status Status` The current status of the linked bank account. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `"canceled"Canceled` - `required StatusDetail StatusDetail` - `required string Code` A machine-readable code for the specific status, useful for programmatic handling. - `required string Message` A human-readable message describing the current status. - `required Reason Reason` A machine-readable identifier for the specific status, useful for programmatic handling. - `"unverified"Unverified` - `"in_review"InReview` - `"pending"Pending` - `"stuck"Stuck` - `"verified"Verified` - `"failed_verification"FailedVerification` - `"disabled"Disabled` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the linked bank account. - `string? Description` Optional description for the bank account. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the linked bank account in a structured format. - `string? PlatformID` The unique identifier of the Straddle Platform relatd to this bank account. - `required PagedResponseMetadata Meta` Metadata about the API request, including an identifier, timestamp, and pagination details. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required Int MaxPageSize` Maximum allowed page size for this endpoint. - `required Int PageNumber` Page number for paginated results. - `required Int PageSize` Number of items per page in this response. - `required string SortBy` The field that the results were sorted by. - `required SortOrder SortOrder` - `"asc"Asc` - `"desc"Desc` - `required Int TotalItems` Total number of items returned in this response. - `required Int TotalPages` The number of pages available. - `required ResponseType ResponseType` 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"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Linked Bank Account Unmask V1 - `class LinkedBankAccountUnmaskV1:` - `required Data Data` - `required string ID` Unique identifier for the linked bank account. - `required string AccountID` Unique identifier for the Straddle account related to this bank account. - `required BankAccount BankAccount` The bank account details associated with the linked bank account. - `required string AccountHolder` - `required string AccountNumber` - `required string InstitutionName` - `required string RoutingNumber` - `required DateTimeOffset CreatedAt` Timestamp of when the linked bank account was created. - `required Status Status` The current status of the linked bank account. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `"canceled"Canceled` - `required StatusDetail StatusDetail` Additional details about the current status of the linked bank account. - `required string Code` A machine-readable code for the specific status, useful for programmatic handling. - `required string Message` A human-readable message describing the current status. - `required Reason Reason` A machine-readable identifier for the specific status, useful for programmatic handling. - `"unverified"Unverified` - `"in_review"InReview` - `"pending"Pending` - `"stuck"Stuck` - `"verified"Verified` - `"failed_verification"FailedVerification` - `"disabled"Disabled` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required DateTimeOffset UpdatedAt` Timestamp of when the linked bank account was last updated. - `IReadOnlyDictionary? Metadata` - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` 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"Object` - `"array"Array` - `"error"Error` - `"none"None` ### Linked Bank Account V1 - `class LinkedBankAccountV1:` - `required Data Data` - `required string ID` Unique identifier for the linked bank account. - `required string? AccountID` The unique identifier of the Straddle account related to this bank account. - `required BankAccount BankAccount` - `required string AccountHolder` - `required string AccountMask` - `required string InstitutionName` - `required string RoutingNumber` - `required DateTimeOffset CreatedAt` Timestamp of when the bank account object was created. - `required IReadOnlyList Purposes` The purposes for the linked bank account. - `"charges"Charges` - `"payouts"Payouts` - `"billing"Billing` - `required Status Status` The current status of the linked bank account. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `"canceled"Canceled` - `required StatusDetail StatusDetail` - `required string Code` A machine-readable code for the specific status, useful for programmatic handling. - `required string Message` A human-readable message describing the current status. - `required Reason Reason` A machine-readable identifier for the specific status, useful for programmatic handling. - `"unverified"Unverified` - `"in_review"InReview` - `"pending"Pending` - `"stuck"Stuck` - `"verified"Verified` - `"failed_verification"FailedVerification` - `"disabled"Disabled` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the linked bank account. - `string? Description` Optional description for the bank account. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the linked bank account in a structured format. - `string? PlatformID` The unique identifier of the Straddle Platform relatd to this bank account. - `required ResponseMetadata Meta` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required ResponseType ResponseType` 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"Object` - `"array"Array` - `"error"Error` - `"none"None`