Gusto API

Embedded payroll API

gusto.com/api-docs ↗
Version
2024-03-01
OpenAPI
3.0.0
Endpoints
213
Schemas
282
80
Quality
Updated
3 days ago
Hr hr payroll embedded
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.gusto-demo.com
https://api.gusto.com

Endpoints

Clear filters

Achtransactions 1 endpoints

GET /v1/companies/{company_uuid}/ach_transactions

Fetches all ACH transactions for a company.

scope: ach_transactions:read

operationId: AchTransactions_getAllForCompany

Parameters

Name In Required Type Description
company_uuid path optional string

The UUID of the company

contractor_payment_uuid query optional string

The UUID of the contractor payment

payroll_uuid query optional string

The UUID of the payroll

transaction_type query optional string

Used to filter the ACH transactions to only include those with a specific transaction type, such as “Credit employee pay”.

payment_direction query optional string

Used to filter the ACH transactions to only include those with a specific payment direction, either “credit” or “debit”.

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}/ach_transactions

Bankaccounts 1 endpoints

GET /v1/companies/{company_id}/bank_accounts

Returns company bank accounts. Currently, we only support a single default bank account per company.

scope: company_bank_accounts:read

operationId: BankAccounts_listCompanyBankAccounts

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}/bank_accounts

Companies 4 endpoints

GET /v1/companies/{company_id}

Get a company.
The employees:read scope is required to return home_address and non-work locations.
The company_admin:read scope is required to return primary_payroll_admin.
The signatories:read scope is required to return primary_signatory.

scope: companies:read

operationId: Companies_getCompany

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}
GET /v1/companies/{company_id}/admins

Returns a list of all the admins at a company

scope: company_admin:read

operationId: Companies_getAllAdmins

Parameters

Name In Required Type Description
company_id path optional string

The UUID of the company

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/companies/{company_id}/admins
GET /v1/companies/{company_id}/custom_fields

Returns a list of the custom fields of the company. Useful when you need to know the schema of custom fields for an entire company

scope: companies:read

operationId: Companies_getCustomFields

Parameters

Name In Required Type Description
company_id path optional string

The UUID of the company

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/companies/{company_id}/custom_fields
GET /v1/companies/{company_uuid}/onboarding_status

Get company’s onboarding status.
The data returned helps inform the required onboarding steps and respective completion status.

scope: company_onboarding_status:read

operationId: Companies_getOnboardingStatus

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}/onboarding_status

Companybenefits 6 endpoints

GET /v1/company_benefits/{company_benefit_id}

Company benefits represent the benefits that a company is offering to employees. This ties together a particular supported benefit with the company-specific information for the offering of that benefit.

Note that company benefits can be deactivated only when no employees are enrolled.

When with_employee_benefits parameter with true value is passed, employee_benefits:read scope is required to return employee_benefits.

scope: company_benefits:read

operationId: CompanyBenefits_getBenefitById

Parameters

Name In Required Type Description
company_benefit_id path optional string

The UUID of the company benefit

with_employee_benefits query optional boolean

Whether to return employee benefits associated with the 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.

Responses

200

Example response

404

Not Found

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

GET /v1/company_benefits/{company_benefit_id}
GET /v1/company_benefits/{company_benefit_id}/summary

Returns summary benefit data for the requested company benefit id.

Benefits containing PHI are only visible to applications with the company_benefits:read:phi scope.

scope: company_benefits:read

operationId: CompanyBenefits_getBenefitSummaryById

Parameters

Name In Required Type Description
company_benefit_id path optional string

The UUID of the company benefit

start_date query optional string

The start date for which to retrieve company benefit summary

end_date query optional string

The end date for which to retrieve company benefit summary

detailed query optional boolean

Display employee payroll item summary

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

Benefit summary response

404

Not Found

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

GET /v1/company_benefits/{company_benefit_id}/summary
GET /v1/benefits

Returns all benefits supported by Gusto.

The benefit object in Gusto contains high level information about a particular benefit type and its tax considerations. When companies choose to offer a benefit, they are creating a Company Benefit object associated with a particular benefit.

scope: benefits:read

operationId: CompanyBenefits_listSupportedBenefits

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

404

Not Found

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

GET /v1/benefits
GET /v1/benefits/{benefit_id}

Returns a benefit supported by Gusto.

The benefit object in Gusto contains high level information about a particular benefit type and its tax considerations. When companies choose to offer a benefit, they are creating a Company Benefit object associated with a particular benefit.

scope: benefits:read

operationId: CompanyBenefits_getSupportedBenefitById

Parameters

Name In Required Type Description
benefit_id path optional string

The benefit type in Gusto.

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

Supported benefit response

404

Not Found

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

GET /v1/benefits/{benefit_id}
GET /v1/benefits/{benefit_id}/requirements

Returns field requirements for the requested benefit type.

scope: benefits:read

operationId: CompanyBenefits_getBenefitFieldsRequirementsById

Parameters

Name In Required Type Description
benefit_id path optional string

The benefit type in Gusto.

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

Benefit type requirements response

404

Not Found

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

GET /v1/benefits/{benefit_id}/requirements
GET /v1/companies/{company_id}/company_benefits

Company benefits represent the benefits that a company is offering to employees. This ties together a particular supported benefit with the company-specific information for the offering of that benefit.

Note that company benefits can be deactivated only when no employees are enrolled.

Benefits containing PHI are only visible to applications with the company_benefits:read:phi scope.

scope: company_benefits:read

operationId: CompanyBenefits_getBenefitsForCompany

Parameters

Name In Required Type Description
company_id path optional string

The UUID of the company

enrollment_count query optional boolean

Whether to return employee enrollment count

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}/company_benefits

Companyforms 3 endpoints

GET /v1/companies/{company_id}/forms

Get a list of all company’s forms

scope: company_forms:read

operationId: CompanyForms_getAllForms

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}/forms
GET /v1/forms/{form_id}

Get a company form

scope: company_forms:read

operationId: CompanyForms_getFormById

Parameters

Name In Required Type Description
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.

Responses

200

Example response

404

Not Found

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

GET /v1/forms/{form_id}
GET /v1/forms/{form_id}/pdf

Get the link to the form PDF

scope: company_forms:read

operationId: CompanyForms_getPdfLink

Parameters

Name In Required Type Description
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.

Responses

200

Example response

404

Not Found

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

GET /v1/forms/{form_id}/pdf

Contractorforms 3 endpoints

GET /v1/contractors/{contractor_uuid}/forms

Get a list of all contractor’s forms

scope: contractor_forms:read

operationId: ContractorForms_listAll

Parameters

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.

Responses

200

Example response

404

Not Found

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

GET /v1/contractors/{contractor_uuid}/forms
GET /v1/contractors/{contractor_uuid}/forms/{form_id}

Get a contractor form

scope: contractor_forms:read

operationId: ContractorForms_getByIdForm

Parameters

Name In Required Type Description
contractor_uuid path optional string

The UUID of the contractor

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.

Responses

200

Example response

404

Not Found

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

GET /v1/contractors/{contractor_uuid}/forms/{form_id}
GET /v1/contractors/{contractor_uuid}/forms/{form_id}/pdf

Get the link to the form PDF

scope: contractor_forms:read

operationId: ContractorForms_getPdfLink

Parameters

Name In Required Type Description
contractor_uuid path optional string

The UUID of the contractor

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.

Responses

200

Example response

404

Not Found

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

GET /v1/contractors/{contractor_uuid}/forms/{form_id}/pdf

Contractorpaymentmethod 2 endpoints

GET /v1/contractors/{contractor_uuid}/bank_accounts

Returns all contractor bank accounts.

scope: contractor_payment_methods:read

operationId: ContractorPaymentMethod_listBankAccounts

Parameters

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.

Responses

200

Example response

404

Not Found

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

GET /v1/contractors/{contractor_uuid}/bank_accounts
GET /v1/contractors/{contractor_uuid}/payment_method

Fetches a contractor’s payment method. A contractor payment method
describes how the payment should be split across the contractor’s associated
bank accounts.

scope: contractor_payment_methods:read

operationId: ContractorPaymentMethod_getContractorPaymentMethod

Parameters

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.

Responses

200

Example response

404

Not Found

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

GET /v1/contractors/{contractor_uuid}/payment_method

Contractorpayments 4 endpoints

GET /v1/contractor_payments/{contractor_payment_uuid}/receipt

Returns a contractor payment receipt.

Notes:

  • Receipts are only available for direct deposit payments and are only available once those payments have been funded.
  • Payroll Receipt requests for payrolls which do not have receipts available (e.g. payment by check) will return a 404 status.
  • Hour and dollar amounts are returned as string representations of numeric decimals.
  • Dollar amounts are represented to the cent.
  • If no data has yet be inserted for a given field, it defaults to “0.00” (for fixed amounts).

scope: payrolls:read

operationId: ContractorPayments_getSingleReceipt

Parameters

Name In Required Type Description
contractor_payment_uuid path optional string

The UUID of the contractor payment

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/contractor_payments/{contractor_payment_uuid}/receipt
GET /v1/companies/{company_id}/contractor_payments

Returns an object containing individual contractor payments, within a given time period, including totals.

scope: payrolls:read

operationId: ContractorPayments_getWithinTimePeriodTotals

Parameters

Name In Required Type Description
company_id path optional string

The UUID of the company

start_date query required string

The time period for which to retrieve contractor payments

end_date query required string

The time period for which to retrieve contractor payments

contractor_uuid query optional string

The UUID of the contractor. When specified, will load all payments for that contractor.

group_by_date query optional boolean

Display contractor payments results group by check date if set to true.

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

A JSON object containing contractor payments information

404

Not Found

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

GET /v1/companies/{company_id}/contractor_payments
GET /v1/companies/{company_id}/contractor_payments/{contractor_payment_id}

Returns a single contractor payments

scope: payrolls:read

operationId: ContractorPayments_getSinglePayment

Parameters

Name In Required Type Description
company_id path optional string

The UUID of the company

contractor_payment_id path optional string

The UUID of the contractor payment

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}/contractor_payments/{contractor_payment_id}
GET /v1/companies/{company_uuid}/contractor_payments/preview

Returns a debit_date dependent on the ACH payment speed of the company.

If the payment method is Check or Historical payment, the debit_date will be the same as the check_date.

scope: payrolls:read

operationId: ContractorPayments_previewDebitDate

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

a list of contractor payments.

application/xml
schema ContractorPaymentsPreviewDebitDateRequest1
application/json
schema ContractorPaymentsPreviewDebitDateRequest
Property Type Required
contractor_payments array optional
date string optional
wage integer optional
bonus integer optional
hours integer optional
hourly_rate integer optional
reimbursement integer optional
payment_method string optional
contractor_uuid string optional

Responses

200

OK

404

Not Found

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

422

Unprocessable Entity (WebDAV)

GET /v1/companies/{company_uuid}/contractor_payments/preview

Contractors 4 endpoints

GET /v1/contractors/{contractor_id}

Get a contractor.

scope: contractors:read

operationId: Contractors_getById

Parameters

Name In Required Type Description
contractor_id 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.

Responses

200

Example response

404

Not Found

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

GET /v1/contractors/{contractor_id}
GET /v1/contractors/{contractor_uuid}/address

The address of a contractor is used to determine certain tax information about them. Addresses are geocoded on create and update to ensure validity.

scope: contractors:read

operationId: Contractors_getAddress

Parameters

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.

Responses

200

Example response

404

Not Found

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

GET /v1/contractors/{contractor_uuid}/address
GET /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

Admin-facilitated onboarding

| 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. |

Contractor self-onboarding

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

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.
operationId: Contractors_getOnboardingStatus

Parameters

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.

Responses

200

Example response.

404

Not Found

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

GET /v1/contractors/{contractor_uuid}/onboarding_status
GET /v1/companies/{company_id}/contractors

Get all contractors, active and inactive, individual and business, for a company.

scope: contractors:read

operationId: Contractors_getCompanyContractors

Parameters

Name In Required Type Description
company_id path optional string

The UUID of the company

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/companies/{company_id}/contractors

Departments 2 endpoints

GET /v1/departments/{department_uuid}

Get a department given the UUID

scope: departments:read

operationId: Departments_getDepartmentByUuid

Parameters

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.

Responses

200

Department Object Example

404

Not Found

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

GET /v1/departments/{department_uuid}
GET /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

operationId: Departments_getAllWithEmployees

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

List of departments

404

Not Found

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

GET /v1/companies/{company_uuid}/departments

Earningtypes 1 endpoints

GET /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.

Default Earning Type

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 Type

Custom earning types are all the other earning types added specifically for a company.

scope: payrolls:read

operationId: EarningTypes_getAll

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}/earning_types

Employeeaddresses 4 endpoints

GET /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

operationId: EmployeeAddresses_getHomeAddresses

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

List of employee addresses

404

Not Found

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

GET /v1/employees/{employee_id}/home_addresses
GET /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

operationId: EmployeeAddresses_listWorkAddresses

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

List of employee work addresses

404

Not Found

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

GET /v1/employees/{employee_id}/work_addresses
GET /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

operationId: EmployeeAddresses_getHomeAddress

Parameters

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.

Responses

200

Example response

404

Not Found

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

GET /v1/home_addresses/{home_address_uuid}
GET /v1/work_addresses/{work_address_uuid}

The work address of an employee is used for payroll tax purposes.

scope: employees:read

operationId: EmployeeAddresses_getWorkAddress

Parameters

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.

Responses

200

Example response

404

Not Found

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

GET /v1/work_addresses/{work_address_uuid}

Employeebenefits 2 endpoints

GET /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

operationId: EmployeeBenefits_getEmployeeBenefitById

Parameters

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.

Responses

200

Example response

404

Not Found

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

GET /v1/employee_benefits/{employee_benefit_id}
GET /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

operationId: EmployeeBenefits_getAllForEmployee

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}/employee_benefits

Employeeemployments 3 endpoints

GET /v1/employees/{employee_id}/employment_history

Retrieve the employment history for a given employee, which includes termination and rehire.

scope: employments:read

operationId: EmployeeEmployments_getHistory

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}/employment_history
GET /v1/employees/{employee_id}/rehire

Retrieve an employee’s rehire, which contains information on when the employee returns to work.

scope: employments:read

operationId: EmployeeEmployments_getRehire

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.
  • The employee’s employment is not in the right state.
GET /v1/employees/{employee_id}/rehire
GET /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

operationId: EmployeeEmployments_listEmployeeTerminations

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}/terminations

Employeeforms 3 endpoints

GET /v1/employees/{employee_id}/forms

Get a list of all employee’s forms

scope: employee_forms:read

operationId: EmployeeForms_getAllEmployeeForms

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}/forms
GET /v1/employees/{employee_id}/forms/{form_id}

Get an employee form

scope: employee_forms:read

operationId: EmployeeForms_getFormById

Parameters

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.

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}/forms/{form_id}
GET /v1/employees/{employee_id}/forms/{form_id}/pdf

Get the link to the form PDF

scope: employee_forms:read

operationId: EmployeeForms_getPdfLink

Parameters

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.

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}/forms/{form_id}/pdf

Employeepaymentmethod 2 endpoints

GET /v1/employees/{employee_id}/bank_accounts

Returns all employee bank accounts.

scope: employee_payment_methods:read

operationId: EmployeePaymentMethod_listBankAccounts

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.

Request Body

application/json
schema EmployeePaymentMethodListBankAccountsRequest

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}/bank_accounts
GET /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

operationId: EmployeePaymentMethod_getBankAccounts

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}/payment_method

Employeetaxsetup 2 endpoints

GET /v1/employees/{employee_uuid}/federal_taxes

Get attributes relevant for an employee’s federal taxes.

scope: employee_federal_taxes:read

operationId: EmployeeTaxSetup_getFederalTaxesById

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}/federal_taxes
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

Employees 5 endpoints

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}
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
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
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
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

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 4 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
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
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}
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 1 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

Garnishments 2 endpoints

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}
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

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 2 endpoints

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
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 1 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

Introspection 1 endpoints

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 4 endpoints

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}
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
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}
GET /v1/jobs/{job_id}/compensations

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. By default the API returns only the current compensation - see the include query parameter for retrieving all compensations.

Note: Currently the API does not support creating multiple compensations per job - creating a compensation with the same job_uuid as another will fail with a relevant error.

Use flsa_status to determine if an employee is eligible for overtime.

scope: jobs:read

operationId: JobsAndCompensations_getJobCompensations

Parameters

Name In Required Type Description
job_id path optional string

The UUID of the job

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/jobs/{job_id}/compensations

Locations 3 endpoints

GET /v1/locations/{location_id}

Get a location.

scope: companies:read

operationId: Locations_getById

Parameters

Name In Required Type Description
location_id path optional string

The UUID of the location

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/locations/{location_id}
GET /v1/locations/{location_uuid}/minimum_wages

Get minimum wages for a location

scope: companies:read

operationId: Locations_getMinimumWages

Parameters

Name In Required Type Description
location_uuid path optional string

The UUID of the location

effective_date query optional string
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/locations/{location_uuid}/minimum_wages
GET /v1/companies/{company_id}/locations

Company locations represent all addresses associated with a company. These can be filing addresses, mailing addresses, and/or work locations; one address may serve multiple, or all, purposes.

Since all company locations are subsets of locations, retrieving or updating an individual record should be done via the locations endpoints.

scope: companies:read

operationId: Locations_getCompanyLocations

Parameters

Name In Required Type Description
company_id path optional string

The UUID of the company

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/companies/{company_id}/locations

Notifications 1 endpoints

GET /v1/notifications/{notification_uuid}

Upon receiving a notification webhook event, use this endpoint to fetch the notification’s details. The notification details include basic suggested content that can help you build notifications in your platform.

Note: partners are responsible for the delivery and any custom state management of notifications in their application. Refer to our partner notification guide for more details.

If the notification UUID is not found, the response will be 404 Not Found. If the notification’s supporting data is no longer valid, the response will be 422 Unprocessable Entity.

scope: notifications:read

operationId: Notifications_getDetails

Parameters

Name In Required Type Description
notification_uuid path optional string

The UUID of the notification

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/notifications/{notification_uuid}

Payschedules 6 endpoints

GET /v1/companies/{company_id}/pay_periods

Pay periods are the foundation of payroll. Compensation, time & attendance, taxes, and expense reports all rely on when they happened. To begin submitting information for a given payroll, we need to agree on the time period.

By default, this endpoint returns pay periods starting from 6 months ago to the date today. Use the start_date and end_date parameters to change the scope of the response. End dates can be up to 3 months in the future and there is no limit on start dates.

Starting in version ‘2023-04-01’, the eligible_employees attribute was removed from the response. The eligible employees for a payroll are determined by the employee_compensations returned from the payrolls#prepare endpoint.

scope: payrolls:read

operationId: PaySchedules_getPayPeriods

Parameters

Name In Required Type Description
company_id path optional string

The UUID of the company

start_date query optional string
end_date query optional string
payroll_types query optional string

regular and/or transition. Multiple options are comma separated. The default is regular pay periods if nothing is passed in.

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}/pay_periods
GET /v1/companies/{company_id}/pay_periods/unprocessed_termination_pay_periods

When a payroll admin terminates an employee and selects “Dismissal Payroll” as the employee’s final payroll, their last pay period will appear on the list.

This endpoint returns the unprocessed pay periods for past and future terminated employees in a given company.

scope: payrolls:read

operationId: PaySchedules_getUnprocessedTerminationPayPeriods

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}/pay_periods/unprocessed_termination_pay_periods
GET /v1/companies/{company_id}/pay_schedules

The pay schedule object in Gusto captures the details of when employees work and when they should be paid. A company can have multiple pay schedules.

scope: pay_schedules:read

operationId: PaySchedules_listForCompany

Parameters

Name In Required Type Description
company_id path optional string

The UUID of the company

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/companies/{company_id}/pay_schedules
GET /v1/companies/{company_id}/pay_schedules/assignments

This endpoint returns the current pay schedule assignment for a company, with pay schedule and employee/department mappings depending on the pay schedule type.

scope: pay_schedules:read

operationId: PaySchedules_getAssignments

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}/pay_schedules/assignments
GET /v1/companies/{company_id}/pay_schedules/preview

Provides a preview of a pay schedule with the specified parameters

scope: pay_schedules:write

operationId: PaySchedules_previewPayScheduleDates

Parameters

Name In Required Type Description
company_id path optional string

The UUID of the company

frequency query optional string

The frequency that employees on this pay schedule are paid with Gusto.

anchor_pay_date query optional string

The first date that employees on this pay schedule are paid with Gusto.

anchor_end_of_pay_period query optional string

The last date of the first pay period. This can be the same date as the anchor pay date.

day_1 query optional integer

An integer between 1 and 31 indicating the first day of the month that employees are paid. This field is only relevant for pay schedules with the “Twice per month” and “Monthly” frequencies. It will be null for pay schedules with other frequencies.

day_2 query optional integer

An integer between 1 and 31 indicating the second day of the month that employees are paid. This field is the second pay date for pay schedules with the “Twice per month” frequency. For semi-monthly pay schedules, set this field to 31. For months shorter than 31 days, we will set the second pay date to the last day of the month. It will be null for pay schedules with other frequencies.

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

GET /v1/companies/{company_id}/pay_schedules/preview
GET /v1/companies/{company_id}/pay_schedules/{pay_schedule_id}

The pay schedule object in Gusto captures the details of when employees work and when they should be paid. A company can have multiple pay schedules.

scope: pay_schedules:read

operationId: PaySchedules_getDetails

Parameters

Name In Required Type Description
company_id path optional string

The UUID of the company

pay_schedule_id path optional string

The UUID of the pay schedule

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}/pay_schedules/{pay_schedule_id}

Paymentconfigs 1 endpoints

GET /v1/companies/{company_uuid}/payment_configs

Get payment speed for the company and fast payment limit (1-day is only applicable to partners that opt in).

scope: company_payment_configs:read

operationId: PaymentConfigs_getCompanyPaymentConfigs

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}/payment_configs

Payrolls 7 endpoints

GET /v1/payrolls/{payroll_id}/employees/{employee_id}/pay_stub

Get an employee’s pay stub for the specified payroll. By default, an application/pdf response will be returned. No other content types are currently supported, but may be supported in the future.

scope: pay_stubs:read

operationId: Payrolls_getEmployeePayStub

Parameters

Name In Required Type Description
payroll_id path optional string

The UUID of the payroll

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

OK

404

Not Found

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

GET /v1/payrolls/{payroll_id}/employees/{employee_id}/pay_stub
GET /v1/payrolls/{payroll_uuid}/receipt

Returns a payroll receipt.

Notes:

  • Hour and dollar amounts are returned as string representations of numeric decimals.
  • Dollar amounts are represented to the cent.
  • If no data has yet be inserted for a given field, it defaults to “0.00” (for fixed amounts).

scope: payrolls:read

operationId: Payrolls_getSingleReceipt

Parameters

Name In Required Type Description
payroll_uuid path optional string

The UUID of the 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/payrolls/{payroll_uuid}/receipt
GET /v1/companies/{company_id}/payroll_reversals

Returns all approved Payroll Reversals for a Company.

scope: payrolls:read

operationId: Payrolls_approvedReversals

Parameters

Name In Required Type Description
company_id path optional string

The UUID of the company

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/companies/{company_id}/payroll_reversals
GET /v1/companies/{company_id}/payrolls

Returns a list of payrolls for a company. You can change the payrolls returned by updating the processing_status, payroll_types, start_date, & end_date params.

By default, will return processed, regular payrolls for the past 6 months.

Notes:

  • Dollar amounts are returned as string representations of numeric decimals, are represented to the cent.
  • end_date can be at most 3 months in the future and start_date and end_date can’t be more than 1 year apart.

scope: payrolls:read

operationId: Payrolls_getCompanyPayrolls

Parameters

Name In Required Type Description
company_id path optional string

The UUID of the company

processing_statuses query optional string

Whether to include processed and/or unprocessed payrolls in the response, defaults to processed, for multiple attributes comma separate the values, i.e. ?processing_statuses=processed,unprocessed

payroll_types query optional string

Whether to include regular and/or off_cycle payrolls in the response, defaults to regular, for multiple attributes comma separate the values, i.e. ?payroll_types=regular,off_cycle

include query optional string

Include the requested attribute in the response. In v2023-04-01 totals are no longer included by default. For multiple attributes comma separate the values, i.e. ?include=totals,payroll_status_meta

start_date query optional string

Return payrolls whose pay period is after the start date

end_date query optional string

Return payrolls whose pay period is before the end date

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}/payrolls
GET /v1/companies/{company_id}/payrolls/{payroll_id}

Returns a payroll. If payroll is calculated or processed, will return employee_compensations and totals.

Notes:

  • Hour and dollar amounts are returned as string representations of numeric decimals.
  • Hours are represented to the thousands place; dollar amounts are represented to the cent.
  • Every eligible compensation is returned for each employee. If no data has yet be inserted for a given field, it defaults to “0.00” (for fixed amounts) or “0.000” (for hours ).
  • When include parameter with benefits value is passed, employee_benefits:read scope is required to return benefits
    • Benefits containing PHI are only visible with the employee_benefits:read:phi scope

scope: payrolls:read

operationId: Payrolls_getSinglePayroll

Parameters

Name In Required Type Description
company_id path optional string

The UUID of the company

payroll_id path optional string

The UUID of the payroll

include query optional string

Include the requested attribute in the response, for multiple attributes comma separate the values, i.e. ?include=benefits,deductions,taxes

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}/payrolls/{payroll_id}
GET /v1/companies/{company_uuid}/payrolls/blockers

Returns a list of reasons that prevent the company from running payrolls. See the payroll blockers guide for a complete list of reasons.

The list is empty if there are no payroll blockers.

scope: payrolls:run

operationId: Payrolls_getAllPayrollBlockers

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}/payrolls/blockers
GET /v1/employees/{employee_id}/pay_stubs

Get an employee’s pay stubs

scope: pay_stubs:read

operationId: Payrolls_getEmployeePayStubs

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}/pay_stubs

Recoverycases 1 endpoints

GET /v1/companies/{company_uuid}/recovery_cases

Fetch all recovery cases for a company.

scope: recovery_cases:read

operationId: RecoveryCases_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}/recovery_cases

Signatories 1 endpoints

GET /v1/companies/{company_uuid}/signatories

Returns company signatories. Currently we only support a single signatory per company.

scope: signatories:read

operationId: Signatories_getCompanySignatories

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}/signatories

Taxrequirements 2 endpoints

GET /v1/companies/{company_uuid}/tax_requirements

Returns objects describing the states that have tax requirements for the company

scope: company_tax_requirements:read

operationId: TaxRequirements_getStates

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

OK

404

Not Found

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

GET /v1/companies/{company_uuid}/tax_requirements
GET /v1/companies/{company_uuid}/tax_requirements/{state}

Get all tax requirements for a given state.

Metadata Examples

```json select
{
“type”: “select”,
“options”: [
{ “label”: “Semiweekly”, value: “Semi-weekly” },
{ “label”: “Monthly”, value: “Monthly” },
{ “label”: “Quarterly”, value: “Quarterly” },
]
}

```json radio
{
  "type": "radio",
  "options": [
    { "label": "No, we cannot reimburse",  value: false, short_label: "Not Reimbursable" },
    { "label": "Yes, we can reimburse",  value: true, short_label: "Reimbursable" },
  ]
}

```json account_number
{
“type”: “account_number”,
“mask”: “######-##’,
“prefix”: null
}

```json tax_rate
{
  "type": "tax_rate",
  "validation": {
    "type": "min_max",
    "min": "0.0004",
    "max": "0.081"
  }
}

scope: company_tax_requirements:read

operationId: TaxRequirements_getStateRequirements

Parameters

Name In Required Type Description
company_uuid path optional string

The UUID of the company

state path required string

2-letter US state abbreviation

scheduling query optional boolean

When true, return “new” requirement sets with valid effective_from dates that are available to save new effective dated values.

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/companies/{company_uuid}/tax_requirements/{state}

Timeoffpolicies 2 endpoints

GET /v1/time_off_policies/{time_off_policy_uuid}

Get a time off policy

scope: time_off_policies:read

operationId: TimeOffPolicies_getPolicy

Parameters

Name In Required Type Description
time_off_policy_uuid path optional string

The UUID of the company time off policy

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/time_off_policies/{time_off_policy_uuid}
GET /v1/companies/{company_uuid}/time_off_policies

Get all time off policies for a company

scope: time_off_policies:read

operationId: TimeOffPolicies_getAllPolicies

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}/time_off_policies

Webhooks 3 endpoints

GET /v1/webhook_subscriptions

Returns all webhook subscriptions associated with the provided Partner API token.

📘 Token Authentication

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

scope: webhook_subscriptions:read

operationId: Webhooks_listSubscriptions

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

404

Not Found

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

GET /v1/webhook_subscriptions
GET /v1/webhook_subscriptions/{webhook_subscription_uuid}

Returns the Webhook Subscription associated with the provided UUID.

📘 Token Authentication

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

scope: webhook_subscriptions:read

operationId: Webhooks_getSubscription

Parameters

Name In Required Type Description
webhook_subscription_uuid path optional string

The webhook subscription UUID.

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/webhook_subscriptions/{webhook_subscription_uuid}
GET /v1/webhook_subscriptions/{webhook_subscription_uuid}/request_verification_token

Request that the webhook subscription verification_token be POSTed to the Subscription URL.

📘 Token Authentication

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

scope: webhook_subscriptions:read

operationId: Webhooks_requestVerificationToken

Parameters

Name In Required Type Description
webhook_subscription_uuid path optional string

The webhook subscription UUID.

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

No Content. The verification_token is POSTed to the Subscription URL.

404

Not Found

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

GET /v1/webhook_subscriptions/{webhook_subscription_uuid}/request_verification_token

Schemas

object Accruing-Time-Off-Hour
{
  "type": "object",
  "properties": {
    "hours": {
      "type": "string",
      "description": "Hours accrued during this pay period."
    },
    "time_off_policy_uuid": {
      "type": "string",
      "description": "A unique identifier of the time off policy."
    }
  },
  "description": "The representation of an unprocessed termination pay period."
}
object Ach-Transaction
{
  "type": "object",
  "properties": {
    "uuid": {
      "type": "string",
      "description": "Unique identifier of an ACH transaction"
    },
    "amount": {
      "type": "string",
      "description": "The amount of money moved by the ACH transaction. This amount is always non-negative."
    },
    "error_code": {
      "type": "string",
      "description": "The error code associated with the ACH transaction, if any. If there is no error on the ACH transaction, this field will be nil. See [this article](https://engineering.gusto.com/how-ach-works-a-developer-perspective-part-2/) for a complete list of ACH return codes."
    },
    "description": {
      "type": "string",
      "description": "The description of the ACH transaction. Can be used to identify the ACH transaction on the recipient's bank statement."
    },
    "company_uuid": {
      "type": "string",
      "description": "Unique identifier of the company to which the ACH transaction belongs"
    },
    "payment_date": {
      "type": "string",
      "description": "The date of the payment associated with the ACH transaction"
    },
    "payment_status": {
      "enum": [
        "unsubmitted",
        "submitted",
        "successful",
        "failed"
      ],
      "type": "string",
      "description": "The status of the ACH transaction"
    },
    "recipient_type": {
      "enum": [
        "Employee",
        "Contractor"
      ],
      "type": "string",
      "description": "The type of recipient associated with the ACH transaction"
    },
    "recipient_uuid": {
      "type": "string",
      "description": "Unique identifier for the recipient associated with the ACH transaction"
    },
    "transaction_type": {
      "type": "string",
      "description": "The type of transaction associated with the ACH transaction"
    },
    "payment_direction": {
      "enum": [
        "credit",
        "debit"
      ],
      "type": "string",
      "description": "The direction of the payment"
    },
    "payment_event_type": {
      "enum": [
        "Payroll",
        "ContractorPayment"
      ],
      "type": "string",
      "description": "The type of payment event associated with the ACH transaction"
    },
    "payment_event_uuid": {
      "type": "string",
      "description": "Unique identifier for the payment event associated with the ACH transaction"
    },
    "payment_event_check_date": {
      "type": "string",
      "description": "The date of the payment event check associated with the ACH transaction"
    }
  },
  "x-examples": {
    "example": {
      "uuid": "123e4567-e89b-12d3-a456-426655440000,",
      "amount": "123.00,",
      "error_code": "null,",
      "description": "PAY 380654",
      "company_uuid": "456e7890-e12b-34c5-d678-901234567890,",
      "payment_date": "2023-10-17,",
      "payment_status": "submitted,",
      "recipient_type": "Employee,",
      "recipient_uuid": "012e3456-f78d-90ab-12cd-345678901234,",
      "transaction_type": "Credit employee pay,",
      "payment_direction": "credit,",
      "payment_event_type": "Payroll,",
      "payment_event_uuid": "789e0123-e45f-67ab-c890-123456789012,",
      "payment_event_check_date": "2023-10-02,"
    }
  },
  "description": "Representation of an ACH transaction"
}
array AchTransactionsGetAllForCompanyResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Ach-Transaction"
  }
}
object Address
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Versionable"
    },
    {
      "type": "object",
      "properties": {
        "zip": {
          "type": "string",
          "readOnly": false
        },
        "city": {
          "type": "string",
          "readOnly": false
        },
        "state": {
          "type": "string",
          "readOnly": false
        },
        "active": {
          "type": "boolean",
          "readOnly": true,
          "description": "The status of the location. Inactive locations have been deleted, but may still have historical data associated with them."
        },
        "country": {
          "type": "string",
          "default": "USA",
          "readOnly": false
        },
        "street_1": {
          "type": "string",
          "readOnly": false
        },
        "street_2": {
          "type": "string",
          "nullable": true,
          "readOnly": false
        }
      }
    }
  ],
  "example": {
    "zip": "94107",
    "city": "San Francisco",
    "state": "CA",
    "active": true,
    "country": "USA",
    "street_1": "412 Kiera Stravenue",
    "street_2": "Suite 391"
  }
}
object Admin
{
  "type": "object",
  "title": "Admin",
  "x-tags": [
    "Admins"
  ],
  "properties": {
    "uuid": {
      "type": "string",
      "description": "The unique id of the admin."
    },
    "email": {
      "type": "string",
      "description": "The email of the admin for Gusto's system. If the email matches an existing user, this will create an admin account for them."
    },
    "last_name": {
      "type": "string",
      "description": "The last name of the admin."
    },
    "first_name": {
      "type": "string",
      "description": "The first name of the admin."
    }
  },
  "x-examples": {
    "Example": {
      "uuid": "987058cc-23ee-46e9-81ef-5cee086cceca",
      "email": "jsmith99@gmail.com",
      "last_name": "Smith",
      "first_name": "John"
    }
  },
  "description": "The representation of an admin user in Gusto."
}
object Authentication
{
  "type": "object",
  "properties": {
    "scope": {
      "type": "string",
      "description": "All of the scopes for which the access token provides access."
    },
    "created_at": {
      "type": "string",
      "description": "Datetime for when the new access token is created."
    },
    "expires_in": {
      "type": "number",
      "default": 7200,
      "description": "The TTL of this token. After this amount of time, you must hit the refresh token endpoint to continue making authenticated requests."
    },
    "token_type": {
      "type": "string",
      "default": "bearer",
      "description": "The literal string 'bearer'"
    },
    "access_token": {
      "type": "string",
      "description": "A new access token that can be used for subsequent authenticated requests"
    },
    "refresh_token": {
      "type": "string",
      "description": "A token that must be passed to the refresh token endpoint to get a new authenticated token."
    }
  },
  "description": ""
}
object BankAccountsCreateFromPlaidTokenRequest
{
  "type": "object",
  "required": [
    "owner_type",
    "owner_id",
    "processor_token"
  ],
  "properties": {
    "owner_id": {
      "type": "string",
      "description": "The owner uuid of the bank account"
    },
    "owner_type": {
      "enum": [
        "Company"
      ],
      "type": "string",
      "description": "The owner type of the bank account"
    },
    "processor_token": {
      "type": "string",
      "description": "The Plaid processor token"
    }
  }
}
object BankAccountsCreateFromPlaidTokenResponse
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/Company-Bank-Account"
    }
  ]
}
object BankAccountsCreateVerificationDepositsRequest
{
  "type": "object",
  "properties": {
    "account_type": {
      "enum": [
        "Checking",
        "Savings"
      ],
      "type": "string",
      "nullable": false,
      "description": "The bank account type"
    },
    "account_number": {
      "type": "string",
      "nullable": false,
      "description": "The bank account number"
    },
    "routing_number": {
      "type": "string",
      "nullable": false,
      "description": "The bank routing number"
    }
  },
  "description": ""
}
array BankAccountsListCompanyBankAccountsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Company-Bank-Account"
  }
}
object BankAccountsVerifyMicroDepositsRequest
{
  "type": "object",
  "properties": {
    "deposit_1": {
      "type": "number",
      "nullable": false,
      "description": "The dollar amount of the first micro-deposit"
    },
    "deposit_2": {
      "type": "number",
      "nullable": false,
      "description": "The dollar amount of the second micro-deposit"
    }
  },
  "description": ""
}
object Benefit-Summary
{
  "type": "object",
  "x-tags": [
    "Company Benefits"
  ],
  "properties": {
    "end_date": {
      "type": "string",
      "description": "The end date of benefit summary."
    },
    "employees": {
      "type": "object",
      "properties": {
        "uuid": {
          "type": "string",
          "description": "The UUID of the employee"
        },
        "gross_pay": {
          "type": "string",
          "description": "Gross pay of this pay check."
        },
        "payroll_benefits": {
          "type": "object",
          "properties": {
            "gross_pay": {
              "type": "string"
            },
            "check_date": {
              "type": "string"
            },
            "pay_period": {
              "type": "object",
              "properties": {
                "end_date": {
                  "type": "string"
                },
                "start_date": {
                  "type": "string"
                }
              }
            },
            "payroll_type": {
              "type": "string",
              "description": "Whether it is regular or bonus payroll"
            },
            "payroll_uuid": {
              "type": "string"
            },
            "company_benefit_deduction": {
              "type": "string"
            },
            "company_benefit_contribution": {
              "type": "string"
            }
          }
        },
        "benefit_deduction": {
          "type": "string",
          "description": "Sum of employee benefit deduction given the period of time for this specific employee."
        },
        "benefit_contribution": {
          "type": "string",
          "description": "Sum of company contribution given the period of time for this specific employee."
        },
        "company_benefit_deduction": {
          "type": "string",
          "description": "The aggregate of employee deduction for all employees given the period of time and benefit type."
        },
        "company_benefit_contribution": {
          "type": "string",
          "description": "The aggregate of company contribution for all employees given the period of time and benefit type."
        }
      },
      "description": ""
    },
    "start_date": {
      "type": "string",
      "description": "The start date of benefit summary."
    },
    "description": {
      "type": "string",
      "description": "Description of the benefit."
    },
    "company_benefit_deduction": {
      "type": "string",
      "description": "The aggregate of employee deduction for all employees given the period of time and benefit type."
    },
    "company_benefit_contribution": {
      "type": "string",
      "description": "The aggregate of company contribution for all employees given the period of time and benefit type."
    }
  },
  "description": ""
}
object Benefit-Type-Requirements
{
  "type": "object",
  "x-tags": [
    "Company Benefits"
  ],
  "properties": {
    "catch_up": {
      "type": "object",
      "properties": {
        "choices": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "editable": {
          "type": "boolean"
        },
        "required": {
          "type": "boolean"
        },
        "default_value": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          }
        }
      },
      "description": ""
    },
    "contribution": {
      "type": "object",
      "properties": {
        "choices": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "editable": {
          "type": "boolean"
        },
        "required": {
          "type": "boolean"
        },
        "default_value": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          }
        }
      },
      "description": ""
    },
    "limit_option": {
      "type": "object",
      "properties": {
        "choices": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "editable": {
          "type": "boolean"
        },
        "required": {
          "type": "boolean"
        },
        "default_value": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          }
        }
      },
      "description": ""
    },
    "coverage_amount": {
      "type": "object",
      "properties": {
        "choices": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "editable": {
          "type": "boolean"
        },
        "required": {
          "type": "boolean"
        },
        "default_value": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          }
        }
      },
      "description": ""
    },
    "employee_deduction": {
      "type": "object",
      "properties": {
        "choices": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "editable": {
          "type": "boolean"
        },
        "required": {
          "type": "boolean"
        },
        "default_value": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          }
        }
      },
      "description": ""
    },
    "deduct_as_percentage": {
      "type": "object",
      "properties": {
        "choices": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "editable": {
          "type": "boolean"
        },
        "required": {
          "type": "boolean"
        },
        "default_value": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          }
        }
      },
      "description": ""
    },
    "coverage_salary_multiplier": {
      "type": "object",
      "properties": {
        "choices": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "editable": {
          "type": "boolean"
        },
        "required": {
          "type": "boolean"
        },
        "default_value": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          }
        }
      },
      "description": ""
    },
    "company_contribution_annual_maximum": {
      "type": "object",
      "properties": {
        "choices": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "editable": {
          "type": "boolean"
        },
        "required": {
          "type": "boolean"
        },
        "default_value": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          }
        }
      },
      "description": ""
    }
  },
  "description": ""
}
object CompaniesAcceptTermsOfServiceRequest
{
  "type": "object",
  "required": [
    "email",
    "ip_address",
    "external_user_id"
  ],
  "properties": {
    "email": {
      "type": "string",
      "description": "The user's email address on Gusto. You can retrieve the user's email via company's `/admins`, `/employees`, `/signatories`, and `/contractors` endpoints."
    },
    "ip_address": {
      "type": "string",
      "description": "The IP address of the user who viewed and accepted the Terms of Service."
    },
    "external_user_id": {
      "type": "string",
      "description": "The user ID on your platform."
    }
  }
}
object CompaniesAcceptTermsOfServiceResponse
{
  "type": "object",
  "properties": {
    "latest_terms_accepted": {
      "type": "boolean",
      "description": "Whether the latest terms have been accepted by the user."
    }
  },
  "description": ""
}
object CompaniesCreateAdminRequest
{
  "type": "object",
  "required": [
    "first_name",
    "last_name",
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "description": "The email of the admin for Gusto's system. If the email matches an existing user, this will create an admin account for them."
    },
    "last_name": {
      "type": "string",
      "description": "The last name of the admin."
    },
    "first_name": {
      "type": "string",
      "description": "The first name of the admin."
    }
  },
  "description": ""
}
object CompaniesCreatePartnerManagedCompanyRequest
{
  "type": "object",
  "required": [
    "user",
    "company"
  ],
  "properties": {
    "user": {
      "type": "object",
      "required": [
        "first_name",
        "last_name",
        "email"
      ],
      "properties": {
        "email": {
          "type": "string",
          "description": "The email of the user who will be the primary payroll admin."
        },
        "phone": {
          "type": "string",
          "description": "The phone number of the user who will be the primary payroll admin."
        },
        "last_name": {
          "type": "string",
          "description": "The last name of the user who will be the primary payroll admin."
        },
        "first_name": {
          "type": "string",
          "description": "The first name of the user who will be the primary payroll admin."
        }
      },
      "description": "Information for the user who will be the primary payroll administrator for the new company."
    },
    "company": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "ein": {
          "type": "string",
          "description": "The employer identification number (EIN) of the company."
        },
        "name": {
          "type": "string",
          "description": "The legal name of the company."
        },
        "trade_name": {
          "type": "string",
          "description": "The name of the company."
        }
      }
    }
  }
}
object CompaniesCreatePartnerManagedCompanyResponse
{
  "type": "object",
  "properties": {
    "expires_in": {
      "type": "integer",
      "readOnly": true,
      "description": "Time of access_token expiration in seconds"
    },
    "access_token": {
      "type": "string",
      "readOnly": true,
      "description": "Access token that can be used for OAuth access to the account. Access tokens expire 2 hours after they are issued."
    },
    "company_uuid": {
      "type": "string",
      "readOnly": true,
      "description": "Gusto’s UUID for the company"
    },
    "refresh_token": {
      "type": "string",
      "readOnly": true,
      "description": "Refresh token that can be exchanged for a new access token."
    }
  },
  "description": "Object returned when creating a partner managed company"
}
array CompaniesGetAllAdminsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Admin"
  }
}
object CompaniesGetCustomFieldsResponse
{
  "type": "object",
  "properties": {
    "custom_fields": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Company-Custom-Field"
      }
    }
  }
}
object CompaniesGetTermsOfServiceStatusRequest
{
  "type": "object",
  "required": [
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "description": "The user's email address on Gusto. You can retrieve the user's email via company's `/admins`, `/employees`, `/signatories`, and `/contractors` endpoints."
    }
  }
}
object CompaniesGetTermsOfServiceStatusResponse
{
  "type": "object",
  "required": [
    "email",
    "ip_address",
    "external_user_id"
  ],
  "properties": {
    "latest_terms_accepted": {
      "type": "boolean",
      "description": "Whether the latest terms have been accepted by the user."
    }
  },
  "description": ""
}
object CompaniesMigrateToEmbeddedPayrollRequest
{
  "type": "object",
  "required": [
    "email",
    "ip_address",
    "external_user_id"
  ],
  "properties": {
    "email": {
      "type": "string",
      "description": "Email of the company signatory who is authorized to accept our [Terms of Service](https://flows.gusto.com/terms) and migration decision. You can retrieve the signatory email from the `GET /v/1/companies/{company_id}/signatories` endpoint."
    },
    "ip_address": {
      "type": "string",
      "description": "The IP address of the signatory who viewed and accepted the Terms of Service."
    },
    "external_user_id": {
      "type": "string",
      "description": "The signatory's user ID on your platform."
    }
  }
}
object CompaniesMigrateToEmbeddedPayrollResponse
{
  "type": "object",
  "properties": {
    "company_uuid": {
      "type": "string",
      "description": "The company UUID"
    },
    "migration_status": {
      "type": "string",
      "description": "The migration status"
    }
  },
  "description": ""
}
object Company
{
  "type": "object",
  "title": "Company",
  "x-tags": [
    "Companies"
  ],
  "properties": {
    "ein": {
      "type": "string",
      "readOnly": true,
      "description": "The Federal Employer Identification Number of the company."
    },
    "name": {
      "type": "string",
      "readOnly": true,
      "description": "The name of the company."
    },
    "slug": {
      "type": "string",
      "readOnly": true,
      "description": "The slug of the name of the company."
    },
    "tier": {
      "enum": [
        "simple",
        "plus",
        "premium",
        "core",
        "complete",
        "concierge",
        "contractor_only",
        "basic"
      ],
      "type": "string",
      "nullable": true,
      "readOnly": true,
      "description": "The Gusto product tier of the company (not applicable to Embedded partner managed companies)."
    },
    "uuid": {
      "type": "string",
      "readOnly": true,
      "description": "A unique identifier of the company in Gusto."
    },
    "join_date": {
      "type": "string",
      "readOnly": true,
      "description": "Company's first invoiceable event date"
    },
    "locations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Company-Address"
      },
      "readOnly": true,
      "description": "The locations of the company.",
      "uniqueItems": false
    },
    "trade_name": {
      "type": "string",
      "readOnly": true,
      "description": "The trade name of the company."
    },
    "entity_type": {
      "enum": [
        "C-Corporation",
        "S-Corporation",
        "Sole proprietor",
        "LLC",
        "LLP",
        "Limited partnership",
        "Co-ownership",
        "Association",
        "Trusteeship",
        "General partnership",
        "Joint venture",
        "Non-Profit"
      ],
      "type": "string",
      "readOnly": true,
      "description": "The tax payer type of the company."
    },
    "funding_type": {
      "enum": [
        "ach",
        "reverse_wire",
        "wire_in",
        "brex"
      ],
      "type": "string",
      "description": "Company's default funding type"
    },
    "is_suspended": {
      "type": "boolean",
      "description": "Whether or not the company is suspended in Gusto. Suspended companies may not run payroll."
    },
    "compensations": {
      "type": "object",
      "readOnly": true,
      "properties": {
        "fixed": {
          "type": "array",
          "items": {
            "type": "object",
            "readOnly": true,
            "properties": {
              "name": {
                "type": "string",
                "example": "Bonus",
                "description": "The name of the fixed compensation."
              }
            }
          },
          "readOnly": true,
          "description": "The available fixed compensation rates for the company.",
          "uniqueItems": true
        },
        "hourly": {
          "type": "array",
          "items": {
            "type": "object",
            "readOnly": true,
            "properties": {
              "name": {
                "type": "string",
                "example": "Overtime",
                "readOnly": true,
                "description": "The name of the hourly compensation rate."
              },
              "multiple": {
                "type": "number",
                "example": 1.5,
                "readOnly": true,
                "description": "The amount multiplied by the base rate of a job to calculate compensation."
              }
            }
          },
          "readOnly": true,
          "description": "The available hourly compensation rates for the company.",
          "uniqueItems": true
        },
        "paid_time_off": {
          "type": "array",
          "items": {
            "type": "object",
            "readOnly": true,
            "properties": {
              "name": {
                "type": "string",
                "example": "Vacation Hours",
                "readOnly": true,
                "description": "The name of the paid time off type."
              }
            }
          },
          "readOnly": true,
          "description": "The available types of paid time off for the company.",
          "uniqueItems": true
        }
      },
      "description": "The available company-wide compensation rates for the company."
    },
    "company_status": {
      "enum": [
        "Approved",
        "Not Approved",
        "Suspended"
      ],
      "type": "string",
      "readOnly": true,
      "description": "The status of the company in Gusto. \"Approved\" companies may run payroll with Gusto. \"Not Approved\" companies may not yet run payroll with Gusto. In order to run payroll, the company may need to complete onboarding or contact support. \"Suspended\" companies may not run payroll with Gusto. In order to unsuspend their account, the company must contact support."
    },
    "pay_schedule_type": {
      "enum": [
        "single",
        "hourly_salaried",
        "by_employee",
        "by_department"
      ],
      "type": "string",
      "readOnly": true,
      "description": "The pay schedule assignment type."
    },
    "primary_signatory": {
      "type": "object",
      "readOnly": true,
      "properties": {
        "email": {
          "type": "string",
          "readOnly": true
        },
        "phone": {
          "type": "string",
          "readOnly": true
        },
        "last_name": {
          "type": "string",
          "readOnly": true
        },
        "first_name": {
          "type": "string",
          "readOnly": true
        },
        "home_address": {
          "type": "object",
          "readOnly": true,
          "properties": {
            "zip": {
              "type": "string",
              "readOnly": true
            },
            "city": {
              "type": "string",
              "readOnly": true
            },
            "state": {
              "type": "string",
              "readOnly": true
            },
            "country": {
              "type": "string",
              "readOnly": true
            },
            "street_1": {
              "type": "string",
              "readOnly": true
            },
            "street_2": {
              "type": "string",
              "nullable": true,
              "readOnly": true
            }
          }
        },
        "middle_initial": {
          "type": "string",
          "readOnly": true
        }
      },
      "description": "The primary signatory of the company."
    },
    "is_partner_managed": {
      "type": "boolean",
      "readOnly": true,
      "description": "Whether the company is fully managed by a partner via the API"
    },
    "primary_payroll_admin": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "readOnly": true
        },
        "phone": {
          "type": "string",
          "readOnly": true
        },
        "last_name": {
          "type": "string",
          "readOnly": true
        },
        "first_name": {
          "type": "string",
          "readOnly": true
        }
      },
      "description": "The primary payroll admin of the company."
    }
  },
  "x-examples": {
    "Example": {
      "ein": "00-0000001",
      "name": "Shoppe Studios LLC",
      "tier": "complete",
      "locations": [
        {
          "zip": "94107",
          "city": "San Francisco",
          "state": "CA",
          "active": true,
          "country": "USA",
          "street_1": "412 Kiera Stravenue",
          "street_2": "Suite 391"
        },
        {
          "zip": "23218",
          "city": "Richmond",
          "state": "VA",
          "active": true,
          "country": "USA",
          "street_1": "644 Fay Vista",
          "street_2": "Suite 842"
        }
      ],
      "trade_name": "Record Shoppe",
      "entity_type": "C-Corporation",
      "is_suspended": false,
      "compensations": {
        "fixed": [
          {
            "name": "Bonus"
          },
          {
            "name": "Commission"
          },
          {
            "name": "Paycheck Tips"
          },
          {
            "name": "Cash Tips"
          },
          {
            "name": "Correction Payment"
          },
          {
            "name": "Severance"
          },
          {
            "name": "Minimum Wage Adjustment"
          },
          {
            "name": "Reimbursement"
          }
        ],
        "hourly": [
          {
            "name": "Overtime",
            "multiple": 1.5
          },
          {
            "name": "Double overtime",
            "multiple": 2
          },
          {
            "name": "Regular",
            "multiple": 1
          },
          {
            "name": "Outstanding vacation",
            "multiple": 1
          },
          {
            "name": "Holiday",
            "multiple": 1
          },
          {
            "name": "Emergency sick - self care",
            "multiple": 1
          },
          {
            "name": "Emergency sick - caring for others",
            "multiple": 1
          },
          {
            "name": "FMLA Public Health Emergency Leave",
            "multiple": 1
          },
          {
            "name": "Regular Hours",
            "multiple": 1
          }
        ],
        "paid_time_off": [
          {
            "name": "Vacation Hours"
          },
          {
            "name": "Sick Hours"
          },
          {
            "name": "Holiday Hours"
          }
        ]
      },
      "company_status": "Approved",
      "pay_schedule_type": "by_department",
      "primary_signatory": {
        "email": "louie.hessel7757869450111547@zemlak.biz",
        "phone": null,
        "last_name": "Carter",
        "first_name": "Alda",
        "home_address": {
          "zip": "94107",
          "city": "San Francisco",
          "state": "CA",
          "country": "USA",
          "street_1": "524 Roob Divide",
          "street_2": "Suite 565"
        },
        "middle_initial": ""
      },
      "is_partner_managed": false,
      "primary_payroll_admin": {
        "email": "louie.hessel7757869450111547@zemlak.biz",
        "phone": "1-565-710-7559",
        "last_name": "Labadie",
        "first_name": "Ian"
      }
    }
  },
  "description": "The representation of a company in Gusto."
}
object Company-Address
{
  "type": "object",
  "title": "",
  "x-tags": [
    "Locations"
  ],
  "properties": {
    "zip": {
      "type": "string",
      "readOnly": false
    },
    "city": {
      "type": "string",
      "readOnly": false
    },
    "state": {
      "type": "string",
      "readOnly": false
    },
    "active": {
      "type": "boolean",
      "readOnly": true,
      "description": "The status of the location. Inactive locations have been deleted, but may still have historical data associated with them."
    },
    "country": {
      "type": "string",
      "default": "USA",
      "readOnly": false
    },
    "street_1": {
      "type": "string",
      "readOnly": false
    },
    "street_2": {
      "type": "string",
      "nullable": true,
      "readOnly": false
    }
  },
  "x-examples": {
    "Company Address": {
      "zip": "94107",
      "city": "San Francisco",
      "state": "CA",
      "active": true,
      "country": "USA",
      "street_1": "412 Kiera Stravenue",
      "street_2": "Suite 391"
    }
  },
  "description": "The representation of a company's address in Gusto."
}
object Company-Bank-Account
{
  "type": "object",
  "x-tags": [
    "Company Bank Accounts"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Name of bank account"
    },
    "uuid": {
      "type": "string",
      "description": "UUID of the bank account"
    },
    "account_type": {
      "enum": [
        "Checking",
        "Savings"
      ],
      "type": "string",
      "description": "Bank account type"
    },
    "company_uuid": {
      "type": "string",
      "description": "UUID of the company"
    },
    "plaid_status": {
      "enum": [
        "connected",
        "disconnected"
      ],
      "type": "string",
      "description": "The Plaid connection status of the bank account. Only applies when verification type is Plaid."
    },
    "routing_number": {
      "type": "string",
      "description": "The bank account's routing number"
    },
    "verification_type": {
      "enum": [
        "bank_deposits",
        "plaid",
        "plaid_external"
      ],
      "type": "string",
      "description": "The verification type of the bank account.\n\n'bank_deposits' means the bank account is connected by entering routing and accounting numbers and verifying through micro-deposits.\n'plaid' means the bank account is connected through Plaid."
    },
    "last_cached_balance": {
      "type": "string",
      "description": "The last fetch balance for the bank account. Please be aware that this amount does not reflect the most up-to-date balance and only applies when the verification type is Plaid."
    },
    "verification_status": {
      "enum": [
        "awaiting_deposits",
        "ready_for_verification",
        "verified"
      ],
      "type": "string",
      "description": "The verification status of the bank account.\n\n'awaiting_deposits' means the bank account is just created and money is being transferred.\n'ready_for_verification' means the micro-deposits are completed and the verification process can begin by using the verify endpoint.\n'verified' means the bank account is verified."
    },
    "balance_fetched_date": {
      "type": "string",
      "description": "The balance fetch date associated with the last_cached_balance. Only applies when verification type is Plaid."
    },
    "hidden_account_number": {
      "type": "string",
      "description": "Masked bank account number"
    }
  },
  "x-examples": {
    "Example": {
      "name": "Employer Funding Account",
      "uuid": "1263eae5-4411-48d9-bd6d-18ed93082e65",
      "account_type": "Checking",
      "company_uuid": "e2c4c0ce-2986-48b9-86cf-ec27f6ed9a36",
      "routing_number": "851070439",
      "verification_type": "bank_deposits",
      "verification_status": "verified",
      "hidden_account_number": "XXXX4087"
    }
  },
  "description": "The company bank account"
}
object Company-Benefit
{
  "type": "object",
  "properties": {
    "uuid": {
      "type": "string",
      "readOnly": true,
      "description": "The UUID of the company benefit."
    },
    "active": {
      "type": "boolean",
      "default": true,
      "description": "Whether this benefit is active for employee participation. Company benefits may only be deactivated if no employees are actively participating."
    },
    "version": {
      "type": "string",
      "description": "The current version of the object. See the [versioning guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information on how to use this field."
    },
    "deletable": {
      "type": "boolean",
      "description": "Whether this company benefit can be deleted. Deletable will be set to true if the benefit has not been used in payroll, has no employee benefits associated, and the benefit is not owned by Gusto or a Partner"
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "description": "The description of the company benefit.For example, a company may offer multiple benefits with an ID of 1 (for Medical Insurance). The description would show something more specific like “Kaiser Permanente” or “Blue Cross/ Blue Shield”."
    },
    "benefit_type": {
      "type": "number",
      "readOnly": true,
      "description": "The type of the benefit to which the company benefit belongs."
    },
    "responsible_for_employee_w2": {
      "type": "boolean",
      "description": "Whether the employer is subject to file W-2 forms for an employee on leave. Only applicable to third party sick pay benefits."
    },
    "supports_percentage_amounts": {
      "type": "boolean",
      "readOnly": true,
      "description": "Whether employee deductions and company contributions can be set as percentages of payroll for an individual employee. This is determined by the type of benefit and is not configurable by the company."
    },
    "responsible_for_employer_taxes": {
      "type": "boolean",
      "description": "Whether the employer is subject to pay employer taxes when an employee is on leave. Only applicable to third party sick pay benefits."
    }
  },
  "x-examples": {
    "Example": {
      "uuid": "54e37c27-43e6-4ae5-a5b2-e29895a133be",
      "active": true,
      "version": "98jr3289h3298hr9329gf9egskt3kagri32qqgiqe3872",
      "deletable": true,
      "description": "Kaiser Permanente",
      "benefit_type": 1,
      "responsible_for_employee_w2": false,
      "supports_percentage_amounts": true,
      "responsible_for_employer_taxes": false
    }
  },
  "description": "The representation of a company benefit."
}
object Company-Benefit-With-Employee-Benefits
{
  "type": "object",
  "properties": {
    "uuid": {
      "type": "string",
      "readOnly": true,
      "description": "The UUID of the company benefit."
    },
    "active": {
      "type": "boolean",
      "default": true,
      "description": "Whether this benefit is active for employee participation. Company benefits may only be deactivated if no employees are actively participating."
    },
    "version": {
      "type": "string",
      "description": "The current version of the object. See the [versioning guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information on how to use this field."
    },
    "deletable": {
      "type": "boolean",
      "description": "Whether this company benefit can be deleted. Deletable will be set to true if the benefit has not been used in payroll, has no employee benefits associated, and the benefit is not owned by Gusto or a Partner"
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "description": "The description of the company benefit.For example, a company may offer multiple benefits with an ID of 1 (for Medical Insurance). The description would show something more specific like “Kaiser Permanente” or “Blue Cross/ Blue Shield”."
    },
    "benefit_type": {
      "type": "number",
      "readOnly": true,
      "description": "The type of the benefit to which the company benefit belongs (same as benefit_id)."
    },
    "employee_benefits": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "active": {
            "type": "boolean",
            "default": true,
            "description": "Whether the employee benefit is active."
          },
          "contribution": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "The company contribution scheme.\n\n\"amount\": The company contributes a fixed amount per payroll. If elective is true, the contribution is matching, dollar-for-dollar.\n\n\"percentage\": The company contributes a percentage of the payroll amount per payroll period. If elective is true, the contribution is matching, dollar-for-dollar.\n\n\"tiered\": The company contribution varies according to the size of the employee deduction."
              },
              "value": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "tiers": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "rate": {
                              "type": "string",
                              "description": "The percentage of employee deduction within this tier the company contribution will match."
                            },
                            "threshold": {
                              "type": "string",
                              "description": "The percentage threshold at which this tier ends (inclusive).\n\nFor example, a value of \"5\" means the company contribution will match employee deductions from the previous tier's threshold up to and including 5% of payroll.\n\nIf this is the first tier, a value of \"5\" means the company contribution will match employee deductions from 0% up to and including 5% of payroll."
                            },
                            "threshold_delta": {
                              "type": "string",
                              "description": "The step up difference between this tier's threshold and the previous tier's threshold. In the first tier, this is equivalent to threshold."
                            }
                          },
                          "description": "A single tier of a tiered matching scheme."
                        },
                        "description": ""
                      }
                    }
                  }
                ],
                "description": "For the `amount` and `percentage` contribution types, the value of the corresponding amount or percentage.\n\nFor the `tiered` contribution type, an array of tiers."
              }
            },
            "description": "An object representing the type and value of the company contribution."
          },
          "employee_uuid": {
            "type": "string",
            "description": "The UUID of the employee to which the benefit belongs."
          },
          "employee_deduction": {
            "type": "string",
            "default": "0.00",
            "description": "The amount to be deducted, per pay period, from the employee's pay."
          },
          "company_benefit_uuid": {
            "type": "string",
            "description": "The UUID of the company benefit."
          },
          "company_contribution": {
            "type": "string",
            "description": "The value of the company contribution"
          },
          "deduct_as_percentage": {
            "type": "boolean",
            "default": false,
            "description": "Whether the employee deduction amount should be treated as a percentage to be deducted from each payroll."
          }
        }
      }
    },
    "responsible_for_employee_w2": {
      "type": "boolean",
      "description": "Whether the employer is subject to file W-2 forms for an employee on leave. Only applicable to third party sick pay benefits."
    },
    "supports_percentage_amounts": {
      "type": "boolean",
      "readOnly": true,
      "description": "Whether employee deductions and company contributions can be set as percentages of payroll for an individual employee. This is determined by the type of benefit and is not configurable by the company."
    },
    "responsible_for_employer_taxes": {
      "type": "boolean",
      "description": "Whether the employer is subject to pay employer taxes when an employee is on leave. Only applicable to third party sick pay benefits."
    }
  },
  "x-examples": {
    "Example": {
      "uuid": "54e37c27-43e6-4ae5-a5b2-e29895a133be",
      "active": true,
      "version": "98jr3289h3298hr9329gf9egskt3kagri32qqgiqe3872",
      "deletable": true,
      "description": "Kaiser Permanente",
      "benefit_type": 1,
      "responsible_for_employee_w2": false,
      "supports_percentage_amounts": true,
      "responsible_for_employer_taxes": false
    }
  },
  "description": "The representation of a company benefit."
}
object Company-Custom-Field
{
  "type": "object",
  "x-tags": [
    "Custom Fields"
  ],
  "required": [
    "uuid",
    "name",
    "type"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Name of the company custom field"
    },
    "type": {
      "$ref": "#/components/schemas/Custom-Field-Type"
    },
    "uuid": {
      "type": "string",
      "description": "UUID of the company custom field"
    },
    "description": {
      "type": "string",
      "description": "Description of the company custom field"
    },
    "selection_options": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "description": "An array of options for fields of type radio. Otherwise, null."
    }
  },
  "description": "A custom field on a company"
}
object Company-Onboarding-Status
{
  "type": "object",
  "title": "",
  "x-tags": [
    "Companies"
  ],
  "properties": {
    "": {
      "type": "string"
    },
    "uuid": {
      "type": "string",
      "description": "the UUID of the company"
    },
    "onboarding_steps": {
      "type": "array",
      "items": {
        "type": "object",
        "title": "Onboarding step",
        "properties": {
          "id": {
            "type": "string",
            "description": "The string identifier for each onboarding step"
          },
          "title": {
            "type": "string",
            "description": "The display name of the onboarding step"
          },
          "required": {
            "type": "boolean",
            "description": "The boolean flag indicating whether the step is required or optional"
          },
          "completed": {
            "type": "boolean",
            "description": "The boolean flag indicating whether the step is completed or not."
          },
          "skippable": {
            "type": "boolean",
            "description": "The boolean flag indicating whether the step can be skipped or not."
          },
          "requirements": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of onboarding step that are required to be completed in order to proceed with the current onboarding step."
          }
        }
      },
      "description": "a list of company onboarding steps"
    },
    "onboarding_completed": {
      "type": "boolean",
      "description": "a boolean flag for the company's onboarding status"
    }
  },
  "x-examples": {
    "Example": {
      "uuid": "c44d66dc-c41b-4a60-9e25-5e93ff8583f2",
      "onboarding_steps": [
        {
          "id": "add_addresses",
          "title": "Add Your Company's Addresses",
          "required": true,
          "completed": true,
          "skippable": false,
          "requirements": []
        },
        {
          "id": "add_employees",
          "title": "Add Your Employees",
          "required": true,
          "completed": true,
          "skippable": true,
          "requirements": [
            "add_addresses"
          ]
        },
        {
          "id": "federal_tax_setup",
          "title": "Enter Your Federal Tax Information",
          "required": true,
          "completed": true,
          "skippable": false,
          "requirements": [
            "add_addresses",
            "add_employees"
          ]
        },
        {
          "id": "add_bank_info",
          "title": "Add Your Bank Account",
          "required": true,
          "completed": true,
          "skippable": false,
          "requirements": []
        },
        {
          "id": "payroll_schedule",
          "title": "Select a Pay Schedule",
          "required": true,
          "completed": false,
          "skippable": false,
          "requirements": []
        },
        {
          "id": "sign_all_forms",
          "title": "Sign Documents",
          "required": true,
          "completed": false,
          "skippable": false,
          "requirements": [
            "add_employees",
            "federal_tax_setup",
            "state_setup",
            "add_bank_info",
            "payroll_schedule"
          ]
        },
        {
          "id": "verify_bank_info",
          "title": "Verify Your Bank Account",
          "required": true,
          "completed": false,
          "skippable": false,
          "requirements": [
            "add_bank_info"
          ]
        }
      ],
      "onboarding_completed": false
    }
  },
  "description": "The representation of a company's onboarding status"
}
object CompanyBenefitsCreateBenefitRequest
{
  "type": "object",
  "required": [
    "benefit_id",
    "description"
  ],
  "properties": {
    "active": {
      "type": "boolean",
      "default": true,
      "description": "Whether this benefit is active for employee participation."
    },
    "description": {
      "type": "string",
      "description": "The description of the company benefit.For example, a company may offer multiple benefits with an ID of 1 (for Medical Insurance). The description would show something more specific like “Kaiser Permanente” or “Blue Cross/ Blue Shield”."
    },
    "benefit_type": {
      "type": "number",
      "description": "The ID of the benefit to which the company benefit belongs."
    },
    "responsible_for_employee_w2": {
      "type": "boolean",
      "description": "Whether the employer is subject to file W-2 forms for an employee on leave. Only applicable to third party sick pay benefits."
    },
    "responsible_for_employer_taxes": {
      "type": "boolean",
      "description": "Whether the employer is subject to pay employer taxes when an employee is on leave. Only applicable to third party sick pay benefits."
    }
  },
  "description": ""
}
object CompanyBenefitsDeleteBenefitResponse
{
  "type": "object",
  "properties": {
    "errors": {
      "type": "object",
      "properties": {
        "base": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "full_message": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  }
}
array CompanyBenefitsGetBenefitsForCompanyResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Company-Benefit"
  }
}
array CompanyBenefitsListSupportedBenefitsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Supported-Benefit"
  }
}
object CompanyBenefitsUpdateBenefitRequest
{
  "type": "object",
  "required": [
    "version"
  ],
  "properties": {
    "active": {
      "type": "boolean",
      "description": "Whether this benefit is active for employee participation. Company benefits may only be deactivated if no employees are actively participating."
    },
    "version": {
      "type": "string",
      "description": "The current version of the object. See the [versioning guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for information on how to use this field."
    },
    "description": {
      "type": "string",
      "description": "The description of the company benefit.For example, a company may offer multiple benefits with an ID of 1 (for Medical Insurance). The description would show something more specific like “Kaiser Permanente” or “Blue Cross/ Blue Shield”."
    }
  },
  "description": ""
}
array CompanyFormsGetAllFormsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Form"
  }
}
object CompanyFormsSignFormRequest
{
  "type": "object",
  "required": [
    "signature_text",
    "agree",
    "signed_by_ip_address"
  ],
  "properties": {
    "agree": {
      "type": "boolean",
      "description": "whether you agree to sign electronically"
    },
    "signature_text": {
      "type": "string",
      "description": "The signature"
    },
    "signed_by_ip_address": {
      "type": "string",
      "description": "The IP address of the signatory who signed the form."
    }
  },
  "description": ""
}
object Compensation
{
  "type": "object",
  "x-tags": [
    "Jobs and Compensations"
  ],
  "properties": {
    "rate": {
      "type": "string",
      "readOnly": false,
      "description": "The dollar amount paid per payment unit."
    },
    "uuid": {
      "type": "string",
      "readOnly": true,
      "description": "The UUID of the compensation in Gusto."
    },
    "version": {
      "type": "string",
      "description": "The current version of the object. See the [versioning guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information on how to use this field."
    },
    "job_uuid": {
      "type": "string",
      "readOnly": true,
      "description": "The UUID of the job to which the compensation belongs."
    },
    "flsa_status": {
      "$ref": "#/components/schemas/Flsa-Status-Type"
    },
    "payment_unit": {
      "enum": [
        "Hour",
        "Week",
        "Month",
        "Year",
        "Paycheck"
      ],
      "type": "string",
      "readOnly": false,
      "description": "The unit accompanying the compensation rate. If the employee is an owner, rate should be 'Paycheck'."
    },
    "effective_date": {
      "type": "string",
      "readOnly": false,
      "description": "The effective date for this compensation. For the first compensation, this defaults to the job's hire date."
    },
    "adjust_for_minimum_wage": {
      "type": "boolean",
      "readOnly": true,
      "description": "Indicates if the compensation could be adjusted to minimum wage during payroll calculation."
    }
  },
  "x-examples": {
    "Example": {
      "rate": "70.00",
      "uuid": "910b675b-af99-404e-b8d8-562a72b76b44",
      "version": "98jr3289h3298hr9329gf9egskt3kagri32qqgiqe3872",
      "job_uuid": "fe9d72aa-11aa-4f6c-ba3b-4de14598cff6",
      "flsa_status": "Nonexempt",
      "payment_unit": "Hour",
      "effective_date": "2020-12-11",
      "adjust_for_minimum_wage": false
    }
  },
  "description": "The representation of compensation in Gusto."
}
object Contractor
{
  "type": "object",
  "x-tags": [
    "Contractors"
  ],
  "properties": {
    "ein": {
      "type": "string",
      "nullable": true,
      "description": "The Federal Employer Identification Number of the contractor business. This attribute is optional for “Business” contractors and will be ignored for “Individual” contractors."
    },
    "type": {
      "enum": [
        "Individual",
        "Business"
      ],
      "type": "string",
      "description": "The contractor's type, either \"Individual\" or \"Business\". "
    },
    "uuid": {
      "type": "string",
      "readOnly": true,
      "description": "The UUID of the contractor in Gusto."
    },
    "email": {
      "type": "string",
      "nullable": true,
      "description": "The contractor’s email address. This attribute is optional for “Individual” contractors and will be ignored for “Business” contractors. "
    },
    "address": {
      "type": "object",
      "readOnly": true,
      "properties": {
        "zip": {
          "type": "string",
          "readOnly": true
        },
        "city": {
          "type": "string",
          "readOnly": true
        },
        "state": {
          "type": "string",
          "readOnly": true
        },
        "country": {
          "type": "string",
          "readOnly": true
        },
        "street_1": {
          "type": "string",
          "readOnly": true
        },
        "street_2": {
          "type": "string",
          "nullable": true,
          "readOnly": true
        }
      },
      "description": "The contractor’s home address."
    },
    "has_ein": {
      "type": "boolean",
      "nullable": true,
      "description": "Whether company's Employer Identification Number (EIN) is present"
    },
    "version": {
      "type": "string",
      "description": "The current version of the object. See the [versioning guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information on how to use this field."
    },
    "is_active": {
      "type": "boolean",
      "default": true,
      "readOnly": true,
      "description": "The status of the contractor with the company."
    },
    "last_name": {
      "type": "string",
      "nullable": true,
      "description": "The contractor’s last name. This attribute is required for “Individual” contractors and will be ignored for “Business” contractors."
    },
    "onboarded": {
      "type": "boolean",
      "description": "The updated onboarding status for the contractor"
    },
    "wage_type": {
      "enum": [
        "Fixed",
        "Hourly"
      ],
      "type": "string",
      "description": "The contractor's wage type, either \"Fixed\" or \"Hourly\"."
    },
    "first_name": {
      "type": "string",
      "nullable": true,
      "description": "The contractor’s first name. This attribute is required for “Individual” contractors and will be ignored for “Business” contractors."
    },
    "start_date": {
      "type": "string",
      "readOnly": true,
      "description": "The contractor's start date."
    },
    "work_state": {
      "type": "string",
      "nullable": true,
      "description": "State where the contractor will be conducting the majority of their work for the company.\nThis value is used when generating the new hire report."
    },
    "hourly_rate": {
      "type": "string",
      "example": "50.0",
      "description": "The contractor’s hourly rate. This attribute is required if the wage_type is “Hourly”."
    },
    "company_uuid": {
      "type": "string",
      "readOnly": true,
      "description": "The UUID of the company the contractor is employed by."
    },
    "business_name": {
      "type": "string",
      "nullable": true,
      "description": "The name of the contractor business. This attribute is required for “Business” contractors and will be ignored for “Individual” contractors."
    },
    "middle_initial": {
      "type": "string",
      "nullable": true,
      "description": "The contractor’s middle initial. This attribute is optional for “Individual” contractors and will be ignored for “Business” contractors."
    },
    "onboarding_status": {
      "enum": [
        "onboarding_completed",
        "admin_onboarding_review",
        "admin_onboarding_incomplete"
      ],
      "type": "string",
      "description": "One of the \"onboarding_status\" enum values."
    },
    "file_new_hire_report": {
      "type": "boolean",
      "default": false,
      "description": "The boolean flag indicating whether Gusto will file a new hire report for the contractor"
    }
  },
  "description": "The representation of a contractor (individual or business) in Gusto."
}
object Contractor-Address
{
  "allOf": [
    {
      "$ref": "#/components/schemas/Address"
    },
    {
      "type": "object",
      "properties": {
        "contractor_uuid": {
          "type": "integer",
          "description": "The UUID of the contractor"
        }
      }
    }
  ]
}
object Contractor-Bank-Account
{
  "type": "object",
  "title": "Contractor-Bank-Account",
  "x-tags": [
    "Contractor Payment Method"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Name for the bank account"
    },
    "uuid": {
      "type": "string",
      "description": "UUID of the bank account"
    },
    "account_type": {
      "enum": [
        "Checking",
        "Savings"
      ],
      "type": "string",
      "description": "Bank account type"
    },
    "routing_number": {
      "type": "string",
      "description": "The bank account's routing number"
    },
    "contractor_uuid": {
      "type": "string",
      "description": "UUID of the employee"
    },
    "hidden_account_number": {
      "type": "string",
      "description": "Masked bank account number"
    }
  },
  "x-examples": {
    "Example": {
      "value": {
        "name": "BoA Checking Account",
        "uuid": "1531e824-8d9e-4bd8-9f90-0d04608125d7",
        "account_type": "Checking",
        "employee_uuid": "9fcf1b1d-8886-4691-9283-383d3bdd4fd9",
        "routing_number": "266905059",
        "hidden_account_number": "XXXX1207"
      }
    }
  }
}
object Contractor-Body
{
  "type": "object",
  "properties": {
    "ein": {
      "type": "string",
      "description": "The employer identification number of the contractor business.\nThis attribute is optional for `Business` contractors and will be ignored for `Individual` contractors."
    },
    "ssn": {
      "type": "string",
      "pattern": "[0-9]{9}",
      "description": "This attribute is optional for `Individual` contractors and will be ignored for `Business` contractors.\nSocial security number is needed to file the annual 1099 tax form."
    },
    "type": {
      "enum": [
        "Individual",
        "Business"
      ],
      "type": "string",
      "default": "Individual",
      "description": "The contractor type."
    },
    "email": {
      "type": "string",
      "description": "The contractor’s email address."
    },
    "is_active": {
      "type": "boolean",
      "description": "The status of the contractor."
    },
    "last_name": {
      "type": "string",
      "description": "The contractor’s last name.\nThis attribute is required for `Individual` contractors and will be ignored for `Business` contractors."
    },
    "wage_type": {
      "enum": [
        "Fixed",
        "Hourly"
      ],
      "type": "string",
      "description": "The contractor’s wage type.\n"
    },
    "first_name": {
      "type": "string",
      "description": "The contractor’s first name.\nThis attribute is required for `Individual` contractors and will be ignored for `Business` contractors."
    },
    "start_date": {
      "type": "string",
      "example": "2020-01-11",
      "description": "The day when the contractor will start working for the company.\n"
    },
    "work_state": {
      "type": "string",
      "nullable": true,
      "description": "State where the contractor will be conducting the majority of their work for the company.\nThis value is used when generating the new hire report.\nThis attribute is required for `Individual` contractors if `file_new_hire_report` is true and will be ignored for `Business` contractors."
    },
    "hourly_rate": {
      "type": "string",
      "example": "40.0",
      "description": "The contractor’s hourly rate. This attribute is required if the wage_type is `Hourly`."
    },
    "business_name": {
      "type": "string",
      "description": "The name of the contractor business. This attribute is required for `Business` contractors and will be ignored for `Individual` contractors."
    },
    "middle_initial": {
      "type": "string",
      "description": "The contractor’s middle initial.\nThis attribute is optional for `Individual` contractors and will be ignored for `Business` contractors."
    },
    "self_onboarding": {
      "type": "boolean",
      "default": false,
      "description": "Whether the contractor or the payroll admin will complete onboarding in Gusto.\nSelf-onboarding is recommended so that contractors receive Gusto accounts.\nIf self_onboarding is true, then email is required."
    },
    "file_new_hire_report": {
      "type": "boolean",
      "default": false,
      "description": "The boolean flag indicating whether Gusto will file a new hire report for the contractor.\nThis attribute is optional for `Individual` contractors and will be ignored for `Business` contractors."
    }
  }
}
object Contractor-Onboarding-Status
{
  "type": "object",
  "title": "Contractor-Onboarding-Status",
  "x-tags": [
    "Contractor"
  ],
  "properties": {
    "uuid": {
      "type": "string",
      "description": "Unique identifier for this contractor."
    },
    "onboarding_steps": {
      "type": "array",
      "items": {
        "type": "object",
        "title": "Onboarding step",
        "properties": {
          "id": {
            "type": "string",
            "description": "String identifier for the onboarding step."
          },
          "title": {
            "type": "string",
            "description": "User-friendly description of the onboarding step."
          },
          "required": {
            "type": "boolean",
            "description": "When true, this step is required."
          },
          "completed": {
            "type": "boolean",
            "description": "When true, this step has been completed."
          },
          "requirements": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of onboarding steps required to begin this step."
          }
        }
      },
      "description": "List of steps required to onboard a contractor."
    },
    "onboarding_status": {
      "enum": [
        "onboarding_completed",
        "admin_onboarding_review",
        "admin_onboarding_incomplete"
      ],
      "type": "string",
      "description": "One of the \"onboarding_status\" enum values."
    }
  },
  "description": "The representation of an contractor's onboarding status."
}
object Contractor-Payment
{
  "type": "object",
  "title": "Contractor Payment",
  "x-tags": [
    "Contractor Payments"
  ],
  "properties": {
    "date": {
      "type": "string",
      "readOnly": true,
      "description": "The payment date."
    },
    "uuid": {
      "type": "string",
      "readOnly": true,
      "description": "The unique identifier of the contractor payment in Gusto."
    },
    "wage": {
      "type": "string",
      "readOnly": true,
      "description": "The fixed wage of the payment, regardless of hours worked."
    },
    "bonus": {
      "type": "string",
      "readOnly": true,
      "description": "The bonus amount in the payment."
    },
    "hours": {
      "type": "string",
      "readOnly": true,
      "description": "The number of hours worked for the payment."
    },
    "status": {
      "enum": [
        "Funded",
        "Unfunded"
      ],
      "type": "string",
      "description": "Contractor payment status"
    },
    "wage_type": {
      "enum": [
        "Hourly",
        "Fixed"
      ],
      "type": "string",
      "readOnly": true,
      "description": "The wage type for the payment."
    },
    "may_cancel": {
      "type": "boolean",
      "readOnly": true,
      "description": "Determine if the contractor payment can be cancelled."
    },
    "wage_total": {
      "type": "string",
      "readOnly": true,
      "description": "(hours * hourly_rate) + wage + bonus"
    },
    "hourly_rate": {
      "type": "string",
      "readOnly": true,
      "description": "The rate per hour worked for the payment."
    },
    "reimbursement": {
      "type": "string",
      "readOnly": true,
      "description": "The reimbursement amount in the payment."
    },
    "payment_method": {
      "enum": [
        "Direct Deposit",
        "Check",
        "Historical Payment",
        "Correction Payment"
      ],
      "type": "string",
      "readOnly": true,
      "description": "The payment method."
    },
    "contractor_uuid": {
      "type": "string",
      "readOnly": true,
      "description": "The UUID of the contractor."
    }
  },
  "x-examples": {
    "Example": {
      "date": "2020-10-19",
      "uuid": "04552eb9-7829-4b18-ae96-6983552948df",
      "wage": "0.0",
      "bonus": "20.0",
      "hours": "40.0",
      "status": "Funded",
      "wage_type": "Hourly",
      "may_cancel": true,
      "wage_total": "740.00",
      "hourly_rate": "18.0",
      "reimbursement": "100.0",
      "payment_method": "Direct Deposit"
    }
  },
  "description": "The representation of a single contractor payment."
}
object Contractor-Payment-Method
{
  "type": "object",
  "title": "Contractor-Payment-Method",
  "x-tags": [
    "Contractor Payment Method"
  ],
  "properties": {
    "type": {
      "enum": [
        "Direct Deposit",
        "Check"
      ],
      "type": "string",
      "description": "The payment method type. If type is Check, then split_by and splits do not need to be populated. If type is Direct Deposit, split_by and splits are required."
    },
    "splits": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Payment-Method-Bank-Account"
      },
      "nullable": true
    },
    "version": {
      "type": "string",
      "description": "The current version of the object. See the [versioning guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information on how to use this field."
    },
    "split_by": {
      "enum": [
        "Amount",
        "Percentage"
      ],
      "type": "string",
      "nullable": true,
      "description": "Describes how the payment will be split. If split_by is Percentage, then the split amounts must add up to exactly 100. If split_by is Amount, then the last split amount must be nil to capture the remainder."
    }
  },
  "x-examples": {
    "Example-1": {
      "value": {
        "type": "Direct Deposit",
        "splits": [
          {
            "name": "BoA Checking Account",
            "uuid": "e88f9436-b74e-49a8-87e9-777b9bfe715e",
            "priority": 1,
            "split_amount": 100
          }
        ],
        "version": "63859768485e218ccf8a449bb60f14ed",
        "split_by": "Percentage"
      }
    },
    "Example-2": {
      "value": {
        "type": "Check",
        "version": "63859768485e218ccf8a449bb60f14ed"
      }
    }
  },
  "description": ""
}
object Contractor-Payment-Receipt
{
  "type": "object",
  "properties": {
    "totals": {
      "type": "object",
      "properties": {
        "company_debit": {
          "type": "string",
          "description": "The total company debit for the contractor payment."
        }
      },
      "description": "The subtotals for the contractor payment."
    },
    "license": {
      "type": "string",
      "description": "Always the fixed string \"ZenPayroll, Inc., dba Gusto is a licensed money transmitter. For more about Gusto’s licenses and your state-specific rights to request information, submit complaints, dispute errors, or cancel transactions, visit our license page.\""
    },
    "licensee": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string",
          "description": "Always the fixed string \"San Francisco\""
        },
        "name": {
          "type": "string",
          "description": "Always the fixed string \"Gusto, Zenpayroll Inc.\""
        },
        "state": {
          "type": "string",
          "description": "Always the fixed string \"CA\""
        },
        "address": {
          "type": "string",
          "description": "Always the fixed string \"525 20th St\""
        },
        "postal_code": {
          "type": "string",
          "description": "Always the fixed string \"94107\""
        },
        "phone_number": {
          "type": "string",
          "description": "Always the fixed string \"4157778888\""
        }
      },
      "description": "The licensed payroll processor"
    },
    "debit_date": {
      "type": "string",
      "format": "date",
      "example": "2022-05-30",
      "description": "The debit date for the contractor payment."
    },
    "license_uri": {
      "type": "string",
      "description": "URL for the license information for the licensed payroll processor. Always the fixed string \"https://gusto.com/about/licenses\""
    },
    "company_uuid": {
      "type": "string",
      "description": "A unique identifier of the company making the contractor payment."
    },
    "name_of_sender": {
      "type": "string",
      "description": "The name of the company making the contractor payment."
    },
    "right_to_refund": {
      "type": "string",
      "description": "URL for information related to right to refund. Always the fixed string \"https://gusto.com/about/licenses\""
    },
    "name_of_recipient": {
      "type": "string",
      "description": "The individual or company name of the contractor receiving payment."
    },
    "contractor_payments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "wage": {
            "type": "string",
            "description": "The fixed wage of the payment, regardless of hours worked."
          },
          "bonus": {
            "type": "string",
            "description": "The bonus amount in the payment."
          },
          "reimbursement": {
            "type": "string",
            "description": "The reimbursement amount in the payment."
          },
          "payment_method": {
            "type": "string",
            "description": "The payment method.\n\n`Direct Deposit` `Check` `Historical Payment` `Correction Payment`"
          },
          "contractor_type": {
            "type": "string",
            "description": "The type of contractor.\n\n`Individual` `Business`"
          },
          "contractor_uuid": {
            "type": "string",
            "description": "The UUID of the contractor."
          },
          "contractor_last_name": {
            "type": "string",
            "description": "The last name of the contractor.  Applies when `contractor_type` is `Individual`."
          },
          "contractor_first_name": {
            "type": "string",
            "description": "The first name of the contractor. Applies when `contractor_type` is `Individual`."
          },
          "contractor_business_name": {
            "type": "string",
            "description": "The business name of the employee. Applies when `contractor_type` is `Business`."
          }
        }
      },
      "description": "An array of contractor payments for this contractor payment."
    },
    "liability_of_licensee": {
      "type": "string",
      "description": "URL for information related to right to liability of licensee. Always the fixed string \"https://gusto.com/about/licenses\""
    },
    "contractor_payment_uuid": {
      "type": "string",
      "description": "A unique identifier of the contractor payment receipt."
    }
  },
  "x-examples": {
    "example-1": {
      "totals": {
        "company_debit": "748.34"
      },
      "license": "ZenPayroll, Inc., dba Gusto is a licensed money transmitter. For more about Gusto’s licenses and your state-specific rights to request information, submit complaints, dispute errors, or cancel transactions, visit our license page.",
      "licensee": {
        "city": "San Francisco",
        "name": "Gusto, Zenpayroll Inc.",
        "state": "CA",
        "address": "525 20th St",
        "postal_code": "94107",
        "phone_number": "4157778888"
      },
      "debit_date": "2022-06-02",
      "license_uri": "https://gusto.com/about/licenses",
      "company_uuid": "c827aa0d-3928-4d5a-ab1f-400641a7d2b8",
      "name_of_sender": "Torp and Sons and Sons",
      "right_to_refund": "https://gusto.com/about/licenses",
      "name_of_recipient": "Patricia Hamill",
      "contractor_payments": [
        {
          "wage": "448.34",
          "bonus": "248.00",
          "reimbursement": "100.00",
          "payment_method": "Direct Deposit",
          "contractor_type": "Individual",
          "contractor_uuid": "f83d0bd8-7e20-43b9-834c-6d514ef6cb47",
          "contractor_last_name": "Hamill",
          "contractor_first_name": "Patricia",
          "contractor_business_name": ""
        }
      ],
      "liability_of_licensee": "https://gusto.com/about/licenses",
      "contractor_payment_uuid": "afccb970-357e-4013-81f5-85dafc74f9b6"
    }
  }
}
object Contractor-Payment-Summary
{
  "type": "object",
  "x-tags": [
    "Contractor Payments"
  ],
  "properties": {
    "total": {
      "type": "object",
      "readOnly": true,
      "properties": {
        "wages": {
          "type": "string",
          "readOnly": true,
          "description": "The total wages for contractor payments within a given time period."
        },
        "reimbursements": {
          "type": "string",
          "readOnly": true,
          "description": "The total reimbursements for contractor payments within a given time period."
        }
      },
      "description": "The wage and reimbursement totals for all contractor payments within a given time period."
    },
    "contractor_payments": {
      "type": "array",
      "items": {
        "type": "object",
        "readOnly": true,
        "properties": {
          "payments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Contractor-Payment"
            },
            "readOnly": true,
            "description": "The contractor’s payments within a given time period.\n",
            "uniqueItems": false
          },
          "wage_total": {
            "type": "string",
            "readOnly": true,
            "description": "The total wages for the contractor within a given time period."
          },
          "contractor_uuid": {
            "type": "number",
            "readOnly": true,
            "description": "The UUID of the contractor."
          },
          "reimbursement_total": {
            "type": "string",
            "readOnly": true,
            "description": "The total reimbursements for the contractor within a given time period."
          }
        },
        "description": ""
      },
      "readOnly": true,
      "description": "The individual contractor payments, within a given time period, grouped by contractor.",
      "uniqueItems": false
    }
  },
  "x-examples": {
    "Example": {
      "total": {
        "wages": "1840.0",
        "reimbursements": "110.0"
      },
      "contractor_payments": [
        {
          "payments": [
            {
              "date": "2020-10-19",
              "uuid": "04552eb9-7829-4b18-ae96-6983552948df",
              "wage": "0.0",
              "bonus": "20.0",
              "hours": "40.0",
              "wage_type": "Hourly",
              "may_cancel": true,
              "wage_total": "740.00",
              "hourly_rate": "18.0",
              "reimbursement": "100.0",
              "payment_method": "Direct Deposit",
              "contractor_uuid": "bc57832c-d8bc-43a7-ae99-3a03380ff037"
            },
            {
              "date": "2020-10-19",
              "uuid": "25cfeb96-17fc-4fdf-8941-57f3fb9eea00",
              "wage": "1000.0",
              "bonus": "100.0",
              "hours": "0.00",
              "wage_type": "Fixed",
              "may_cancel": true,
              "wage_total": "1100.0",
              "hourly_rate": "0.0",
              "reimbursement": "10.0",
              "payment_method": "Direct Deposit",
              "contractor_uuid": "bc57832c-d8bc-43a7-ae99-3a03380ff037"
            }
          ],
          "wage_total": "1840.0",
          "contractor_uuid": "bc57832c-d8bc-43a7-ae99-3a03380ff037",
          "reimbursement_total": "110.0"
        }
      ]
    }
  },
  "description": "The representation of the summary of contractor payments for a given company in a given time period."
}
object Contractor-Payment-Summary-By-Dates
{
  "type": "object",
  "x-tags": [
    "Contractor Payments"
  ],
  "properties": {
    "total": {
      "type": "object",
      "readOnly": true,
      "properties": {
        "wages": {
          "type": "string",
          "readOnly": true,
          "description": "The total wages for contractor payments within a given time period."
        },
        "reimbursements": {
          "type": "string",
          "readOnly": true,
          "description": "The total reimbursements for contractor payments within a given time period."
        }
      },
      "description": "The wage and reimbursement totals for all contractor payments within a given time period."
    },
    "contractor_payments": {
      "type": "array",
      "items": {
        "type": "object",
        "readOnly": true,
        "properties": {
          "payments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Contractor-Payment"
            },
            "readOnly": true,
            "description": "The contractor’s payments within a given time period.\n",
            "uniqueItems": false
          },
          "check_date": {
            "type": "string",
            "readOnly": true,
            "description": "The payment check date."
          },
          "wage_total": {
            "type": "string",
            "readOnly": true,
            "description": "The total wages for the contractor within a given time period."
          },
          "contractor_uuid": {
            "type": "string",
            "readOnly": true,
            "description": "The UUID of the contractor."
          },
          "reimbursement_total": {
            "type": "string",
            "readOnly": true,
            "description": "The total reimbursements for the contractor within a given time period."
          }
        },
        "description": ""
      },
      "readOnly": true,
      "description": "The individual contractor payments, within a given time period, grouped by check date.",
      "uniqueItems": false
    }
  },
  "x-examples": {
    "Example": {
      "total": {
        "wages": "1840.0",
        "reimbursements": "110.0"
      },
      "contractor_payments": [
        {
          "payments": [
            {
              "date": "2020-10-19",
              "uuid": "04552eb9-7829-4b18-ae96-6983552948df",
              "wage": "0.0",
              "bonus": "20.0",
              "hours": "40.0",
              "wage_type": "Hourly",
              "wage_total": "740.00",
              "hourly_rate": "18.0",
              "reimbursement": "100.0",
              "payment_method": "Direct Deposit",
              "contractor_uuid": "bc57832c-d8bc-43a7-ae99-3a03380ff037"
            },
            {
              "date": "2020-10-19",
              "uuid": "25cfeb96-17fc-4fdf-8941-57f3fb9eea00",
              "wage": "1000.0",
              "bonus": "100.0",
              "hours": "0.00",
              "wage_type": "Fixed",
              "wage_total": "1100.0",
              "hourly_rate": "0.0",
              "reimbursement": "10.0",
              "payment_method": "Direct Deposit",
              "contractor_uuid": "bc57832c-d8bc-43a7-ae99-3a03380ff037"
            }
          ],
          "check_date": "2020-10-19",
          "wage_total": "1840.0",
          "reimbursement_total": "110.0"
        }
      ]
    }
  },
  "description": "The representation of the summary of contractor payments for a given company in a given time period."
}
object ContractorFormsCreate1099FormRequest
{
  "type": "object",
  "required": [
    "contractor_id"
  ],
  "properties": {
    "year": {
      "type": "integer",
      "description": "Must be equal to or more recent than 2015. If not specified, defaults to the previous year.\n"
    },
    "contractor_id": {
      "type": "string",
      "description": "The contractor UUID."
    }
  }
}

Versions

Version Endpoints Schemas Ingested Status
2024-03-01 213 282 2026-05-11 current
2024-03-01 213 282 2026-04-16