---
title: "Change the contractor's onboarding status"
method: PUT
path: "/v1/contractors/{contractor_uuid}/onboarding_status"
tags: ["Contractors"]
---

# Change the contractor's onboarding status

`PUT /v1/contractors/{contractor_uuid}/onboarding_status`

Updates a contractor's onboarding status.

Below is a list of valid onboarding status changes depending on the intended action to be performed on behalf of the contractor.

| Action | current onboarding_status | new onboarding_status |
|:------------------|:------------:|----------:|
| Mark a contractor as self-onboarding | `admin_onboarding_incomplete` | `self_onboarding_not_invited` |
| Invite a contractor to self-onboard | `admin_onboarding_incomplete` or `self_onboarding_not_invited` | `self_onboarding_invited` |
| Cancel a contractor's self-onboarding | `self_onboarding_invited` or `self_onboarding_not_invited` | `admin_onboarding_incomplete` |
| Review a contractor's self-onboarded info | `self_onboarding_started` | `self_onboarding_review` |
| Finish a contractor's onboarding | `admin_onboarding_review` or `self_onboarding_review` | `onboarding_completed` |

scope: `contractors:write`

## Path parameters

- `contractor_uuid` string, required

## Headers

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

## Request body

- ContractorOnboardingStatusUpdateRequestBody — Request body for updating a contractor's onboarding status.
  - `onboarding_status` 'admin_onboarding_incomplete' | 'admin_onboarding_review' | 'self_onboarding_not_invited' | 'self_onboarding_invited' | 'self_onboarding_started' | 'self_onboarding_review' | 'onboarding_completed', required — The updated onboarding status for the contractor.

## Response `200`

Successful

- ContractorOnboardingStatus — The representation of an contractor's onboarding status.
  - `uuid` string, required — Unique identifier for this contractor.
  - `onboarding_status` 'onboarding_completed' | 'admin_onboarding_review' | 'admin_onboarding_incomplete' | 'self_onboarding_not_invited' | 'self_onboarding_invited' | 'self_onboarding_started' | 'self_onboarding_review' — One of the "onboarding_status" enum values.
  - `onboarding_steps` object[] — List of steps required to onboard a contractor.
    - `title` string — User-friendly description of the onboarding step.
    - `id` string — String identifier for the onboarding step.
    - `required` boolean — When true, this step is required.
    - `completed` boolean — When true, this step has been completed.
    - `requirements` string[] — A list of onboarding steps required to begin this step.

## Other responses

- `404` — Not Found The requested resource does not exist. Make sure the provided UUID is valid.
- `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)
