---
title: "Update a company"
method: PUT
path: "/v1/companies/{company_id}"
tags: ["Companies"]
---

# Update a company

`PUT /v1/companies/{company_id}`

Update a company.

scope: `companies:write`

## Path parameters

- `company_id` string, required

## Headers

- `X-Gusto-API-Version` '2026-06-15'

## Request body

- object
  - `contractor_only` boolean, required — Whether the company only supports contractors. Must be updated in order for the company to start supporting W-2 employees. Can only be updated from true to false. Note that updating this value will require additional onboarding steps to be completed in order for the company to support W-2 employees.

## Response `200`

Successful

- Company — The representation of a company in Gusto.
  - `ein` string — The Federal Employer Identification Number of the company.
  - `entity_type` 'C-Corporation' | 'S-Corporation' | 'Sole proprietor' | 'LLC' | 'LLP' | 'Limited partnership' | 'Co-ownership' | 'Association' | 'Trusteeship' | 'General partnership' | 'Joint venture' | 'Non-Profit', nullable — The tax payer type of the company.
  - `contractor_only` boolean — Whether the company only supports contractors.
  - `tier` 'simple' | 'plus' | 'premium' | 'core' | 'complete' | 'concierge' | 'contractor_only' | 'basic', nullable — The Gusto product tier of the company (not applicable to Embedded partner managed companies).
  - `is_suspended` boolean — Whether or not the company is suspended in Gusto. Suspended companies may not run payroll.
  - `company_status` 'Approved' | 'Not Approved' | 'Suspended' — The status of the company in Gusto. "Approved" companies are approved to run payroll from a risk and compliance perspective. However, an approved company may still need to resolve other [payroll blockers](https://docs.gusto.com/embedded-payroll/docs/payroll-blockers) to be able to run payroll. "Not Approved" companies may not yet run payroll with Gusto and may need to complete onboarding or contact support. "Suspended" companies may not run payroll with Gusto. In order to unsuspend their account, the company must contact support.
  - `uuid` string, required — A unique identifier of the company in Gusto.
  - `name` string — The name of the company.
  - `slug` string — The slug of the name of the company.
  - `trade_name` string, nullable — The trade name of the company.
  - `is_partner_managed` boolean — Whether the company is fully managed by a partner via the API
  - `is_high_risk_business` boolean — Whether or not Gusto has identified the company as representing a high fraud risk.
  - `is_marijuana_business` boolean — Whether or not the company is a marijuana-related business.
  - `pay_schedule_type` 'single' | 'hourly_salaried' | 'by_employee' | 'by_department', nullable — The pay schedule assignment type.
  - `join_date` string, nullable — Company's first invoiceable event date
  - `funding_type` 'ach' | 'reverse_wire' | 'wire_in' | 'partner_disbursement' | 'rtp' | 'line_of_credit', nullable — Company's default funding type
  - `locations` CompanyAddress[] — The locations of the company.
    - `street_1` string
    - `street_2` string, nullable
    - `city` string
    - `state` string
    - `zip` string
    - `country` string
    - `inactive` boolean — The status of the location. Inactive locations have been deleted, but may still have historical data associated with them.
    - `active` boolean — The status of the location. Inactive locations have been deleted, but may still have historical data associated with them.
  - `compensations` object — The available company-wide compensation rates for the company.
    - `hourly` object[] — The available hourly compensation rates for the company.
      - `uuid` string, nullable — The UUID of the hourly compensation rate.
      - `name` string — The name of the hourly compensation rate.
      - `multiple` number — The amount multiplied by the base rate of a job to calculate compensation.
    - `fixed` object[] — The available fixed compensation rates for the company.
      - `uuid` string, nullable — The UUID of the fixed compensation.
      - `name` string — The name of the fixed compensation.
    - `paid_time_off` object[] — The available types of paid time off for the company.
      - `uuid` string, nullable — The UUID of the paid time off type.
      - `name` string — The name of the paid time off type.
  - `primary_signatory` object, nullable — The primary signatory of the company.
    - `uuid` string — The UUID of the company's primary signatory.
    - `first_name` string — The company's primary signatory's first name.
    - `middle_initial` string, nullable — The company's primary signatory's middle initial.
    - `last_name` string — The company's primary signatory's last name.
    - `phone` string — The company's primary signatory's phone number.
    - `email` string — The company's primary signatory's email address.
    - `home_address` object — The company's primary signatory's home address.
      - `street_1` string
      - `street_2` string, nullable
      - `city` string
      - `state` string
      - `zip` string
      - `country` string
  - `primary_payroll_admin` object — The primary payroll admin of the company.
    - `first_name` string — The company's primary payroll admin's first name.
    - `last_name` string — The company's primary payroll admin's last name.
    - `phone` string, nullable — The company's primary payroll admin's phone number.
    - `email` string — The company's primary payroll admin's email address.

## Other responses

- `404` — Not Found
- `422` — Unprocessable Entity This may happen when the body of your request contains errors such as `invalid_attribute_value`, or the request fails due to an `invalid_operation`. See the [Errors Categories](https://docs.gusto.com/embedded-payroll/docs/error-categories) guide for more details.

---

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