Transition to support W-2 employees
Update a contractor-only company to support W-2 employees
In Gusto, contractor-only companies are configured to manage contractors exclusively. To accommodate W-2 employees, the company must make the updates described in this guide to ensure compliance with payroll requirements.
1. Update the contractor-only status
To allow W-2 employees and support payroll, update the companyβs configuration by setting "contractor_only"
to false
using the PUT /v1/companies/{company_id} endpoint.
The "contractor_only"
attribute can only be changed from true
to false
.
Sample request
curl --request PUT \
--url https://api.gusto-demo.com/v1/companies/{company_id} \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"contractor_only": false
}'
2. Complete additional onboarding steps
Once the "contractor_only"
status is updated, the following onboarding steps are required before running payroll for W-2 employees:
- Add employees: Use the
add_employees
attribute to include all W-2 employees who will be part of the company payroll. - Enter state tax information: Use the
state_setup
attribute to configure state-specific tax details to comply with payroll regulations. - Create a pay schedule: Use the
payroll_schedule
attribute to define the pay period frequency and associated settings for W-2 employees.
To complete these steps, you can launch a flow using the POST /v1/companies/{company_uuid}/flows endpoint.
Sample request
curl --request POST \
--url 'https://api.gusto-demo.com/v1/companies/{company_uuid}/flows' \
--header 'X-Gusto-API-Version: 2025-06-15' \
--header 'accept: application/json' \
--header 'authorization: Bearer COMPANY_API_TOKEN'
--header 'content-type: application/json'
--data '
{
"flow_type": "add_employees,state_setup,payroll_schedule"
}
Sample response
{
"url": "FLOW_URL"
}
3. Verify payroll readiness
After completing the onboarding steps, confirm no payroll blockers are preventing W-2 employee payroll processing by calling the GET /v1/companies/{company_uuid}/payrolls/blockers endpoint.
If the response is an empty array []
, the company is ready to process payroll for W-2 employees.
Sample request
curl --request GET \
--url 'https://api.gusto-demo.com/v1/company/{company_uuid}/payrolls/blockers' \
--header 'X-Gusto-API-Version: 2025-06-15' \
--header 'accept: application/json' \
--header 'authorization: Bearer COMPANY_API_TOKEN'
Updated about 9 hours ago