## 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" } ```