/v1/contractors/{contractor_uuid}/onboarding_status
Retrieves a contractor’s onboarding status. The data returned helps inform the required onboarding steps and respective completion status.
scope: contractors:read
| onboarding_status | Description |
|:——————|————:|
| admin_onboarding_incomplete | Admin needs to enter basic information about the contractor. |
| admin_onboarding_review | All information has been completed and admin needs to confirm onboarding. |
| onboarding_completed | Contractor has been fully onboarded and verified. |
| onboarding_status | Description |
|---|---|
admin_onboarding_incomplete |
Admin needs to enter basic information about the contractor. |
self_onboarding_not_invited |
Admin has the intention to invite the contractor to self-onboard (e.g., marking a checkbox), but the system has not yet sent the invitation. |
self_onboarding_invited |
Contractor has been sent an invitation to self-onboard. |
self_onboarding_started |
Contractor has started the self-onboarding process. |
self_onboarding_review |
Admin needs to review contractors’s entered information and confirm onboarding. |
onboarding_completed |
Contractor has been fully onboarded and verified. |
| onboarding_steps | Requirement(s) to be completed |
|---|---|
basic_details |
Add individual contractor’s first name, last name, social security number or Business name and EIN depending on the contractor type |
add_address |
Add contractor address. |
compensation_details |
Add contractor compensation. |
payment_details |
Set up contractor’s direct deposit or set to check. |
sign_documents |
Contractor forms (e.g., W9) are generated & signed. |
file_new_hire_report |
Contractor new hire report is generated. |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| contractor_uuid | path | optional | string | The UUID of the contractor |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
Example response.
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/contractors/{contractor_uuid}/onboarding_status
/v1/contractors/{contractor_uuid}/onboarding_status
Updates a contractor’s onboarding status.
scope: contractors:write
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 an employee to self-onboard | admin_onboarding_incomplete or self_onboarding_not_invited |
self_onboarding_invited |
| Cancel an employee’s self-onboarding | self_onboarding_invited or self_onboarding_not_invited |
admin_onboarding_incomplete |
| Review an employee’s self-onboarded info | self_onboarding_started |
self_onboarding_review |
| Finish an employee’s onboarding | admin_onboarding_incomplete or self_onboarding_review |
onboarding_completed |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| contractor_uuid | path | optional | string | The UUID of the contractor |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
ContractorsChangeOnboardingStatusRequest
| Property | Type | Required |
|---|---|---|
| onboarding_status | string | required |
Example response.
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
PUT /v1/contractors/{contractor_uuid}/onboarding_status
/v1/companies/{company_uuid}/departments
Get all of the departments for a given company with the employees and contractors assigned to that department.
scope: departments:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| company_uuid | path | optional | string | The UUID of the company |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
List of departments
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/companies/{company_uuid}/departments
/v1/companies/{company_uuid}/departments
Create a department
scope: departments:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| company_uuid | path | optional | string | The UUID of the company |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
DepartmentsCreateDepartmentRequest
| Property | Type | Required |
|---|---|---|
| title | string | optional |
Department Object Example
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
POST /v1/companies/{company_uuid}/departments
/v1/departments/{department_uuid}
Delete a department. You cannot delete a department until all employees and contractors have been removed.
scope: departments:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| department_uuid | path | optional | string | The UUID of the department |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
No Content
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
DELETE /v1/departments/{department_uuid}
/v1/departments/{department_uuid}
Get a department given the UUID
scope: departments:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| department_uuid | path | optional | string | The UUID of the department |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
Department Object Example
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/departments/{department_uuid}
/v1/departments/{department_uuid}
Update a department
scope: departments:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| department_uuid | path | optional | string | The UUID of the department |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
DepartmentsUpdateDepartmentRequest
| Property | Type | Required |
|---|---|---|
| title | string | optional |
| version | string | required |
Department Object Example
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
PUT /v1/departments/{department_uuid}
/v1/departments/{department_uuid}/add
Add employees and contractors to a department
scope: departments:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| department_uuid | path | optional | string | The UUID of the department |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
DepartmentsAddPeopleToDepartmentRequest
| Property | Type | Required |
|---|---|---|
| version | string | optional |
| employees | array | optional |
| └ uuid | string | optional |
| contractors | array | optional |
| └ uuid | string | optional |
Department Object Example
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
PUT /v1/departments/{department_uuid}/add
/v1/departments/{department_uuid}/remove
Remove employees and contractors from a department
scope: departments:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| department_uuid | path | optional | string | The UUID of the department |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
DepartmentsRemovePeopleFromDepartmentRequest
| Property | Type | Required |
|---|---|---|
| version | string | optional |
| employees | array | optional |
| └ uuid | string | optional |
| contractors | array | optional |
| └ uuid | string | optional |
Department Object Example
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
PUT /v1/departments/{department_uuid}/remove
/v1/companies/{company_id}/earning_types
A payroll item in Gusto is associated to an earning type to name the type of earning described by the payroll item.
Certain earning types are special because they have tax considerations. Those earning types are mostly the same for every company depending on its legal structure (LLC, Corporation, etc.)
Custom earning types are all the other earning types added specifically for a company.
scope: payrolls:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| company_id | path | optional | string | The UUID of the company |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/companies/{company_id}/earning_types
/v1/companies/{company_id}/earning_types
Create a custom earning type.
If an inactive earning type exists with the same name, this will reactivate it instead of creating a new one.
scope: payrolls:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| company_id | path | optional | string | The UUID of the company |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EarningTypesCreateCustomEarningTypeRequest
| Property | Type | Required |
|---|---|---|
| name | string | required |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
POST /v1/companies/{company_id}/earning_types
/v1/companies/{company_id}/earning_types/{earning_type_uuid}
Deactivate an earning type.
scope: payrolls:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| company_id | path | optional | string | The UUID of the company |
| earning_type_uuid | path | optional | string | The UUID of the earning type |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
No Content
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
DELETE /v1/companies/{company_id}/earning_types/{earning_type_uuid}
/v1/companies/{company_id}/earning_types/{earning_type_uuid}
Update an earning type.
scope: payrolls:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| company_id | path | optional | string | The UUID of the company |
| earning_type_uuid | path | optional | string | The UUID of the earning type |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EarningTypesUpdateTypeRequest
| Property | Type | Required |
|---|---|---|
| name | string | optional |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
PUT /v1/companies/{company_id}/earning_types/{earning_type_uuid}
/v1/employees/{employee_id}/home_addresses
The home address of an employee is used to determine certain tax information about them. Addresses are geocoded on create and update to ensure validity.
Supports home address effective dating and courtesy withholding.
scope: employees:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
List of employee addresses
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/employees/{employee_id}/home_addresses
/v1/employees/{employee_id}/home_addresses
The home address of an employee is used to determine certain tax information about them. Addresses are geocoded on create and update to ensure validity.
Supports home address effective dating and courtesy withholding.
scope: employees:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EmployeeAddressesCreateHomeAddressRequest
| Property | Type | Required |
|---|---|---|
| zip | string | optional |
| city | string | optional |
| state | string | optional |
| street_1 | string | optional |
| street_2 | string | optional |
| effective_date | string | optional |
| courtesy_withholding | boolean | optional |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
POST /v1/employees/{employee_id}/home_addresses
/v1/employees/{employee_id}/work_addresses
Returns a list of an employee’s work addresses. Each address includes its effective date and a boolean
signifying if it is the currently active work address.
scope: employees:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
List of employee work addresses
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/employees/{employee_id}/work_addresses
/v1/employees/{employee_id}/work_addresses
The work address of an employee describes when an employee began working at an associated company location.
scope: employees:manage
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EmployeeAddressesCreateWorkAddressRequest
| Property | Type | Required |
|---|---|---|
| location_uuid | string | optional |
| effective_date | string | optional |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
POST /v1/employees/{employee_id}/work_addresses
/v1/home_addresses/{home_address_uuid}
Used for deleting an employee’s home address. Cannot delete the employee’s active home address.
scope: employees:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| home_address_uuid | path | optional | string | The UUID of the home address |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
No Content
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
DELETE /v1/home_addresses/{home_address_uuid}
/v1/home_addresses/{home_address_uuid}
The home address of an employee is used to determine certain tax information about them. Addresses are geocoded on create and update to ensure validity.
Supports home address effective dating and courtesy withholding.
scope: employees:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| home_address_uuid | path | optional | string | The UUID of the home address |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/home_addresses/{home_address_uuid}
/v1/home_addresses/{home_address_uuid}
The home address of an employee is used to determine certain tax information about them. Addresses are geocoded on create and update to ensure validity.
Supports home address effective dating and courtesy withholding.
scope: employees:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| home_address_uuid | path | optional | string | The UUID of the home address |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EmployeeAddressesUpdateHomeAddressRequest
| Property | Type | Required |
|---|---|---|
| zip | string | optional |
| city | string | optional |
| state | string | optional |
| version | string | required |
| street_1 | string | optional |
| street_2 | string | optional |
| effective_date | string | optional |
| courtesy_withholding | boolean | optional |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
PUT /v1/home_addresses/{home_address_uuid}
/v1/work_addresses/{work_address_uuid}
Used for deleting an employee’s work address. Cannot delete the employee’s active work address.
scope: employees:manage
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| work_address_uuid | path | optional | string | The UUID of the work address |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
No Content
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
DELETE /v1/work_addresses/{work_address_uuid}
/v1/work_addresses/{work_address_uuid}
The work address of an employee is used for payroll tax purposes.
scope: employees:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| work_address_uuid | path | optional | string | The UUID of the work address |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/work_addresses/{work_address_uuid}
/v1/work_addresses/{work_address_uuid}
The work address of an employee is used for payroll tax purposes.
scope: employees:manage
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| work_address_uuid | path | optional | string | The UUID of the work address |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EmployeeAddressesUpdateWorkAddressRequest
| Property | Type | Required |
|---|---|---|
| version | string | optional |
| location_uuid | string | optional |
| effective_date | string | optional |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
PUT /v1/work_addresses/{work_address_uuid}
/v1/employee_benefits/{employee_benefit_id}
Employee benefits represent an employee enrolled in a particular company benefit. It includes information specific to that employee’s enrollment.
scope: employee_benefits:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_benefit_id | path | optional | string | The UUID of the employee benefit. |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
No Content
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
DELETE /v1/employee_benefits/{employee_benefit_id}
/v1/employee_benefits/{employee_benefit_id}
Employee benefits represent an employee enrolled in a particular company benefit. It includes information specific to that employee’s enrollment.
Benefits containing PHI are only visible to applications with the employee_benefits:read:phi scope.
scope: employee_benefits:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_benefit_id | path | optional | string | The UUID of the employee benefit. |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/employee_benefits/{employee_benefit_id}
/v1/employee_benefits/{employee_benefit_id}
Employee benefits represent an employee enrolled in a particular company benefit. It includes information specific to that employee’s enrollment.
scope: employee_benefits:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_benefit_id | path | optional | string | The UUID of the employee benefit. |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EmployeeBenefitsUpdateBenefitRecordRequest
| Property | Type | Required |
|---|---|---|
| active | boolean | optional |
| version | string | required |
| catch_up | boolean | optional |
| elective | boolean | optional |
| contribution | object | optional |
| └ type | string | optional |
| └ value | object | optional |
| limit_option | string | optional |
| coverage_amount | string | optional |
| employee_deduction | string | optional |
| company_contribution | string | optional |
| deduct_as_percentage | boolean | optional |
| contribute_as_percentage | boolean | optional |
| coverage_salary_multiplier | string | optional |
| deduction_reduces_taxable_income | string | optional |
| employee_deduction_annual_maximum | string | optional |
| company_contribution_annual_maximum | string | optional |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
PUT /v1/employee_benefits/{employee_benefit_id}
/v1/employees/{employee_id}/employee_benefits
Employee benefits represent an employee enrolled in a particular company benefit. It includes information specific to that employee’s enrollment.
Returns an array of all employee benefits for this employee
Benefits containing PHI are only visible to applications with the employee_benefits:read:phi scope.
scope: employee_benefits:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| page | query | optional | number | The page that is requested. When unspecified, will load all objects unless endpoint forces pagination. |
| per | query | optional | number | Number of objects per page. For majority of endpoints will default to 25 |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/employees/{employee_id}/employee_benefits
/v1/employees/{employee_id}/employee_benefits
Employee benefits represent an employee enrolled in a particular company benefit. It includes information specific to that employee’s enrollment.
scope: employee_benefits:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EmployeeBenefitsCreateBenefitRecordRequest
| Property | Type | Required |
|---|---|---|
| active | boolean | optional |
| catch_up | boolean | optional |
| elective | boolean | optional |
| contribution | object | optional |
| └ type | string | optional |
| └ value | object | optional |
| limit_option | string | optional |
| coverage_amount | string | optional |
| employee_deduction | string | optional |
| company_benefit_uuid | string | required |
| company_contribution | string | optional |
| deduct_as_percentage | boolean | optional |
| contribute_as_percentage | boolean | optional |
| coverage_salary_multiplier | string | optional |
| deduction_reduces_taxable_income | string | optional |
| employee_deduction_annual_maximum | string | optional |
| company_contribution_annual_maximum | string | optional |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
POST /v1/employees/{employee_id}/employee_benefits
/v1/employees/{employee_id}/ytd_benefit_amounts_from_different_company
Year-to-date benefit amounts from a different company represents the amount of money added to an employee’s plan during a current year, made outside of the current contribution when they were employed at a different company.
This endpoint only supports passing outside contributions for 401(k) benefits.
scope: employee_benefits:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EmployeeBenefitsCreateYtdBenefitAmountsFromDifferentCompanyRequest
| Property | Type | Required |
|---|---|---|
| tax_year | number | required |
| benefit_type | number | optional |
| ytd_employee_deduction_amount | string | required |
| ytd_company_contribution_amount | string | required |
No Content
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
POST /v1/employees/{employee_id}/ytd_benefit_amounts_from_different_company
/v1/employees/{employee_id}/employment_history
Retrieve the employment history for a given employee, which includes termination and rehire.
scope: employments:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/employees/{employee_id}/employment_history
/v1/employees/{employee_id}/rehire
Delete an employee rehire. An employee rehire cannot be deleted if it’s active (past effective date).
scope: employments:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
No Content
Not Found
DELETE /v1/employees/{employee_id}/rehire
/v1/employees/{employee_id}/rehire
Retrieve an employee’s rehire, which contains information on when the employee returns to work.
scope: employments:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
Example response
Not Found
GET /v1/employees/{employee_id}/rehire
/v1/employees/{employee_id}/rehire
Rehire is created whenever an employee is scheduled to return to the company.
scope: employments:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
Rehire-Body
| Property | Type | Required |
|---|---|---|
| effective_date | string | required |
| employment_status | string | optional |
| work_location_uuid | string | required |
| file_new_hire_report | boolean | required |
| two_percent_shareholder | boolean | optional |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
POST /v1/employees/{employee_id}/rehire
/v1/employees/{employee_id}/rehire
Update an employee’s rehire.
scope: employments:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EmployeeEmploymentsUpdateRehireRequest
| Property | Type | Required |
|---|---|---|
| version | string | required |
| effective_date | string | required |
| employment_status | string | optional |
| work_location_uuid | string | required |
| file_new_hire_report | boolean | required |
| two_percent_shareholder | boolean | optional |
Example response
Not Found
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 guide for more details.
PUT /v1/employees/{employee_id}/rehire
/v1/employees/{employee_id}/terminations
Delete an employee termination.
scope: employments:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
No Content
Not Found
DELETE /v1/employees/{employee_id}/terminations
/v1/employees/{employee_id}/terminations
Terminations are created whenever an employee is scheduled to leave the company. The only things required are an effective date (their last day of work) and whether they should receive their wages in a one-off termination payroll or with the rest of the company.
Note that some states require employees to receive their final wages within 24 hours (unless they consent otherwise,) in which case running a one-off payroll may be the only option.
scope: employments:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/employees/{employee_id}/terminations
/v1/employees/{employee_id}/terminations
Terminations are created whenever an employee is scheduled to leave the company. The only things required are an effective date (their last day of work) and whether they should receive their wages in a one-off termination payroll or with the rest of the company.
Note that some states require employees to receive their final wages within 24 hours (unless they consent otherwise,) in which case running a one-off payroll may be the only option.
scope: employments:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EmployeeEmploymentsCreateTerminationRequest
| Property | Type | Required |
|---|---|---|
| effective_date | string | required |
| run_termination_payroll | boolean | optional |
Example Response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
POST /v1/employees/{employee_id}/terminations
/v1/terminations/{employee_id}
Terminations are created whenever an employee is scheduled to leave the company. The only things required are an effective date (their last day of work) and whether they should receive their wages in a one-off termination payroll or with the rest of the company.
Note that some states require employees to receive their final wages within 24 hours (unless they consent otherwise,) in which case running a one-off payroll may be the only option.
scope: employments:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EmployeeEmploymentsUpdateTerminationRequest
| Property | Type | Required |
|---|---|---|
| version | string | required |
| effective_date | string | required |
| run_termination_payroll | boolean | optional |
Example Response
Not Found
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 guide for more details.
PUT /v1/terminations/{employee_id}
/v1/employees/{employee_id}/forms
Get a list of all employee’s forms
scope: employee_forms:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/employees/{employee_id}/forms
/v1/employees/{employee_id}/forms/{form_id}
Get an employee form
scope: employee_forms:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| form_id | path | optional | string | The UUID of the form |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/employees/{employee_id}/forms/{form_id}
/v1/employees/{employee_id}/forms/{form_id}/pdf
Get the link to the form PDF
scope: employee_forms:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| form_id | path | optional | string | The UUID of the form |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/employees/{employee_id}/forms/{form_id}/pdf
/v1/employees/{employee_id}/forms/{form_id}/sign
Sign a company form
scope: employee_forms:sign
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| form_id | path | optional | string | The UUID of the form |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EmployeeFormsSignFormRequest
| Property | Type | Required |
|---|---|---|
| agree | boolean | required |
| signature_text | string | required |
| signed_by_ip_address | string | required |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
PUT /v1/employees/{employee_id}/forms/{form_id}/sign
/v1/sandbox/generate_w2
🚧 Demo action
This action is only available in the Demo environment
Generates a W2 document for testing purposes.
scope: employees:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EmployeeFormsGenerateW2DocumentRequest
| Property | Type | Required |
|---|---|---|
| year | integer | optional |
| employee_id | string | required |
OK
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
POST /v1/sandbox/generate_w2
/v1/employees/{employee_id}/bank_accounts
Returns all employee bank accounts.
scope: employee_payment_methods:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| page | query | optional | number | The page that is requested. When unspecified, will load all objects unless endpoint forces pagination. |
| per | query | optional | number | Number of objects per page. For majority of endpoints will default to 25 |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EmployeePaymentMethodListBankAccountsRequest
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/employees/{employee_id}/bank_accounts
/v1/employees/{employee_id}/bank_accounts
Creates an employee bank account. An employee can have multiple
bank accounts. Note that creating an employee bank account will also update
the employee’s payment method.
scope: employee_payment_methods:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EmployeePaymentMethodCreateBankAccountRequest
| Property | Type | Required |
|---|---|---|
| name | string | required |
| account_type | string | required |
| account_number | string | required |
| routing_number | string | required |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
POST /v1/employees/{employee_id}/bank_accounts
/v1/employees/{employee_id}/bank_accounts/{bank_account_uuid}
Deletes an employee bank account. To update an employee’s bank
account details, delete the bank account first and create a new one.
scope: employee_payment_methods:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| bank_account_uuid | path | optional | string | The UUID of the bank account |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
No Content
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
DELETE /v1/employees/{employee_id}/bank_accounts/{bank_account_uuid}
/v1/employees/{employee_id}/payment_method
Fetches an employee’s payment method. An employee payment method
describes how the payment should be split across the employee’s associated
bank accounts.
scope: employee_payment_methods:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/employees/{employee_id}/payment_method
/v1/employees/{employee_id}/payment_method
Updates an employee’s payment method. Note that creating an employee
bank account will also update the employee’s payment method.
scope: employee_payment_methods:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EmployeePaymentMethodUpdatePaymentMethodRequest
| Property | Type | Required |
|---|---|---|
| type | string | required |
| splits | array | optional |
| └ name | string | optional |
| └ uuid | string | optional |
| └ priority | integer | optional |
| └ split_amount | integer | optional |
| version | string | required |
| split_by | string | optional |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
PUT /v1/employees/{employee_id}/payment_method
/v1/employees/{employee_uuid}/federal_taxes
Get attributes relevant for an employee’s federal taxes.
scope: employee_federal_taxes:read
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_uuid | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
GET /v1/employees/{employee_uuid}/federal_taxes
/v1/employees/{employee_uuid}/federal_taxes
Update attributes relevant for an employee’s federal taxes.
scope: employee_federal_taxes:write
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_uuid | path | optional | string | The UUID of the employee |
| X-Gusto-API-Version | header | optional | string | Determines the date-based API version associated with your API call. If none is provided, your application’s minimum API version is used. |
application/json
EmployeeTaxSetupUpdateFederalTaxesRequest
| Property | Type | Required |
|---|---|---|
| version | string | required |
| two_jobs | boolean | optional |
| deductions | string | optional |
| other_income | string | optional |
| w4_data_type | string | optional |
| filing_status | string | optional |
| dependents_amount | string | optional |
| extra_withholding | string | optional |
Example response
Not Found
The requested resource does not exist. Make sure the provided ID/UUID is valid.
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 guide for more details.
PUT /v1/employees/{employee_uuid}/federal_taxes