Deactivate a contractor
Update a contractor’s status and delete them from your payroll
Deactivating a contractor or other 1099 worker differs significantly from terminating a W-2 employee. Because contractors do not have “employment” in the same way that W-2 employees do, terminations are not applicable. However, you can mark a contractor as inactive.
The possible action depends on whether a contractor has received payments.
- Contractor has received payment: the contractor must be deactivated
- Contractor has not received payment: the contractor can be deleted
Update the contractor status to inactive
Mark a contractor as inactive using the PUT contractors/{contractor_uuid} endpoint and setting "is_active": false.
Sample request
curl --request PUT \
--url https://api.gusto-demo.com/v1/contractors/{contractor_uuid} \
--header 'accept: application/json' \
--header 'authorization: Bearer <<COMPANY_API_TOKEN>>' \
--header 'content-type: application/json' \
--data '
{
"type": "Individual",
"self_onboarding": false,
"file_new_hire_report": false,
"version": "b48c46abfed1487b873b442334b3c4ff",
"start_date": "2021-01-01",
"first_name": "Fanny",
"last_name": "Brice",
"middle_initial": "X",
"wage_type": "Hourly",
"hourly_rate": "20.00",
"is_active": false
}
'
const fetch = require('node-fetch');
const url = 'https://api.gusto-demo.com/v1/contractors/{contractor_uuid}';
const options = {
method: 'PUT',
headers: {
accept: 'application/json',
'content-type': 'application/json',
authorization: 'Bearer <<COMPANY_API_TOKEN>>'
},
body: JSON.stringify({
type: 'Individual',
self_onboarding: false,
file_new_hire_report: false,
version: 'b48c46abfed1487b873b442334b3c4ff',
start_date: '2021-01-01',
first_name: 'Fanny',
last_name: 'Brice',
middle_initial: 'X',
wage_type: 'Hourly',
hourly_rate: '20.00',
is_active: false
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error('error:' + err));
Delete the contractor
If a given contractor has not received any payments, then you can use the DELETE /v1/contractors/{contractor_uuid} endpoint to delete the contractor.
After setting the contractor’s status to inactive, ensure there are no pending payments or outstanding invoices. Once all payments have been processed and no further action is required, you can safely delete the contractor record using the DELETE /v1/contractors/{contractor_uuid} endpoint.
Sample request
curl --request DELETE \
--url https://api.gusto-demo.com/v1/contractors/{contractor_uuid} \
--header 'X-Gusto-API-Version: {version}' \
--header 'authorization: Bearer COMPANY_API_TOKEN' \
Updated 2 days ago