---
title: "Create and invite a Company Manager"
method: POST
path: "/v1/company-managers"
tags: ["Company Managers"]
---

# Create and invite a Company Manager

`POST /v1/company-managers`

## Request

- Base URL: `https://gateway.remote.com`
- URL: `https://gateway.remote.com/v1/company-managers`
- Auth: one of:
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `https://gateway.remote.com/company.manage`
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `company_manager:write`
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `all:write`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `company_manager:write`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `all:write`
  - HTTP bearer

Create a Company Manager and sends the invitation email for signing in to the Remote Platform.

## Authentication

This endpoint accepts any one of the following token types:

- **Company-scoped access token** (`OAuth2AuthorizationCode`) — obtained by a company manager through the Authorization Code flow or the Refresh Token flow. See [Authentication for partners](https://developer.remote.com/docs/authentication-for-partners).
- **Company-scoped access token (assertion)** (`OAuth2CompanyManagerAssertion`) — obtained through the `urn:ietf:params:oauth:grant-type:jwt-bearer` grant for a company manager. See [OAuth Assertion](https://developer.remote.com/docs/authorization-method-oauth-assertion).
- **Customer API token** (`CustomerAPIToken`) — generated by the customer on their Integration Settings page, with the scopes they choose there. See [Authorization for customers](https://developer.remote.com/docs/authorization-for-customers).

## Scopes

Any one of the scopes in a token type's row is enough. `all:write` works too.

| Token type | Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|---|
| Company-scoped access token | Manage company resources (`company_admin`) | - | Manage managers (`company_manager:write`) |
| Company-scoped access token (assertion) | Manage company resources (`company_admin`) | - | Manage managers (`company_manager:write`) |
| Customer API token | Manage company resources (`company_admin`) | - | Manage managers (`company_manager:write`) |

## Query parameters

- `actions` string

## Headers

- `Authorization` string, required

## Request body

- CompanyManagerParams
  - `company_id` string: The Company ID. Required if the access token can access multiple companies. Optional otherwise.
  - `email` string, email, required: The work email of the company manager
  - `name` string, required: The name of the company manager
  - `role` string, required: The role assigned for the new manager. The value should be one of the following: - `admin`: assigns the Super Admin role. A Super Admin has full access to the company on Remote, like the owner. - `onboarding_manager`: an Onboarding Manager can add, see and manage new hires. - `people_manager`: a People Manager can view employee profiles of the team members they manage and approve and decline time off and expenses for their employees.

## Response `201`

Success

- CompanyManagerData
  - `company_manager` CompanyManager, required
    - `billing_contacts` CompanyManagerBillingContactStatus[], required: The legal entities this manager is a billing contact for.
      - `is_pending_primary_billing_contact` boolean, required: Whether this manager will become the primary billing contact once they have an active login
      - `is_primary_billing_contact` boolean, required: Whether this manager is the primary billing contact for the legal entity
      - `legal_entity_slug` string, required: Slug of the legal entity
    - `company_id` string, required: Company ID
    - `role` string, required: Company Manager role.
    - `user_email` string, required: User Email
    - `user_id` string, required: User ID
    - `user_name` string, required: User's name

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `404`: Not Found
- `422`: Unprocessable Entity
- `429`: Too many requests

---

[API](https://skmtc.dev/remote-com/apis/companies.md) - [All operations](https://skmtc.dev/remote-com/apis/companies/llms.txt) - [OpenAPI document](https://skmtc.dev/remote-com/apis/companies/revisions/70e00fbb05cb?raw)
