---
title: "Create a company"
method: POST
path: "/v1/companies"
tags: ["Company Management"]
---

# Create a company

`POST /v1/companies`

Creates a new company.

  ### Creating a company with only the required request body parameters
  When you call this endpoint and omit all the optional parameters in the request body,
  the following resources get created upon a successful response:
  * A new company with status `pending`.
  * A company owner for the new company with status `initiated`.

  See the [update a company endpoint](#tag/Companies/operation/patch_update_company) for
  more details on how to get your company and its owner to `active` status.

  If you'd like to create a company and its owner with `active` status in a single request,
  please provide the optional `address_details` parameter as well.

  ### Accepting the Terms of Service

  A required step for creating a company in Remote is to accept our Terms of Service (ToS).

  Company managers need to be aware of our Terms of Service and Privacy Policy,
  hence **it's the responsibility of our partners to advise and ensure company managers read
  and accept the ToS**. The terms have to be accepted only once, before creating a company,
  and the Remote API will collect the acceptance timestamp as its confirmation.

  To ensure users read the most recent version of Remote's Terms of Service, their **acceptance
  must be done within the last fifteen minutes prior the company creation action**.

  To retrieve this information, partners can provide an element with any text and a description
  explaining that by performing that action they are accepting Remote's Term of Service. For
  instance, the partner can add a checkbox or a "Create Remote Account" button followed by a
  description saying "By creating an account, you agree to
  [Remote's Terms of Service](https://remote.com/terms-of-service). Also see Remote's
  [Privacy Policy](https://remote.com/privacy-policy)".


## Scopes

| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage companies (`company_management`) | - | Manage companies (`company:write`) |

## Query parameters

- `address_details_json_schema_version` union
  - integer — Specific version number
  - 'latest' — Use latest version
- `bank_account_details_json_schema_version` union
  - integer — Specific version number
  - 'latest' — Use latest version
- `action` string
- `async` boolean
- `scope` string

## Headers

- `Authorization` string, required

## Request body

- CreateCompanyParams
  - `address_details` object — Fields can vary depending on the country. Please, check the required fields structure using the [Show form schema endpoint](#operation/get_show_form_country). Use the desired country and `address_details` as the form name for the placeholders. The response complies with the [JSON Schema](https://developer.remote.com/docs/how-json-schemas-work) specification.
  - `bank_account_details` object — Fields can vary depending on the country. Please, check the required fields structure using the [Show form schema endpoint](#operation/get_show_form_country). Use the desired country and `bank_account_details` as the form name for the placeholders. The response complies with the [JSON Schema](https://developer.remote.com/docs/how-json-schemas-work) specification.
  - `company_owner_email` string, email, required — The company owner email. This value cannot be changed once set.
  - `company_owner_name` string, required — The company owner name. This value cannot be changed from the Remote API once set.
  - `country_code` string, required — 3-letter country code of the country the company address is located in. For a list of countries supported through the Remote API, make a call to the [list countries endpoint](#tag/Countries/operation/get_supported_country). This endpoint will also include the 3-letter country codes you can use for this field.
  - `desired_currency` 'AUD' | 'CAD' | 'CHF' | 'DKK' | 'EUR' | 'GBP' | 'JPY' | 'NOK' | 'NZD' | 'SEK' | 'SGD' | 'USD', required — Desired currency for invoicing and displaying converted salaries in Remote UI regardless of the employee's country.
  - `email_domain` string — The domain of the company. Use this field to specify the company domain name when it's different from the domain in the company owner's email.
  - `external_id` string — Id of the company as represented in the external partner system.
  - `name` string, required — The company name
  - `phone_number` string — A phone number the company can be contacted with.
  - `registration_number` string — The company registration number. This field or `tax_number` (but not both) should be submitted.
  - `tax_number` string — The tax identifier of the company. This field or `registration_number` (but not both) should be submitted.
  - `terms_of_service_accepted_at` string, date-time, required — Date and time the Terms of Service were accepted. To ensure users read the most recent version of Remote's Terms of Service, their action cannot have been done more than fifteen minutes ago. The UTC offset must be included in the ISO 8601 format: `YYYY-MM-DD HOURS:MINUTES:SECONDSZ`

## Response `201`

Created

- CompanyCreationResponse
  - `data` union
    - CompanyResponse — Shows a company
      - `data` object, required
        - `company` Company
          - `address_details` object, required — Fields can vary depending on the country. Please, check the required fields structure using the [Show form schema endpoint](#operation/get_show_form_country). Use the desired country and `address_details` as the form name for the placeholders. The response complies with the [JSON Schema](https://developer.remote.com/docs/how-json-schemas-work) specification.
          - `bank_account_details` object — Fields can vary depending on the country. Please, check the required fields structure using the [Show form schema endpoint](#operation/get_show_form_country). Use the desired country and `bank_account_details` as the form name for the placeholders. The response complies with the [JSON Schema](https://developer.remote.com/docs/how-json-schemas-work) specification.
          - `company_owner_email` string, email, required — The email address of the company owner who administers the Remote account.
          - `company_owner_name` string — The full name of the company owner. Cannot be changed after company creation.
          - `company_owner_user_id` string, required — The unique identifier (UUID) of the company owner's user account on Remote.
          - `country_code` string, required — The ISO 3166-1 3-letter country code where the company is registered.
          - `created_at` string, date-time, required — The timestamp when the company was created on Remote.
          - `default_legal_entity_credit_risk_status` 'not_started' | 'ready' | 'in_progress' | 'referred' | 'fail' | 'deposit_required' | 'no_deposit_required', required — The credit risk status of the company default legal entity. - `not_started`: The credit risk assessment has not started yet. - `ready`: The credit risk assessment is ready to be started. - `in_progress`: The automated credit risk assessment is in progress. - `referred`: The credit risk assessment has been referred to a human reviewer. - `fail`: The credit risk assessment has failed and the company will be archived. - `deposit_required`: The company default legal entity requires a deposit before onboarding new employees. - `no_deposit_required`: The company default legal entity does not require a deposit before onboarding new employees.
          - `desired_currency` string, required — The ISO 4217 currency code the company prefers for billing and invoicing (e.g., "USD", "EUR").
          - `external_id` string, nullable — A unique reference code for this company in a non-Remote system. Null if not set.
          - `id` string, required — The unique identifier (UUID) of the company.
          - `name` string, required — The company's registered name. Can only be changed while the company is in `pending` status.
          - `phone_number` string — The company's contact phone number.
          - `registration_number` string, nullable — The company's business registration number. Null if not provided. Can only be set while the company is in `pending` status.
          - `status` 'pending' | 'review' | 'active' | 'archived', required — The company status determines what a company is allowed to do: - `pending`: The company has been created and the company owner invited. Remote is waiting for the company owner to complete onboarding. - `review`: The company is under review. In rare occasions, a company may not automatically get created in `active` status because Remote needs to manually review the company that was created. The company will become `active` once the review is completed and no further action is necessary through the Remote API. - `active`: The company owner has completed onboarding and the company is ready to employ. - `archived`: The company is no longer active on the Remote platform and no changes can be made to the company.
          - `tax_number` string, nullable — The company's tax identification number. Null if not provided. Can only be set while the company is in `pending` status.
          - `terms_of_service_accepted_at` string, date-time, required — The timestamp when the company owner accepted Remote's Terms of Service.
          - `updated_at` string, date-time, required — The timestamp when the company record was last updated.
    - CompanyWithTokensResponse — Shows a company with its refresh and access tokens. Please contact Remote if you need the tokens when creating a company.
      - `company` Company
        - `address_details` object, required — Fields can vary depending on the country. Please, check the required fields structure using the [Show form schema endpoint](#operation/get_show_form_country). Use the desired country and `address_details` as the form name for the placeholders. The response complies with the [JSON Schema](https://developer.remote.com/docs/how-json-schemas-work) specification.
        - `bank_account_details` object — Fields can vary depending on the country. Please, check the required fields structure using the [Show form schema endpoint](#operation/get_show_form_country). Use the desired country and `bank_account_details` as the form name for the placeholders. The response complies with the [JSON Schema](https://developer.remote.com/docs/how-json-schemas-work) specification.
        - `company_owner_email` string, email, required — The email address of the company owner who administers the Remote account.
        - `company_owner_name` string — The full name of the company owner. Cannot be changed after company creation.
        - `company_owner_user_id` string, required — The unique identifier (UUID) of the company owner's user account on Remote.
        - `country_code` string, required — The ISO 3166-1 3-letter country code where the company is registered.
        - `created_at` string, date-time, required — The timestamp when the company was created on Remote.
        - `default_legal_entity_credit_risk_status` 'not_started' | 'ready' | 'in_progress' | 'referred' | 'fail' | 'deposit_required' | 'no_deposit_required', required — The credit risk status of the company default legal entity. - `not_started`: The credit risk assessment has not started yet. - `ready`: The credit risk assessment is ready to be started. - `in_progress`: The automated credit risk assessment is in progress. - `referred`: The credit risk assessment has been referred to a human reviewer. - `fail`: The credit risk assessment has failed and the company will be archived. - `deposit_required`: The company default legal entity requires a deposit before onboarding new employees. - `no_deposit_required`: The company default legal entity does not require a deposit before onboarding new employees.
        - `desired_currency` string, required — The ISO 4217 currency code the company prefers for billing and invoicing (e.g., "USD", "EUR").
        - `external_id` string, nullable — A unique reference code for this company in a non-Remote system. Null if not set.
        - `id` string, required — The unique identifier (UUID) of the company.
        - `name` string, required — The company's registered name. Can only be changed while the company is in `pending` status.
        - `phone_number` string — The company's contact phone number.
        - `registration_number` string, nullable — The company's business registration number. Null if not provided. Can only be set while the company is in `pending` status.
        - `status` 'pending' | 'review' | 'active' | 'archived', required — The company status determines what a company is allowed to do: - `pending`: The company has been created and the company owner invited. Remote is waiting for the company owner to complete onboarding. - `review`: The company is under review. In rare occasions, a company may not automatically get created in `active` status because Remote needs to manually review the company that was created. The company will become `active` once the review is completed and no further action is necessary through the Remote API. - `active`: The company owner has completed onboarding and the company is ready to employ. - `archived`: The company is no longer active on the Remote platform and no changes can be made to the company.
        - `tax_number` string, nullable — The company's tax identification number. Null if not provided. Can only be set while the company is in `pending` status.
        - `terms_of_service_accepted_at` string, date-time, required — The timestamp when the company owner accepted Remote's Terms of Service.
        - `updated_at` string, date-time, required — The timestamp when the company record was last updated.
      - `tokens` union
        - object
          - `access_token` string — A JWT token.
          - `expires_in` integer — Number of seconds until token is expired.
          - `token_type` string — The type of the token. For now, always `Bearer`.
          - `company_id` string — The ID of the connected company.
          - `refresh_token` string — The refresh token. This token must be stored and used for issuing new access tokens for managing the company's resources.
          - `user_id` string — The ID of the user who connected the company.
        - BaseTokenResponse
          - `access_token` string — A JWT token.
          - `expires_in` integer — Number of seconds until token is expired.
          - `token_type` string — The type of the token. For now, always `Bearer`.
        - object
          - `access_token` string — A JWT token.
          - `expires_in` integer — Number of seconds until token is expired.
          - `token_type` string — The type of the token. For now, always `Bearer`.
          - `refresh_token` string — The refresh token

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `409` — Conflict
- `422` — Unprocessable Entity
- `429` — Unprocessable Entity

---

[API](https://skmtc.net/remote-com/apis/remote.md) · [All operations](https://skmtc.net/remote-com/apis/remote/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/remote-com/remote/versions/7e6a0c61ac82/schema)
