Employeetaxsetup 2 endpoints

GET /v1/employees/{employee_uuid}/state_taxes

Get attributes relevant for an employee’s state taxes.

The data required to correctly calculate an employee’s state taxes varies by both home and work location. This API returns information about each question that must be answered grouped by state. Mostly commonly, an employee lives and works in the same state and will only have questions for a single state. The response contains metadata about each question, the type of answer expected, and the current answer stored in Gusto for that question.

Answers are represented by an array. Today, this array can only be empty or contain exactly one element, but is designed to allow for forward compatibility with effective-dated fields. Until effective dated answers are supported, the valid_from and valid_up_to must always be "2010-01-01" and null respectively.

About filing new hire reports

Payroll Admins are responsible for filing a new hire report for each Employee. The file_new_hire_report question will only be listed if:

  • the employee.onboarding_status is one of the following:
    • admin_onboarding_incomplete
    • self_onboarding_awaiting_admin_review
  • that employee’s work state requires filing a new hire report

scope: employee_state_taxes:read

operationId: EmployeeTaxSetup_getStateTaxes

Parameters

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.

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/employees/{employee_uuid}/state_taxes
PUT /v1/employees/{employee_uuid}/state_taxes

Update attributes relevant for an employee’s state taxes.

As described for the GET endpoint, the answers must be supplied in the effective-dated format, but currently only a single answer will be accepted - valid_from and valid_up_to must be "2010-01-01" and null respectively.

scope: employee_state_taxes:write

operationId: EmployeeTaxSetup_updateStateTaxes

Parameters

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.

Request Body

application/json
schema EmployeeTaxSetupUpdateStateTaxesRequest
Property Type Required
states array required
state string required
questions array optional
key string required
answers array optional
value string required
valid_from string required
valid_up_to object optional

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

422

Unprocessable Entity

PUT /v1/employees/{employee_uuid}/state_taxes

Employees 10 endpoints

GET /v1/companies/{company_id}/employees

Get all of the employees, onboarding, active and terminated, for a given company.

scope: employees:read

operationId: Employees_listCompanyEmployees

Parameters

Name In Required Type Description
company_id path optional string

The UUID of the company

terminated query optional boolean

Filters employees by the provided boolean

include query optional string

Include the requested attribute(s) in each employee response, multiple options are comma separated. Available options:

  • all_compensations: Include all effective dated compensations for each job instead of only the current compensation
  • custom_fields: Include employees’ custom fields
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.

Request Body

application/json
schema EmployeesListCompanyEmployeesRequest

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/companies/{company_id}/employees
POST /v1/companies/{company_id}/employees

Create an employee.

scope: employees:manage

operationId: Employees_createEmployee

Parameters

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.

Request Body

Create an employee.

application/json
schema EmployeesCreateEmployeeRequest
Property Type Required
ssn string optional
email string optional
last_name string required
first_name string required
date_of_birth string optional
middle_initial string optional
self_onboarding boolean optional

Responses

201

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

POST /v1/companies/{company_id}/employees
DELETE /v1/employees/{employee_id}

Use this endpoint to delete an employee who is in onboarding. Deleting
an onboarded employee is not allowed. Please check out the Terminations api
if you need to terminate an onboarded employee.

scope: employees:manage

operationId: Employees_deleteOnboardingEmployee

Parameters

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.

Responses

204

No Content

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

DELETE /v1/employees/{employee_id}
GET /v1/employees/{employee_id}

Get an employee.

scope: employees:read

operationId: Employees_getEmployeeById

Parameters

Name In Required Type Description
employee_id path optional string

The UUID of the employee

include query optional string

Include the requested attribute(s) in each employee response, multiple options are comma separated. Available options:

  • all_compensations: Include all effective dated compensations for each job instead of only the current compensation
  • custom_fields: Include employees’ custom fields
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.

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/employees/{employee_id}
PUT /v1/employees/{employee_id}

Update an employee.

scope: employees:write

operationId: Employees_updateEmployee

Parameters

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.

Request Body

Update an employee.

application/json
schema EmployeesUpdateEmployeeRequest
Property Type Required
ssn string optional
email string optional
version string required
last_name string optional
first_name string optional
date_of_birth string optional
middle_initial string optional
two_percent_shareholder boolean optional

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

PUT /v1/employees/{employee_id}
GET /v1/employees/{employee_id}/custom_fields

Returns a list of the employee’s custom fields.

scope: employees:read

operationId: Employees_getCustomFields

Parameters

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.

Responses

200

OK

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/employees/{employee_id}/custom_fields
PUT /v1/employees/{employee_id}/finish_onboarding

This endpoint is currently supported but will eventually be deprecated; please use /v1/employees/{employee_id}/onboarding_status instead.

Call this endpoint as the very last step of employee onboarding to complete their onboarding. When successful, the employee’s onboarded attribute will be updated to true, indicating that they can be included in company’s payrolls.

operationId: Employees_completeOnboarding

Parameters

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.

Responses

200

Example response

PUT /v1/employees/{employee_id}/finish_onboarding
GET /v1/employees/{employee_id}/onboarding_status

Description

Retrieves an employee’s onboarding status. The data returned helps inform the required onboarding steps and respective completion status.

scope: employees:read

onboarding_status

Admin-facilitated onboarding

| onboarding_status | Description |
|:——————|————:|
| admin_onboarding_incomplete | Admin needs to complete the full employee-onboarding. |
| onboarding_completed | Employee has been fully onboarded and verified. |

Employee self-onboarding

| onboarding_status | Description |
|:——————|————:|
| admin_onboarding_incomplete | Admin needs to enter basic information about the employee. |
| self_onboarding_pending_invite | Admin has the intention to invite the employee to self-onboard (e.g., marking a checkbox), but the system has not yet sent the invitation. |
| self_onboarding_invited | Employee has been sent an invitation to self-onboard. |
| self_onboarding_invited_started | Employee has started the self-onboarding process. |
| self_onboarding_invited_overdue | Employee’s start date has passed, and employee has still not completed self-onboarding. |
| self_onboarding_completed_by_employee | Employee has completed entering in their information. The status should be updated via API to “self_onboarding_awaiting_admin_review” from here, once the Admin has started reviewing. |
| self_onboarding_awaiting_admin_review | Admin has started to verify the employee’s information. |
| onboarding_completed | Employee has been fully onboarded and verified. |

onboarding_steps

onboarding_steps Requirement(s) to be completed
personal_details Add employee’s first name, last name, email, date of birth, social security number
compensation_details Associate employee to a job & compensation.
add_work_address Add employee work address.
add_home_address Add employee home address.
federal_tax_setup Set up federal tax withholdings.
state_tax_setup Set up state tax withholdings.
direct_deposit_setup (optional) Set up employee’s direct deposit.
employee_form_signing Employee forms (e.g., W4, direct deposit authorization) are generated & signed.
file_new_hire_report File a new hire report for this employee.
admin_review Admin reviews & confirms employee details (only required for Employee self-onboarding)
operationId: Employees_getOnboardingStatus

Parameters

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.

Responses

200

Example response.

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/employees/{employee_id}/onboarding_status
PUT /v1/employees/{employee_id}/onboarding_status

scope: employees:manage

Updates an employee’s onboarding status.
Below is a list of valid onboarding status changes depending on the intended action to be performed on behalf of the employee.

Action current onboarding_status new onboarding_status
Mark an employee as self-onboarding admin_onboarding_incomplete self_onboarding_pending_invite
Invite an employee to self-onboard admin_onboarding_incomplete or self_onboarding_pending_invite self_onboarding_invited
Cancel an employee’s self-onboarding self_onboarding_invited or self_onboarding_pending_invite admin_onboarding_incomplete
Review an employee’s self-onboarded info self_onboarding_completed_by_employee self_onboarding_awaiting_admin_review
Finish an employee’s onboarding admin_onboarding_incomplete or self_onboarding_awaiting_admin_review onboarding_completed
operationId: Employees_updateOnboardingStatus

Parameters

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.

Request Body

application/json
schema EmployeesUpdateOnboardingStatusRequest
Property Type Required
onboarding_status string required

Responses

200

Example response.

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

PUT /v1/employees/{employee_id}/onboarding_status
GET /v1/employees/{employee_uuid}/time_off_activities

Get employee time off activities.

scope: employee_time_off_activities:read

operationId: Employees_getTimeOffActivities

Parameters

Name In Required Type Description
employee_uuid path optional string

The UUID of the employee

time_off_type query optional string

The time off type name you want to query data for. ex: ‘sick’ or ‘vacation’

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.

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/employees/{employee_uuid}/time_off_activities

Events 1 endpoints

GET /v1/events

Fetch all events, going back up to 30 days, that your partner application has the required scopes for. Note that a partner does NOT have to have verified webhook subscriptions in order to utilize this endpoint.

📘 Token Authentication

This endpoint uses the organization level api token and the Token scheme with HTTP Authorization header.

scope: events:read

operationId: Events_get30DayEvents

Parameters

Name In Required Type Description
starting_after_uuid query optional string

A cursor for pagination. Returns all events occuring after the specified UUID (exclusive)

resource_uuid query optional string

The UUID of the company. If not specified, will return all events for all companies.

limit query optional string

Limits the number of objects returned in a single response, between 1 and 100. The default is 25

event_type query optional string

A string containing the exact event name (e.g. employee.created), or use a wildcard match to filter for a group of events (e.g. employee.*, *.created, notification.*.created etc.)

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.

Responses

200

Example response

GET /v1/events

Externalpayrolls 9 endpoints

GET /v1/companies/{company_uuid}/external_payrolls

Get an external payroll for a given company.

scope: external_payrolls:read

operationId: ExternalPayrolls_listForCompany

Parameters

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.

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/companies/{company_uuid}/external_payrolls
POST /v1/companies/{company_uuid}/external_payrolls

Creates a new external payroll for the company.

scope: external_payrolls:write

operationId: ExternalPayrolls_createNewPayroll

Parameters

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.

Request Body

application/json
schema ExternalPayrollsCreateNewPayrollRequest
Property Type Required
check_date string required
payment_period_end_date string required
payment_period_start_date string required

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

POST /v1/companies/{company_uuid}/external_payrolls
GET /v1/companies/{company_uuid}/external_payrolls/tax_liabilities

Get tax liabilities from aggregate external payrolls for a company.

scope: external_payrolls:read

operationId: ExternalPayrolls_getTaxLiabilities

Parameters

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.

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/companies/{company_uuid}/external_payrolls/tax_liabilities
PUT /v1/companies/{company_uuid}/external_payrolls/tax_liabilities

Update tax liabilities for a company.

scope: external_payrolls:write

operationId: ExternalPayrolls_updateTaxLiabilities

Parameters

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.

Request Body

application/json
schema ExternalPayrollsUpdateTaxLiabilitiesRequest
Property Type Required
liability_selections array optional
tax_id integer optional
unpaid_liability_amount number optional
last_unpaid_external_payroll_uuid string optional

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

PUT /v1/companies/{company_uuid}/external_payrolls/tax_liabilities
PUT /v1/companies/{company_uuid}/external_payrolls/tax_liabilities/finish

Finalizes tax liabilities for a company. All external payrolls edit action will be disabled.

scope: external_payrolls:write

operationId: ExternalPayrolls_finalizeTaxLiabilities

Parameters

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.

Responses

202

Accepted

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

PUT /v1/companies/{company_uuid}/external_payrolls/tax_liabilities/finish
DELETE /v1/companies/{company_uuid}/external_payrolls/{external_payroll_id}

Delete an external payroll.

scope: external_payrolls:write

operationId: ExternalPayrolls_deletePayroll

Parameters

Name In Required Type Description
company_uuid path optional string

The UUID of the company

external_payroll_id path optional string

The UUID of the external payroll

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.

Responses

204

No Content

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

DELETE /v1/companies/{company_uuid}/external_payrolls/{external_payroll_id}
GET /v1/companies/{company_uuid}/external_payrolls/{external_payroll_id}

Get an external payroll for a given company.

scope: external_payrolls:read

operationId: ExternalPayrolls_getById

Parameters

Name In Required Type Description
company_uuid path optional string

The UUID of the company

external_payroll_id path optional string

The UUID of the external payroll

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.

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/companies/{company_uuid}/external_payrolls/{external_payroll_id}
PUT /v1/companies/{company_uuid}/external_payrolls/{external_payroll_id}

Update an external payroll with a list of external payroll items

scope: external_payrolls:write

operationId: ExternalPayrolls_updatePayrollItems

Parameters

Name In Required Type Description
company_uuid path optional string

The UUID of the company

external_payroll_id path optional string

The UUID of the external payroll

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.

Request Body

application/json
schema ExternalPayrollsUpdatePayrollItemsRequest
Property Type Required
replace_fields boolean optional
external_payroll_items array optional
taxes array optional
amount string optional
tax_id integer optional
benefits array optional
benefit_id integer optional
employee_deduction_amount string optional
company_contribution_amount string optional
earnings array optional
hours string optional
amount string optional
earning_id integer optional
earning_type string optional
employee_uuid string optional

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

PUT /v1/companies/{company_uuid}/external_payrolls/{external_payroll_id}
GET /v1/companies/{company_uuid}/external_payrolls/{external_payroll_id}/calculate_taxes

Get tax suggestions for an external payroll. Earnings and/or benefits
data must be saved prior to the calculation in order to retrieve accurate
tax calculation.

scope: external_payrolls:read

operationId: ExternalPayrolls_getTaxSuggestions

Parameters

Name In Required Type Description
company_uuid path optional string

The UUID of the company

external_payroll_id path optional string

The UUID of the external payroll

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.

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/companies/{company_uuid}/external_payrolls/{external_payroll_id}/calculate_taxes

Federaltaxdetails 2 endpoints

GET /v1/companies/{company_id}/federal_tax_details

Fetches attributes relevant for a company’s federal taxes.

scope: company_federal_taxes:read

operationId: FederalTaxDetails_getAttributes

Parameters

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.

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/companies/{company_id}/federal_tax_details
PUT /v1/companies/{company_id}/federal_tax_details

Updates attributes relevant for a company’s federal taxes.
This information is required is to onboard a company for use with Gusto Embedded Payroll.

scope: company_federal_taxes:write

operationId: FederalTaxDetails_updateAttributes

Parameters

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.

Request Body

Attributes related to federal tax details that can be updated via this endpoint include:

application/json
schema FederalTaxDetailsUpdateAttributesRequest
Property Type Required
ein string optional
version string required
legal_name string optional
filing_form string optional
tax_payer_type string optional
taxable_as_scorp boolean optional

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

PUT /v1/companies/{company_id}/federal_tax_details

Flows 1 endpoints

POST /v1/companies/{company_uuid}/flows

Generate a link to access a pre-built workflow in Gusto white-label UI. For security, all generated flows will expire within 1 hour of inactivity or 24 hours from creation time, whichever comes first.

scope: flows:write

operationId: Flows_generateLink

Parameters

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.

Request Body

application/json
schema FlowsGenerateLinkRequest
Property Type Required
flow_type string required
entity_type string optional
entity_uuid string optional

Responses

201

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

POST /v1/companies/{company_uuid}/flows

Garnishments 4 endpoints

GET /v1/employees/{employee_id}/garnishments

Garnishments, or employee deductions, are fixed amounts or percentages deducted from an employee’s pay. They can be deducted a specific number of times or on a recurring basis. Garnishments can also have maximum deductions on a yearly or per-pay-period bases. Common uses for garnishments are court-ordered payments for child support or back taxes. Some companies provide loans to their employees that are repaid via garnishments.

scope: garnishments:read

operationId: Garnishments_getEmployeeGarnishments

Parameters

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.

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/employees/{employee_id}/garnishments
POST /v1/employees/{employee_id}/garnishments

Garnishments, or employee deductions, are fixed amounts or percentages deducted from an employee’s pay. They can be deducted a specific number of times or on a recurring basis. Garnishments can also have maximum deductions on a yearly or per-pay-period bases. Common uses for garnishments are court-ordered payments for child support or back taxes. Some companies provide loans to their employees that are repaid via garnishments.

scope: garnishments:write

operationId: Garnishments_createGarnishment

Parameters

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.

Request Body

application/json
schema GarnishmentsCreateGarnishmentRequest
Property Type Required
times integer optional
active boolean optional
amount string required
recurring boolean optional
description string required
court_ordered boolean required
annual_maximum string optional
pay_period_maximum string optional
deduct_as_percentage boolean optional

Responses

201

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

POST /v1/employees/{employee_id}/garnishments
GET /v1/garnishments/{garnishment_id}

Garnishments, or employee deductions, are fixed amounts or percentages deducted from an employee’s pay. They can be deducted a specific number of times or on a recurring basis. Garnishments can also have maximum deductions on a yearly or per-pay-period bases. Common uses for garnishments are court-ordered payments for child support or back taxes. Some companies provide loans to their employees that are repaid via garnishments.

scope: garnishments:read

operationId: Garnishments_getGarnishment

Parameters

Name In Required Type Description
garnishment_id path optional string

The UUID of the garnishment

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.

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/garnishments/{garnishment_id}
PUT /v1/garnishments/{garnishment_id}

Garnishments, or employee deductions, are fixed amounts or percentages deducted from an employee’s pay. They can be deducted a specific number of times or on a recurring basis. Garnishments can also have maximum deductions on a yearly or per-pay-period bases. Common uses for garnishments are court-ordered payments for child support or back taxes. Some companies provide loans to their employees that are repaid via garnishments.

scope: garnishments:write

operationId: Garnishments_updateGarnishment

Parameters

Name In Required Type Description
garnishment_id path optional string

The UUID of the garnishment

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.

Request Body

application/json
schema GarnishmentsUpdateGarnishmentRequest
Property Type Required
times integer optional
active boolean optional
amount string optional
version string required
recurring boolean optional
description string optional
court_ordered boolean optional
annual_maximum string optional
pay_period_maximum string optional
deduct_as_percentage boolean optional

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

PUT /v1/garnishments/{garnishment_id}

Generateddocuments 1 endpoints

GET /v1/generated_documents/{document_type}/{request_uuid}

Get a generated document given the request_uuid. The response will include the generation request’s status and, if complete, the relevant document urls.

scope: generated_documents:read

operationId: GeneratedDocuments_getDocumentByRequestUuid

Parameters

Name In Required Type Description
document_type path optional string

the type of document being generated

request_uuid path optional string

The UUID of the Generated Document Request

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.

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/generated_documents/{document_type}/{request_uuid}

Holidaypaypolicies 7 endpoints

DELETE /v1/companies/{company_uuid}/holiday_pay_policy

Delete a company’s holiday pay policy

scope: holiday_pay_policies:write

operationId: HolidayPayPolicies_deletePolicy

Parameters

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.

Responses

204

No Content

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

DELETE /v1/companies/{company_uuid}/holiday_pay_policy
GET /v1/companies/{company_uuid}/holiday_pay_policy

Get a company’s holiday pay policy

scope: holiday_pay_policies:read

operationId: HolidayPayPolicies_getCompanyPolicy

Parameters

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.

Responses

200

Holiday Pay Policy Object Example

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/companies/{company_uuid}/holiday_pay_policy
POST /v1/companies/{company_uuid}/holiday_pay_policy

Create a holiday pay policy for a company

scope: holiday_pay_policies:write

operationId: HolidayPayPolicies_createCompanyPolicy

Parameters

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.

Request Body

application/json
schema HolidayPayPoliciesCreateCompanyPolicyRequest
Property Type Required
federal_holidays object optional
mlk_day object optional
selected boolean optional
labor_day object optional
selected boolean optional
juneteenth object optional
selected boolean optional
columbus_day object optional
selected boolean optional
memorial_day object optional
selected boolean optional
thanksgiving object optional
selected boolean optional
veterans_day object optional
selected boolean optional
christmas_day object optional
selected boolean optional
new_years_day object optional
selected boolean optional
presidents_day object optional
selected boolean optional
independence_day object optional
selected boolean optional

Responses

200

Holiday Pay Policy Object Example

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

POST /v1/companies/{company_uuid}/holiday_pay_policy
PUT /v1/companies/{company_uuid}/holiday_pay_policy

Update a company’s holiday pay policy

scope: holiday_pay_policies:write

operationId: HolidayPayPolicies_updatePolicy

Parameters

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.

Request Body

application/json
schema HolidayPayPoliciesUpdatePolicyRequest
Property Type Required
version string required
federal_holidays object optional
mlk_day object optional
selected boolean optional
labor_day object optional
selected boolean optional
juneteenth object optional
selected boolean optional
columbus_day object optional
selected boolean optional
memorial_day object optional
selected boolean optional
thanksgiving object optional
selected boolean optional
veterans_day object optional
selected boolean optional
christmas_day object optional
selected boolean optional
new_years_day object optional
selected boolean optional
presidents_day object optional
selected boolean optional
independence_day object optional
selected boolean optional

Responses

200

Holiday Pay Policy Object Example

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

PUT /v1/companies/{company_uuid}/holiday_pay_policy
PUT /v1/companies/{company_uuid}/holiday_pay_policy/add

Add employees to a company’s holiday pay policy

scope: holiday_pay_policies:write

operationId: HolidayPayPolicies_addEmployeesToPolicy

Parameters

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.

Request Body

application/json
schema HolidayPayPoliciesAddEmployeesToPolicyRequest
Property Type Required
version string required
employees array optional
uuid string optional

Responses

200

Holiday Pay Policy Object Example

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

PUT /v1/companies/{company_uuid}/holiday_pay_policy/add
PUT /v1/companies/{company_uuid}/holiday_pay_policy/remove

Remove employees from a company’s holiday pay policy

scope: holiday_pay_policies:write

operationId: HolidayPayPolicies_removeEmployees

Parameters

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.

Request Body

application/json
schema HolidayPayPoliciesRemoveEmployeesRequest
Property Type Required
version string required
employees array optional
uuid string optional

Responses

200

Holiday Pay Policy Object Example

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

PUT /v1/companies/{company_uuid}/holiday_pay_policy/remove
GET /v1/companies/{company_uuid}/paid_holidays

Preview a company’s paid holidays

scope: holiday_pay_policies:read

operationId: HolidayPayPolicies_previewCompanyPaidHolidays

Parameters

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.

Request Body

application/json
schema HolidayPayPoliciesPreviewCompanyPaidHolidaysRequest
Property Type Required
year string optional

Responses

200

Paid Holidays Object Example

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

GET /v1/companies/{company_uuid}/paid_holidays

Industryselection 2 endpoints

GET /v1/companies/{company_id}/industry_selection

Get industry selection for the company.

scope: companies:read

operationId: IndustrySelection_getCompanyIndustrySelection

Parameters

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.

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/companies/{company_id}/industry_selection
PUT /v1/companies/{company_id}/industry_selection

Update the company industry selection by passing in industry classification codes: NAICS code, SICS code and industry title. Our UI is leveraging Middesk API to determine industry classification codes.

scope: companies:write

operationId: IndustrySelection_updateCompanyIndustrySelection

Parameters

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.

Request Body

application/json
schema IndustrySelectionUpdateCompanyIndustrySelectionRequest
Property Type Required
title string required
sic_codes array optional
naics_code string required

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

PUT /v1/companies/{company_id}/industry_selection

Introspection 2 endpoints

POST /oauth/token

Exchange a refresh token for a new access token.

The previous refresh_token will be revoked on the first usage of the new access_token.

The expires_in value is provided in seconds from when the access_token was generated.

operationId: Introspection_exchangeRefreshToken

Parameters

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.

Request Body

application/json
schema IntrospectionExchangeRefreshTokenRequest
Property Type Required
client_id string required
grant_type string required
redirect_uri string optional
client_secret string required
refresh_token string required

Responses

200

Example response

POST /oauth/token
GET /v1/token_info

Returns scope and resource information associated with the current access token.

operationId: Introspection_getCurrentAccessTokenInfo

Parameters

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.

Responses

200

Example response

GET /v1/token_info

Invoices 1 endpoints

GET /v1/invoices/{invoice_period}

Retrieve data for active companies used to calculate invoices for Gusto Embedded Payroll. A company is considered active for an invoice period if they are an active partner managed company, have run payroll or created contractor payments since becoming a partner managed company, and are not suspended at any point during the invoice period. This endpoint forces pagination, with 100 results returned at a time. You can learn more about our pagination here: pagination guide

📘 Token Authentication

This endpoint uses the organization level api token and the Token scheme with HTTP Authorization header

scope: invoices:read

operationId: Invoices_getInvoicingDataForCompanies

Parameters

Name In Required Type Description
invoice_period path optional string

The month we are calculating the invoice for. Must be in YYYY-MM format

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

company_uuids query optional string

Filter companies returned in the active_companies response, will return an error if company not active during provided invoice period. i.e. ?company_uuids=781922d8-e780-4b6b-bf74-ee303166d022,bbbca930-7322-491c-ba7f-98707a52a9c5

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.

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

GET /v1/invoices/{invoice_period}

Jobsandcompensations 8 endpoints

DELETE /v1/compensations/{compensation_id}

Compensations contain information on how much is paid out for a job. Jobs may have many compensations, but only one that is active. The current compensation is the one with the most recent effective_date. This endpoint deletes a compensation for a job that hasn’t been processed on payroll.

scope: jobs:write

operationId: JobsAndCompensations_removeCompensation

Parameters

Name In Required Type Description
compensation_id path optional string

The UUID of the compensation

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.

Responses

204

No Content

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

DELETE /v1/compensations/{compensation_id}
GET /v1/compensations/{compensation_id}

Compensations contain information on how much is paid out for a job. Jobs may have many compensations, but only one that is active. The current compensation is the one with the most recent effective_date.

scope: jobs:read

operationId: JobsAndCompensations_getCompensationById

Parameters

Name In Required Type Description
compensation_id path optional string

The UUID of the compensation

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.

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/compensations/{compensation_id}
PUT /v1/compensations/{compensation_id}

Compensations contain information on how much is paid out for a job. Jobs may have many compensations, but only one that is active. The current compensation is the one with the most recent effective_date.

scope: jobs:write

operationId: JobsAndCompensations_updateCompensation

Parameters

Name In Required Type Description
compensation_id path optional string

The UUID of the compensation

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.

Request Body

application/json
schema JobsAndCompensationsUpdateCompensationRequest
Property Type Required
rate string optional
version string required
flsa_status string optional
payment_unit string optional
minimum_wages array optional
uuid string optional
adjust_for_minimum_wage boolean optional

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

PUT /v1/compensations/{compensation_id}
GET /v1/employees/{employee_id}/jobs

Get all of the jobs that an employee holds.

scope: jobs:read

operationId: JobsAndCompensations_getEmployeeJobs

Parameters

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

include query optional string

Available options:

  • all_compensations: Include all effective dated compensations for each job instead of only the current compensation
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.

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/employees/{employee_id}/jobs
POST /v1/employees/{employee_id}/jobs

Create a job.

scope: jobs:write

operationId: JobsAndCompensations_createJob

Parameters

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.

Request Body

Create a job.

application/json
schema JobsAndCompensationsCreateJobRequest
Property Type Required
title string required
hire_date string required
state_wc_covered boolean optional
state_wc_class_code string optional
two_percent_shareholder boolean optional

Responses

201

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

POST /v1/employees/{employee_id}/jobs
DELETE /v1/jobs/{job_id}

Deletes a specific job that an employee holds.

scope: jobs:write

operationId: JobsAndCompensations_deleteJobById

Parameters

Name In Required Type Description
job_id path optional string

The UUID of the job

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.

Responses

204

No Content

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

DELETE /v1/jobs/{job_id}
GET /v1/jobs/{job_id}

Get a job.

scope: jobs:read

operationId: JobsAndCompensations_getJobDetails

Parameters

Name In Required Type Description
job_id path optional string

The UUID of the job

include query optional string

Available options:

  • all_compensations: Include all effective dated compensations for the job instead of only the current compensation
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.

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/UUID is valid.

GET /v1/jobs/{job_id}
PUT /v1/jobs/{job_id}

Update a job.

scope: jobs:write

operationId: JobsAndCompensations_updateJob

Parameters

Name In Required Type Description
job_id path optional string

The UUID of the job

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.

Request Body

Update a job.

application/json
schema JobsAndCompensationsUpdateJobRequest
Property Type Required
title string optional
version string required
hire_date string optional
state_wc_covered boolean optional
state_wc_class_code string optional
two_percent_shareholder boolean optional

Responses

200

Example response

404

Not Found

The requested resource does not exist. Make sure the provided ID/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 guide for more details.

PUT /v1/jobs/{job_id}
Load more endpoints