---
title: "Create an account"
method: POST
path: "/v1/accounts"
tags: ["Accounts"]
---

# Create an account

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

## Headers

- `request-id` string
- `correlation-id` string
- `idempotency-key` string

## Request body

- CreateAccountV1Request
  - `organization_id` string, uuid, required — The unique identifier of the organization related to this account.
  - `account_type` 'business', required — The type of account to be created. Currently, only `business` is supported.
  - `business_profile` BusinessProfileV1, required
    - `name` string, required — The operating or trade name of the business.
    - `website` string, uri, required — URL of the business's primary marketing website.
    - `legal_name` string, nullable — The official registered name of the business.
    - `description` string, nullable — A brief description of the business and its products or services.
    - `use_case` string, nullable — A description of how the business intends to use Straddle's services.
    - `tax_id` string, nullable — The business's tax identification number (e.g., EIN in the US).
    - `phone` string, nullable — The primary contact phone number for the business.
    - `address` AddressV1, nullable — The address object is optional. If provided, it must be a valid address.
      - `line1` string, nullable, required — Primary address line (e.g., street, PO Box).
      - `line2` string, nullable — Secondary address line (e.g., apartment, suite, unit, or building).
      - `city` string, nullable, required — City, district, suburb, town, or village.
      - `state` string, nullable, required — Two-letter state code.
      - `postal_code` string, nullable, required — Postal or ZIP code.
      - `country` string, nullable — The country of the address, in ISO 3166-1 alpha-2 format.
      - `address1` string, required — Primary address line (e.g., street, PO Box).
      - `address2` string, nullable — Secondary address line (e.g., apartment, suite, unit, or building).
      - `zip` string, required — Zip or postal code.
    - `industry` IndustryV1
      - `mcc` string, nullable — The Merchant Category Code (MCC) that best describes the business. Optional.
      - `sector` string, nullable — The specific sector within the industry category. Required if not providing MCC.
      - `category` string, nullable — The general category of the industry. Required if not providing MCC.
    - `support_channels` SupportChannelsV1
      - `email` string, email, nullable — The email address for customer support inquiries.
      - `phone` string, nullable — The phone number for customer support.
      - `url` string, uri, nullable — The URL of the business's customer support page or contact form.
  - `access_level` 'standard' | 'managed', required — The access level granted to the account. This is determined by your platform configuration. Use `standard` unless instructed otherwise by Straddle.
  - `metadata` object, nullable — Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the account in a structured format.
  - `external_id` string, nullable — Unique identifier for the account in your database, used for cross-referencing between Straddle and your systems.

## Response `201`

Created

- ItemResponseOfAccountV1
  - `meta` ResponseMetadata, required — Metadata about the API request, including an identifier and timestamp.
    - `api_request_id` string, uuid, required — Unique identifier for this API request, useful for troubleshooting.
    - `api_request_timestamp` string, date-time, required — Timestamp for this API request, useful for troubleshooting.
  - `response_type` 'object' | 'array' | 'error' | 'none', required — 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.
  - `data` AccountV1, required
    - `id` string, uuid, required — Unique identifier for the account.
    - `organization_id` string, uuid, required — The unique identifier of the organization this account belongs to.
    - `type` 'business', required — The type of account (e.g., 'individual', 'business').
    - `status` 'created' | 'onboarding' | 'active' | 'rejected' | 'inactive', required — The current status of the account (e.g., 'active', 'inactive', 'pending').
    - `status_detail` StatusDetailOfAccountStatusDetail, required
      - `reason` 'unverified' | 'in_review' | 'pending' | 'stuck' | 'verified' | 'failed_verification' | 'disabled' | 'terminated' | 'new', required — A machine-readable identifier for the specific status, useful for programmatic handling.
      - `source` 'watchtower', required — Identifies the origin of the status change (e.g., `bank_decline`, `watchtower`). This helps in tracking the cause of status updates.
      - `code` string, required — A machine-readable code for the specific status, useful for programmatic handling.
      - `message` string, required — A human-readable message describing the current status.
    - `business_profile` BusinessProfileV1
      - `name` string, required — The operating or trade name of the business.
      - `website` string, uri, required — URL of the business's primary marketing website.
      - `legal_name` string, nullable — The official registered name of the business.
      - `description` string, nullable — A brief description of the business and its products or services.
      - `use_case` string, nullable — A description of how the business intends to use Straddle's services.
      - `tax_id` string, nullable — The business's tax identification number (e.g., EIN in the US).
      - `phone` string, nullable — The primary contact phone number for the business.
      - `address` AddressV1, nullable — The address object is optional. If provided, it must be a valid address.
        - `line1` string, nullable, required — Primary address line (e.g., street, PO Box).
        - `line2` string, nullable — Secondary address line (e.g., apartment, suite, unit, or building).
        - `city` string, nullable, required — City, district, suburb, town, or village.
        - `state` string, nullable, required — Two-letter state code.
        - `postal_code` string, nullable, required — Postal or ZIP code.
        - `country` string, nullable — The country of the address, in ISO 3166-1 alpha-2 format.
        - `address1` string, required — Primary address line (e.g., street, PO Box).
        - `address2` string, nullable — Secondary address line (e.g., apartment, suite, unit, or building).
        - `zip` string, required — Zip or postal code.
      - `industry` IndustryV1
        - `mcc` string, nullable — The Merchant Category Code (MCC) that best describes the business. Optional.
        - `sector` string, nullable — The specific sector within the industry category. Required if not providing MCC.
        - `category` string, nullable — The general category of the industry. Required if not providing MCC.
      - `support_channels` SupportChannelsV1
        - `email` string, email, nullable — The email address for customer support inquiries.
        - `phone` string, nullable — The phone number for customer support.
        - `url` string, uri, nullable — The URL of the business's customer support page or contact form.
    - `capabilities` Capabilities
      - `payment_types` PaymentTypes, required
        - `charges` Capability, required
          - `capability_status` 'active' | 'inactive', required
        - `payouts` Capability, required
          - `capability_status` 'active' | 'inactive', required
      - `customer_types` CustomerTypes, required
        - `individuals` Capability, required
          - `capability_status` 'active' | 'inactive', required
        - `businesses` Capability, required
          - `capability_status` 'active' | 'inactive', required
      - `consent_types` ConsentTypes, required
        - `signed_agreement` Capability, required
          - `capability_status` 'active' | 'inactive', required
        - `internet` Capability, required
          - `capability_status` 'active' | 'inactive', required
    - `settings` Settings
      - `charges` Charges, required
        - `max_amount` integer, required — The maximum amount of a single charge.
        - `monthly_amount` integer, required — The maximum dollar amount of charges in a calendar month.
        - `daily_amount` integer, required — The maximum dollar amount of charges in a calendar day.
        - `monthly_count` integer, required — The maximum number of charges in a calendar month.
        - `funding_time` 'immediate' | 'next_day' | 'one_day' | 'two_day' | 'three_day' | 'four_day' | 'five_day', required — The amount of time it takes for a charge to be funded. This value is defined by Straddle.
        - `linked_bank_account_id` string, uuid, required — The unique identifier of the linked bank account associated with charges. This value is defined by Straddle.
      - `payouts` Payouts, required
        - `max_amount` integer, required — The maximum amount of a single payout.
        - `monthly_amount` integer, required — The maximum dollar amount of payouts in a month.
        - `daily_amount` integer, required — The maximum dollar amount of payouts in a day.
        - `monthly_count` integer, required — The maximum number of payouts in a month.
        - `funding_time` 'immediate' | 'next_day' | 'one_day' | 'two_day' | 'three_day' | 'four_day' | 'five_day', required — The amount of time it takes for a payout to be funded. This value is defined by Straddle.
        - `linked_bank_account_id` string, uuid, required — The unique identifier of the linked bank account to use for payouts.
    - `terms_of_service` TermsOfServiceV1
      - `accepted_date` string, date-time, required — The datetime of when the terms of service were accepted, in ISO 8601 format.
      - `accepted_ip` string, nullable — The IP address from which the terms of service were accepted.
      - `accepted_user_agent` string, nullable — The user agent string of the browser or application used to accept the terms.
      - `agreement_url` string, nullable, required — The URL where the full text of the accepted agreement can be found.
      - `agreement_type` 'embedded' | 'direct', required — The type or version of the agreement accepted. Use `embedded` unless your platform was specifically enabled for `direct` agreements.
    - `metadata` object, nullable — Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the account in a structured format.
    - `access_level` 'standard' | 'managed', required — The access level granted to the account. This is determined by your platform configuration. Use `standard` unless instructed otherwise by Straddle.
    - `external_id` string, nullable — Unique identifier for the account in your database, used for cross-referencing between Straddle and your systems.
    - `created_at` string, date-time, nullable — Timestamp of when the account was created.
    - `updated_at` string, date-time, nullable — Timestamp of the most recent update to the account.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `422` — Validation Failed
- `500` — Server Error

---

[API](https://skmtc.net/straddleio/apis/straddle-api.md) · [All operations](https://skmtc.net/straddleio/apis/straddle-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/straddleio/straddle-api/revisions/6e13cd88cda9/schema)
