# Embed # Accounts ## Lookup an account `AccountV1 Embed.Accounts.Get(AccountGetParamsparameters, CancellationTokencancellationToken = default)` **get** `/v1/accounts/{account_id}` Retrieves the details of an account that has previously been created. Supply the unique account ID that was returned from your previous request, and Straddle will return the corresponding account information. ### Parameters - `AccountGetParams parameters` - `required string accountID` The unique identifier of the account to retrieve. - `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 AccountV1:` - `required Data Data` - `required string ID` Unique identifier for the account. - `required AccessLevel AccessLevel` The access level granted to the account. This is determined by your platform configuration. Use `standard` unless instructed otherwise by Straddle. - `"standard"Standard` - `"managed"Managed` - `required string OrganizationID` The unique identifier of the organization this account belongs to. - `required Status Status` The current status of the account (e.g., 'active', 'inactive', 'pending'). - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `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` - `"terminated"Terminated` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `bank_decline`, `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required Type Type` The type of account (e.g., 'individual', 'business'). - `"business"Business` - `BusinessProfileV1 BusinessProfile` - `required string Name` The operating or trade name of the business. - `required string Website` URL of the business's primary marketing website. - `AddressV1? Address` The address object is optional. If provided, it must be a valid address. - `required string? City` City, district, suburb, town, or village. - `required string? Line1` Primary address line (e.g., street, PO Box). - `required string? PostalCode` Postal or ZIP code. - `required string? State` Two-letter state code. - `string? Country` The country of the address, in ISO 3166-1 alpha-2 format. - `string? Line2` Secondary address line (e.g., apartment, suite, unit, or building). - `string? Description` A brief description of the business and its products or services. - `IndustryV1 Industry` - `string? Category` The general category of the industry. Required if not providing MCC. - `string? Mcc` The Merchant Category Code (MCC) that best describes the business. Optional. - `string? Sector` The specific sector within the industry category. Required if not providing MCC. - `string? LegalName` The official registered name of the business. - `string? Phone` The primary contact phone number for the business. - `SupportChannelsV1 SupportChannels` - `string? Email` The email address for customer support inquiries. - `string? Phone` The phone number for customer support. - `string? Url` The URL of the business's customer support page or contact form. - `string? TaxID` The business's tax identification number (e.g., EIN in the US). - `string? UseCase` A description of how the business intends to use Straddle's services. - `Capabilities Capabilities` - `required ConsentTypes ConsentTypes` - `required CapabilityV1 Internet` Whether the internet payment authorization capability is enabled for the account. - `required CapabilityStatus CapabilityStatus` - `"active"Active` - `"inactive"Inactive` - `required CapabilityV1 SignedAgreement` Whether the signed agreement payment authorization capability is enabled for the account. - `required CustomerTypes CustomerTypes` - `required CapabilityV1 Businesses` - `required CapabilityV1 Individuals` - `required PaymentTypes PaymentTypes` - `required CapabilityV1 Charges` - `required CapabilityV1 Payouts` - `DateTimeOffset? CreatedAt` Timestamp of when the account was created. - `string? ExternalID` Unique identifier for the account in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the account in a structured format. - `Settings Settings` - `required Charges Charges` - `required Int DailyAmount` The maximum dollar amount of charges in a calendar day. - `required FundingTime FundingTime` The amount of time it takes for a charge to be funded. This value is defined by Straddle. - `"immediate"Immediate` - `"next_day"NextDay` - `"one_day"OneDay` - `"two_day"TwoDay` - `"three_day"ThreeDay` - `"four_day"FourDay` - `"five_day"FiveDay` - `required string LinkedBankAccountID` The unique identifier of the linked bank account associated with charges. This value is defined by Straddle. - `required Int MaxAmount` The maximum amount of a single charge. - `required Int MonthlyAmount` The maximum dollar amount of charges in a calendar month. - `required Int MonthlyCount` The maximum number of charges in a calendar month. - `required Payouts Payouts` - `required Int DailyAmount` The maximum dollar amount of payouts in a day. - `required FundingTime FundingTime` The amount of time it takes for a payout to be funded. This value is defined by Straddle. - `"immediate"Immediate` - `"next_day"NextDay` - `"one_day"OneDay` - `"two_day"TwoDay` - `"three_day"ThreeDay` - `"four_day"FourDay` - `"five_day"FiveDay` - `required string LinkedBankAccountID` The unique identifier of the linked bank account to use for payouts. - `required Int MaxAmount` The maximum amount of a single payout. - `required Int MonthlyAmount` The maximum dollar amount of payouts in a month. - `required Int MonthlyCount` The maximum number of payouts in a month. - `TermsOfServiceV1 TermsOfService` - `required DateTimeOffset AcceptedDate` The datetime of when the terms of service were accepted, in ISO 8601 format. - `required AgreementType AgreementType` The type or version of the agreement accepted. Use `embedded` unless your platform was specifically enabled for `direct` agreements. - `"embedded"Embedded` - `"direct"Direct` - `required string? AgreementUrl` The URL where the full text of the accepted agreement can be found. - `string? AcceptedIP` The IP address from which the terms of service were accepted. - `string? AcceptedUserAgent` The user agent string of the browser or application used to accept the terms. - `DateTimeOffset? UpdatedAt` Timestamp of the most recent update to the 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 AccountGetParams parameters = new() { AccountID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }; var accountV1 = await client.Embed.Accounts.Get(parameters); Console.WriteLine(accountV1); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "access_level": "standard", "organization_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "status": "created", "status_detail": { "code": "code", "message": "message", "reason": "unverified", "source": "watchtower" }, "type": "business", "business_profile": { "name": "name", "website": "https://example.com", "address": { "city": "city", "line1": "line1", "postal_code": "21029-1360", "state": "SE", "country": "country", "line2": "line2" }, "description": "description", "industry": { "category": "category", "mcc": "mcc", "sector": "sector" }, "legal_name": "legal_name", "phone": "+46991022", "support_channels": { "email": "dev@stainless.com", "phone": "+46991022", "url": "https://example.com" }, "tax_id": "210297980", "use_case": "use_case" }, "capabilities": { "consent_types": { "internet": { "capability_status": "active" }, "signed_agreement": { "capability_status": "active" } }, "customer_types": { "businesses": { "capability_status": "active" }, "individuals": { "capability_status": "active" } }, "payment_types": { "charges": { "capability_status": "active" }, "payouts": { "capability_status": "active" } } }, "created_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "metadata": { "foo": "string" }, "settings": { "charges": { "daily_amount": 0, "funding_time": "immediate", "linked_bank_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "max_amount": 0, "monthly_amount": 0, "monthly_count": 0 }, "payouts": { "daily_amount": 0, "funding_time": "immediate", "linked_bank_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "max_amount": 0, "monthly_amount": 0, "monthly_count": 0 } }, "terms_of_service": { "accepted_date": "2019-12-27T18:11:19.117Z", "agreement_type": "embedded", "agreement_url": "agreement_url", "accepted_ip": "accepted_ip", "accepted_user_agent": "accepted_user_agent" }, "updated_at": "2019-12-27T18:11:19.117Z" }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Update an account `AccountV1 Embed.Accounts.Update(AccountUpdateParamsparameters, CancellationTokencancellationToken = default)` **put** `/v1/accounts/{account_id}` Updates an existing account's information. This endpoint allows you to update various account details during onboarding or after the account has been created. ### Parameters - `AccountUpdateParams parameters` - `required string accountID` Path param - `required BusinessProfileV1 businessProfile` Body param - `string? externalID` Body param: Unique identifier for the account in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? metadata` Body param: Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the 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 AccountV1:` - `required Data Data` - `required string ID` Unique identifier for the account. - `required AccessLevel AccessLevel` The access level granted to the account. This is determined by your platform configuration. Use `standard` unless instructed otherwise by Straddle. - `"standard"Standard` - `"managed"Managed` - `required string OrganizationID` The unique identifier of the organization this account belongs to. - `required Status Status` The current status of the account (e.g., 'active', 'inactive', 'pending'). - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `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` - `"terminated"Terminated` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `bank_decline`, `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required Type Type` The type of account (e.g., 'individual', 'business'). - `"business"Business` - `BusinessProfileV1 BusinessProfile` - `required string Name` The operating or trade name of the business. - `required string Website` URL of the business's primary marketing website. - `AddressV1? Address` The address object is optional. If provided, it must be a valid address. - `required string? City` City, district, suburb, town, or village. - `required string? Line1` Primary address line (e.g., street, PO Box). - `required string? PostalCode` Postal or ZIP code. - `required string? State` Two-letter state code. - `string? Country` The country of the address, in ISO 3166-1 alpha-2 format. - `string? Line2` Secondary address line (e.g., apartment, suite, unit, or building). - `string? Description` A brief description of the business and its products or services. - `IndustryV1 Industry` - `string? Category` The general category of the industry. Required if not providing MCC. - `string? Mcc` The Merchant Category Code (MCC) that best describes the business. Optional. - `string? Sector` The specific sector within the industry category. Required if not providing MCC. - `string? LegalName` The official registered name of the business. - `string? Phone` The primary contact phone number for the business. - `SupportChannelsV1 SupportChannels` - `string? Email` The email address for customer support inquiries. - `string? Phone` The phone number for customer support. - `string? Url` The URL of the business's customer support page or contact form. - `string? TaxID` The business's tax identification number (e.g., EIN in the US). - `string? UseCase` A description of how the business intends to use Straddle's services. - `Capabilities Capabilities` - `required ConsentTypes ConsentTypes` - `required CapabilityV1 Internet` Whether the internet payment authorization capability is enabled for the account. - `required CapabilityStatus CapabilityStatus` - `"active"Active` - `"inactive"Inactive` - `required CapabilityV1 SignedAgreement` Whether the signed agreement payment authorization capability is enabled for the account. - `required CustomerTypes CustomerTypes` - `required CapabilityV1 Businesses` - `required CapabilityV1 Individuals` - `required PaymentTypes PaymentTypes` - `required CapabilityV1 Charges` - `required CapabilityV1 Payouts` - `DateTimeOffset? CreatedAt` Timestamp of when the account was created. - `string? ExternalID` Unique identifier for the account in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the account in a structured format. - `Settings Settings` - `required Charges Charges` - `required Int DailyAmount` The maximum dollar amount of charges in a calendar day. - `required FundingTime FundingTime` The amount of time it takes for a charge to be funded. This value is defined by Straddle. - `"immediate"Immediate` - `"next_day"NextDay` - `"one_day"OneDay` - `"two_day"TwoDay` - `"three_day"ThreeDay` - `"four_day"FourDay` - `"five_day"FiveDay` - `required string LinkedBankAccountID` The unique identifier of the linked bank account associated with charges. This value is defined by Straddle. - `required Int MaxAmount` The maximum amount of a single charge. - `required Int MonthlyAmount` The maximum dollar amount of charges in a calendar month. - `required Int MonthlyCount` The maximum number of charges in a calendar month. - `required Payouts Payouts` - `required Int DailyAmount` The maximum dollar amount of payouts in a day. - `required FundingTime FundingTime` The amount of time it takes for a payout to be funded. This value is defined by Straddle. - `"immediate"Immediate` - `"next_day"NextDay` - `"one_day"OneDay` - `"two_day"TwoDay` - `"three_day"ThreeDay` - `"four_day"FourDay` - `"five_day"FiveDay` - `required string LinkedBankAccountID` The unique identifier of the linked bank account to use for payouts. - `required Int MaxAmount` The maximum amount of a single payout. - `required Int MonthlyAmount` The maximum dollar amount of payouts in a month. - `required Int MonthlyCount` The maximum number of payouts in a month. - `TermsOfServiceV1 TermsOfService` - `required DateTimeOffset AcceptedDate` The datetime of when the terms of service were accepted, in ISO 8601 format. - `required AgreementType AgreementType` The type or version of the agreement accepted. Use `embedded` unless your platform was specifically enabled for `direct` agreements. - `"embedded"Embedded` - `"direct"Direct` - `required string? AgreementUrl` The URL where the full text of the accepted agreement can be found. - `string? AcceptedIP` The IP address from which the terms of service were accepted. - `string? AcceptedUserAgent` The user agent string of the browser or application used to accept the terms. - `DateTimeOffset? UpdatedAt` Timestamp of the most recent update to the 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 AccountUpdateParams parameters = new() { AccountID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", BusinessProfile = new() { Name = "name", Website = "https://example.com", Address = new() { City = "city", Line1 = "line1", PostalCode = "21029-1360", State = "SE", Country = "country", Line2 = "line2", }, Description = "description", Industry = new() { Category = "category", Mcc = "mcc", Sector = "sector", }, LegalName = "legal_name", Phone = "+46991022", SupportChannels = new() { Email = "dev@stainless.com", Phone = "+46991022", Url = "https://example.com", }, TaxID = "210297980", UseCase = "use_case", }, }; var accountV1 = await client.Embed.Accounts.Update(parameters); Console.WriteLine(accountV1); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "access_level": "standard", "organization_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "status": "created", "status_detail": { "code": "code", "message": "message", "reason": "unverified", "source": "watchtower" }, "type": "business", "business_profile": { "name": "name", "website": "https://example.com", "address": { "city": "city", "line1": "line1", "postal_code": "21029-1360", "state": "SE", "country": "country", "line2": "line2" }, "description": "description", "industry": { "category": "category", "mcc": "mcc", "sector": "sector" }, "legal_name": "legal_name", "phone": "+46991022", "support_channels": { "email": "dev@stainless.com", "phone": "+46991022", "url": "https://example.com" }, "tax_id": "210297980", "use_case": "use_case" }, "capabilities": { "consent_types": { "internet": { "capability_status": "active" }, "signed_agreement": { "capability_status": "active" } }, "customer_types": { "businesses": { "capability_status": "active" }, "individuals": { "capability_status": "active" } }, "payment_types": { "charges": { "capability_status": "active" }, "payouts": { "capability_status": "active" } } }, "created_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "metadata": { "foo": "string" }, "settings": { "charges": { "daily_amount": 0, "funding_time": "immediate", "linked_bank_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "max_amount": 0, "monthly_amount": 0, "monthly_count": 0 }, "payouts": { "daily_amount": 0, "funding_time": "immediate", "linked_bank_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "max_amount": 0, "monthly_amount": 0, "monthly_count": 0 } }, "terms_of_service": { "accepted_date": "2019-12-27T18:11:19.117Z", "agreement_type": "embedded", "agreement_url": "agreement_url", "accepted_ip": "accepted_ip", "accepted_user_agent": "accepted_user_agent" }, "updated_at": "2019-12-27T18:11:19.117Z" }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Create an account `AccountV1 Embed.Accounts.Create(AccountCreateParamsparameters, CancellationTokencancellationToken = default)` **post** `/v1/accounts` Creates a new account associated with your Straddle platform integration. This endpoint allows you to set up an account with specified details, including business information and access levels. ### Parameters - `AccountCreateParams parameters` - `required AccessLevel accessLevel` Body param: The access level granted to the account. This is determined by your platform configuration. Use `standard` unless instructed otherwise by Straddle. - `"standard"Standard` - `"managed"Managed` - `required AccountType accountType` Body param: The type of account to be created. Currently, only `business` is supported. - `"business"Business` - `required BusinessProfileV1 businessProfile` Body param - `required string organizationID` Body param: The unique identifier of the organization related to this account. - `string? externalID` Body param: Unique identifier for the account in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? metadata` Body param: Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the 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 AccountV1:` - `required Data Data` - `required string ID` Unique identifier for the account. - `required AccessLevel AccessLevel` The access level granted to the account. This is determined by your platform configuration. Use `standard` unless instructed otherwise by Straddle. - `"standard"Standard` - `"managed"Managed` - `required string OrganizationID` The unique identifier of the organization this account belongs to. - `required Status Status` The current status of the account (e.g., 'active', 'inactive', 'pending'). - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `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` - `"terminated"Terminated` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `bank_decline`, `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required Type Type` The type of account (e.g., 'individual', 'business'). - `"business"Business` - `BusinessProfileV1 BusinessProfile` - `required string Name` The operating or trade name of the business. - `required string Website` URL of the business's primary marketing website. - `AddressV1? Address` The address object is optional. If provided, it must be a valid address. - `required string? City` City, district, suburb, town, or village. - `required string? Line1` Primary address line (e.g., street, PO Box). - `required string? PostalCode` Postal or ZIP code. - `required string? State` Two-letter state code. - `string? Country` The country of the address, in ISO 3166-1 alpha-2 format. - `string? Line2` Secondary address line (e.g., apartment, suite, unit, or building). - `string? Description` A brief description of the business and its products or services. - `IndustryV1 Industry` - `string? Category` The general category of the industry. Required if not providing MCC. - `string? Mcc` The Merchant Category Code (MCC) that best describes the business. Optional. - `string? Sector` The specific sector within the industry category. Required if not providing MCC. - `string? LegalName` The official registered name of the business. - `string? Phone` The primary contact phone number for the business. - `SupportChannelsV1 SupportChannels` - `string? Email` The email address for customer support inquiries. - `string? Phone` The phone number for customer support. - `string? Url` The URL of the business's customer support page or contact form. - `string? TaxID` The business's tax identification number (e.g., EIN in the US). - `string? UseCase` A description of how the business intends to use Straddle's services. - `Capabilities Capabilities` - `required ConsentTypes ConsentTypes` - `required CapabilityV1 Internet` Whether the internet payment authorization capability is enabled for the account. - `required CapabilityStatus CapabilityStatus` - `"active"Active` - `"inactive"Inactive` - `required CapabilityV1 SignedAgreement` Whether the signed agreement payment authorization capability is enabled for the account. - `required CustomerTypes CustomerTypes` - `required CapabilityV1 Businesses` - `required CapabilityV1 Individuals` - `required PaymentTypes PaymentTypes` - `required CapabilityV1 Charges` - `required CapabilityV1 Payouts` - `DateTimeOffset? CreatedAt` Timestamp of when the account was created. - `string? ExternalID` Unique identifier for the account in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the account in a structured format. - `Settings Settings` - `required Charges Charges` - `required Int DailyAmount` The maximum dollar amount of charges in a calendar day. - `required FundingTime FundingTime` The amount of time it takes for a charge to be funded. This value is defined by Straddle. - `"immediate"Immediate` - `"next_day"NextDay` - `"one_day"OneDay` - `"two_day"TwoDay` - `"three_day"ThreeDay` - `"four_day"FourDay` - `"five_day"FiveDay` - `required string LinkedBankAccountID` The unique identifier of the linked bank account associated with charges. This value is defined by Straddle. - `required Int MaxAmount` The maximum amount of a single charge. - `required Int MonthlyAmount` The maximum dollar amount of charges in a calendar month. - `required Int MonthlyCount` The maximum number of charges in a calendar month. - `required Payouts Payouts` - `required Int DailyAmount` The maximum dollar amount of payouts in a day. - `required FundingTime FundingTime` The amount of time it takes for a payout to be funded. This value is defined by Straddle. - `"immediate"Immediate` - `"next_day"NextDay` - `"one_day"OneDay` - `"two_day"TwoDay` - `"three_day"ThreeDay` - `"four_day"FourDay` - `"five_day"FiveDay` - `required string LinkedBankAccountID` The unique identifier of the linked bank account to use for payouts. - `required Int MaxAmount` The maximum amount of a single payout. - `required Int MonthlyAmount` The maximum dollar amount of payouts in a month. - `required Int MonthlyCount` The maximum number of payouts in a month. - `TermsOfServiceV1 TermsOfService` - `required DateTimeOffset AcceptedDate` The datetime of when the terms of service were accepted, in ISO 8601 format. - `required AgreementType AgreementType` The type or version of the agreement accepted. Use `embedded` unless your platform was specifically enabled for `direct` agreements. - `"embedded"Embedded` - `"direct"Direct` - `required string? AgreementUrl` The URL where the full text of the accepted agreement can be found. - `string? AcceptedIP` The IP address from which the terms of service were accepted. - `string? AcceptedUserAgent` The user agent string of the browser or application used to accept the terms. - `DateTimeOffset? UpdatedAt` Timestamp of the most recent update to the 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 AccountCreateParams parameters = new() { AccessLevel = AccessLevel.Standard, AccountType = AccountType.Business, BusinessProfile = new() { Name = "name", Website = "https://example.com", Address = new() { City = "city", Line1 = "line1", PostalCode = "21029-1360", State = "SE", Country = "country", Line2 = "line2", }, Description = "description", Industry = new() { Category = "category", Mcc = "mcc", Sector = "sector", }, LegalName = "legal_name", Phone = "+46991022", SupportChannels = new() { Email = "dev@stainless.com", Phone = "+46991022", Url = "https://example.com", }, TaxID = "210297980", UseCase = "use_case", }, OrganizationID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", }; var accountV1 = await client.Embed.Accounts.Create(parameters); Console.WriteLine(accountV1); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "access_level": "standard", "organization_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "status": "created", "status_detail": { "code": "code", "message": "message", "reason": "unverified", "source": "watchtower" }, "type": "business", "business_profile": { "name": "name", "website": "https://example.com", "address": { "city": "city", "line1": "line1", "postal_code": "21029-1360", "state": "SE", "country": "country", "line2": "line2" }, "description": "description", "industry": { "category": "category", "mcc": "mcc", "sector": "sector" }, "legal_name": "legal_name", "phone": "+46991022", "support_channels": { "email": "dev@stainless.com", "phone": "+46991022", "url": "https://example.com" }, "tax_id": "210297980", "use_case": "use_case" }, "capabilities": { "consent_types": { "internet": { "capability_status": "active" }, "signed_agreement": { "capability_status": "active" } }, "customer_types": { "businesses": { "capability_status": "active" }, "individuals": { "capability_status": "active" } }, "payment_types": { "charges": { "capability_status": "active" }, "payouts": { "capability_status": "active" } } }, "created_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "metadata": { "foo": "string" }, "settings": { "charges": { "daily_amount": 0, "funding_time": "immediate", "linked_bank_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "max_amount": 0, "monthly_amount": 0, "monthly_count": 0 }, "payouts": { "daily_amount": 0, "funding_time": "immediate", "linked_bank_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "max_amount": 0, "monthly_amount": 0, "monthly_count": 0 } }, "terms_of_service": { "accepted_date": "2019-12-27T18:11:19.117Z", "agreement_type": "embedded", "agreement_url": "agreement_url", "accepted_ip": "accepted_ip", "accepted_user_agent": "accepted_user_agent" }, "updated_at": "2019-12-27T18:11:19.117Z" }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## List accounts `AccountPagedV1 Embed.Accounts.List(AccountListParams?parameters, CancellationTokencancellationToken = default)` **get** `/v1/accounts` Returns a list of accounts associated with your Straddle platform integration. The accounts are returned sorted by creation date, with the most recently created accounts appearing first. This endpoint supports advanced sorting and filtering options. ### Parameters - `AccountListParams parameters` - `Int pageNumber` Query param: Results page number. Starts at page 1. Default value: 1 - `Int pageSize` Query param: Page size. Default value: 100. Max value: 1000 - `string searchText` Query param - `string sortBy` Query param: Sort By. Default value: 'id'. - `SortOrder sortOrder` Query param: Sort Order. Default value: 'asc'. - `"asc"Asc` - `"desc"Desc` - `Status status` Query param - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `Type type` Query param - `"business"Business` - `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 AccountPagedV1:` - `required IReadOnlyList Data` - `required string ID` Unique identifier for the account. - `required AccessLevel AccessLevel` The access level granted to the account. This is determined by your platform configuration. Use `standard` unless instructed otherwise by Straddle. - `"standard"Standard` - `"managed"Managed` - `required string OrganizationID` The unique identifier of the organization this account belongs to. - `required Status Status` The current status of the account (e.g., 'active', 'inactive', 'pending'). - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `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` - `"terminated"Terminated` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `bank_decline`, `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required Type Type` The type of account (e.g., 'individual', 'business'). - `"business"Business` - `BusinessProfileV1 BusinessProfile` - `required string Name` The operating or trade name of the business. - `required string Website` URL of the business's primary marketing website. - `AddressV1? Address` The address object is optional. If provided, it must be a valid address. - `required string? City` City, district, suburb, town, or village. - `required string? Line1` Primary address line (e.g., street, PO Box). - `required string? PostalCode` Postal or ZIP code. - `required string? State` Two-letter state code. - `string? Country` The country of the address, in ISO 3166-1 alpha-2 format. - `string? Line2` Secondary address line (e.g., apartment, suite, unit, or building). - `string? Description` A brief description of the business and its products or services. - `IndustryV1 Industry` - `string? Category` The general category of the industry. Required if not providing MCC. - `string? Mcc` The Merchant Category Code (MCC) that best describes the business. Optional. - `string? Sector` The specific sector within the industry category. Required if not providing MCC. - `string? LegalName` The official registered name of the business. - `string? Phone` The primary contact phone number for the business. - `SupportChannelsV1 SupportChannels` - `string? Email` The email address for customer support inquiries. - `string? Phone` The phone number for customer support. - `string? Url` The URL of the business's customer support page or contact form. - `string? TaxID` The business's tax identification number (e.g., EIN in the US). - `string? UseCase` A description of how the business intends to use Straddle's services. - `Capabilities Capabilities` - `required ConsentTypes ConsentTypes` - `required CapabilityV1 Internet` Whether the internet payment authorization capability is enabled for the account. - `required CapabilityStatus CapabilityStatus` - `"active"Active` - `"inactive"Inactive` - `required CapabilityV1 SignedAgreement` Whether the signed agreement payment authorization capability is enabled for the account. - `required CustomerTypes CustomerTypes` - `required CapabilityV1 Businesses` - `required CapabilityV1 Individuals` - `required PaymentTypes PaymentTypes` - `required CapabilityV1 Charges` - `required CapabilityV1 Payouts` - `DateTimeOffset? CreatedAt` Timestamp of when the account was created. - `string? ExternalID` Unique identifier for the account in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the account in a structured format. - `Settings Settings` - `required Charges Charges` - `required Int DailyAmount` The maximum dollar amount of charges in a calendar day. - `required FundingTime FundingTime` The amount of time it takes for a charge to be funded. This value is defined by Straddle. - `"immediate"Immediate` - `"next_day"NextDay` - `"one_day"OneDay` - `"two_day"TwoDay` - `"three_day"ThreeDay` - `"four_day"FourDay` - `"five_day"FiveDay` - `required string LinkedBankAccountID` The unique identifier of the linked bank account associated with charges. This value is defined by Straddle. - `required Int MaxAmount` The maximum amount of a single charge. - `required Int MonthlyAmount` The maximum dollar amount of charges in a calendar month. - `required Int MonthlyCount` The maximum number of charges in a calendar month. - `required Payouts Payouts` - `required Int DailyAmount` The maximum dollar amount of payouts in a day. - `required FundingTime FundingTime` The amount of time it takes for a payout to be funded. This value is defined by Straddle. - `"immediate"Immediate` - `"next_day"NextDay` - `"one_day"OneDay` - `"two_day"TwoDay` - `"three_day"ThreeDay` - `"four_day"FourDay` - `"five_day"FiveDay` - `required string LinkedBankAccountID` The unique identifier of the linked bank account to use for payouts. - `required Int MaxAmount` The maximum amount of a single payout. - `required Int MonthlyAmount` The maximum dollar amount of payouts in a month. - `required Int MonthlyCount` The maximum number of payouts in a month. - `TermsOfServiceV1 TermsOfService` - `required DateTimeOffset AcceptedDate` The datetime of when the terms of service were accepted, in ISO 8601 format. - `required AgreementType AgreementType` The type or version of the agreement accepted. Use `embedded` unless your platform was specifically enabled for `direct` agreements. - `"embedded"Embedded` - `"direct"Direct` - `required string? AgreementUrl` The URL where the full text of the accepted agreement can be found. - `string? AcceptedIP` The IP address from which the terms of service were accepted. - `string? AcceptedUserAgent` The user agent string of the browser or application used to accept the terms. - `DateTimeOffset? UpdatedAt` Timestamp of the most recent update to the 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 AccountListParams parameters = new(); var page = await client.Embed.Accounts.List(parameters); await foreach (var item in page.Paginate()) { Console.WriteLine(item); } ``` #### Response ```json { "data": [ { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "access_level": "standard", "organization_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "status": "created", "status_detail": { "code": "code", "message": "message", "reason": "unverified", "source": "watchtower" }, "type": "business", "business_profile": { "name": "name", "website": "https://example.com", "address": { "city": "city", "line1": "line1", "postal_code": "21029-1360", "state": "SE", "country": "country", "line2": "line2" }, "description": "description", "industry": { "category": "category", "mcc": "mcc", "sector": "sector" }, "legal_name": "legal_name", "phone": "+46991022", "support_channels": { "email": "dev@stainless.com", "phone": "+46991022", "url": "https://example.com" }, "tax_id": "210297980", "use_case": "use_case" }, "capabilities": { "consent_types": { "internet": { "capability_status": "active" }, "signed_agreement": { "capability_status": "active" } }, "customer_types": { "businesses": { "capability_status": "active" }, "individuals": { "capability_status": "active" } }, "payment_types": { "charges": { "capability_status": "active" }, "payouts": { "capability_status": "active" } } }, "created_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "metadata": { "foo": "string" }, "settings": { "charges": { "daily_amount": 0, "funding_time": "immediate", "linked_bank_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "max_amount": 0, "monthly_amount": 0, "monthly_count": 0 }, "payouts": { "daily_amount": 0, "funding_time": "immediate", "linked_bank_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "max_amount": 0, "monthly_amount": 0, "monthly_count": 0 } }, "terms_of_service": { "accepted_date": "2019-12-27T18:11:19.117Z", "agreement_type": "embedded", "agreement_url": "agreement_url", "accepted_ip": "accepted_ip", "accepted_user_agent": "accepted_user_agent" }, "updated_at": "2019-12-27T18:11:19.117Z" } ], "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" } ``` ## Onboard an account `AccountV1 Embed.Accounts.Onboard(AccountOnboardParamsparameters, CancellationTokencancellationToken = default)` **post** `/v1/accounts/{account_id}/onboard` Initiates the onboarding process for a new account. This endpoint can only be used for accounts where at least one representative and one bank account have already been created. ### Parameters - `AccountOnboardParams parameters` - `required string accountID` Path param - `required TermsOfServiceV1 termsOfService` Body param - `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 AccountV1:` - `required Data Data` - `required string ID` Unique identifier for the account. - `required AccessLevel AccessLevel` The access level granted to the account. This is determined by your platform configuration. Use `standard` unless instructed otherwise by Straddle. - `"standard"Standard` - `"managed"Managed` - `required string OrganizationID` The unique identifier of the organization this account belongs to. - `required Status Status` The current status of the account (e.g., 'active', 'inactive', 'pending'). - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `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` - `"terminated"Terminated` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `bank_decline`, `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required Type Type` The type of account (e.g., 'individual', 'business'). - `"business"Business` - `BusinessProfileV1 BusinessProfile` - `required string Name` The operating or trade name of the business. - `required string Website` URL of the business's primary marketing website. - `AddressV1? Address` The address object is optional. If provided, it must be a valid address. - `required string? City` City, district, suburb, town, or village. - `required string? Line1` Primary address line (e.g., street, PO Box). - `required string? PostalCode` Postal or ZIP code. - `required string? State` Two-letter state code. - `string? Country` The country of the address, in ISO 3166-1 alpha-2 format. - `string? Line2` Secondary address line (e.g., apartment, suite, unit, or building). - `string? Description` A brief description of the business and its products or services. - `IndustryV1 Industry` - `string? Category` The general category of the industry. Required if not providing MCC. - `string? Mcc` The Merchant Category Code (MCC) that best describes the business. Optional. - `string? Sector` The specific sector within the industry category. Required if not providing MCC. - `string? LegalName` The official registered name of the business. - `string? Phone` The primary contact phone number for the business. - `SupportChannelsV1 SupportChannels` - `string? Email` The email address for customer support inquiries. - `string? Phone` The phone number for customer support. - `string? Url` The URL of the business's customer support page or contact form. - `string? TaxID` The business's tax identification number (e.g., EIN in the US). - `string? UseCase` A description of how the business intends to use Straddle's services. - `Capabilities Capabilities` - `required ConsentTypes ConsentTypes` - `required CapabilityV1 Internet` Whether the internet payment authorization capability is enabled for the account. - `required CapabilityStatus CapabilityStatus` - `"active"Active` - `"inactive"Inactive` - `required CapabilityV1 SignedAgreement` Whether the signed agreement payment authorization capability is enabled for the account. - `required CustomerTypes CustomerTypes` - `required CapabilityV1 Businesses` - `required CapabilityV1 Individuals` - `required PaymentTypes PaymentTypes` - `required CapabilityV1 Charges` - `required CapabilityV1 Payouts` - `DateTimeOffset? CreatedAt` Timestamp of when the account was created. - `string? ExternalID` Unique identifier for the account in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the account in a structured format. - `Settings Settings` - `required Charges Charges` - `required Int DailyAmount` The maximum dollar amount of charges in a calendar day. - `required FundingTime FundingTime` The amount of time it takes for a charge to be funded. This value is defined by Straddle. - `"immediate"Immediate` - `"next_day"NextDay` - `"one_day"OneDay` - `"two_day"TwoDay` - `"three_day"ThreeDay` - `"four_day"FourDay` - `"five_day"FiveDay` - `required string LinkedBankAccountID` The unique identifier of the linked bank account associated with charges. This value is defined by Straddle. - `required Int MaxAmount` The maximum amount of a single charge. - `required Int MonthlyAmount` The maximum dollar amount of charges in a calendar month. - `required Int MonthlyCount` The maximum number of charges in a calendar month. - `required Payouts Payouts` - `required Int DailyAmount` The maximum dollar amount of payouts in a day. - `required FundingTime FundingTime` The amount of time it takes for a payout to be funded. This value is defined by Straddle. - `"immediate"Immediate` - `"next_day"NextDay` - `"one_day"OneDay` - `"two_day"TwoDay` - `"three_day"ThreeDay` - `"four_day"FourDay` - `"five_day"FiveDay` - `required string LinkedBankAccountID` The unique identifier of the linked bank account to use for payouts. - `required Int MaxAmount` The maximum amount of a single payout. - `required Int MonthlyAmount` The maximum dollar amount of payouts in a month. - `required Int MonthlyCount` The maximum number of payouts in a month. - `TermsOfServiceV1 TermsOfService` - `required DateTimeOffset AcceptedDate` The datetime of when the terms of service were accepted, in ISO 8601 format. - `required AgreementType AgreementType` The type or version of the agreement accepted. Use `embedded` unless your platform was specifically enabled for `direct` agreements. - `"embedded"Embedded` - `"direct"Direct` - `required string? AgreementUrl` The URL where the full text of the accepted agreement can be found. - `string? AcceptedIP` The IP address from which the terms of service were accepted. - `string? AcceptedUserAgent` The user agent string of the browser or application used to accept the terms. - `DateTimeOffset? UpdatedAt` Timestamp of the most recent update to the 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 AccountOnboardParams parameters = new() { AccountID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", TermsOfService = new() { AcceptedDate = DateTimeOffset.Parse("2019-12-27T18:11:19.117Z"), AgreementType = AgreementType.Embedded, AgreementUrl = "agreement_url", AcceptedIP = "accepted_ip", AcceptedUserAgent = "accepted_user_agent", }, }; var accountV1 = await client.Embed.Accounts.Onboard(parameters); Console.WriteLine(accountV1); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "access_level": "standard", "organization_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "status": "created", "status_detail": { "code": "code", "message": "message", "reason": "unverified", "source": "watchtower" }, "type": "business", "business_profile": { "name": "name", "website": "https://example.com", "address": { "city": "city", "line1": "line1", "postal_code": "21029-1360", "state": "SE", "country": "country", "line2": "line2" }, "description": "description", "industry": { "category": "category", "mcc": "mcc", "sector": "sector" }, "legal_name": "legal_name", "phone": "+46991022", "support_channels": { "email": "dev@stainless.com", "phone": "+46991022", "url": "https://example.com" }, "tax_id": "210297980", "use_case": "use_case" }, "capabilities": { "consent_types": { "internet": { "capability_status": "active" }, "signed_agreement": { "capability_status": "active" } }, "customer_types": { "businesses": { "capability_status": "active" }, "individuals": { "capability_status": "active" } }, "payment_types": { "charges": { "capability_status": "active" }, "payouts": { "capability_status": "active" } } }, "created_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "metadata": { "foo": "string" }, "settings": { "charges": { "daily_amount": 0, "funding_time": "immediate", "linked_bank_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "max_amount": 0, "monthly_amount": 0, "monthly_count": 0 }, "payouts": { "daily_amount": 0, "funding_time": "immediate", "linked_bank_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "max_amount": 0, "monthly_amount": 0, "monthly_count": 0 } }, "terms_of_service": { "accepted_date": "2019-12-27T18:11:19.117Z", "agreement_type": "embedded", "agreement_url": "agreement_url", "accepted_ip": "accepted_ip", "accepted_user_agent": "accepted_user_agent" }, "updated_at": "2019-12-27T18:11:19.117Z" }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Simulate status transitions for a sandbox account `AccountV1 Embed.Accounts.Simulate(AccountSimulateParamsparameters, CancellationTokencancellationToken = default)` **post** `/v1/accounts/{account_id}/simulate` Simulate the status transitions for sandbox accounts. This endpoint can only be used for sandbox accounts. ### Parameters - `AccountSimulateParams parameters` - `required string accountID` Path param - `FinalStatus finalStatus` Query param - `"onboarding"Onboarding` - `"active"Active` - `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 AccountV1:` - `required Data Data` - `required string ID` Unique identifier for the account. - `required AccessLevel AccessLevel` The access level granted to the account. This is determined by your platform configuration. Use `standard` unless instructed otherwise by Straddle. - `"standard"Standard` - `"managed"Managed` - `required string OrganizationID` The unique identifier of the organization this account belongs to. - `required Status Status` The current status of the account (e.g., 'active', 'inactive', 'pending'). - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `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` - `"terminated"Terminated` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `bank_decline`, `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required Type Type` The type of account (e.g., 'individual', 'business'). - `"business"Business` - `BusinessProfileV1 BusinessProfile` - `required string Name` The operating or trade name of the business. - `required string Website` URL of the business's primary marketing website. - `AddressV1? Address` The address object is optional. If provided, it must be a valid address. - `required string? City` City, district, suburb, town, or village. - `required string? Line1` Primary address line (e.g., street, PO Box). - `required string? PostalCode` Postal or ZIP code. - `required string? State` Two-letter state code. - `string? Country` The country of the address, in ISO 3166-1 alpha-2 format. - `string? Line2` Secondary address line (e.g., apartment, suite, unit, or building). - `string? Description` A brief description of the business and its products or services. - `IndustryV1 Industry` - `string? Category` The general category of the industry. Required if not providing MCC. - `string? Mcc` The Merchant Category Code (MCC) that best describes the business. Optional. - `string? Sector` The specific sector within the industry category. Required if not providing MCC. - `string? LegalName` The official registered name of the business. - `string? Phone` The primary contact phone number for the business. - `SupportChannelsV1 SupportChannels` - `string? Email` The email address for customer support inquiries. - `string? Phone` The phone number for customer support. - `string? Url` The URL of the business's customer support page or contact form. - `string? TaxID` The business's tax identification number (e.g., EIN in the US). - `string? UseCase` A description of how the business intends to use Straddle's services. - `Capabilities Capabilities` - `required ConsentTypes ConsentTypes` - `required CapabilityV1 Internet` Whether the internet payment authorization capability is enabled for the account. - `required CapabilityStatus CapabilityStatus` - `"active"Active` - `"inactive"Inactive` - `required CapabilityV1 SignedAgreement` Whether the signed agreement payment authorization capability is enabled for the account. - `required CustomerTypes CustomerTypes` - `required CapabilityV1 Businesses` - `required CapabilityV1 Individuals` - `required PaymentTypes PaymentTypes` - `required CapabilityV1 Charges` - `required CapabilityV1 Payouts` - `DateTimeOffset? CreatedAt` Timestamp of when the account was created. - `string? ExternalID` Unique identifier for the account in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the account in a structured format. - `Settings Settings` - `required Charges Charges` - `required Int DailyAmount` The maximum dollar amount of charges in a calendar day. - `required FundingTime FundingTime` The amount of time it takes for a charge to be funded. This value is defined by Straddle. - `"immediate"Immediate` - `"next_day"NextDay` - `"one_day"OneDay` - `"two_day"TwoDay` - `"three_day"ThreeDay` - `"four_day"FourDay` - `"five_day"FiveDay` - `required string LinkedBankAccountID` The unique identifier of the linked bank account associated with charges. This value is defined by Straddle. - `required Int MaxAmount` The maximum amount of a single charge. - `required Int MonthlyAmount` The maximum dollar amount of charges in a calendar month. - `required Int MonthlyCount` The maximum number of charges in a calendar month. - `required Payouts Payouts` - `required Int DailyAmount` The maximum dollar amount of payouts in a day. - `required FundingTime FundingTime` The amount of time it takes for a payout to be funded. This value is defined by Straddle. - `"immediate"Immediate` - `"next_day"NextDay` - `"one_day"OneDay` - `"two_day"TwoDay` - `"three_day"ThreeDay` - `"four_day"FourDay` - `"five_day"FiveDay` - `required string LinkedBankAccountID` The unique identifier of the linked bank account to use for payouts. - `required Int MaxAmount` The maximum amount of a single payout. - `required Int MonthlyAmount` The maximum dollar amount of payouts in a month. - `required Int MonthlyCount` The maximum number of payouts in a month. - `TermsOfServiceV1 TermsOfService` - `required DateTimeOffset AcceptedDate` The datetime of when the terms of service were accepted, in ISO 8601 format. - `required AgreementType AgreementType` The type or version of the agreement accepted. Use `embedded` unless your platform was specifically enabled for `direct` agreements. - `"embedded"Embedded` - `"direct"Direct` - `required string? AgreementUrl` The URL where the full text of the accepted agreement can be found. - `string? AcceptedIP` The IP address from which the terms of service were accepted. - `string? AcceptedUserAgent` The user agent string of the browser or application used to accept the terms. - `DateTimeOffset? UpdatedAt` Timestamp of the most recent update to the 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 AccountSimulateParams parameters = new() { AccountID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }; var accountV1 = await client.Embed.Accounts.Simulate(parameters); Console.WriteLine(accountV1); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "access_level": "standard", "organization_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "status": "created", "status_detail": { "code": "code", "message": "message", "reason": "unverified", "source": "watchtower" }, "type": "business", "business_profile": { "name": "name", "website": "https://example.com", "address": { "city": "city", "line1": "line1", "postal_code": "21029-1360", "state": "SE", "country": "country", "line2": "line2" }, "description": "description", "industry": { "category": "category", "mcc": "mcc", "sector": "sector" }, "legal_name": "legal_name", "phone": "+46991022", "support_channels": { "email": "dev@stainless.com", "phone": "+46991022", "url": "https://example.com" }, "tax_id": "210297980", "use_case": "use_case" }, "capabilities": { "consent_types": { "internet": { "capability_status": "active" }, "signed_agreement": { "capability_status": "active" } }, "customer_types": { "businesses": { "capability_status": "active" }, "individuals": { "capability_status": "active" } }, "payment_types": { "charges": { "capability_status": "active" }, "payouts": { "capability_status": "active" } } }, "created_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "metadata": { "foo": "string" }, "settings": { "charges": { "daily_amount": 0, "funding_time": "immediate", "linked_bank_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "max_amount": 0, "monthly_amount": 0, "monthly_count": 0 }, "payouts": { "daily_amount": 0, "funding_time": "immediate", "linked_bank_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "max_amount": 0, "monthly_amount": 0, "monthly_count": 0 } }, "terms_of_service": { "accepted_date": "2019-12-27T18:11:19.117Z", "agreement_type": "embedded", "agreement_url": "agreement_url", "accepted_ip": "accepted_ip", "accepted_user_agent": "accepted_user_agent" }, "updated_at": "2019-12-27T18:11:19.117Z" }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Domain Types ### Account Paged V1 - `class AccountPagedV1:` - `required IReadOnlyList Data` - `required string ID` Unique identifier for the account. - `required AccessLevel AccessLevel` The access level granted to the account. This is determined by your platform configuration. Use `standard` unless instructed otherwise by Straddle. - `"standard"Standard` - `"managed"Managed` - `required string OrganizationID` The unique identifier of the organization this account belongs to. - `required Status Status` The current status of the account (e.g., 'active', 'inactive', 'pending'). - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `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` - `"terminated"Terminated` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `bank_decline`, `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required Type Type` The type of account (e.g., 'individual', 'business'). - `"business"Business` - `BusinessProfileV1 BusinessProfile` - `required string Name` The operating or trade name of the business. - `required string Website` URL of the business's primary marketing website. - `AddressV1? Address` The address object is optional. If provided, it must be a valid address. - `required string? City` City, district, suburb, town, or village. - `required string? Line1` Primary address line (e.g., street, PO Box). - `required string? PostalCode` Postal or ZIP code. - `required string? State` Two-letter state code. - `string? Country` The country of the address, in ISO 3166-1 alpha-2 format. - `string? Line2` Secondary address line (e.g., apartment, suite, unit, or building). - `string? Description` A brief description of the business and its products or services. - `IndustryV1 Industry` - `string? Category` The general category of the industry. Required if not providing MCC. - `string? Mcc` The Merchant Category Code (MCC) that best describes the business. Optional. - `string? Sector` The specific sector within the industry category. Required if not providing MCC. - `string? LegalName` The official registered name of the business. - `string? Phone` The primary contact phone number for the business. - `SupportChannelsV1 SupportChannels` - `string? Email` The email address for customer support inquiries. - `string? Phone` The phone number for customer support. - `string? Url` The URL of the business's customer support page or contact form. - `string? TaxID` The business's tax identification number (e.g., EIN in the US). - `string? UseCase` A description of how the business intends to use Straddle's services. - `Capabilities Capabilities` - `required ConsentTypes ConsentTypes` - `required CapabilityV1 Internet` Whether the internet payment authorization capability is enabled for the account. - `required CapabilityStatus CapabilityStatus` - `"active"Active` - `"inactive"Inactive` - `required CapabilityV1 SignedAgreement` Whether the signed agreement payment authorization capability is enabled for the account. - `required CustomerTypes CustomerTypes` - `required CapabilityV1 Businesses` - `required CapabilityV1 Individuals` - `required PaymentTypes PaymentTypes` - `required CapabilityV1 Charges` - `required CapabilityV1 Payouts` - `DateTimeOffset? CreatedAt` Timestamp of when the account was created. - `string? ExternalID` Unique identifier for the account in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the account in a structured format. - `Settings Settings` - `required Charges Charges` - `required Int DailyAmount` The maximum dollar amount of charges in a calendar day. - `required FundingTime FundingTime` The amount of time it takes for a charge to be funded. This value is defined by Straddle. - `"immediate"Immediate` - `"next_day"NextDay` - `"one_day"OneDay` - `"two_day"TwoDay` - `"three_day"ThreeDay` - `"four_day"FourDay` - `"five_day"FiveDay` - `required string LinkedBankAccountID` The unique identifier of the linked bank account associated with charges. This value is defined by Straddle. - `required Int MaxAmount` The maximum amount of a single charge. - `required Int MonthlyAmount` The maximum dollar amount of charges in a calendar month. - `required Int MonthlyCount` The maximum number of charges in a calendar month. - `required Payouts Payouts` - `required Int DailyAmount` The maximum dollar amount of payouts in a day. - `required FundingTime FundingTime` The amount of time it takes for a payout to be funded. This value is defined by Straddle. - `"immediate"Immediate` - `"next_day"NextDay` - `"one_day"OneDay` - `"two_day"TwoDay` - `"three_day"ThreeDay` - `"four_day"FourDay` - `"five_day"FiveDay` - `required string LinkedBankAccountID` The unique identifier of the linked bank account to use for payouts. - `required Int MaxAmount` The maximum amount of a single payout. - `required Int MonthlyAmount` The maximum dollar amount of payouts in a month. - `required Int MonthlyCount` The maximum number of payouts in a month. - `TermsOfServiceV1 TermsOfService` - `required DateTimeOffset AcceptedDate` The datetime of when the terms of service were accepted, in ISO 8601 format. - `required AgreementType AgreementType` The type or version of the agreement accepted. Use `embedded` unless your platform was specifically enabled for `direct` agreements. - `"embedded"Embedded` - `"direct"Direct` - `required string? AgreementUrl` The URL where the full text of the accepted agreement can be found. - `string? AcceptedIP` The IP address from which the terms of service were accepted. - `string? AcceptedUserAgent` The user agent string of the browser or application used to accept the terms. - `DateTimeOffset? UpdatedAt` Timestamp of the most recent update to the 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` ### Account V1 - `class AccountV1:` - `required Data Data` - `required string ID` Unique identifier for the account. - `required AccessLevel AccessLevel` The access level granted to the account. This is determined by your platform configuration. Use `standard` unless instructed otherwise by Straddle. - `"standard"Standard` - `"managed"Managed` - `required string OrganizationID` The unique identifier of the organization this account belongs to. - `required Status Status` The current status of the account (e.g., 'active', 'inactive', 'pending'). - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `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` - `"terminated"Terminated` - `"new"New` - `required Source Source` Identifies the origin of the status change (e.g., `bank_decline`, `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `required Type Type` The type of account (e.g., 'individual', 'business'). - `"business"Business` - `BusinessProfileV1 BusinessProfile` - `required string Name` The operating or trade name of the business. - `required string Website` URL of the business's primary marketing website. - `AddressV1? Address` The address object is optional. If provided, it must be a valid address. - `required string? City` City, district, suburb, town, or village. - `required string? Line1` Primary address line (e.g., street, PO Box). - `required string? PostalCode` Postal or ZIP code. - `required string? State` Two-letter state code. - `string? Country` The country of the address, in ISO 3166-1 alpha-2 format. - `string? Line2` Secondary address line (e.g., apartment, suite, unit, or building). - `string? Description` A brief description of the business and its products or services. - `IndustryV1 Industry` - `string? Category` The general category of the industry. Required if not providing MCC. - `string? Mcc` The Merchant Category Code (MCC) that best describes the business. Optional. - `string? Sector` The specific sector within the industry category. Required if not providing MCC. - `string? LegalName` The official registered name of the business. - `string? Phone` The primary contact phone number for the business. - `SupportChannelsV1 SupportChannels` - `string? Email` The email address for customer support inquiries. - `string? Phone` The phone number for customer support. - `string? Url` The URL of the business's customer support page or contact form. - `string? TaxID` The business's tax identification number (e.g., EIN in the US). - `string? UseCase` A description of how the business intends to use Straddle's services. - `Capabilities Capabilities` - `required ConsentTypes ConsentTypes` - `required CapabilityV1 Internet` Whether the internet payment authorization capability is enabled for the account. - `required CapabilityStatus CapabilityStatus` - `"active"Active` - `"inactive"Inactive` - `required CapabilityV1 SignedAgreement` Whether the signed agreement payment authorization capability is enabled for the account. - `required CustomerTypes CustomerTypes` - `required CapabilityV1 Businesses` - `required CapabilityV1 Individuals` - `required PaymentTypes PaymentTypes` - `required CapabilityV1 Charges` - `required CapabilityV1 Payouts` - `DateTimeOffset? CreatedAt` Timestamp of when the account was created. - `string? ExternalID` Unique identifier for the account in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the account in a structured format. - `Settings Settings` - `required Charges Charges` - `required Int DailyAmount` The maximum dollar amount of charges in a calendar day. - `required FundingTime FundingTime` The amount of time it takes for a charge to be funded. This value is defined by Straddle. - `"immediate"Immediate` - `"next_day"NextDay` - `"one_day"OneDay` - `"two_day"TwoDay` - `"three_day"ThreeDay` - `"four_day"FourDay` - `"five_day"FiveDay` - `required string LinkedBankAccountID` The unique identifier of the linked bank account associated with charges. This value is defined by Straddle. - `required Int MaxAmount` The maximum amount of a single charge. - `required Int MonthlyAmount` The maximum dollar amount of charges in a calendar month. - `required Int MonthlyCount` The maximum number of charges in a calendar month. - `required Payouts Payouts` - `required Int DailyAmount` The maximum dollar amount of payouts in a day. - `required FundingTime FundingTime` The amount of time it takes for a payout to be funded. This value is defined by Straddle. - `"immediate"Immediate` - `"next_day"NextDay` - `"one_day"OneDay` - `"two_day"TwoDay` - `"three_day"ThreeDay` - `"four_day"FourDay` - `"five_day"FiveDay` - `required string LinkedBankAccountID` The unique identifier of the linked bank account to use for payouts. - `required Int MaxAmount` The maximum amount of a single payout. - `required Int MonthlyAmount` The maximum dollar amount of payouts in a month. - `required Int MonthlyCount` The maximum number of payouts in a month. - `TermsOfServiceV1 TermsOfService` - `required DateTimeOffset AcceptedDate` The datetime of when the terms of service were accepted, in ISO 8601 format. - `required AgreementType AgreementType` The type or version of the agreement accepted. Use `embedded` unless your platform was specifically enabled for `direct` agreements. - `"embedded"Embedded` - `"direct"Direct` - `required string? AgreementUrl` The URL where the full text of the accepted agreement can be found. - `string? AcceptedIP` The IP address from which the terms of service were accepted. - `string? AcceptedUserAgent` The user agent string of the browser or application used to accept the terms. - `DateTimeOffset? UpdatedAt` Timestamp of the most recent update to the 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` ### Address V1 - `class AddressV1:` The address object is optional. If provided, it must be a valid address. - `required string? City` City, district, suburb, town, or village. - `required string? Line1` Primary address line (e.g., street, PO Box). - `required string? PostalCode` Postal or ZIP code. - `required string? State` Two-letter state code. - `string? Country` The country of the address, in ISO 3166-1 alpha-2 format. - `string? Line2` Secondary address line (e.g., apartment, suite, unit, or building). ### Business Profile V1 - `class BusinessProfileV1:` - `required string Name` The operating or trade name of the business. - `required string Website` URL of the business's primary marketing website. - `AddressV1? Address` The address object is optional. If provided, it must be a valid address. - `required string? City` City, district, suburb, town, or village. - `required string? Line1` Primary address line (e.g., street, PO Box). - `required string? PostalCode` Postal or ZIP code. - `required string? State` Two-letter state code. - `string? Country` The country of the address, in ISO 3166-1 alpha-2 format. - `string? Line2` Secondary address line (e.g., apartment, suite, unit, or building). - `string? Description` A brief description of the business and its products or services. - `IndustryV1 Industry` - `string? Category` The general category of the industry. Required if not providing MCC. - `string? Mcc` The Merchant Category Code (MCC) that best describes the business. Optional. - `string? Sector` The specific sector within the industry category. Required if not providing MCC. - `string? LegalName` The official registered name of the business. - `string? Phone` The primary contact phone number for the business. - `SupportChannelsV1 SupportChannels` - `string? Email` The email address for customer support inquiries. - `string? Phone` The phone number for customer support. - `string? Url` The URL of the business's customer support page or contact form. - `string? TaxID` The business's tax identification number (e.g., EIN in the US). - `string? UseCase` A description of how the business intends to use Straddle's services. ### Capability V1 - `class CapabilityV1:` - `required CapabilityStatus CapabilityStatus` - `"active"Active` - `"inactive"Inactive` ### Industry V1 - `class IndustryV1:` - `string? Category` The general category of the industry. Required if not providing MCC. - `string? Mcc` The Merchant Category Code (MCC) that best describes the business. Optional. - `string? Sector` The specific sector within the industry category. Required if not providing MCC. ### Support Channels V1 - `class SupportChannelsV1:` - `string? Email` The email address for customer support inquiries. - `string? Phone` The phone number for customer support. - `string? Url` The URL of the business's customer support page or contact form. ### Terms Of Service V1 - `class TermsOfServiceV1:` - `required DateTimeOffset AcceptedDate` The datetime of when the terms of service were accepted, in ISO 8601 format. - `required AgreementType AgreementType` The type or version of the agreement accepted. Use `embedded` unless your platform was specifically enabled for `direct` agreements. - `"embedded"Embedded` - `"direct"Direct` - `required string? AgreementUrl` The URL where the full text of the accepted agreement can be found. - `string? AcceptedIP` The IP address from which the terms of service were accepted. - `string? AcceptedUserAgent` The user agent string of the browser or application used to accept the terms. # Capability Requests ## Request a capability `CapabilityRequestPagedV1 Embed.Accounts.CapabilityRequests.Create(CapabilityRequestCreateParamsparameters, CancellationTokencancellationToken = default)` **post** `/v1/accounts/{account_id}/capability_requests` Submits a request to enable a specific capability for an account. Use this endpoint to request additional features or services for an account. ### Parameters - `CapabilityRequestCreateParams parameters` - `required string accountID` Path param - `Businesses businesses` Body param: Allows the account to accept payments from businesses. - `required Boolean Enable` - `Charges charges` Body param: The charges capability settings for the account. - `required Double DailyAmount` The maximum dollar amount of charges in a calendar day. - `required Boolean Enable` Determines whether `charges` are enabled for the account. - `required Double MaxAmount` The maximum amount of a single charge. - `required Double MonthlyAmount` The maximum dollar amount of charges in a calendar month. - `required Int MonthlyCount` The maximum number of charges in a calendar month. - `Individuals individuals` Body param: Allows the account to accept payments from individuals. - `required Boolean Enable` - `Internet internet` Body param: Allows the account to accept payments authorized via the internet or mobile applications. - `required Boolean Enable` - `Payouts payouts` Body param: The payouts capability settings for the account. - `required Double DailyAmount` The maximum dollar amount of payouts in a day. - `required Boolean Enable` Determines whether `payouts` are enabled for the account. - `required Double MaxAmount` The maximum amount of a single payout. - `required Double MonthlyAmount` The maximum dollar amount of payouts in a month. - `required Int MonthlyCount` The maximum number of payouts in a month. - `SignedAgreement signedAgreement` Body param: Allows the account to accept payments authorized by signed agreements or contracts. - `required Boolean Enable` - `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 CapabilityRequestPagedV1:` - `required IReadOnlyList Data` - `required string ID` Unique identifier for the capability request. - `required string AccountID` The unique identifier of the account associated with this capability request. - `required Category Category` 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. - `"payment_type"PaymentType` - `"customer_type"CustomerType` - `"consent_type"ConsentType` - `required DateTimeOffset CreatedAt` Timestamp of when the capability request was created. - `required Boolean Enable` Whether this capability request is to enable or disable the capability. - `required Status Status` The current status of the capability request. - `"active"Active` - `"inactive"Inactive` - `"in_review"InReview` - `"rejected"Rejected` - `"approved"Approved` - `"reviewing"Reviewing` - `required Type Type` The specific type of capability being requested within the category. - `"charges"Charges` - `"payouts"Payouts` - `"individuals"Individuals` - `"businesses"Businesses` - `"signed_agreement"SignedAgreement` - `"internet"Internet` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the capability request. - `IReadOnlyDictionary? Settings` Any specific settings or configurations related to the requested capability. - `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 CapabilityRequestCreateParams parameters = new() { AccountID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }; var capabilityRequestPagedV1 = await client.Embed.Accounts.CapabilityRequests.Create(parameters); Console.WriteLine(capabilityRequestPagedV1); ``` #### Response ```json { "data": [ { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "category": "payment_type", "created_at": "2019-12-27T18:11:19.117Z", "enable": true, "status": "active", "type": "charges", "updated_at": "2019-12-27T18:11:19.117Z", "settings": { "foo": "bar" } } ], "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" } ``` ## List capability requests `CapabilityRequestPagedV1 Embed.Accounts.CapabilityRequests.List(CapabilityRequestListParamsparameters, CancellationTokencancellationToken = default)` **get** `/v1/accounts/{account_id}/capability_requests` Retrieves a list of capability requests associated with an account. The requests are returned sorted by creation date, with the most recent requests appearing first. This endpoint supports advanced sorting and filtering options. ### Parameters - `CapabilityRequestListParams parameters` - `required string accountID` Path param - `Category category` Query param: Filter capability requests by category. - `"payment_type"PaymentType` - `"customer_type"CustomerType` - `"consent_type"ConsentType` - `Int pageNumber` Query param: Results page number. Starts at page 1. - `Int pageSize` Query param: Page size.Max value: 1000 - `string sortBy` Query param: Sort By. - `SortOrder sortOrder` Query param: Sort Order. - `"asc"Asc` - `"desc"Desc` - `Status status` Query param: Filter capability requests by their current status. - `"active"Active` - `"inactive"Inactive` - `"in_review"InReview` - `"rejected"Rejected` - `Type type` Query param: Filter capability requests by the specific type of capability. - `"charges"Charges` - `"payouts"Payouts` - `"individuals"Individuals` - `"businesses"Businesses` - `"signed_agreement"SignedAgreement` - `"internet"Internet` - `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 CapabilityRequestPagedV1:` - `required IReadOnlyList Data` - `required string ID` Unique identifier for the capability request. - `required string AccountID` The unique identifier of the account associated with this capability request. - `required Category Category` 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. - `"payment_type"PaymentType` - `"customer_type"CustomerType` - `"consent_type"ConsentType` - `required DateTimeOffset CreatedAt` Timestamp of when the capability request was created. - `required Boolean Enable` Whether this capability request is to enable or disable the capability. - `required Status Status` The current status of the capability request. - `"active"Active` - `"inactive"Inactive` - `"in_review"InReview` - `"rejected"Rejected` - `"approved"Approved` - `"reviewing"Reviewing` - `required Type Type` The specific type of capability being requested within the category. - `"charges"Charges` - `"payouts"Payouts` - `"individuals"Individuals` - `"businesses"Businesses` - `"signed_agreement"SignedAgreement` - `"internet"Internet` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the capability request. - `IReadOnlyDictionary? Settings` Any specific settings or configurations related to the requested capability. - `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 CapabilityRequestListParams parameters = new() { AccountID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }; var page = await client.Embed.Accounts.CapabilityRequests.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", "category": "payment_type", "created_at": "2019-12-27T18:11:19.117Z", "enable": true, "status": "active", "type": "charges", "updated_at": "2019-12-27T18:11:19.117Z", "settings": { "foo": "bar" } } ], "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" } ``` ## Domain Types ### Capability Request Paged V1 - `class CapabilityRequestPagedV1:` - `required IReadOnlyList Data` - `required string ID` Unique identifier for the capability request. - `required string AccountID` The unique identifier of the account associated with this capability request. - `required Category Category` 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. - `"payment_type"PaymentType` - `"customer_type"CustomerType` - `"consent_type"ConsentType` - `required DateTimeOffset CreatedAt` Timestamp of when the capability request was created. - `required Boolean Enable` Whether this capability request is to enable or disable the capability. - `required Status Status` The current status of the capability request. - `"active"Active` - `"inactive"Inactive` - `"in_review"InReview` - `"rejected"Rejected` - `"approved"Approved` - `"reviewing"Reviewing` - `required Type Type` The specific type of capability being requested within the category. - `"charges"Charges` - `"payouts"Payouts` - `"individuals"Individuals` - `"businesses"Businesses` - `"signed_agreement"SignedAgreement` - `"internet"Internet` - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the capability request. - `IReadOnlyDictionary? Settings` Any specific settings or configurations related to the requested capability. - `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 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` # Organizations ## Create an organization `OrganizationV1 Embed.Organizations.Create(OrganizationCreateParamsparameters, CancellationTokencancellationToken = default)` **post** `/v1/organizations` Creates a new organization related to your Straddle integration. Organizations can be used to group related accounts and manage permissions across multiple users. ### Parameters - `OrganizationCreateParams parameters` - `required string name` Body param: The name of the organization. - `string? externalID` Body param: Unique identifier for the organization in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? metadata` Body param: Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the organization 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 OrganizationV1:` - `required Data Data` - `required string ID` Straddle's unique identifier for the organization. - `required DateTimeOffset CreatedAt` Timestamp of when the organization was created. - `required string Name` The name of the organization. - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the organization. - `string? ExternalID` Unique identifier for the organization in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the organization in a structured format. - `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 OrganizationCreateParams parameters = new() { Name = "name" }; var organizationV1 = await client.Embed.Organizations.Create(parameters); Console.WriteLine(organizationV1); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "name": "name", "updated_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "metadata": { "foo": "string" } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## List organizations `OrganizationPagedV1 Embed.Organizations.List(OrganizationListParams?parameters, CancellationTokencancellationToken = default)` **get** `/v1/organizations` Retrieves a list of organizations associated with your Straddle integration. The organizations are returned sorted by creation date, with the most recently created organizations appearing first. This endpoint supports advanced sorting and filtering options to help you find specific organizations. ### Parameters - `OrganizationListParams parameters` - `string externalID` Query param: List organizations by their external ID. - `string name` Query param: List organizations by name (partial match supported). - `Int pageNumber` Query param: Results page number. Starts at page 1. - `Int pageSize` Query param: Page size. Max value: 1000 - `string sortBy` Query param: Sort By. - `SortOrder sortOrder` Query param: Sort Order. - `"asc"Asc` - `"desc"Desc` - `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 OrganizationPagedV1:` - `required IReadOnlyList Data` - `required string ID` Straddle's unique identifier for the organization. - `required DateTimeOffset CreatedAt` Timestamp of when the organization was created. - `required string Name` The name of the organization. - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the organization. - `string? ExternalID` Unique identifier for the organization in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the organization in a structured format. - `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 OrganizationListParams parameters = new(); var page = await client.Embed.Organizations.List(parameters); await foreach (var item in page.Paginate()) { Console.WriteLine(item); } ``` #### Response ```json { "data": [ { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "name": "name", "updated_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "metadata": { "foo": "string" } } ], "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" } ``` ## Retrieve organization details `OrganizationV1 Embed.Organizations.Get(OrganizationGetParamsparameters, CancellationTokencancellationToken = default)` **get** `/v1/organizations/{organization_id}` Retrieves the details of an Organization that has previously been created. Supply the unique organization ID that was returned from your previous request, and Straddle will return the corresponding organization information. ### Parameters - `OrganizationGetParams parameters` - `required string organizationID` - `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 OrganizationV1:` - `required Data Data` - `required string ID` Straddle's unique identifier for the organization. - `required DateTimeOffset CreatedAt` Timestamp of when the organization was created. - `required string Name` The name of the organization. - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the organization. - `string? ExternalID` Unique identifier for the organization in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the organization in a structured format. - `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 OrganizationGetParams parameters = new() { OrganizationID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }; var organizationV1 = await client.Embed.Organizations.Get(parameters); Console.WriteLine(organizationV1); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "name": "name", "updated_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "metadata": { "foo": "string" } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Domain Types ### Organization Paged V1 - `class OrganizationPagedV1:` - `required IReadOnlyList Data` - `required string ID` Straddle's unique identifier for the organization. - `required DateTimeOffset CreatedAt` Timestamp of when the organization was created. - `required string Name` The name of the organization. - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the organization. - `string? ExternalID` Unique identifier for the organization in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the organization in a structured format. - `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` ### Organization V1 - `class OrganizationV1:` - `required Data Data` - `required string ID` Straddle's unique identifier for the organization. - `required DateTimeOffset CreatedAt` Timestamp of when the organization was created. - `required string Name` The name of the organization. - `required DateTimeOffset UpdatedAt` Timestamp of the most recent update to the organization. - `string? ExternalID` Unique identifier for the organization in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the organization in a structured format. - `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` # Representatives ## Create a representative `Representative Embed.Representatives.Create(RepresentativeCreateParamsparameters, CancellationTokencancellationToken = default)` **post** `/v1/representatives` Creates a new representative associated with an account. Representatives are individuals who have legal authority or significant responsibility within the business. ### Parameters - `RepresentativeCreateParams parameters` - `required string accountID` Body param: The unique identifier of the account this representative is associated with. - `required DateOnly dob` Body param: Date of birth for the representative in ISO 8601 format (YYYY-MM-DD). - `required string email` Body param: The company email address of the representative. - `required string firstName` Body param: The first name of the representative. - `required string lastName` Body param: The last name of the representative. - `required string mobileNumber` Body param: The mobile phone number of the representative. - `required Relationship relationship` Body param - `required Boolean Control` 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. - `required Boolean Owner` Whether the representative owns any percentage of of the equity interests of the legal entity. - `required Boolean Primary` 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. - `Double? PercentOwnership` The percentage of ownership the representative has. Required if 'Owner' is true. - `string? Title` The job title of the representative. - `required string ssnLast4` Body param: The last 4 digits of the representative's Social Security Number. - `string? externalID` Body param: Unique identifier for the representative in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? metadata` Body param: Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the represetative 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 Representative:` - `required Data Data` - `required string ID` Unique identifier for the representative. - `required string AccountID` The unique identifier of the account this representative is associated with. - `required DateTimeOffset CreatedAt` Timestamp of when the representative was created. - `required DateOnly Dob` The date of birth of the representative, in ISO 8601 format (YYYY-MM-DD). - `required string? Email` The email address of the representative. - `required string FirstName` The first name of the representative. - `required string LastName` The last name of the representative. - `required string MobileNumber` The mobile phone number of the representative. - `required string Name` - `required Relationship Relationship` - `required Boolean Control` 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. - `required Boolean Owner` Whether the representative owns any percentage of of the equity interests of the legal entity. - `required Boolean Primary` 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. - `Double? PercentOwnership` The percentage of ownership the representative has. Required if 'Owner' is true. - `string? Title` The job title of the representative. - `required string SsnLast4` The last 4 digits of the representative's Social Security Number. - `required Status Status` The current status of the representative. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `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 representative. - `string? ExternalID` Unique identifier for the representative in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the represetative in a structured format. - `string? Phone` - `string? UserID` The unique identifier of the user account associated with this representative, if applicable. - `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 RepresentativeCreateParams parameters = new() { AccountID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", Dob = "1980-01-01", Email = "ron.swanson@pawnee.com", FirstName = "first_name", LastName = "last_name", MobileNumber = "+12128675309", Relationship = new() { Control = true, Owner = true, Primary = true, PercentOwnership = 0, Title = "title", }, SsnLast4 = "1234", }; var representative = await client.Embed.Representatives.Create(parameters); Console.WriteLine(representative); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "dob": "1980-01-01", "email": "ron.swanson@pawnee.com", "first_name": "Ron", "last_name": "Swanson", "mobile_number": "+12128675309", "name": "name", "relationship": { "control": true, "owner": true, "primary": true, "percent_ownership": 0, "title": "title" }, "ssn_last4": "1234", "status": "created", "status_detail": { "code": "code", "message": "message", "reason": "unverified", "source": "watchtower" }, "updated_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "metadata": { "foo": "string" }, "phone": "phone", "user_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 representatives `RepresentativePaged Embed.Representatives.List(RepresentativeListParams?parameters, CancellationTokencancellationToken = default)` **get** `/v1/representatives` Returns a list of representatives associated with a specific account or organization. The representatives are returned sorted by creation date, with the most recently created representatives appearing first. This endpoint supports advanced sorting and filtering options. ### Parameters - `RepresentativeListParams parameters` - `string accountID` Query param: The unique identifier of the account to list representatives for. - `Level level` Query param - `"account"Account` - `"platform"Platform` - `string organizationID` Query param - `Int pageNumber` Query param: Results page number. Starts at page 1. - `Int pageSize` Query param: Page size. Max value: 1000 - `string platformID` Query param - `string sortBy` Query param: Sort By. - `SortOrder sortOrder` Query param: Sort Order. - `"asc"Asc` - `"desc"Desc` - `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 RepresentativePaged:` - `required IReadOnlyList Data` - `required string ID` Unique identifier for the representative. - `required string AccountID` The unique identifier of the account this representative is associated with. - `required DateTimeOffset CreatedAt` Timestamp of when the representative was created. - `required DateOnly Dob` The date of birth of the representative, in ISO 8601 format (YYYY-MM-DD). - `required string? Email` The email address of the representative. - `required string FirstName` The first name of the representative. - `required string LastName` The last name of the representative. - `required string MobileNumber` The mobile phone number of the representative. - `required string Name` - `required Relationship Relationship` - `required Boolean Control` 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. - `required Boolean Owner` Whether the representative owns any percentage of of the equity interests of the legal entity. - `required Boolean Primary` 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. - `Double? PercentOwnership` The percentage of ownership the representative has. Required if 'Owner' is true. - `string? Title` The job title of the representative. - `required string SsnLast4` The last 4 digits of the representative's Social Security Number. - `required Status Status` The current status of the representative. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `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 representative. - `string? ExternalID` Unique identifier for the representative in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the represetative in a structured format. - `string? Phone` - `string? UserID` The unique identifier of the user account associated with this representative, if applicable. - `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 RepresentativeListParams parameters = new(); var page = await client.Embed.Representatives.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", "created_at": "2019-12-27T18:11:19.117Z", "dob": "1980-01-01", "email": "ron.swanson@pawnee.com", "first_name": "Ron", "last_name": "Swanson", "mobile_number": "+12128675309", "name": "name", "relationship": { "control": true, "owner": true, "primary": true, "percent_ownership": 0, "title": "title" }, "ssn_last4": "1234", "status": "created", "status_detail": { "code": "code", "message": "message", "reason": "unverified", "source": "watchtower" }, "updated_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "metadata": { "foo": "string" }, "phone": "phone", "user_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 representative `Representative Embed.Representatives.Update(RepresentativeUpdateParamsparameters, CancellationTokencancellationToken = default)` **put** `/v1/representatives/{representative_id}` Updates an existing representative's information. This can be used to update personal details, contact information, or the relationship to the account or organization. ### Parameters - `RepresentativeUpdateParams parameters` - `required string representativeID` Path param - `required DateOnly dob` Body param: The date of birth of the representative, in ISO 8601 format (YYYY-MM-DD). - `required string email` Body param: The email address of the representative. - `required string firstName` Body param: The first name of the representative. - `required string lastName` Body param: The last name of the representative. - `required string mobileNumber` Body param: The mobile phone number of the representative. - `required Relationship relationship` Body param - `required Boolean Control` 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. - `required Boolean Owner` Whether the representative owns any percentage of of the equity interests of the legal entity. - `required Boolean Primary` 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. - `Double? PercentOwnership` The percentage of ownership the representative has. Required if 'Owner' is true. - `string? Title` The job title of the representative. - `required string ssnLast4` Body param: The last 4 digits of the representative's Social Security Number. - `string? externalID` Body param: Unique identifier for the representative in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? metadata` Body param: Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the represetative 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 Representative:` - `required Data Data` - `required string ID` Unique identifier for the representative. - `required string AccountID` The unique identifier of the account this representative is associated with. - `required DateTimeOffset CreatedAt` Timestamp of when the representative was created. - `required DateOnly Dob` The date of birth of the representative, in ISO 8601 format (YYYY-MM-DD). - `required string? Email` The email address of the representative. - `required string FirstName` The first name of the representative. - `required string LastName` The last name of the representative. - `required string MobileNumber` The mobile phone number of the representative. - `required string Name` - `required Relationship Relationship` - `required Boolean Control` 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. - `required Boolean Owner` Whether the representative owns any percentage of of the equity interests of the legal entity. - `required Boolean Primary` 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. - `Double? PercentOwnership` The percentage of ownership the representative has. Required if 'Owner' is true. - `string? Title` The job title of the representative. - `required string SsnLast4` The last 4 digits of the representative's Social Security Number. - `required Status Status` The current status of the representative. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `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 representative. - `string? ExternalID` Unique identifier for the representative in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the represetative in a structured format. - `string? Phone` - `string? UserID` The unique identifier of the user account associated with this representative, if applicable. - `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 RepresentativeUpdateParams parameters = new() { RepresentativeID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", Dob = "1980-01-01", Email = "ron.swanson@pawnee.com", FirstName = "Ron", LastName = "Swanson", MobileNumber = "+12128675309", Relationship = new() { Control = true, Owner = true, Primary = true, PercentOwnership = 0, Title = "title", }, SsnLast4 = "1234", }; var representative = await client.Embed.Representatives.Update(parameters); Console.WriteLine(representative); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "dob": "1980-01-01", "email": "ron.swanson@pawnee.com", "first_name": "Ron", "last_name": "Swanson", "mobile_number": "+12128675309", "name": "name", "relationship": { "control": true, "owner": true, "primary": true, "percent_ownership": 0, "title": "title" }, "ssn_last4": "1234", "status": "created", "status_detail": { "code": "code", "message": "message", "reason": "unverified", "source": "watchtower" }, "updated_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "metadata": { "foo": "string" }, "phone": "phone", "user_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 representative `Representative Embed.Representatives.Get(RepresentativeGetParamsparameters, CancellationTokencancellationToken = default)` **get** `/v1/representatives/{representative_id}` Retrieves the details of an existing representative. Supply the unique representative ID, and Straddle will return the corresponding representative information. ### Parameters - `RepresentativeGetParams parameters` - `required string representativeID` - `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 Representative:` - `required Data Data` - `required string ID` Unique identifier for the representative. - `required string AccountID` The unique identifier of the account this representative is associated with. - `required DateTimeOffset CreatedAt` Timestamp of when the representative was created. - `required DateOnly Dob` The date of birth of the representative, in ISO 8601 format (YYYY-MM-DD). - `required string? Email` The email address of the representative. - `required string FirstName` The first name of the representative. - `required string LastName` The last name of the representative. - `required string MobileNumber` The mobile phone number of the representative. - `required string Name` - `required Relationship Relationship` - `required Boolean Control` 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. - `required Boolean Owner` Whether the representative owns any percentage of of the equity interests of the legal entity. - `required Boolean Primary` 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. - `Double? PercentOwnership` The percentage of ownership the representative has. Required if 'Owner' is true. - `string? Title` The job title of the representative. - `required string SsnLast4` The last 4 digits of the representative's Social Security Number. - `required Status Status` The current status of the representative. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `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 representative. - `string? ExternalID` Unique identifier for the representative in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the represetative in a structured format. - `string? Phone` - `string? UserID` The unique identifier of the user account associated with this representative, if applicable. - `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 RepresentativeGetParams parameters = new() { RepresentativeID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }; var representative = await client.Embed.Representatives.Get(parameters); Console.WriteLine(representative); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "dob": "1980-01-01", "email": "ron.swanson@pawnee.com", "first_name": "Ron", "last_name": "Swanson", "mobile_number": "+12128675309", "name": "name", "relationship": { "control": true, "owner": true, "primary": true, "percent_ownership": 0, "title": "title" }, "ssn_last4": "1234", "status": "created", "status_detail": { "code": "code", "message": "message", "reason": "unverified", "source": "watchtower" }, "updated_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "metadata": { "foo": "string" }, "phone": "phone", "user_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" } ``` ## Retrieve unmasked representative details `Representative Embed.Representatives.Unmask(RepresentativeUnmaskParamsparameters, CancellationTokencancellationToken = default)` **get** `/v1/representatives/{representative_id}/unmask` Retrieves the unmasked details of a representative that has previously been created. Supply the unique representative ID, and Straddle will return the corresponding representative information, including sensitive details. This endpoint requires additional authentication and should be used with caution. ### Parameters - `RepresentativeUnmaskParams parameters` - `required string representativeID` - `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 Representative:` - `required Data Data` - `required string ID` Unique identifier for the representative. - `required string AccountID` The unique identifier of the account this representative is associated with. - `required DateTimeOffset CreatedAt` Timestamp of when the representative was created. - `required DateOnly Dob` The date of birth of the representative, in ISO 8601 format (YYYY-MM-DD). - `required string? Email` The email address of the representative. - `required string FirstName` The first name of the representative. - `required string LastName` The last name of the representative. - `required string MobileNumber` The mobile phone number of the representative. - `required string Name` - `required Relationship Relationship` - `required Boolean Control` 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. - `required Boolean Owner` Whether the representative owns any percentage of of the equity interests of the legal entity. - `required Boolean Primary` 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. - `Double? PercentOwnership` The percentage of ownership the representative has. Required if 'Owner' is true. - `string? Title` The job title of the representative. - `required string SsnLast4` The last 4 digits of the representative's Social Security Number. - `required Status Status` The current status of the representative. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `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 representative. - `string? ExternalID` Unique identifier for the representative in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the represetative in a structured format. - `string? Phone` - `string? UserID` The unique identifier of the user account associated with this representative, if applicable. - `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 RepresentativeUnmaskParams parameters = new() { RepresentativeID = "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }; var representative = await client.Embed.Representatives.Unmask(parameters); Console.WriteLine(representative); ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "dob": "1980-01-01", "email": "ron.swanson@pawnee.com", "first_name": "Ron", "last_name": "Swanson", "mobile_number": "+12128675309", "name": "name", "relationship": { "control": true, "owner": true, "primary": true, "percent_ownership": 0, "title": "title" }, "ssn_last4": "1234", "status": "created", "status_detail": { "code": "code", "message": "message", "reason": "unverified", "source": "watchtower" }, "updated_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "metadata": { "foo": "string" }, "phone": "phone", "user_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 ### Representative - `class Representative:` - `required Data Data` - `required string ID` Unique identifier for the representative. - `required string AccountID` The unique identifier of the account this representative is associated with. - `required DateTimeOffset CreatedAt` Timestamp of when the representative was created. - `required DateOnly Dob` The date of birth of the representative, in ISO 8601 format (YYYY-MM-DD). - `required string? Email` The email address of the representative. - `required string FirstName` The first name of the representative. - `required string LastName` The last name of the representative. - `required string MobileNumber` The mobile phone number of the representative. - `required string Name` - `required Relationship Relationship` - `required Boolean Control` 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. - `required Boolean Owner` Whether the representative owns any percentage of of the equity interests of the legal entity. - `required Boolean Primary` 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. - `Double? PercentOwnership` The percentage of ownership the representative has. Required if 'Owner' is true. - `string? Title` The job title of the representative. - `required string SsnLast4` The last 4 digits of the representative's Social Security Number. - `required Status Status` The current status of the representative. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `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 representative. - `string? ExternalID` Unique identifier for the representative in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the represetative in a structured format. - `string? Phone` - `string? UserID` The unique identifier of the user account associated with this representative, if applicable. - `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` ### Representative Paged - `class RepresentativePaged:` - `required IReadOnlyList Data` - `required string ID` Unique identifier for the representative. - `required string AccountID` The unique identifier of the account this representative is associated with. - `required DateTimeOffset CreatedAt` Timestamp of when the representative was created. - `required DateOnly Dob` The date of birth of the representative, in ISO 8601 format (YYYY-MM-DD). - `required string? Email` The email address of the representative. - `required string FirstName` The first name of the representative. - `required string LastName` The last name of the representative. - `required string MobileNumber` The mobile phone number of the representative. - `required string Name` - `required Relationship Relationship` - `required Boolean Control` 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. - `required Boolean Owner` Whether the representative owns any percentage of of the equity interests of the legal entity. - `required Boolean Primary` 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. - `Double? PercentOwnership` The percentage of ownership the representative has. Required if 'Owner' is true. - `string? Title` The job title of the representative. - `required string SsnLast4` The last 4 digits of the representative's Social Security Number. - `required Status Status` The current status of the representative. - `"created"Created` - `"onboarding"Onboarding` - `"active"Active` - `"rejected"Rejected` - `"inactive"Inactive` - `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 representative. - `string? ExternalID` Unique identifier for the representative in your database, used for cross-referencing between Straddle and your systems. - `IReadOnlyDictionary? Metadata` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the represetative in a structured format. - `string? Phone` - `string? UserID` The unique identifier of the user account associated with this representative, if applicable. - `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`