openapi: 3.0.0 tags: - name: Current User - name: Companies - name: Employees - name: Contractors - name: Payroll - name: Contractor Payments - name: Company Bank Accounts (Beta) - name: Benefits - name: Locations - name: Jobs - name: Job Applicants (Beta) - name: Compensations - name: Pay Schedules - name: Garnishments - name: Time Off Requests - name: Earning Type - name: Terminations - name: Custom Fields - name: Admins (Beta) info: title: Gusto API version: '1.0' termsOfService: 'https://gusto.com/about/terms/developer-terms-of-service' description: Welcome to Gusto's API documentation. contact: name: Developer Relations email: developer@gusto.com servers: - url: 'https://api.gusto-demo.com' description: Demo - description: Production url: 'https://api.gusto.com' paths: '/v1/employees/{employee_id_or_uuid}': get: summary: Get an employee operationId: get-v1-employees description: Get an employee. parameters: - in: query name: include description: Include the requested attribute(s) in each employee response schema: type: array items: type: string enum: - custom_fields responses: '200': $ref: '#/components/responses/Employee-Object' tags: - Employees put: summary: Update an employee operationId: put-v1-employees description: Update an employee. requestBody: content: application/json: schema: description: '' type: object properties: version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. first_name: type: string middle_initial: type: string last_name: type: string date_of_birth: type: string format: date email: type: string ssn: type: string pattern: '[0-9]{9}' two_percent_shareholder: type: boolean required: - version examples: Example: value: version: db0edd04aaac4506f7edab03ac855d56 first_name: Soren middle_initial: A last_name: Kierkegaard date_of_birth: '1995-05-05' email: knight0faith@example.com ssn: '123456294' two_percent_shareholder: false description: Update an employee. parameters: [] responses: '200': $ref: '#/components/responses/Employee-Object' tags: - Employees parameters: - schema: type: string name: employee_id_or_uuid in: path required: true description: The ID or UUID of the employee '/v1/companies/{company_id_or_uuid}': get: summary: Get a company operationId: get-v1-companies description: Get a company. parameters: [] responses: '200': $ref: '#/components/responses/Company-Object' tags: - Companies parameters: - schema: type: string name: company_id_or_uuid in: path description: The ID or UUID of the company required: true '/v1/companies/{company_id_or_uuid}/employees': parameters: - schema: type: string name: company_id_or_uuid in: path required: true description: The ID or UUID of the company get: summary: Get employees of a company operationId: get-v1-companies-company_id-employees parameters: - schema: type: boolean in: query name: terminated description: Filters employees by the provided boolean - schema: type: number in: query name: page description: 'The page that is requested. When unspecified, will load all employees.' - schema: type: number in: query name: per description: 'Number of employees per page. When unspecified, will default to 25' - in: query name: include description: Include the requested attribute(s) in each employee response schema: type: array items: type: string enum: - custom_fields description: 'Get all of the employees, onboarding, active and terminated, for a given company.' responses: '200': $ref: '#/components/responses/Employee-List' tags: - Employees requestBody: content: application/json: schema: type: object properties: {} post: summary: Create an employee operationId: post-v1-employees requestBody: content: application/json: schema: description: '' type: object properties: first_name: type: string middle_initial: type: string last_name: type: string date_of_birth: type: string format: date email: type: string ssn: type: string pattern: '[0-9]{9}' examples: Example: value: first_name: Soren middle_initial: A last_name: Kierkegaard date_of_birth: '1995-05-05' email: knight0faith@example.com ssn: '123456294' description: Create an employee. parameters: [] description: Create an employee. responses: '201': $ref: '#/components/responses/Employee-Object' tags: - Employees '/v1/jobs/{job_id}': parameters: - schema: type: string name: job_id in: path required: true description: The job ID get: summary: Get a job responses: '200': $ref: '#/components/responses/Job-Object' operationId: get-v1-jobs-job_id parameters: [] description: Get a job. tags: - Jobs put: summary: Update a job responses: '200': $ref: '#/components/responses/Job-Object' operationId: put-v1-jobs-job_id description: Update a job. parameters: [] requestBody: content: application/json: schema: description: '' type: object properties: version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. title: type: string location_id: type: number hire_date: type: string format: date required: - version examples: Example: value: version: gr78930htutrz444kuytr3s5hgxykuveb523fwl8sir title: Regional Manager location_id: 1363316536327002 hire_date: '2020-12-21' description: Update a job. tags: - Jobs delete: summary: Delete an individual job tags: - Jobs responses: '204': description: No Content operationId: delete-v1-jobs-job_id description: Deletes a specific job that an employee holds. '/v1/employees/{employee_id}/jobs': parameters: - schema: type: string name: employee_id in: path required: true description: The employee ID get: summary: Get jobs for an employee responses: '200': $ref: '#/components/responses/Job-List' operationId: get-v1-employees-employee_id-jobs description: Get all of the jobs that an employee holds. parameters: [] tags: - Jobs post: summary: Create a job responses: '201': $ref: '#/components/responses/Job-Object' operationId: post-v1-jobs-job_id description: Create a job. parameters: [] requestBody: content: application/json: schema: description: '' type: object properties: title: type: string location_id: type: number hire_date: type: string format: date examples: Example: value: title: Regional Manager location_id: 1363316536327002 hire_date: '2020-12-21' description: Create a job. tags: - Jobs '/v1/companies/{company_id_or_uuid}/locations': parameters: - schema: type: string name: company_id_or_uuid in: path required: true description: The ID or UUID of the company get: summary: Get company locations responses: '200': $ref: '#/components/responses/Location-List' operationId: get-v1-companies-company_id-locations description: |- Company locations represent all addresses associated with a company. These can be filing addesses, 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. parameters: [] tags: - Locations post: summary: Create a company location responses: '201': $ref: '#/components/responses/Location-Object' operationId: post-v1-companies-company_id-locations description: |- Company locations represent all addresses associated with a company. These can be filing addesses, 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. parameters: [] requestBody: content: application/json: schema: description: '' type: object properties: phone_number: type: string pattern: '[0-9]{10}' street_1: type: string street_2: type: string nullable: true city: type: string state: type: string zip: type: string country: type: string default: USA mailing_address: type: boolean description: Specify if this location is the company's mailing address. filing_address: type: boolean description: Specify if this location is the company's filing address. required: - phone_number - street_1 - city - state - zip examples: Example: value: phone_number: '8009360383' street_1: 425 2nd Street street_2: Suite 602 city: San Francisco state: CA zip: '94107' country: USA application/xml: schema: description: '' type: object properties: phone_number: type: string minLength: 1 street_1: type: string minLength: 1 street_2: type: string nullable: true minLength: 1 city: type: string minLength: 1 state: type: string minLength: 1 zip: type: string minLength: 1 country: type: string minLength: 1 required: - phone_number - street_1 - street_2 - city - state - zip - country examples: Example: value: phone_number: '8009360383' street_1: 425 2nd Street street_2: Suite 602 city: San Francisco state: CA zip: '94107' country: USA description: Create a company location. tags: - Locations '/v1/locations/{location_id}': parameters: - schema: type: string name: location_id in: path required: true description: The ID of the location get: summary: Get a location responses: '200': $ref: '#/components/responses/Location-Object' operationId: get-v1-locations-location_id description: Get a location. parameters: [] tags: - Locations put: summary: Update a location responses: '200': $ref: '#/components/responses/Location-Object' operationId: put-v1-locations-location_id description: Update a location. requestBody: content: application/json: schema: description: '' type: object properties: phone_number: type: string pattern: '[0-9]{10}' street_1: type: string street_2: type: string nullable: true city: type: string state: type: string zip: type: string country: type: string mailing_address: type: boolean description: 'For a company location, specify if this location is the company''s mailing address.' filing_address: type: boolean description: 'For a company location, specify if this location is the company''s filing address.' examples: Example: value: phone_number: '8009360383' street_1: 425 2nd Street street_2: Suite 602 city: San Francisco state: CA zip: '94107' country: USA description: Update a location tags: - Locations '/v1/contractors/{contractor_id_or_uuid}': parameters: - schema: type: string name: contractor_id_or_uuid in: path required: true description: The ID or UUID of the contractor get: summary: Get a contractor tags: - Contractors responses: '200': $ref: '#/components/responses/Contractor-Object' operationId: get-v1-contractors-contractor_id description: Get a contractor. put: summary: Update a contractor tags: - Contractors responses: '200': $ref: '#/components/responses/Contractor-Object' operationId: put-v1-contractors-contractor_id description: Update a contractor. requestBody: content: application/json: schema: description: '' type: object properties: version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. start_date: type: string format: date description: | The day when the contractor will start working for the company. example: '2020-01-11' first_name: type: string description: The contractor’s first name. This attribute is required for “Individual” contractors and will be ignored for “Business” contractors. last_name: type: string description: The contractor’s last name. This attribute is required for “Individual” contractors and will be ignored for “Business” contractors. middle_initial: type: string description: "null\tThe contractor’s middle initial. This attribute is optional for “Individual” contractors and will be ignored for “Business” contractors." wage_type: type: string description: | The contractor’s wage type, either “Fixed” or “Hourly”. enum: - Fixed - Hourly hourly_rate: type: string description: The contractor’s hourly rate. This attribute is required if the wage_type is “Hourly”. example: '40.0' 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. ein: type: string description: The employer identification number of the contractor business. This attribute is optional for “Business” contractors and will be ignored for “Individual” contractors. examples: Update an Individual Contractor: value: version: b48c46abfed1487b873b442334b3c4ff start_date: '2021-01-01' first_name: Chanel last_name: Boyle middle_initial: X wage_type: Hourly hourly_rate: '20.00' Update a Business Contractor: value: version: b48c46abfed1487b873b442334b3c4ff start_date: '2020-01-11' business_name: Contracting Solutions ein: '991113334' wage_type: Fixed description: '' '/v1/companies/{company_id_or_uuid}/contractors': parameters: - schema: type: string name: company_id_or_uuid in: path required: true description: The ID or UUID of the company get: summary: Get contractors of a company tags: - Contractors responses: '200': $ref: '#/components/responses/Contractor-List' operationId: get-v1-companies-company_id-contractors description: 'Get all contractors, active and inactive, individual and business, for a company.' post: summary: Create a contractor tags: - Contractors responses: '201': $ref: '#/components/responses/Contractor-Object' operationId: post-v1-companies-company_id-contractors description: Create an individual or business contractor. requestBody: content: application/json: schema: description: '' type: object properties: type: type: string description: | The contractor type, either an “Individual” or a “Business”. enum: - Individual - Business wage_type: type: string enum: - Hourly - Fixed description: | The contractor’s wage type, either “Fixed” or “Hourly”. first_name: type: string description: The contractor’s first name. This attribute is required for “Individual” contractors and will be ignored for “Business” contractors. last_name: type: string description: The contractor’s last_name. This attribute is optional for “Individual” contractors and will be ignored for “Business” contractors. start_date: format: date type: string example: '2020-10-10' description: The day when the contractor will start working for the company. self_onboarding: type: boolean default: false description: 'Whether the contractor or the payroll admin will complete onboarding in Gusto. Self-onboarding is recommended so that contractors receive Gusto accounts. If self_onboarding is true, then email is required. ' email: type: string description: The contractor’s email address. This attribute is optional for “Individual” contractors and will be ignored for “Business” contractors. middle_initial: type: string description: The contractor’s middle initial. This attribute is optional for “Individual” contractors and will be ignored for “Business” contractors. 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. ein: type: string description: The employer identification number of the contractor business. This attribute is optional for “Business” contractors and will be ignored for “Individual” contractors. required: - type - wage_type - start_date examples: Create an Individual contractor: value: type: Individual wage_type: Fixed first_name: Johnson last_name: Johnson start_date: '2020-04-01' self_onboarding: true email: johnson@johnson.com Create a Business contractor: value: type: Business wage_type: Fixed business_name: Johnson-Johnson Contractors start_date: '2020-04-01' description: Create an individual or business contractor. '/v1/companies/{company_id}/contractor_payments': parameters: - schema: type: string name: company_id in: path required: true description: The ID of the company get: summary: Get contractor payments for a company tags: - Contractor Payments responses: '200': $ref: '#/components/responses/Contractor-Payments' operationId: get-v1-companies-company_id-contractor_payments description: 'Returns an object containing individual contractor payments, within a given time period, including totals.' parameters: - schema: type: string format: date example: '2020-01-01' in: query name: start_date description: The time period for which to retrieve contractor payments - schema: type: string format: date example: '2020-12-31' in: query name: end_date description: The time period for which to retrieve contractor payments post: summary: Create a contractor payment (Beta) tags: - Contractor Payments responses: '200': $ref: '#/components/responses/Contractor-Payment-Object' operationId: post-v1-companies-company_id-contractor_payments description: |- Returns an object containing individual contractor payments, within a given time period, including totals. This endpoint is in beta and intended for **[Gusto Embedded Payroll](https://gusto.com/embedded-payroll)** customers. Please [apply for early access](https://gusto-embedded-payroll.typeform.com/to/iomAQIj3?utm_source=docs) if you’d like to learn more and use it for production. Note, this endpoint will require you to enter a different agreement with Gusto. parameters: - schema: type: string example: '2020-01-01' in: query required: true name: date description: The payment date - schema: type: number example: 7757515807748202 in: query required: true name: contractor_id description: The contractor receiving the payment - schema: type: number example: 5000 in: query name: wage description: 'If the contractor is on a fixed wage, this is the fixed wage payment for the contractor, regardless of hours worked.' - schema: type: number example: 40 in: query name: hours description: 'If the contractor is on an hourly wage, this is the number of hours that the contractor worked for the payment.' - schema: type: number example: 500 in: query name: bonus description: 'If the contractor is on an hourly wage, this is the bonus the contractor earned.' - schema: type: number example: 20 in: query name: reimbursement description: Reimbursed wages for the contractor . '/v1/companies/{company_id}/contractor_payments/{contractor_payment_id_or_uuid}': parameters: - schema: type: string name: company_id in: path required: true description: The ID of the company - schema: type: string name: contractor_payment_id_or_uuid in: path required: true description: The ID or UUID of the contractor payment get: summary: Get a single contractor payment tags: - Contractor Payments responses: '200': $ref: '#/components/responses/Contractor-Payment-Object' operationId: get-single-v1-companies-company_id-contractor_payment-contractor-payment description: Returns a single contractor payments delete: summary: Cancel a contractor payment (Beta) tags: - Contractor Payments responses: '204': description: No Content operationId: delete-v1-companies-company_id-contractor_payment-contractor-payment description: |- Cancels and deletes a contractor payment. If the contractor payment has already started processing, the payment cannot be cancelled. This endpoint is in beta and intended for **[Gusto Embedded Payroll](https://gusto.com/embedded-payroll)** customers. Please [apply for early access](https://gusto-embedded-payroll.typeform.com/to/iomAQIj3?utm_source=docs) if you’d like to learn more and use it for production. Note, this endpoint will require you to enter a different agreement with Gusto. x-internal: false '/v1/compensations/{compensation_id}': parameters: - schema: type: string name: compensation_id in: path required: true description: The ID of the compensation get: summary: Get a compensation responses: '200': $ref: '#/components/responses/Compensation-Object' operationId: get-v1-compensations-compensation_id description: | 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`. Note: Currently, jobs are arbitrarily limited to a single compensation as multiple compensations per job are not yet available in Gusto. The API is architected as if multiple compensations may exist, so integrations should integrate under the same assumption. The only exception is that creating a compensation with the same `job_id` as another will fail with a relevant error. tags: - Compensations put: summary: Update a compensation tags: - Compensations responses: '200': $ref: '#/components/responses/Compensation-Object' operationId: put-v1-compensations-compensation_id description: |- 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`. Note: Currently, jobs are arbitrarily limited to a single compensation as multiple compensations per job are not yet available in Gusto. The API is architected as if multiple compensations may exist, so integrations should integrate under the same assumption. The only exception is that creating a compensation with the same `job_id` as another will fail with a relevant error requestBody: content: application/json: schema: description: '' type: object properties: version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. readOnly: true rate: type: string readOnly: false description: The dollar amount paid per payment unit. payment_unit: type: string readOnly: false description: 'The unit accompanying the compensation rate. If the employee is an owner, rate should be ''Paycheck''.' enum: - Hour - Week - Month - Year - Paycheck flsa_status: type: string readOnly: false description: 'The FLSA status for this compensation. Salaried (''Exempt'') employees are paid a fixed salary every pay period. Salaried with overtime (''Salaried Nonexempt'') employees are paid a fixed salary every pay period, and receive overtime pay when applicable. Hourly (''Nonexempt'') employees are paid for the hours they work, and receive overtime pay when applicable. Owners (''Owner'') are employees that own at least twenty percent of the company. ' enum: - Exempt - Salaried Nonexempt - Nonexempt - Owner required: - version examples: Example: value: version: 98jr3289h3298hr9329gf9egskt3kagri32qqgiqe3872 rate: '60000.00' payment_unit: Year flsa_status: Exempt '/v1/jobs/{job_id}/compensations': parameters: - schema: type: string name: job_id in: path required: true description: The ID of the job to which the compensation belongs get: summary: Get compensations for a job responses: '200': $ref: '#/components/responses/Compensation-List' operationId: get-v1-jobs-job_id-compensations description: |- 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`. Note: Currently, jobs are arbitrarily limited to a single compensation as multiple compensations per job are not yet available in Gusto. The API is architected as if multiple compensations may exist, so integrations should integrate under the same assumption. The only exception is that creating a compensation with the same `job_id` as another will fail with a relevant error. Use the `flsa_status` to determine if an employee is elibgle for overtime. tags: - Compensations post: summary: Create a compensation tags: - Jobs operationId: post-v1-jobs-job_id-compensations description: |- 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`. Note: Currently, jobs are arbitrarily limited to a single compensation as multiple compensations per job are not yet available in Gusto. The API is architected as if multiple compensations may exist, so integrations should integrate under the same assumption. The only exception is that creating a compensation with the same `job_id` as another will fail with a relevant error responses: '201': $ref: '#/components/responses/Compensation-Object' requestBody: content: application/json: schema: description: '' type: object properties: rate: type: string readOnly: false description: The dollar amount paid per payment unit. payment_unit: type: string readOnly: false description: 'The unit accompanying the compensation rate. If the employee is an owner, rate should be ''Paycheck''.' enum: - Hour - Week - Month - Year - Paycheck flsa_status: type: string readOnly: false description: 'The FLSA status for this compensation. Salaried (''Exempt'') employees are paid a fixed salary every pay period. Salaried with overtime (''Salaried Nonexempt'') employees are paid a fixed salary every pay period, and receive overtime pay when applicable. Hourly (''Nonexempt'') employees are paid for the hours they work, and receive overtime pay when applicable. Owners (''Owner'') are employees that own at least twenty percent of the company. ' enum: - Exempt - Salaried Nonexempt - Nonexempt - Owner effective_date: type: string format: date description: 'The effective date for this compensation. For the first compensation, this defaults to the job''s hire date.' required: - rate - payment_unit - flsa_status examples: Example: value: rate: '60000.00' payment_unit: Year flsa_status: Exempt effective_date: '2020-03-15' '/v1/employees/{employee_id}/garnishments': parameters: - schema: type: string name: employee_id in: path required: true description: The ID of the employee to which the garnishment belongs get: summary: Get garnishments for an employee tags: - Garnishments responses: '200': $ref: '#/components/responses/Garnishment-List' operationId: get-v1-employees-employee_id-garnishments description: '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.' post: summary: Create a garnishment tags: - Garnishments responses: '201': $ref: '#/components/responses/Garnishment-Object' operationId: post-v1-employees-employee_id-garnishments description: '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.' requestBody: content: application/json: schema: description: '' type: object properties: active: type: boolean default: true description: Whether or not this garnishment is currently active. amount: type: number format: float readOnly: false description: 'The amount of the garnishment. Either a percentage or a fixed dollar amount. Represented as a float, e.g. "8.00".' description: type: string readOnly: false description: The description of the garnishment. court_ordered: type: boolean readOnly: false description: Whether the garnishment is court ordered. times: type: integer readOnly: false default: null description: The number of times to apply the garnisment. Ignored if recurring is true. recurring: type: boolean readOnly: false default: false description: Whether the garnishment should recur indefinitely. annual_maximum: type: number format: float readOnly: false default: null description: 'The maximum deduction per annum. A null value indicates no maximum. Represented as a float, e.g. "200.00".' pay_period_maximum: type: number format: float default: null description: 'The maximum deduction per pay period. A null value indicates no maximum. Represented as a float, e.g. "16.00".' deduct_as_percentage: type: boolean readOnly: false default: false description: Whether the amount should be treated as a percentage to be deducted per pay period. required: - amount - description - court_ordered examples: Example: value: amount: '150.00' description: Back taxes court_ordered: true recurring: true deduct_as_percentage: false '/v1/garnishments/{garnishment_id}': parameters: - schema: type: string name: garnishment_id in: path required: true description: The ID of the garnishment get: summary: Get a garnishment tags: - Garnishments responses: '200': $ref: '#/components/responses/Garnishment-Object' operationId: get-v1-garnishments-garnishment_id description: '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.' put: summary: Update a garnishment tags: - Garnishments responses: '200': $ref: '#/components/responses/Garnishment-Object' operationId: put-v1-garnishments-garnishment_id description: '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.' requestBody: content: application/json: schema: type: object properties: active: type: boolean default: true description: Whether or not this garnishment is currently active. amount: type: number format: float readOnly: false description: 'The amount of the garnishment. Either a percentage or a fixed dollar amount. Represented as a float, e.g. "8.00".' description: type: string readOnly: false description: The description of the garnishment. court_ordered: type: boolean readOnly: false description: Whether the garnishment is court ordered. times: type: integer readOnly: false default: null description: The number of times to apply the garnisment. Ignored if recurring is true. recurring: type: boolean readOnly: false default: false description: Whether the garnishment should recur indefinitely. annual_maximum: format: float readOnly: false default: null description: 'The maximum deduction per annum. A null value indicates no maximum. Represented as a float, e.g. "200.00".' type: number pay_period_maximum: type: number format: float default: null description: 'The maximum deduction per pay period. A null value indicates no maximum. Represented as a float, e.g. "16.00".' deduct_as_percentage: type: boolean readOnly: false default: false description: Whether the amount should be treated as a percentage to be deducted per pay period. version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. required: - version examples: Example: value: version: 52b7c567242cb7452e89ba2bc02cb476 active: false '/v1/employees/{employee_id}/terminations': parameters: - schema: type: string name: employee_id in: path required: true description: The ID of the employee get: summary: Get terminations for an employee tags: - Terminations responses: '200': $ref: '#/components/responses/Termination-List' operationId: get-v1-employees-employee_id-terminations description: |- 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. post: summary: Create an employee termination tags: - Terminations responses: '201': $ref: '#/components/responses/Termination-Object' operationId: post-v1-employees-employee_id-terminations description: |- 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. requestBody: content: application/json: schema: description: '' type: object properties: effective_date: type: string format: date description: The employee's last day of work. run_termination_payroll: type: boolean description: 'If true, the employee should recieve their final wages via an offcycle payroll. If false, they should recieve their final wages on their current pay schedule.' examples: Example: value: effective_date: '2020-06-30' run_termination_payroll: true '/v1/companies/{company_id}/time_off_requests': parameters: - schema: type: string name: company_id in: path required: true description: The ID of the company get: summary: Get time off requests for a company tags: - Time Off Requests responses: '200': $ref: '#/components/responses/Time-Off-Request-List' operationId: get-v1-companies-company_id-time_off_requests description: | Get all time off requests, past and present, for a company. In order to reduce the number of time off requests returned in a single response, or to retrieve time off requests from a time period of interest, you may use the `start_date` and `end_date` parameters. You may provide both or either parameters to scope the returned data. For example: `?start_date='2019-01-01'` Returns all time off requests where the request start date is equal to or after January 1, 2019. `?end_date='2019-01-01'` Returns all time off requests where the request end date is equal to or before January 1, 2019. `?start_date='2019-05-01'&end_date='2019-08-31'` Returns all time off requests where the request start date is equal to or after May 1, 2019 and the request end date is equal to or before August 31, 2019. parameters: - schema: type: string example: '"2019-05-01"' format: date in: query name: start_date description: Filter time off requests where the request start date is equal to or after this parameter - schema: type: string example: '"2019-08-31"' format: date in: query name: end_date description: Filter time off requests where the request end date is equal to or after this parameter /v1/me: get: summary: Get the current user tags: - Current User responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Current-User' examples: Example: value: id: 1409720965546346 email: torrance.considine1409720965546346@schuster.info roles: payroll_admin: companies: - id: 1409720965614302 name: Crist-Balistreri Group tier: core trade_name: Wyman and Sons LLC locations: - id: 1409721224078163 street_1: 63932 Jalyn Springs street_2: Apt. 445 city: Cannon Beach state: OR zip: '97110' country: USA active: true - id: 1409721315748742 street_1: 1152 River Villages street_2: Apt. 563 city: Cannon Beach state: OR zip: '97110' country: USA active: true operationId: get-v1-me description: Returns information pertaining to the user associated with the provided access token. '/v1/employees/{employee_id}/home_address': parameters: - schema: type: string name: employee_id in: path required: true description: The ID of the employee get: summary: Get an employee's home address tags: - Employees responses: '200': $ref: '#/components/responses/Location-Object' operationId: get-v1-employees-employee_id-home_address description: 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. put: summary: Update an employee's home address tags: - Employees responses: '200': $ref: '#/components/responses/Location-Object' operationId: put-v1-employees-employee_id-home_address description: 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. requestBody: content: application/json: schema: description: '' type: object properties: version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. street_1: type: string street_2: type: string nullable: true city: type: string state: type: string zip: type: string required: - version examples: Example: value: version: fe75bd065ff48b91c35fe8ff842f986c street_1: 300 3rd Street street_2: null city: San Francisco state: CA zip: '94107' '/v1/companies/{company_id}/pay_schedules': parameters: - schema: type: string name: company_id in: path required: true description: The ID of the company get: summary: Get the pay schedules for a company responses: '200': $ref: '#/components/responses/Pay-Schedule-List' operationId: get-v1-companies-company_id-pay_schedules description: 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. tags: - Pay Schedules '/v1/companies/{company_id_or_uuid}/pay_schedules/{pay_schedule_id_or_uuid}': parameters: - schema: type: string name: company_id_or_uuid in: path required: true description: The ID or UUID of the company - schema: type: string name: pay_schedule_id_or_uuid in: path required: true description: The ID or UUID of the pay schedule get: summary: Get a pay schedule responses: '200': $ref: '#/components/responses/Pay-Schedule-Object' operationId: get-v1-companies-company_id-pay_schedules-pay_schedule_id description: 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. tags: - Pay Schedules put: summary: Update a pay schedule tags: - Pay Schedules responses: '200': $ref: '#/components/responses/Pay-Schedule-Object' operationId: put-v1-companies-company_id-pay_schedules-pay_schedule_id description: |- Updates a pay schedule. This endpoint is in beta. Please contact developer-gws@gusto.com if you’d like to have more information and use it for production. Note, this may require you to enter a different agreement with Gusto requestBody: content: application/json: schema: description: '' type: object properties: version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. auto_pilot: type: boolean description: 'With Autopilot® enabled, payroll will run automatically one day before your payroll deadlines.' required: - version examples: Example: value: version: 98jr3289h3298hr9329gf9egskt3kagri32qqgiqe3872 auto_pilot: true '/v1/companies/{company_id_or_uuid}/bank_accounts': parameters: - schema: type: string name: company_id_or_uuid in: path required: true description: The ID or UUID of the company get: summary: Get all company bank accounts responses: '200': $ref: '#/components/responses/Company-Bank-Account-List' operationId: get-v1-companies-company_id-bank-accounts description: |- This endpoint is in beta and intended for **[Gusto Embedded Payroll](https://gusto.com/embedded-payroll)** customers. Please [apply for early access](https://gusto-embedded-payroll.typeform.com/to/iomAQIj3?utm_source=docs) if you’d like to learn more and use it for production. Note, this endpoint will require you to enter a different agreement with Gusto. Returns all company bank accounts tags: - Company Bank Accounts (Beta) post: summary: Create a company bank account operationId: post-v1-companies-company_id-bank-accounts tags: - Company Bank Accounts (Beta) responses: '201': $ref: '#/components/responses/Company-Bank-Account-Object' description: |- This endpoint is in beta and intended for **[Gusto Embedded Payroll](https://gusto.com/embedded-payroll)** customers. Please [apply for early access](https://gusto-embedded-payroll.typeform.com/to/iomAQIj3?utm_source=docs) if you’d like to learn more and use it for production. Note, this endpoint will require you to enter a different agreement with Gusto. Create a company bank account. The new bank account will replace an existing bank account as the default company funding method. requestBody: content: application/json: schema: description: '' type: object properties: routing_number: type: string nullable: false description: The bank routing number account_number: type: string nullable: false description: The bank account number account_type: type: string nullable: false description: The bank account type enum: - Checking - Savings examples: Example: value: routing_number: '115092013' account_type: Checking account_number: '9775014007' '/v1/companies/{company_id_or_uuid}/bank_accounts/{bank_account_uuid}/verify': parameters: - schema: type: string name: company_id_or_uuid in: path required: true description: The ID or UUID of the bank account - schema: type: string name: bank_account_uuid in: path required: true description: Bank account UUID put: summary: Verify a company bank account operationId: put-v1-companies-company_id-bank-accounts-verify tags: - Company Bank Accounts (Beta) responses: '200': $ref: '#/components/responses/Company-Bank-Account-Object' description: |- This endpoint is in beta and intended for **[Gusto Embedded Payroll](https://gusto.com/embedded-payroll)** customers. Please [apply for early access](https://gusto-embedded-payroll.typeform.com/to/iomAQIj3?utm_source=docs) if you’d like to learn more and use it for production. Note, this endpoint will require you to enter a different agreement with Gusto. Verify a company bank account by confirming the two micro-deposits sent to the bank account. Note that the order of the two deposits specified in request parameters does not matter. requestBody: content: application/json: schema: description: '' 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 examples: Example: value: deposit_1: 0.02 deposit_2: 0.42 /v1/benefits: get: summary: Get all benefits supported by Gusto responses: '200': $ref: '#/components/responses/Supported-Benefit-List' operationId: get-v1-benefits description: |- 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. tags: - Benefits '/v1/benefits/{benefit_id}': parameters: - schema: type: string name: benefit_id in: path required: true description: The ID of the benefit get: operationId: get-v1-benefits-benefit_id summary: Get a supported benefit by ID description: |- 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. tags: - Benefits responses: '200': $ref: '#/components/responses/Supported-Benefit-Object' '/v1/companies/{company_id}/company_benefits': parameters: - schema: type: string name: company_id in: path required: true description: The ID of the company get: summary: Get benefits for a company tags: - Benefits responses: '200': $ref: '#/components/responses/Company-Benefit-List' operationId: get-v1-companies-company_id-company_benefits description: |- 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. post: summary: Create a company benefit tags: - Benefits responses: '201': $ref: '#/components/responses/Company-Benefit-Object' operationId: post-v1-companies-company_id-company_benefits description: |- 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. requestBody: content: application/json: schema: description: '' type: object properties: benefit_id: type: number description: The ID of the benefit to which the company benefit belongs. 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”.' 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. 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. required: - benefit_id - description '/v1/company_benefits/{company_benefit_id}': parameters: - schema: type: string name: company_benefit_id in: path required: true description: The ID of the company benefit get: summary: Get a company benefit tags: - Benefits responses: '200': $ref: '#/components/responses/Company-Benefit-Object' operationId: get-v1-company_benefits-company_benefit_id description: |- 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. put: summary: Update a company benefit tags: - Benefits responses: '200': $ref: '#/components/responses/Company-Benefit-Object' operationId: put-v1-company_benefits-company_benefit_id description: |- 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. requestBody: content: application/json: schema: description: '' type: object properties: version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. readOnly: true active: type: boolean description: Whether this benefit is active for employee participation. Company benefits may only be deactivated if no employees are actively participating. 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”.' required: - version examples: Example: value: version: 98jr3289h3298hr9329gf9egskt3kagri32qqgiqe3872 active: false '/v1/companies/{company_id}/earning_types': parameters: - schema: type: string name: company_id in: path required: true description: The ID of the company get: summary: Get all earning types for a company tags: - Earning Type responses: '200': $ref: '#/components/responses/Earning-Type-List' operationId: get-v1-companies-company_id-earning_types description: |- 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. post: summary: Create a custom earning type tags: - Earning Type responses: '201': $ref: '#/components/responses/Earning-Type-Object' operationId: post-v1-companies-company_id-earning_types description: |- Create a custom earning type. If an inactive earning type exists with the same name, this will reactivate it instead of creating a new one. requestBody: content: application/json: schema: type: object properties: name: type: string description: The name of the custom earning type. required: - name examples: Example: value: name: Gym Membership Stipend '/v1/companies/{company_id}/earning_types/{earning_type_uuid}': parameters: - schema: type: string name: company_id in: path required: true description: The ID of the company - schema: type: string name: earning_type_uuid in: path required: true description: The UUID of the earning type put: summary: Update an earning type tags: - Earning Type responses: '200': $ref: '#/components/responses/Earning-Type-Object' operationId: put-v1-companies-company_id-earning_types-earning_type_uuid description: Update an earning type. requestBody: content: application/json: schema: type: object properties: name: type: string description: The name of the custom earning type. examples: Example: value: name: Gym Membership Stipend delete: summary: Deactivate an earning type tags: - Earning Type responses: '204': description: No Content operationId: delete-v1-companies-company_id-earning_types-earning_type_uuid description: Deactivate an earning type. '/v1/employees/{employee_id}/employee_benefits': parameters: - schema: type: string name: employee_id in: path required: true description: The ID of the employee get: summary: Get an employee's benefits tags: - Benefits responses: '200': $ref: '#/components/responses/Employee-Benefit-List' operationId: get-v1-employees-employee_id-employee_benefits description: |- 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 post: summary: Create an employee benefit tags: - Benefits responses: '201': $ref: '#/components/responses/Employee-Benefit-Object' operationId: post-v1-employees-employee_id-employee_benefits description: Employee benefits represent an employee enrolled in a particular company benefit. It includes information specific to that employee’s enrollment. requestBody: content: application/json: schema: description: '' type: object properties: company_benefit_id: type: number description: The ID of the company to which the benefit belongs. readOnly: true active: type: boolean default: true description: Whether the employee benefit is active. employee_deduction: type: string default: '0.00' description: 'The amount to be deducted, per pay period, from the employee''s pay.' company_contribution: type: string default: '0.00' description: 'The amount to be paid, per pay period, by the company.' employee_deduction_annual_maximum: type: string nullable: true description: The maximum employee deduction amount per year. A null value signifies no limit. company_contribution_annual_maximum: type: string nullable: true description: The maximum company contribution amount per year. A null value signifies no limit. limit_option: type: string nullable: true description: 'Some benefits require additional information to determine their limit. For example, for an HSA benefit, the limit option should be either "Family" or "Individual". For a Dependent Care FSA benefit, the limit option should be either "Joint Filing or Single" or "Married and Filing Separately".' 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. contribute_as_percentage: type: boolean default: false description: Whether the company contribution amount should be treated as a percentage to be deducted from each payroll. catch_up: type: boolean default: false description: Whether the employee should use a benefit’s "catch up" rate. Only Roth 401k and 401k benefits use this value for employees over 50. coverage_amount: type: string nullable: true description: 'The amount that the employee is insured for. Note: company contribution cannot be present if coverage amount is set.' deduction_reduces_taxable_income: type: string nullable: true enum: - unset - reduces_taxable_income - does_not_reduce_taxable_income - null description: 'Whether the employee deduction reduces taxable income or not. Only valid for Group Term Life benefits. Note: when the value is not "unset", coverage amount and coverage salary multiplier are ignored.' coverage_salary_multiplier: type: string default: '0.00' description: 'The coverage amount as a multiple of the employee’s salary. Only applicable for Group Term Life benefits. Note: cannot be set if coverage amount is also set.' required: - company_benefit_id examples: Example: value: company_benefit_id: 290384923980230 active: true employee_deduction: '100.00' company_contribution: '100.00' description: '' '/v1/employees/{employee_id}/ytd_benefit_amounts_from_different_company': parameters: - schema: type: string name: employee_id in: path required: true description: The ID of the employee post: summary: Year-to-date Benefit Amounts from Different Company tags: - Benefits operationId: post-employee-ytd-benefit-amounts-from-different-company description: 'Year-to-date benefit amounts from a different company represents the amount of money added to an employees plan during a current year, made outside of the current contribution when they were employed at a different company.' requestBody: $ref: '#/components/requestBodies/post-employee-ytd-benefit-amounts-from-different-company' responses: '204': description: No Content '/v1/employee_benefits/{employee_benefit_id}': parameters: - schema: type: string name: employee_benefit_id in: path required: true description: The ID of the employee benefit get: summary: Get an employee benefit tags: - Benefits responses: '200': $ref: '#/components/responses/Employee-Benefit-Object' operationId: get-v1-employee_benefits-employee_benefit_id description: Employee benefits represent an employee enrolled in a particular company benefit. It includes information specific to that employee’s enrollment. put: summary: Update an employee benefit tags: - Benefits responses: '200': $ref: '#/components/responses/Employee-Benefit-Object' operationId: put-v1-employee_benefits-employee_benefit_id description: Employee benefits represent an employee enrolled in a particular company benefit. It includes information specific to that employee’s enrollment. requestBody: content: application/json: schema: type: object properties: version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. readOnly: true active: type: boolean default: true description: Whether the employee benefit is active. employee_deduction: type: string default: '0.00' description: 'The amount to be deducted, per pay period, from the employee''s pay.' company_contribution: type: string default: '0.00' description: 'The amount to be paid, per pay period, by the company.' employee_deduction_annual_maximum: type: string nullable: true description: The maximum employee deduction amount per year. A null value signifies no limit. company_contribution_annual_maximum: type: string nullable: true description: The maximum company contribution amount per year. A null value signifies no limit. limit_option: type: string nullable: true description: 'Some benefits require additional information to determine their limit. For example, for an HSA benefit, the limit option should be either "Family" or "Individual". For a Dependent Care FSA benefit, the limit option should be either "Joint Filing or Single" or "Married and Filing Separately".' 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. contribute_as_percentage: type: boolean default: false description: Whether the company contribution amount should be treated as a percentage to be deducted from each payroll. catch_up: type: boolean default: false description: Whether the employee should use a benefit’s "catch up" rate. Only Roth 401k and 401k benefits use this value for employees over 50. coverage_amount: type: string nullable: true description: 'The amount that the employee is insured for. Note: company contribution cannot be present if coverage amount is set.' deduction_reduces_taxable_income: type: string nullable: true default: unset enum: - unset - reduces_taxable_income - does_not_reduce_taxable_income - null description: 'Whether the employee deduction reduces taxable income or not. Only valid for Group Term Life benefits. Note: when the value is not "unset", coverage amount and coverage salary multiplier are ignored.' coverage_salary_multiplier: type: string default: '0.00' description: 'The coverage amount as a multiple of the employee’s salary. Only applicable for Group Term Life benefits. Note: cannot be set if coverage amount is also set.' required: - version examples: Example: value: version: 09j3d29jqdpj92109j9j2d90dq employee_deduction: '250.00' delete: summary: Delete an employee benefit tags: - Benefits responses: '204': description: No Content operationId: delete-v1-employee_benefits-employee_benefit_id description: Employee benefits represent an employee enrolled in a particular company benefit. It includes information specific to that employee’s enrollment. '/v1/companies/{company_id_or_uuid}/pay_periods': parameters: - schema: type: string name: company_id_or_uuid in: path required: true description: The ID or UUID of the company get: summary: Get pay periods for a company tags: - Payroll responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/Pay-Period' examples: Example: value: - start_date: '2020-12-12' end_date: '2020-12-25' pay_schedule_id: 1409756036510222 pay_schedule_uuid: 00ebc4a4-ec88-4435-8f45-c505bb63e501 eligible_employees: - id: 1409722316858016 job_ids: - 1409722316881160 - id: 7740244452464965 job_ids: - 7740244454306064 - id: 7757869431131641 job_ids: - 7757869439389315 payroll: processed: true payroll_deadline: '2020-12-28' - start_date: '2020-12-26' end_date: '2021-01-08' pay_schedule_id: 1409756036510222 pay_schedule_uuid: 00ebc4a4-ec88-4435-8f45-c505bb63e501 eligible_employees: - id: 1409722316858016 job_ids: - 1409722316881160 - id: 7740244452464965 job_ids: - 7740244454306064 - id: 7757869431131641 job_ids: - 7757869439389315 payroll: processed: true payroll_deadline: '2021-01-12' - start_date: '2021-01-09' end_date: '2021-01-22' pay_schedule_id: 1409756036510222 pay_schedule_uuid: 00ebc4a4-ec88-4435-8f45-c505bb63e501 eligible_employees: - id: 1409722316858016 job_ids: - 1409722316881160 - id: 7740244452464965 job_ids: - 7740244454306064 payroll: processed: true payroll_deadline: '2021-01-26' - start_date: '2021-01-23' end_date: '2021-02-05' pay_schedule_id: 1409756036510222 pay_schedule_uuid: 00ebc4a4-ec88-4435-8f45-c505bb63e501 eligible_employees: - id: 1409722316858016 job_ids: - 1409722316881160 - id: 7740244452464965 job_ids: - 7740244454306064 payroll: processed: false payroll_deadline: '2021-02-09' - start_date: '2021-02-06' end_date: '2021-02-19' pay_schedule_id: 1409756036510222 pay_schedule_uuid: 00ebc4a4-ec88-4435-8f45-c505bb63e501 eligible_employees: - id: 1409722316858016 job_ids: - 1409722316881160 - id: 7740244452464965 job_ids: - 7740244454306064 payroll: processed: false payroll_deadline: '2021-02-23' operationId: get-v1-companies-company_id-pay_periods description: |- 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 every current and past pay period for a company. Since companies can process payroll as often as every week, there can be up to 53 pay periods a year. If a company has been running payroll with Gusto for five years, this endpoint could return up to 265 pay periods. Use the `start_date` and `end_date` parameters to reduce the scope of the response. parameters: - schema: type: string example: '2020-01-01' format: date in: query name: start_date - schema: type: string format: date example: '2020-01-31' in: query name: end_date '/v1/companies/{company_id_or_uuid}/payrolls': parameters: - schema: type: string name: company_id_or_uuid in: path description: The ID or UUID of the company required: true get: summary: Get all payrolls for a company tags: - Payroll responses: '200': $ref: '#/components/responses/Payroll-List' operationId: get-v1-companies-company_id-payrolls description: |- Returns all payrolls, current and past for a company. 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 ). parameters: - schema: type: boolean in: query name: processed description: Whether to return processed or unprocessed payrolls - schema: type: boolean in: query name: include_off_cycle description: Whether to include off cycle payrolls in the response - schema: type: array items: type: string enum: - benefits - deductions - taxes in: query name: include description: Include the requested attribute in the employee_compensations attribute in the response - schema: type: string format: date in: query name: start_date description: Return payrolls whose pay period is after the start date - schema: type: string format: date in: query name: end_date description: Return payrolls whose pay period is before the end date post: summary: Create an Off-Cycle Payroll (Beta) tags: - Payroll responses: '200': $ref: '#/components/responses/Payroll-Object' operationId: post-v1-companies-company_id-payrolls description: |- This endpoint is in beta and intended for **[Gusto Embedded Payroll](https://gusto.com/embedded-payroll)** customers. Please [apply for early access](https://gusto-embedded-payroll.typeform.com/to/iomAQIj3?utm_source=docs) if you’d like to learn more and use it for production. Note, this endpoint will require you to enter a different agreement with Gusto. Creates a new, unprocessed, off-cycle payroll. requestBody: content: application/json: schema: type: object properties: off_cycle: type: string off_cycle_reason: type: string enum: - Bonus - Correction start_date: type: string format: date end_date: type: string format: date employee_ids: type: array items: type: integer check_date: type: string required: - off_cycle '/v1/companies/{company_id_or_uuid}/payrolls/{payroll_id_or_uuid}': parameters: - schema: type: string name: company_id_or_uuid in: path required: true description: The ID or UUID of the company - schema: type: string name: payroll_id_or_uuid in: path required: true description: 'The ID or UUID of the payroll ' put: summary: Update a payroll by ID tags: - Payroll responses: '200': $ref: '#/components/responses/Payroll-Object' operationId: put-v1-companies-company_id-payrolls description: This endpoint allows you to update information for one or more employees for a specific **unprocessed** payroll. requestBody: content: application/json: schema: type: object properties: version: type: string description: The current version of the object. See the versioning guide for details using this field. employee_compensations: type: array items: type: object required: - employee_id description: '' properties: employee_id: type: integer description: The ID of the employee. fixed_compensations: type: array items: type: object description: 'An array of fixed compensations for the employee. Fixed compensations include tips, bonuses, and one time reimbursements.' properties: name: type: string description: 'The name of the compensation. This also serves as the unique, immutable identifier for this compensation.' amount: type: string description: The amount of the compensation for the pay period. job_id: type: integer description: The ID of the job for the compensation. hourly_compensations: type: array items: type: object description: 'An array of hourly compensations for the employee. Hourly compensations include regular, overtime, and double overtime hours.' properties: name: type: string description: 'The name of the compensation. This also serves as the unique, immutable identifier for this compensation.' hours: type: string description: The number of hours to be compensated for this pay period. job_id: type: integer description: The ID of the job for the compensation. paid_time_off: type: array description: An array of all paid time off the employee is eligible for this pay period. items: type: object properties: name: type: string description: 'The name of the PTO. This also serves as the unique, immutable identifier for the PTO.' hours: type: string description: The hours of this PTO taken during the pay period. required: - version - employee_compensations examples: Example: value: version: 19289df18e6e20f797de4a585ea5a91535c7ddf7 employee_compensations: - employee_id: 1123581321345589 fixed_compensations: - name: Bonus amount: '200.00' job_id: 1 hourly_compensations: - name: Regular Hours hours: '30.000' job_id: 1 - name: Double Overtime hours: '20.000' job_id: 1 - name: Overtime hours: '10.000' job_id: 2 paid_time_off: - name: Vacation Hours hours: '25.000' - name: Sick Hours hours: '10.000' - name: Holiday Hours hours: '8.000' get: summary: Get a single payroll tags: - Payroll responses: '200': $ref: '#/components/responses/Payroll-Object' operationId: get-v1-companies-company_id-payrolls-payroll_id description: |- Returns a payroll. 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 ). parameters: - schema: type: string enum: - benefits - deductions - taxes in: query name: include description: Include the requested attribute in the employee_compensations attribute in the response - schema: type: string in: query name: show_calculation description: 'with `include`, shows the tax, and/or benefit, and/or deduction details for a calculated, unprocessed payroll. ' '/v1/companies/{company_id_or_uuid}/payrolls/{pay_period_start_date}/{pay_period_end_date}': parameters: - schema: type: string name: company_id_or_uuid in: path required: true description: The ID or UUID of the company - schema: type: string format: date name: pay_period_start_date in: path required: true description: The start_date of the pay period for the payroll - schema: type: string format: date name: pay_period_end_date in: path required: true description: The end_date of the pay period for the payroll put: summary: Update a payroll tags: - Payroll responses: '200': $ref: '#/components/responses/Payroll-Object' operationId: put-v1-companies-company_id-payrolls-pay_period_start_date-pay_period_end_date description: |- This endpoint allows you to update information for one or more employees for a specific **unprocessed** payroll. The payrolls are identified by their pay periods’ start_date and end_date. Both are required and must correspond with an existing, unprocessed payroll. *If the dates do not match, the entire request will be rejected.* This was an explicit design decision to remove any assumptions around the timespan for data sent. requestBody: content: application/json: schema: type: object properties: version: type: string description: The current version of the object. See the versioning guide for details using this field. employee_compensations: type: array items: type: object required: - employee_id description: '' properties: employee_id: type: integer description: The ID of the employee. fixed_compensations: type: array items: type: object description: 'An array of fixed compensations for the employee. Fixed compensations include tips, bonuses, and one time reimbursements.' properties: name: type: string description: 'The name of the compensation. This also serves as the unique, immutable identifier for this compensation.' amount: type: string description: The amount of the compensation for the pay period. job_id: type: integer description: The ID of the job for the compensation. hourly_compensations: type: array items: type: object description: 'An array of hourly compensations for the employee. Hourly compensations include regular, overtime, and double overtime hours.' properties: name: type: string description: 'The name of the compensation. This also serves as the unique, immutable identifier for this compensation.' hours: type: string description: The number of hours to be compensated for this pay period. job_id: type: integer description: The ID of the job for the compensation. paid_time_off: type: array description: An array of all paid time off the employee is eligible for this pay period. items: type: object properties: name: type: string description: 'The name of the PTO. This also serves as the unique, immutable identifier for the PTO.' hours: type: string description: The hours of this PTO taken during the pay period. required: - version - employee_compensations examples: Example: value: version: 19289df18e6e20f797de4a585ea5a91535c7ddf7 employee_compensations: - employee_id: 1123581321345589 fixed_compensations: - name: Bonus amount: '200.00' job_id: 1 hourly_compensations: - name: Regular Hours hours: '30.000' job_id: 1 - name: Double overtime hours: '20.000' job_id: 1 - name: Overtime hours: '10.000' job_id: 2 paid_time_off: - name: Vacation Hours hours: '25.000' - name: Sick Hours hours: '10.000' - name: Holiday Hours hours: '8.000' /v1/partner_managed_companies: post: summary: Create a partner managed company (Beta) tags: - Companies responses: '200': description: OK content: application/json: schema: description: '' type: object properties: access_token: type: string description: Access token that can be used for OAuth access to the account. Access tokens expire 2 hours after they are issued. readOnly: true refresh_token: type: string description: Refresh token that can be exchanged for a new access token. readOnly: true company_uuid: type: string description: Gusto’s UUID for the company readOnly: true examples: Example: value: access_token: de6780bc506a0446309bd9362820ba8aed28aa506c71eedbe1c5c4f9dd350e54 refresh_token: 8257e65c97202ed1726cf9571600918f3bffb2544b26e00a61df9897668c33a1 company_uuid: d525dd21-ba6e-482c-be15-c2c7237f1364 operationId: post-v1-partner-managed-companies description: |- This endpoint is in beta and intended for **[Gusto Embedded Payroll](https://gusto.com/embedded-payroll)** customers. Please [apply for early access](https://gusto-embedded-payroll.typeform.com/to/iomAQIj3?utm_source=docs) if you’d like to learn more and use it for production. Note, this endpoint will require you to enter a different agreement with Gusto. ### Overview The partner managed company API provides a way to create a Gusto company that you can manage. This endpoint behaves similarly to [creating a company](../~1v1~1provision/post) in that it does the following: * Creates a new company in Gusto. * Creates a new user in Gusto. * Makes the new user the primary payroll administrator of the new company. * Sends a welcome email to the new user. Additionally, on successful creation of the company, this API will do the following: * Creates a link between the partner and the company. * Creates access tokens and refresh tokens that can be used immediately. In the response, you will receive the access token, the refresh token, and the uuid of the created company. ### Authentication Due to the nature of this endpoint, Gusto will provide partners with an API token and will permit partners to use API Token Authentication instead of OAuth to provision Gusto accounts. The API token is included in the authorization HTTP header with the Token scheme, e.g.: ``` Content-Type: application/json Authorization: Token bbb286ff1a4fe6b84742b0d49b8d0d65bd0208d27d3d50333591df71 ``` requestBody: content: application/json: schema: description: '' type: object properties: user: type: object description: Information for the user who will be the primary payroll administrator for the new company. required: - first_name - last_name - email properties: first_name: type: string description: The first name 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. 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. company: type: object required: - name properties: name: type: string description: The legal name of the company. trade_name: type: string description: The name of the company. ein: type: string description: The employer identification number (EIN) of the company. required: - user - company examples: Example: value: user: first_name: Frank last_name: Ocean email: frank@example.com phone: '2345558899' company: name: 'Frank''s Ocean, LLC' trade_name: Frank’s Ocean ein: '123456789' description: '' security: [] /v1/provision: post: summary: Create a company tags: - Companies responses: '200': description: OK content: application/json: schema: description: '' type: object properties: account_claim_url: type: string description: A URL where the user should be redirected to complete their account setup inside of Gusto. readOnly: true examples: Example: value: account_claim_url: 'https://app.gusto.com/claim_account/3456789' operationId: post-v1-provision description: |- ### Overview The company provisioning API provides a way to create a Gusto company as part of your integration. When you successfully call the API, the API does the following: * Creates a new company in Gusto. * Creates a new user in Gusto. * Makes the new user the primary payroll administrator of the new company. * Sends a welcome email to the new user. In the response, you will receive an account claim URL. Redirect the user to this URL to complete their account setup inside of Gusto ### Authentication Due to the nature of this endpoint, Gusto will provide partners with an API token and will permit partners to use API Token Authentication instead of OAuth to provision Gusto accounts. The API token is included in the authorization HTTP header with the Token scheme, e.g.: ``` Content-Type: application/json Authorization: Token bbb286ff1a4fe6b84742b0d49b8d0d65bd0208d27d3d50333591df71 ``` requestBody: content: application/json: schema: description: '' type: object properties: user: type: object description: Information for the user who will be the primary payroll administrator for the new company. required: - first_name - last_name - email properties: first_name: type: string description: The first name 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. 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. company: type: object required: - name properties: name: type: string description: The legal name of the company. trade_name: type: string description: The name of the company. ein: type: string description: The employer identification number (EIN) of the company. states: type: array description: 'The states in which the company operates. States should be included by their two letter code, i.e. NY for New York. ' items: type: string number_employees: type: number description: The number of employees in the company. addresses: type: array uniqueItems: false description: 'The locations for the company. This includes mailing, work, and filing addresses.' items: type: object properties: street_1: type: string street_2: type: string nullable: true city: type: string zip: type: string state: type: string phone: type: string is_primary: type: string description: 'Whether or not this is a primary address for the company. If set to true, the address will be used as the mailing and filing address for the company and will be added as a work location. If set to false or not included, the address will only be added as a work location for the company. If multiple addresses are included, only one should be marked as primary.' required: - user - company examples: Example: value: user: first_name: Frank last_name: Ocean email: frank@example.com phone: '2345558899' company: name: 'Frank''s Ocean, LLC' trade_name: Frank’s Ocean tier: complete ein: '123456789' states: - CO - CA number_employees: 8 addresses: - street_1: 1201 16th Street Mall street_2: Suite 350 city: Denver zip: '80202' state: CO phone: '2345678900' is_primary: 'true' - street_1: 525 20th Street city: San Francisco zip: '94107' state: CA phone: '2345678901' description: '' security: [] '/v1/employees/{employee_id}/custom_fields': parameters: - schema: type: string name: employee_id in: path required: true description: The ID of the employee get: summary: Get an employee's custom fields tags: - Custom Fields responses: '200': description: OK content: application/json: schema: type: object properties: custom_fields: type: array items: $ref: '#/components/schemas/Employee-Custom-Field' examples: Example: value: custom_fields: - id: ee515986-f3ca-49da-b576-2691b95262f9 company_custom_field_id: ea7e5d57-6abb-47d7-b654-347c142886c0 name: employee_level description: Employee Level type: text value: '2' selection_options: null - id: 3796e08d-c2e3-434c-b4de-4ce1893e7b59 company_custom_field_id: 299650e4-e970-4acf-9bf0-6f05585d20ba name: t-shirt size description: What is your t-shirt size? type: text value: md selection_options: null - id: 3796e08d-c2e3-434c-b4de-4ce1893e7b59 company_custom_field_id: 024ec137-6c92-43a3-b061-14a9720531d6 name: favorite fruit description: Which is your favorite fruit? type: radio value: apple selection_options: - apple - banana - orange operationId: get-v1-employees-employee_id-custom_fields description: Returns a list of the employee's custom fields. '/v1/companies/{company_id}/custom_fields': parameters: - schema: type: string name: company_id in: path required: true description: The ID of the company get: summary: Get the custom fields of a company description: 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 operationId: get-v1-companies-company_id-custom_fields tags: - Custom Fields responses: '200': description: OK content: application/json: schema: type: object properties: custom_fields: type: array items: $ref: '#/components/schemas/Company-Custom-Field' examples: Example: value: custom_fields: - id: ea7e5d57-6abb-47d7-b654-347c142886c0 name: employee_level description: Employee Level type: text selection_options: null - id: 299650e4-e970-4acf-9bf0-6f05585d20ba name: t-shirt size description: What is your t-shirt size? type: text selection_options: null - id: 024ec137-6c92-43a3-b061-14a9720531d6 name: favorite fruit description: Which is your favorite fruit? type: radio selection_options: - apple - banana - orange '/v1/companies/{company_id}/time_off_requests/{time_off_request_id}': parameters: - schema: type: string name: company_id in: path required: true description: The ID of the company - schema: type: string name: time_off_request_id in: path required: true description: The ID of the time off request get: summary: Get a specific time off request tags: - Time Off Requests responses: '200': $ref: '#/components/responses/Time-Off-Request-Object' operationId: get-v1-companies-company_id-time_off_requests-time_off_request_id description: Details of a single time off request '/v1/companies/{company_id}/job_applicants': parameters: - schema: type: string name: company_id in: path required: true description: The ID of the company post: summary: Create a job applicant operationId: post-v1-companies-company_id-job_applicants responses: '201': $ref: '#/components/responses/Job-Applicant-Object' tags: - Job Applicants (Beta) description: |- *This endpoint is in beta - we will be making breaking changes based on developer feedback. Create a job applicant. requestBody: content: application/json: schema: description: '' type: object properties: first_name: type: string last_name: type: string email: type: string phone: type: string nullable: true onboarding_person_type: type: string description: Must be "Employee" if send_offer is set to true. enum: - Employee - Contractor nullable: true send_offer: type: boolean description: Required if onboarding_person_type is set to "Employee". nullable: true job_title: type: string nullable: true date_of_birth: type: string format: date nullable: true start_date: type: string format: date nullable: true required: - first_name - last_name - email examples: Example: value: first_name: John last_name: Smith email: jsmith99@gmail.com phone: '9606437980' onboarding_person_type: Employee send_offer: true job_title: Software engineer date_of_birth: '1990-01-01' start_date: '2021-05-01' description: 'If you want to add the job applicant as an employee or contractor, include the onboarding_person_type field. You can then find them in the hiring center in Gusto. Otherwise, you can manually import them through the import applicant flow.' get: summary: Get all job applicants for a company tags: - Job Applicants (Beta) responses: '200': $ref: '#/components/responses/Job-Applicant-List' operationId: get-v1-companies-company_id-job_applicants description: |- *This endpoint is in beta - we will be making breaking changes based on developer feedback. Returns all job applicants for a company. '/v1/companies/{company_id}/job_applicants/{job_applicant_uuid}': parameters: - schema: type: string name: company_id in: path required: true description: The ID of the company - schema: type: string name: job_applicant_uuid in: path required: true description: The UUID of the job applicant get: summary: Get a job applicant tags: - Job Applicants (Beta) responses: '200': $ref: '#/components/responses/Job-Applicant-Object' operationId: get-v1-companies-company_id-job_applicants-job_applicant_uuid description: |- *This endpoint is in beta - we will be making breaking changes based on developer feedback. Returns a single job applicant. put: summary: Update a job applicant operationId: put-v1-companies-company_id-job_applicants-job_applicant_uuid responses: '200': $ref: '#/components/responses/Job-Applicant-Object' description: |- *This endpoint is in beta - we will be making breaking changes based on developer feedback. Update an existing job applicant (only allowed when the job applicant has not been imported). requestBody: content: application/json: schema: description: '' type: object properties: first_name: type: string nullable: true last_name: type: string nullable: true email: type: string nullable: true phone: type: string nullable: true onboarding_person_type: type: string description: Must be "Employee" if send_offer is set to true. enum: - Employee - Contractor nullable: true send_offer: type: boolean description: Required if onboarding_person_type is set to "Employee". nullable: true job_title: type: string nullable: true date_of_birth: type: string format: date nullable: true start_date: type: string format: date nullable: true examples: Example: value: first_name: John last_name: Smith email: jsmith99@gmail.com phone: '9606437980' onboarding_person_type: Employee send_offer: true job_title: Software engineer date_of_birth: '1990-01-01' start_date: '2021-05-01' description: At least one param is required. tags: - Job Applicants (Beta) delete: summary: Delete a job applicant operationId: delete-v1-companies-company_id-job_applicants-job_applicant_uuid responses: '204': description: No Content description: |- *This endpoint is in beta - we will be making breaking changes based on developer feedback. Permanently remove a job applicant by uuid (only allowed when the job applicant has not been imported). tags: - Job Applicants (Beta) '/v1/companies/{company_id}/payrolls/{payroll_id}/calculate': parameters: - schema: type: string name: company_id in: path required: true - schema: type: string name: payroll_id in: path required: true put: summary: Calculate a Payroll (Beta) tags: - Payroll responses: '202': description: Accepted operationId: put-v1-companies-company_id-payrolls-payroll_id-calculate description: |- This endpoint is in beta and intended for **[Gusto Embedded Payroll](https://gusto.com/embedded-payroll)** customers. Please [apply for early access](https://gusto-embedded-payroll.typeform.com/to/iomAQIj3?utm_source=docs) if you’d like to learn more and use it for production. Note, this endpoint will require you to enter a different agreement with Gusto. Performs calculations for taxes, benefits, and deductions for an unprocessed payroll. The calculated payroll details provide a preview of the actual values that will be used when the payroll is run. This endpoint is asynchronous and responds with only a 202 HTTP status. To view the details of the calculated payroll, use the GET /v1/companies/{company_id}/payrolls/{payroll_id} endpoint with the *show_calculation=true* and *include=taxes,benefits,deductions* params parameters: [] '/v1/companies/{company_id}/payrolls/{payroll_Id}/submit': parameters: - schema: type: string name: company_id in: path required: true description: Company ID - schema: type: string name: payroll_Id in: path required: true description: Payroll ID put: summary: Submit Payroll (Beta) tags: - Payroll responses: '202': description: Accepted operationId: put-v1-companies-company_id-payrolls-payroll_Id-submit description: |- This endpoint is in beta and intended for **[Gusto Embedded Payroll](https://gusto.com/embedded-payroll)** customers. Please [apply for early access](https://gusto-embedded-payroll.typeform.com/to/iomAQIj3?utm_source=docs) if you’d like to learn more and use it for production. Note, this endpoint will require you to enter a different agreement with Gusto. Submits an unprocessed payroll to be calculated and run. Upon success, transitions the payroll to the `processed` state. '/v1/companies/{company_id}/payrolls/{payroll_id}/cancel': parameters: - schema: type: string name: company_id in: path required: true description: Company ID - schema: type: string name: payroll_id in: path required: true description: Payroll ID put: summary: Cancel a Payroll (Beta) tags: - Payroll responses: '200': $ref: '#/components/responses/Payroll-Object' operationId: put-api-v1-companies-company_id-payrolls-payroll_id-cancel description: | This endpoint is in beta and intended for **[Gusto Embedded Payroll](https://gusto.com/embedded-payroll)** customers. Please [apply for early access](https://gusto-embedded-payroll.typeform.com/to/iomAQIj3?utm_source=docs) if you’d like to learn more and use it for production. Note, this endpoint will require you to enter a different agreement with Gusto. Transitions a `processed` payroll back to the `unprocessed` state. A payroll cannot be canceled once it has entered the `funded` state. '/v1/companies/{company_id_or_uuid}/payroll_reversals': parameters: - schema: type: string name: company_id_or_uuid in: path required: true get: summary: Get approved Payroll Reversals tags: - Payroll responses: '200': description: OK content: application/json: schema: type: object properties: reversed_payroll_id: type: integer description: The payroll run being reversed. reversal_payroll_id: type: integer description: The payroll where the reversal was applied. reason: type: string description: A reason provided by the admin who created the reversal. approved_at: type: string description: Timestamp of when the reversal was approved. category: type: string description: Category chosen by the admin who requested the reversal. reversed_employee_ids: type: array description: Array of employee ids affected. items: type: integer examples: Successful Response: value: reversed_payroll_id: 3 reversal_payroll_id: 5 reason: Customer Request approved_at: null category: convert_check_ee_requested reversed_employee_ids: - 3 operationId: get-v1-companies-company_id_or_uuid-payroll_reversals description: Returns all approved Payroll Reversals for a Company. '/v1/companies/{company_id}/admins': parameters: - schema: type: string name: company_id in: path required: true description: The ID of the company get: summary: Get all the admins at a company tags: - Admins (Beta) operationId: get-v1-companies-company_id-admins responses: '200': $ref: '#/components/responses/Admin-List' description: |- This endpoint is in beta and intended for **[Gusto Embedded Payroll](https://gusto.com/embedded-payroll)** customers. Please [apply for early access](https://gusto-embedded-payroll.typeform.com/to/iomAQIj3?utm_source=docs) if you’d like to learn more and use it for production. Note, this endpoint will require you to enter a different agreement with Gusto. Returns a list of all the admins at a company post: summary: Create an admin for the company. tags: - Admins (Beta) operationId: post-v1-companies-company_id-admins responses: '200': $ref: '#/components/responses/Admin-Object' description: |- This endpoint is in beta and intended for **[Gusto Embedded Payroll](https://gusto.com/embedded-payroll)** customers. Please [apply for early access](https://gusto-embedded-payroll.typeform.com/to/iomAQIj3?utm_source=docs) if you’d like to learn more and use it for production. Note, this endpoint will require you to enter a different agreement with Gusto. Creates a new admin for a company. If the email matches an existing user, this will create an admin account for the current user. Otherwise, this will create a new user. requestBody: content: application/json: schema: description: '' type: object properties: first_name: type: string description: 'The email of the admin. This will be used for the admin to log in to their account. If the email matches an existing user, this will create an admin account for them.' last_name: type: string description: The first name of the admin. email: type: string description: The last name of the admin. required: - first_name - last_name - email examples: Example: value: first_name: John last_name: Smith email: jsmith99@gmail.com '/v1/companies/{company_id_or_uuid}/federal_tax_details': parameters: - schema: type: string name: company_id_or_uuid in: path required: true description: The company id or uuid get: summary: Get Federal Tax Details responses: '200': description: OK content: application/json: schema: type: object properties: version: type: string description: The current version of the object. See the versioning guide for details using this field. tax_payer_type: type: string description: |- What type of tax entity the company is. One of: - C-Corporation - S-Corporation - Sole proprietor - LLC - LLP - Limited partnership - Co-ownership - Association - Trusteeship - General partnership - Joint venture - Non-Profit ein: type: string description: The company's EIN taxable_as_scorp: type: boolean description: |- Whether the company is taxed as an S-Corporation. Tax payer types that may be taxed as an S-Corporation include: - S-Corporation - C-Corporation - LLC filing_form: type: string description: |- The form used by the company for federal tax filing. One of: - 941 (Quarterly federal tax return form) - 944 (Annual federal tax return form) ein_verified: type: boolean description: 'Whether the EIN was able to be verified as a valid EIN with the IRS. ' legal_name: type: string description: The legal name of the company examples: Example: value: version: 6cb95e00540706ca48d4577b3c839fbe tax_payer_type: LLP ein: '561354858' taxable_as_scorp: false filing_form: '944' ein_verified: false legal_name: Acme Corp. operationId: get-v1-companies-company_id_or_uuid-federal_tax_details description: |- This endpoint is in beta and intended for **[Gusto Embedded Payroll](https://gusto.com/embedded-payroll)** customers. Please [apply for early access](https://gusto-embedded-payroll.typeform.com/to/iomAQIj3?utm_source=docs) if you’d like to learn more and use it for production. Note, this endpoint will require you to enter a different agreement with Gusto. Fetches attributes relevant for a company's federal taxes. parameters: [] security: - Authorization: [] tags: - Federal Tax Details (Beta) put: summary: Update Federal Tax Details responses: '200': description: OK content: application/json: schema: type: object properties: version: type: string description: The current version of the object. See the versioning guide for details using this field. tax_payer_type: type: string description: |- What type of tax entity the company is. One of: - C-Corporation - S-Corporation - Sole proprietor - LLC - LLP - Limited partnership - Co-ownership - Association - Trusteeship - General partnership - Joint venture - Non-Profit ein: type: string description: The company's EIN taxable_as_scorp: type: boolean description: |- Whether the company is taxed as an S-Corporation. Tax payer types that may be taxed as an S-Corporation include: - S-Corporation - C-Corporation - LLC filing_form: type: string description: |- The form used by the company for federal tax filing. One of: - 941 (Quarterly federal tax return form) - 944 (Annual federal tax return form) ein_verified: type: boolean description: 'Whether the EIN was able to be verified as a valid EIN with the IRS. ' legal_name: type: string description: The legal name of the company operationId: put-v1-companies-company_id_or_uuid-federal_tax_details requestBody: content: application/json: schema: type: object properties: legal_name: type: string description: The legal name of the company ein: type: string description: The EIN of of the company tax_payer_type: type: string description: What type of tax entity the company is filing_form: type: string description: |- The form used by the company for federal tax filing. One of: - 941 (Quarterly federal tax return) - 944 (Annual federal tax return) taxable_as_scorp: type: boolean description: Whether this company should be taxed as an S-Corporation version: type: string description: The current version of the object. See the versioning guide for details using this field. required: - version examples: Example: value: version: 6cb95e00540706ca48d4577b3c839fbe tax_payer_type: LLP ein: '561354858' taxable_as_scorp: false filing_form: '944' ein_verified: false legal_name: Acme Corp. description: 'Attributes related to federal tax details that can be updated via this endpoint include:' description: |- This endpoint is in beta and intended for **[Gusto Embedded Payroll](https://gusto.com/embedded-payroll)** customers. Please [apply for early access](https://gusto-embedded-payroll.typeform.com/to/iomAQIj3?utm_source=docs) if you’d like to learn more and use it for production. Note, this endpoint will require you to enter a different agreement with Gusto. Updates attributes relevant for a company's federal taxes. This information is required is to onboard a company for use with Gusto Embedded Payroll. tags: - Federal Tax Details (Beta) components: schemas: Employee: title: Employee type: object description: The representation of an employee in Gusto. x-examples: Example: id: 7757869432666660 uuid: 9779767c-6044-48e0-bf68-aeb370b9a2e7 first_name: Nicole middle_initial: M last_name: Boehm email: kory7757869450111548@barton-hermiston.io company_id: 7756341740978008 company_uuid: c44d66dc-c41b-4a60-9e25-5e93ff8583f2 manager_id: 7757869432666662 version: 414dedaca594b77135e0b8d2f398516d department: null terminated: false two_percent_shareholder: false onboarded: true jobs: - id: 7757869441037999 version: 91179081a7309c9fbd31bb3cf7b9893e employee_id: 7757869432666660 current_compensation_id: 7757869444844980 payment_unit: Hour primary: true title: Client Support Manager compensations: - id: 7757869444844980 version: 233f0096a8015e62d9795fadf1fd300d payment_unit: Hour flsa_status: Nonexempt job_id: 7757869441037999 effective_date: '2021-01-20' rate: '22.00' rate: '22.00' hire_date: '2020-01-20' location_id: 7757727716657803 location: id: 7757727716657803 street_1: 412 Kiera Stravenue street_2: Suite 391 city: San Francisco state: CA zip: '94107' country: USA inactive: false eligible_paid_time_off: - name: Sick Hours accrual_unit: Hour accrual_rate: '208.0' accrual_period: Year accrual_balance: '71.0' maximum_accrual_balance: '240.0' paid_at_termination: false - name: Vacation Hours accrual_unit: Hour accrual_rate: '208.0' accrual_period: Year accrual_balance: '34.0' maximum_accrual_balance: '240.0' paid_at_termination: true terminations: [] home_address: version: 7776defce07496b82f3f1ed469e48ae5 employee_id: 7757869432666660 street_1: 3772 Reynolds Centers street_2: Suite 461 city: San Francisco state: CA zip: '94107' country: USA active: true custom_fields: - id: ee515986-f3ca-49da-b576-2691b95262f9 company_custom_field_id: ea7e5d57-6abb-47d7-b654-347c142886c0 name: employee_level description: Employee Level type: text value: '2' - id: 3796e08d-c2e3-434c-b4de-4ce1893e7b59 company_custom_field_id: 299650e4-e970-4acf-9bf0-6f05585d20ba name: t-shirt size description: What is your t-shirt size? type: text value: md garnishments: [] date_of_birth: '1996-05-08' has_ssn: true ssn: '' phone: '1234567890' preferred_first_name: Vanessa work_email: null x-tags: - Employees properties: id: type: number description: The ID of the employee in Gusto. readOnly: true uuid: type: string description: A unique identifier of the employee in Gusto. readOnly: true first_name: type: string middle_initial: type: string nullable: true last_name: type: string email: type: string description: The email address of the employee. This is provided to support syncing users between our system and yours. You may not use this email address for any other purpose (e.g. marketing). nullable: true company_id: type: number description: The ID of the company the employee is employed by. readOnly: true company_uuid: type: string description: A unique identifier of the company the employee is employed by. readOnly: true manager_id: type: number description: The ID of the employee's manager in Gusto. nullable: true readOnly: true version: type: string description: The current version of the employee. See the versioning guide for details using this field. readOnly: true department: type: string description: The employee's department in the company. nullable: true readOnly: true terminated: type: boolean description: Whether the employee is terminated. readOnly: true two_percent_shareholder: type: boolean description: Whether the employee is a two percent shareholder of the company. This field only applies to companies with an S-Corp entity type. onboarded: type: boolean description: Whether the employee has completed onboarding. readOnly: true jobs: type: array items: $ref: '#/components/schemas/Job' eligible_paid_time_off: type: array items: $ref: '#/components/schemas/Paid-Time-Off' terminations: type: array items: $ref: '#/components/schemas/Termination' home_address: $ref: '#/components/schemas/Location' garnishments: type: array items: $ref: '#/components/schemas/Garnishment' custom_fields: type: array description: Custom fields are only included for the employee if the include param has the custom_fields value set items: $ref: '#/components/schemas/Employee-Custom-Field' date_of_birth: type: string format: date nullable: true readOnly: true has_ssn: type: boolean description: Indicates whether the employee has an SSN in Gusto. ssn: type: string description: Deprecated. This field always returns an empty string. phone: type: string preferred_first_name: type: string description: '' work_email: type: string description: The work email address of the employee. This is provided to support syncing users between our system and yours. You may not use this email address for any other purpose (e.g. marketing). nullable: true readOnly: true Location: description: The representation of an address in Gusto. type: object x-examples: Company Location: company_id: 7756341740978008 version: 7d9753112507b9dda4fb97910f39b06e phone_number: '5825710808' id: 7757727716657803 street_1: 412 Kiera Stravenue street_2: Suite 391 city: San Francisco state: CA zip: '94107' country: USA active: true x-tags: - Locations title: '' properties: id: type: integer description: The unique identifier of the location in Gusto. readOnly: true version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. readOnly: true company_id: type: integer description: The ID for the company to which the location belongs. Only included if the location belongs to a company. readOnly: true employee_id: type: integer description: The ID for the employee to which the location belongs. Only included if the location belongs to an employee. readOnly: true phone_number: type: string readOnly: false description: The phone number for the location. Required for company locations. Optional for employee locations. street_1: type: string readOnly: false street_2: type: string readOnly: false nullable: true city: type: string readOnly: false state: type: string readOnly: false zip: type: string readOnly: false country: type: string readOnly: false default: USA active: type: boolean description: 'The status of the location. Inactive locations have been deleted, but may still have historical data associated with them.' readOnly: true mailing_address: type: boolean description: Specifies if the location is the company's mailing address. Only included if the location belongs to a company. filing_address: description: Specifies if the location is the company's filing address. Only included if the location belongs to a company. type: boolean Paid-Time-Off: type: object description: The representation of paid time off in Gusto. properties: name: type: string description: The name of the paid time off type. readOnly: true accrual_unit: type: string example: Hour description: The unit the PTO type is accrued in. readOnly: true accrual_rate: type: number format: float description: The number of accrual units accrued per accrual period. readOnly: true accrual_period: type: string example: Year description: The frequency at which the PTO type is accrued. readOnly: true accrual_balance: type: string description: The number of accrual units accrued. readOnly: true maximum_accrual_balance: type: string nullable: true description: The maximum number of accrual units allowed. A null value signifies no maximum. readOnly: true paid_at_termination: type: boolean description: Whether the accrual balance is paid to the employee upon termination. readOnly: true x-examples: Example: name: Sick Hours accrual_unit: Hour accrual_rate: '208.0' accrual_period: Year accrual_balance: '64.0' maximum_accrual_balance: '240.0' paid_at_termination: false x-tags: - Payroll Garnishment: description: '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.' type: object x-examples: Example: id: 1363316538400333 version: 52b7c567242cb7452e89ba2bc02cb476 employee_id: 8964216891236743 active: true amount: '8.00' description: Company loan to employee court_ordered: false times: 5 recurring: false annual_maximum: null pay_period_maximum: '100.00' deduct_as_percentage: true properties: id: type: integer description: The unique identifier of the garnishment in Gusto. readOnly: true version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. readOnly: true employee_id: type: integer description: The ID of the employee to which this garnishment belongs. readOnly: true active: type: boolean default: true description: Whether or not this garnishment is currently active. amount: type: number format: float readOnly: false description: 'The amount of the garnishment. Either a percentage or a fixed dollar amount. Represented as a float, e.g. "8.00".' description: type: string readOnly: false description: The description of the garnishment. court_ordered: type: boolean readOnly: false description: Whether the garnishment is court ordered. times: type: integer nullable: true readOnly: false default: null description: The number of times to apply the garnisment. Ignored if recurring is true. recurring: type: boolean readOnly: false default: false description: Whether the garnishment should recur indefinitely. annual_maximum: format: float readOnly: false default: null description: 'The maximum deduction per annum. A null value indicates no maximum. Represented as a float, e.g. "200.00".' type: number nullable: true pay_period_maximum: type: number nullable: true format: float default: null description: 'The maximum deduction per pay period. A null value indicates no maximum. Represented as a float, e.g. "16.00".' deduct_as_percentage: type: boolean readOnly: false default: false description: Whether the amount should be treated as a percentage to be deducted per pay period. x-tags: - Garnishments Termination: type: object description: The representation of a termination in Gusto. properties: id: type: integer description: The unique identifier of the termination in Gusto. readOnly: true version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. readOnly: true employee_id: type: integer description: The ID of the employee to which this termination is attached. readOnly: true active: type: boolean description: Whether the employee's termination has gone into effect. readOnly: true effective_date: type: string format: date readOnly: false description: The employee's last day of work. run_termination_payroll: type: boolean readOnly: false description: 'If true, the employee should recieve their final wages via an offcycle payroll. If false, they should recieve their final wages on their current pay schedule.' x-examples: example-1: id: 891238902131212 version: d487dd0b55dfcacdd920ccbdaeafa351 active: true effective_date: '2020-03-10' run_termination_payroll: false x-tags: - Terminations Compensation: type: object description: The representation of compensation in Gusto. properties: id: type: integer description: The unique identifier of the compensation in Gusto. readOnly: true version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. readOnly: true job_id: type: integer description: The ID of the job to which the compensation belongs. readOnly: true rate: type: string readOnly: false description: The dollar amount paid per payment unit. payment_unit: type: string readOnly: false description: 'The unit accompanying the compensation rate. If the employee is an owner, rate should be ''Paycheck''.' enum: - Hour - Week - Month - Year - Paycheck flsa_status: type: string readOnly: false description: 'The FLSA status for this compensation. Salaried (''Exempt'') employees are paid a fixed salary every pay period. Salaried with overtime (''Salaried Nonexempt'') employees are paid a fixed salary every pay period, and receive overtime pay when applicable. Hourly (''Nonexempt'') employees are paid for the hours they work, and receive overtime pay when applicable. Owners (''Owner'') are employees that own at least twenty percent of the company. ' enum: - Exempt - Salaried Nonexempt - Nonexempt - Owner effective_date: type: string format: date readOnly: false description: 'The effective date for this compensation. For the first compensation, this defaults to the job''s hire date.' x-examples: Example: id: 1363316536327004 version: 98jr3289h3298hr9329gf9egskt3kagri32qqgiqe3872 job_id: 1123581321345589 rate: '70.00' payment_unit: Hour flsa_status: Nonexempt effective_date: '2020-12-11' x-tags: - Compensations Job: title: Job type: object properties: id: type: integer description: The unique identifier of the job in Gusto. readOnly: true version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. readOnly: true employee_id: type: integer description: The ID of the employee to which the job belongs. readOnly: true location_id: type: integer readOnly: false description: The ID of the job's work location. location: type: object properties: id: type: number readOnly: true street_1: type: string readOnly: true street_2: type: string nullable: true readOnly: true city: type: string readOnly: true state: type: string readOnly: true zip: type: string readOnly: true country: type: string readOnly: true inactive: type: boolean readOnly: true description: Whether the location of the job is active. hire_date: type: string format: date readOnly: false description: The date when the employee was hired for the job. title: type: string readOnly: false default: null description: The title for the job. primary: type: boolean description: Whether this is the employee’s primary job. The value will be set to true unless an existing job exists for the employee. readOnly: true rate: type: string description: The current compensation rate of the job. readOnly: true payment_unit: type: string description: The payment unit of the current compensation for the job. readOnly: true current_compensation_id: type: integer description: The ID for the current compensation of the job. readOnly: true compensations: type: array items: $ref: '#/components/schemas/Compensation' readOnly: true description: The representation of a job in Gusto. x-examples: Example: id: 7757869441038000 version: d0e719137f89ca3dd334dd4cc248ffbb employee_id: 7757869432666661 current_compensation_id: 7757869444844981 payment_unit: Year primary: true title: Account Director compensations: - id: 7757869444844981 version: 994b75511d1debac5d7e2ddeae13679f payment_unit: Year flsa_status: Exempt job_id: 7757869441038000 effective_date: '2021-01-20' rate: '78000.00' rate: '78000.00' hire_date: '2020-01-20' location_id: 7757727716657803 location: id: 7757727716657803 street_1: 412 Kiera Stravenue street_2: Suite 391 city: San Francisco state: CA zip: '94107' country: USA inactive: false x-tags: - Jobs Admin: title: Admin type: object description: The representation of an admin user in Gusto. x-examples: Example: first_name: John last_name: Smith email: jsmith99@gmail.com properties: email: type: string description: The email of the admin. This is used by the admin to log in to their account. first_name: type: string description: The first name of the admin. last_name: type: string description: The last name of the admin. x-tags: - Admins (Beta) Company: title: Company type: object description: The representation of a company in Gusto. properties: ein: type: string description: The Federal Employer Identification Number of the company. readOnly: true entity_type: type: string description: The tax payer type of the company. enum: - C-Corporation - S-Corporation - Sole proprietor - LLC - LLP - Limited partnership - Co-ownership - Association - Trusteeship - General partnership - Joint venture - Non-Profit readOnly: true tier: type: string description: The Gusto product tier of the company. nullable: true readOnly: true enum: - core - complete - concierge - contractor_only - basic is_suspended: type: boolean description: Whether or not the company is suspended in Gusto. Suspended companies may not run payroll. company_status: type: string 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.' enum: - Approved - Not Approved - Suspended readOnly: true id: type: number description: The unique identifier of the company in Gusto. readOnly: true uuid: type: string description: A unique identifier of the company in Gusto. readOnly: true name: type: string description: The name of the company. readOnly: true trade_name: type: string description: The trade name of the company. readOnly: true locations: type: array uniqueItems: false description: The locations of the company. items: $ref: '#/components/schemas/Location' readOnly: true compensations: type: object description: The available company-wide compensation rates for the company. properties: hourly: type: array uniqueItems: true description: The available hourly compensation rates for the company. items: type: object properties: name: type: string description: The name of the hourly compensation rate. example: Overtime readOnly: true multiple: type: number description: The amount multiplied by the base rate of a job to calculate compensation. example: 1.5 readOnly: true readOnly: true readOnly: true fixed: type: array uniqueItems: true description: The available fixed compensation rates for the company. items: type: object properties: name: type: string description: The name of the fixed compensation. example: Bonus readOnly: true readOnly: true paid_time_off: type: array uniqueItems: true description: The available types of paid time off for the company. items: type: object properties: name: type: string example: Vacation Hours description: The name of the paid time off type. readOnly: true readOnly: true readOnly: true readOnly: true primary_signatory: type: object description: The primary signatory of the company. properties: first_name: type: string readOnly: true middle_initial: type: string readOnly: true last_name: type: string readOnly: true phone: type: string readOnly: true email: type: string readOnly: true home_address: type: object properties: street_1: type: string readOnly: true street_2: type: string nullable: true readOnly: true city: type: string readOnly: true state: type: string readOnly: true zip: type: string readOnly: true country: type: string readOnly: true readOnly: true readOnly: true primary_payroll_admin: type: object description: The primary payroll admin of the company. properties: first_name: type: string readOnly: true last_name: type: string readOnly: true phone: type: string readOnly: true email: type: string readOnly: true x-examples: Example: ein: 00-0000001 entity_type: C-Corporation tier: complete is_suspended: false company_status: Approved id: 7756341740978008 name: Shoppe Studios LLC trade_name: Record Shoppe locations: - id: 7757727716657803 street_1: 412 Kiera Stravenue street_2: Suite 391 city: San Francisco state: CA zip: '94107' country: USA active: true - id: 7757727716657804 street_1: 644 Fay Vista street_2: Suite 842 city: Richmond state: VA zip: '23218' country: USA active: true compensations: 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 fixed: - name: Bonus - name: Commission - name: Paycheck Tips - name: Cash Tips - name: Correction Payment - name: Severance - name: Minimum Wage Adjustment - name: Reimbursement paid_time_off: - name: Vacation Hours - name: Sick Hours - name: Holiday Hours primary_signatory: first_name: Alda middle_initial: '' last_name: Carter phone: null email: louie.hessel7757869450111547@zemlak.biz home_address: street_1: 524 Roob Divide street_2: Suite 565 city: San Francisco state: CA zip: '94107' country: USA primary_payroll_admin: first_name: Ian last_name: Labadie phone: 1-565-710-7559 email: louie.hessel7757869450111547@zemlak.biz x-tags: - Companies Contractor: description: The representation of a contractor (individual or business) in Gusto. type: object x-examples: Individual Contractor: id: 7757515807594512 company_id: 7757616923763477 wage_type: Hourly is_active: true version: 63859768485e218ccf8a449bb60f14ed type: Individual first_name: Kory last_name: Gottlieb middle_initial: P business_name: null ein: null email: keira.west@mckenzie.org address: street_1: 621 Jast Row street_2: Apt. 281 city: Coral Springs state: FL zip: '33065' country: USA hourly_rate: '40.00' Business Contractor: id: 7757515807614539 company_id: 7757616923763477 wage_type: Fixed is_active: true version: 8aab307f1e8ed788697f8986346af559 type: Business first_name: null last_name: null middle_initial: null business_name: Labadie-Stroman ein: XX-XXX0001 email: jonatan@kerluke.info address: street_1: 1625 Bednar Center street_2: Apt. 480 city: Port Charlotte state: FL zip: '33954' country: USA hourly_rate: '0.00' title: '' properties: id: type: number description: The unique identifier of the contractor in Gusto. readOnly: true company_id: type: number description: The ID of the company the contractor is employed by. readOnly: true wage_type: type: string enum: - Fixed - Hourly description: 'The contractor''s wage type, either "Fixed" or "Hourly".' is_active: type: boolean default: true description: The status of the contractor with the company. readOnly: true version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. readOnly: true type: type: string enum: - Individual - Business description: 'The contractor''s type, either "Individual" or "Business". ' 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. 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. 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. 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. 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. 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 description: The contractor’s home address. properties: street_1: type: string readOnly: true street_2: type: string nullable: true readOnly: true city: type: string readOnly: true state: type: string readOnly: true zip: type: string readOnly: true country: type: string readOnly: true readOnly: true hourly_rate: type: string example: '50.0' description: The contractor’s hourly rate. This attribute is required if the wage_type is “Hourly”. x-tags: - Contractors Contractor-Payment: description: The representation of a single contractor payment. type: object x-examples: Example: id: 04552eb9-7829-4b18-ae96-6983552948df bonus: '20.0' date: '2020-10-19' hours: '40.0' payment_method: Direct Deposit reimbursement: '100.0' hourly_rate: '18.0' wage: '0.0' wage_type: Hourly wage_total: '740.00' title: Contractor Payment properties: uuid: type: string description: The unique identifier of the contractor payment in Gusto. readOnly: true contractor_id: type: number description: The unique identifier of the contractor in Gusto. readOnly: true bonus: type: string description: The bonus amount in the payment. readOnly: true date: type: string description: The payment date. readOnly: true hours: type: string description: The number of hours worked for the payment. readOnly: true payment_method: type: string description: The payment method. enum: - Direct Deposit - Check - Historical Payment - Correction Payment readOnly: true reimbursement: type: string description: The reimbursement amount in the payment. readOnly: true hourly_rate: type: string description: The rate per hour worked for the payment. readOnly: true wage: type: string description: 'The fixed wage of the payment, regardless of hours worked.' readOnly: true wage_type: type: string description: The wage type for the payment. enum: - Hourly - Fixed readOnly: true wage_total: type: string description: (hours * hourly_rate) + wage + bonus readOnly: true x-tags: - Contractor Payments Contractor-Payment-Summary: description: The representation of the summary of contractor payments for a given company in a given time period. type: object x-examples: Example: total: reimbursements: '110.0' wages: '1840.0' contractor_payments: - contractor_id: 1234 reimbursement_total: '110.0' wage_total: '1840.0' payments: - id: 04552eb9-7829-4b18-ae96-6983552948df bonus: '20.0' date: '2020-10-19' hours: '40.0' payment_method: Direct Deposit reimbursement: '100.0' hourly_rate: '18.0' wage: '0.0' wage_type: Hourly wage_total: '740.00' - id: 25cfeb96-17fc-4fdf-8941-57f3fb9eea00 bonus: '100.0' date: '2020-10-19' hours: '0.00' payment_method: Direct Deposit reimbursement: '10.0' hourly_rate: '0.0' wage: '1000.0' wage_type: Fixed wage_total: '1100.0' properties: total: type: object description: The wage and reimbursement totals for all contractor payments within a given time period. properties: reimbursements: type: string description: The total reimbursements for contractor payments within a given time period. readOnly: true wages: type: string description: The total wages for contractor payments within a given time period. readOnly: true readOnly: true contractor_payments: type: array uniqueItems: false description: 'The individual contractor payments, within a given time period, grouped by contractor.' items: type: object description: '' properties: contractor_id: type: number description: The ID of the contractor. readOnly: true reimbursement_total: type: string description: The total remibursements for the contractor within a given time period. readOnly: true wage_total: type: string description: The total wages for the contractor within a given time period. readOnly: true payments: type: array uniqueItems: false description: | The contractor’s payments within a given time period. items: $ref: '#/components/schemas/Contractor-Payment' readOnly: true readOnly: true readOnly: true x-tags: - Contractor Payments Time-Off-Request: title: Time-Off-Request type: object x-examples: Example: id: '1' status: approved employee_note: Vacation at Disney World! employer_note: But Universal has Harry Potter World... days: '2019-06-01': '4.000' '2019-06-02': '8.000' '2019-06-03': '2.000' request_type: vacation employee: id: '234567' full_name: Jessica Gusto approver: id: '345678' full_name: Karen Gusto initiator: id: '234567' full_name: Jessica Gusto description: 'The representation of a time off request. ' x-tags: - Time Off Requests properties: id: type: integer description: The ID of the time off request. readOnly: true status: type: string description: The status of the time off request. enum: - pending - approved - denied - consumed readOnly: true employee_note: type: string description: 'A note about the time off request, from the employee to the employer.' readOnly: true employer_note: type: string description: 'A note about the time off request, from the employer to the employee.' readOnly: true request_type: type: string description: The type of time off request. enum: - vacation - sick readOnly: true days: description: 'An object that represents the days in the time off request. The keys of the object are the dates, formatted as a YYYY-MM-DD string. The values of the object are the number of hours requested off for each day, formatted as a string representation of a numeric decimal to the thousands place.' type: object additionalProperties: type: string readOnly: true employee: type: object description: '' properties: id: type: number description: The ID of the employee the time off request is for. readOnly: true full_name: type: string description: The full name of the employee the time off request is for. readOnly: true readOnly: true initiator: type: object nullable: true description: '' properties: id: type: number description: The ID of the employee who initiated the time off request. readOnly: true full_name: type: string description: The full name of the employee who initiated the time off request. readOnly: true readOnly: true approver: type: object nullable: true description: This value will be null if the request has not been approved. properties: id: type: number description: The ID of the employee who approved the time off request. readOnly: true full_name: type: string description: The full name of the employee who approved the time off request. readOnly: true readOnly: true Current-User: description: '' type: object x-examples: Example: id: 1409720965546346 email: torrance.considine1409720965546346@schuster.info roles: payroll_admin: companies: - id: 1409720965614302 name: Crist-Balistreri Group tier: complete trade_name: Wyman and Sons LLC locations: - id: 1409721224078163 street_1: 63932 Jalyn Springs street_2: Apt. 445 city: Cannon Beach state: OR zip: '97110' country: USA active: true - id: 1409721315748742 street_1: 1152 River Villages street_2: Apt. 563 city: Cannon Beach state: OR zip: '97110' country: USA active: true x-tags: - Current User properties: id: type: number description: The ID of the current user. readOnly: true email: type: string description: The email address of the authenticated user. readOnly: true roles: type: object description: An object containing each of the user's permissions. properties: payroll_admin: type: object properties: companies: type: array uniqueItems: true description: A lists of companies for which the current user has admin permissions. Users (most notably accountants) can have priviliges with multiple companies. items: type: object properties: id: type: number description: The ID of the company. readOnly: true name: type: string description: The name of the company. readOnly: true trade_name: type: string description: The trade name of the company. readOnly: true locations: type: array uniqueItems: true description: A list of the company locations. items: $ref: '#/components/schemas/Location' readOnly: true readOnly: true readOnly: true readOnly: true readOnly: true Pay-Schedule: type: object title: Pay Schedule example: id: 1 frequency: Twice per month anchor_pay_date: '2018-09-01' day_1: 1 day_2: 15 name: Salaried x-examples: Example: id: 1 frequency: Twice per month anchor_pay_date: '2020-05-15' day_1: 15 day_2: 31 name: Engineering description: The representation of a pay schedule. properties: id: type: integer description: The identifier of the pay schedule. readOnly: true uuid: type: string description: The unique identifier of the pay schedule in Gusto. readOnly: true frequency: type: string enum: - Twice per month - Monthly - Every other week - Every week readOnly: true anchor_pay_date: type: string description: The first date that employees on this pay schedule are paid with Gusto. readOnly: true day_1: type: integer nullable: true description: 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. readOnly: true day_2: type: integer nullable: true description: 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. It will be null for pay schedules with other frequencies. readOnly: true name: type: string nullable: true description: Hourly when the pay schedule is for hourly employees. Salaried when the pay schedule is for salaried employees. It will be null when the pay schedule is for all employees. readOnly: true auto_pilot: type: boolean description: 'With Autopilot® enabled, payroll will run automatically one day before your payroll deadlines.' x-tags: - Pay Schedules Company-Bank-Account: description: The company bank account type: object properties: uuid: type: string description: UUID of the bank account company_uuid: type: string description: UUID of the company account_type: type: string description: Bank account type enum: - Checking - Savings routing_number: type: string description: The bank account's routing number hidden_account_number: type: string description: masked bank account number verification_status: type: string enum: - awaiting_deposits - ready_for_verification - verified description: |- The verification status of the bank account. 'awaiting_deposits' means the bank account is just created and money is being transferred. 'ready_for_verification' means the micro-deposits are completed and the verification process can begin by using the verify endpoint. 'verified' means the bank account is verified. x-examples: Example: uuid: 1263eae5-4411-48d9-bd6d-18ed93082e65 company_uuid: e2c4c0ce-2986-48b9-86cf-ec27f6ed9a36 account_type: Checking routing_number: '851070439' account_number: XXXX4087 verification_status: verified x-tags: - Company Bank Accounts (Beta) Supported-Benefit: description: '' type: object properties: id: type: number description: The ID of the benefit type in Gusto. readOnly: true name: type: string description: The name of the benefit. readOnly: true description: type: string description: The description of the benefit. readOnly: true pretax: type: boolean description: 'Whether the benefit is deducted before tax calculations, thus reducing one’s taxable income' readOnly: true posttax: type: boolean description: Whether the benefit is deducted after tax calculations. readOnly: true imputed: type: boolean description: Whether the benefit is considered imputed income. readOnly: true healthcare: type: boolean description: Whether the benefit is healthcare related. readOnly: true retirement: type: boolean description: Whether the benefit is associated with retirement planning. readOnly: true yearly_limit: type: boolean description: Whether the benefit has a government mandated yearly limit. readOnly: true x-examples: Example: id: 1 name: Medical Insurance description: Deductions and contributions for Medical Insurance pretax: true posttax: false imputed: false healthcare: true retirement: false yearly_limit: false x-tags: - Benefits Company-Benefit: description: The representation of a company benefit. type: object x-examples: Example: id: 1363316536327004 version: 98jr3289h3298hr9329gf9egskt3kagri32qqgiqe3872 company_id: 1363316537128394 benefit_id: 1 active: true description: Kaiser Permanente supports_percentage_amounts: true responsible_for_employer_taxes: false responsible_for_employee_w2: false properties: id: type: number description: The ID of the company benefit. readOnly: true version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. readOnly: true company_id: type: number description: The ID of the company to which the company benefit belongs. readOnly: true benefit_id: type: number description: The ID of the benefitt to which the company benefit belongs. readOnly: true 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. 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”.' supports_percentage_amounts: type: boolean 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. readOnly: true 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. 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. x-tags: - Benefits Earning-Type: description: '' type: object x-examples: Example: name: Cash Tips uuid: f5618c94-ed7d-4366-b2c4-ff05e430064f properties: name: type: string description: The name of the earning type. uuid: type: string description: The ID of the earning type. readOnly: true x-tags: - Earning Type Employee-Benefit: description: The representation of an employee benefit. type: object properties: id: type: number description: The ID of the employee benefit. readOnly: true version: type: string description: The current version of the object. See the versioning guide for information on how to use this field. readOnly: true employee_id: type: number description: The ID of the employee to which the benefit belongs. readOnly: true company_benefit_id: type: number description: The ID of the company to which the benefit belongs. readOnly: true active: type: boolean default: true description: Whether the employee benefit is active. employee_deduction: type: string default: '0.00' description: 'The amount to be deducted, per pay period, from the employee''s pay.' company_contribution: type: string default: '0.00' description: 'The amount to be paid, per pay period, by the company.' employee_deduction_annual_maximum: type: string nullable: true description: The maximum employee deduction amount per year. A null value signifies no limit. company_contribution_annual_maximum: type: string nullable: true description: The maximum company contribution amount per year. A null value signifies no limit. limit_option: type: string nullable: true description: 'Some benefits require additional information to determine their limit. For example, for an HSA benefit, the limit option should be either "Family" or "Individual". For a Dependent Care FSA benefit, the limit option should be either "Joint Filing or Single" or "Married and Filing Separately".' 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. contribute_as_percentage: type: boolean default: false description: Whether the company contribution amount should be treated as a percentage to be deducted from each payroll. catch_up: type: boolean default: false description: Whether the employee should use a benefit’s "catch up" rate. Only Roth 401k and 401k benefits use this value for employees over 50. coverage_amount: type: string nullable: true description: 'The amount that the employee is insured for. Note: company contribution cannot be present if coverage amount is set.' deduction_reduces_taxable_income: type: string nullable: true default: unset enum: - unset - reduces_taxable_income - does_not_reduce_taxable_income - null description: 'Whether the employee deduction reduces taxable income or not. Only valid for Group Term Life benefits. Note: when the value is not "unset", coverage amount and coverage salary multiplier are ignored.' coverage_salary_multiplier: type: string default: '0.00' description: 'The coverage amount as a multiple of the employee’s salary. Only applicable for Group Term Life benefits. Note: cannot be set if coverage amount is also set.' x-tags: - Benefits title: '' x-examples: Example: id: 1363316536327004 version: 09j3d29jqdpj92109j9j2d90dq employee_id: 908123091820398 company_benefit_id: 290384923980230 active: true employee_deduction: '100.00' company_contribution: '100.00' employee_deduction_annual_maximum: '200.00' company_contribution_annual_maximum: '200.00' limit_option: null deduct_as_percentage: false contribute_as_percentage: false catch_up: false coverage_amount: null deduction_reduces_taxable_income: null coverage_salary_multiplier: '0.00' Pay-Period: description: The representation of a pay period. type: object x-examples: Example: start_date: '2020-01-11' end_date: '2020-01-24' pay_schedule_id: 1409756036510222 pay_schedule_uuid: 00ebc4a4-ec88-4435-8f45-c505bb63e501 eligible_employees: - id: 7740244452464965 job_ids: - 7740244454306064 - id: 7757869431131641 job_ids: - 7757869439389315 payroll: processed: true payroll_deadline: '2020-01-28' properties: start_date: type: string format: date description: 'The start date, inclusive, of the pay period.' readOnly: true end_date: type: string format: date description: 'The end date, inclusive, of the pay period.' pay_schedule_id: type: number description: The ID of the pay schedule to which the pay period belongs. readOnly: true pay_schedule_uuid: type: string description: A unique identifier of the pay schedule to which the pay period belongs. readOnly: true eligible_employees: type: array uniqueItems: true description: The employees who are (or were) eligible during the pay period. items: type: object properties: id: type: number description: The ID of the employee that is eligible for the pay period. readOnly: true job_ids: type: array uniqueItems: true description: The employee's job IDs that are eligible for the pay period. items: type: number readOnly: true readOnly: true readOnly: true readOnly: true payroll: type: object description: Information about the payroll for the pay period. properties: processed: type: boolean readOnly: true description: 'Whether or not the payroll has been successfully processed. Note that processed payrolls cannot be updated. Additionally, a payroll is not guaranteed to be processed just because the payroll deadline has passed. Late payrolls are not uncommon. Conversely, users may choose to run payroll before the payroll deadline.' payroll_deadline: type: string description: 'The date by which payroll should be run for employees to be paid on time. Payroll data, such as time and attendance data, should be submitted on or before this date. ' readOnly: true readOnly: true x-tags: - Payroll Payroll: description: '' type: object x-examples: Example: version: 19289df18e6e20f797de4a585ea5a91535c7ddf7 payroll_deadline: '2021-02-18' check_date: '2021-02-22' processed: true payroll_id: 7786400908986532 payroll_uuid: b50e611d-8f3d-4f24-b001-46675f7b5777 company_id: 7756341740978008 company_uuid: 6bf7807c-a5a0-4f4d-b2e7-3fbb4b2299fb pay_period: start_date: '2021-02-01' end_date: '2021-02-15' pay_schedule_id: 7757500908984137 pay_schedule_uuid: 00ebc4a4-ec88-4435-8f45-c505bb63e501 totals: company_debit: '121747.71' net_pay_debit: '79283.80' tax_debit: '42463.91' reimbursement_debit: '0.00' child_support_debit: '0.00' reimbursements: '0.00' net_pay: '81752.94' gross_pay: '130635.89' employee_bonuses: '0.00' employee_commissions: '18536.37' employee_cash_tips: '0.00' employee_paycheck_tips: '0.00' additional_earnings: '0.00' owners_draw: '0.00' check_amount: '2469.14' employer_taxes: '6917.19' employee_taxes: '35546.72' benefits: '0.00' employee_benefits_deductions: '13336.23' deferred_payroll_taxes: '0.00' employee_compensations: - employee_id: 1123581321345589 gross_pay: '2791.25' net_pay: '1953.31' payment_method: Direct Deposit fixed_compensations: - name: Bonus amount: '100.00' job_id: 1 - name: Reimbursement amount: '100.00' job_id: 1 hourly_compensations: - name: Regular Hours hours: '40.000' job_id: 1 compensation_multiplier: 1 - name: Overtime hours: '15.000' job_id: 1 compensation_multiplier: 1.5 - name: Double Overtime hours: '0.000' job_id: 1 compensation_multiplier: 2 - name: Regular Hours hours: '40.000' job_id: 2 compensation_multiplier: 1 - name: Overtime hours: '5.000' job_id: 2 compensation_multiplier: 1.5 - name: Double Overtime hours: '0.000' job_id: 2 compensation_multiplier: 2 paid_time_off: - name: Vacation Hours hours: '20.000' - name: Sick Hours hours: '0.000' - name: Holiday Hours hours: '0.000' benefits: - name: Group Term Life employee_deduction: '100.00' company_contribution: '50.00' imputed: true - name: 401K employee_deduction: '100.00' company_contribution: '50.00' imputed: false deductions: - name: Child Support amount: '80.00' taxes: - name: Federal Income Tax employer: false amount: '646.69' - name: Social Security employer: true amount: '191.25' x-tags: - Payroll properties: version: type: string description: The current version of the object. See the versioning guide for details using this field. readOnly: true payroll_deadline: type: string description: The deadline for the payroll to be run in order for employees to be paid on time. readOnly: true check_date: type: string description: The date on which employees will be paid for the payroll. readOnly: true processed: type: boolean description: 'Whether or not the payroll has been successfully processed. Note that processed payrolls cannot be updated. Additionally, a payroll is not guaranteed to be processed just because the payroll deadline has passed. Late payrolls are not uncommon. Conversely, users may choose to run payroll before the payroll deadline.' readOnly: true processed_date: type: string description: The date at which the payroll was processed. Null if the payroll isn't processed yet. readOnly: true calculated_at: type: string description: A timestamp of the last valid payroll calculation. Null is there isn't a valid calculation. readOnly: true payroll_id: type: number description: The ID of the payroll. readOnly: true payroll_uuid: type: string description: A unique identifier of the payroll. readOnly: true company_id: type: number description: The ID of the company for the payroll. readOnly: true company_uuid: type: string description: A unique identifier of the company for the payroll. readOnly: true pay_period: type: object properties: start_date: type: string format: date description: 'The start date, inclusive, of the pay period.' readOnly: true end_date: type: string format: date description: 'The start date, inclusive, of the pay period.' readOnly: true pay_schedule_id: type: number description: The ID of the pay schedule for the payroll. readOnly: true pay_schedule_uuid: type: string description: A unique identifier of the pay schedule for the payroll.. readOnly: true readOnly: true totals: type: object description: The subtotals for the payroll. properties: company_debit: type: string description: The total company debit for the payroll. readOnly: true net_pay_debit: type: string minLength: 1 description: The total company net pay for the payroll. tax_debit: type: string description: The total tax debit for the payroll. readOnly: true reimbursement_debit: type: string description: The total reimbursement debit for the payroll. readOnly: true child_support_debit: type: string description: The total child support debit for the payroll. readOnly: true reimbursements: type: string description: The total reimbursements for the payroll. readOnly: true net_pay: type: string description: The net pay amount for the payroll. readOnly: true gross_pay: type: string description: The gross pay amount for the payroll. readOnly: true employee_bonuses: type: string description: The total employee bonuses amount for the payroll. readOnly: true employee_commissions: type: string description: The total employee commissions amount for the payroll. readOnly: true employee_cash_tips: type: string description: The total employee cash tips amount for the payroll. readOnly: true employee_paycheck_tips: type: string description: The total employee paycheck tips amount for the payroll. readOnly: true additional_earnings: type: string description: The total additional earnings amount for the payroll. readOnly: true owners_draw: type: string description: The total owner's draw for the payroll. readOnly: true check_amount: type: string description: The total check amount for the payroll. readOnly: true employer_taxes: type: string description: The total amount of employer paid taxes for the payroll. readOnly: true employee_taxes: type: string description: The total amount of employee paid taxes for the payroll. readOnly: true benefits: type: string description: The total amount of company contributed benefits for the payroll. readOnly: true employee_benefits_deductions: type: string description: The total amount of employee deducted benefits for the payroll. readOnly: true deferred_payroll_taxes: type: string description: 'The total amount of payroll taxes deferred for the payroll, such as allowed by the CARES act.' readOnly: true readOnly: true employee_compensations: type: array uniqueItems: false items: type: object properties: employee_id: type: number description: The ID of the employee. readOnly: true gross_pay: type: string description: The employee's gross pay. This value is only available for processed payrolls. nullable: true readOnly: true net_pay: type: string description: The employee's net pay. This value is only available for processed payrolls. nullable: true readOnly: true payment_method: type: string description: The employee's compensation payment method. This value is only available for processed payrolls. enum: - Check - Direct Deposit nullable: true fixed_compensations: type: array uniqueItems: false description: 'An array of fixed compensations for the employee. Fixed compensations include tips, bonuses, and one time reimbursements. If this payroll has been procesed, only fixed compensations with a value greater than 0.00 are returned. For an unprocess payroll, all active fixed compensations are returned.' items: type: object properties: name: type: string description: 'The name of the compensation. This also serves as the unique, immutable identifier for this compensation.' amount: type: string description: The amount of the compensation for the pay period. job_id: type: number description: The ID of the job for the compensation. readOnly: true hourly_compensations: type: array uniqueItems: false description: 'An array of hourly compensations for the employee. Hourly compensations include regular, overtime, and double overtime hours. If this payroll has been procesed, only hourly compensations with a value greater than 0.00 are returned. For an unprocess payroll, all active hourly compensations are returned.' items: type: object properties: name: type: string description: 'The name of the compensation. This also serves as the unique, immutable identifier for this compensation.' hours: type: string description: The number of hours to be compensated for this pay period. job_id: type: number description: The ID of the job for the compensation. readOnly: true compensation_multiplier: type: number description: The amount multiplied by the base rate to calculate total compensation per hour worked. readOnly: true paid_time_off: type: array uniqueItems: false description: An array of all paid time off the employee is eligible for this pay period. items: type: object properties: name: type: string description: 'The name of the PTO. This also serves as the unique, immutable identifier for the PTO.' hours: type: string description: The hours of this PTO taken during the pay period. benefits: type: array uniqueItems: false description: An array of employee benefits for the pay period. Benefits are only included for processed payroll when the include parameter is present. items: type: object properties: name: type: string readOnly: true employee_deduction: type: string readOnly: true company_contribution: type: string readOnly: true imputed: type: boolean readOnly: true readOnly: true deductions: type: array uniqueItems: false description: An array of employee deductions for the pay period. Deductions are only included for processed payroll when the include parameter is present. items: type: object properties: name: type: string readOnly: true amount: type: string readOnly: true readOnly: true readOnly: true taxes: type: array uniqueItems: false description: An array of employer and employee taxes for the pay period. Taxes are only included for processed payroll when the include parameter is present. items: type: object properties: name: type: string minLength: 1 employer: type: boolean amount: type: string minLength: 1 required: - name - employer - amount readOnly: true readOnly: true Custom-Field-Type: type: string enum: - text - currency - number - date - radio x-tags: - Custom Fields Employee-Custom-Field: type: object x-examples: Employee Level: id: ae4e2cd5-e9b6-40f9-88a1-415a02365dd0 company_custom_field_id: da84500d-d05c-4e4f-bcf2-43152ca33278 name: employee_level description: Employee Level value: '2' description: A custom field of an employee x-tags: - Custom Fields properties: id: type: string company_custom_field_id: type: string description: This is the id of the response object from when you get the company custom fields name: type: string type: $ref: '#/components/schemas/Custom-Field-Type' description: type: string value: type: string selection_options: type: array description: 'An array of options for fields of type radio. Otherwise, null.' items: type: string required: - id - company_custom_field_id - name - type - value Company-Custom-Field: type: object x-examples: Employee Level: id: ae4e2cd5-e9b6-40f9-88a1-415a02365dd0 name: employee_level description: Employee Level description: A custom field on a company x-tags: - Custom Fields properties: id: type: string name: type: string type: $ref: '#/components/schemas/Custom-Field-Type' description: type: string selection_options: type: array description: 'An array of options for fields of type radio. Otherwise, null.' items: type: string required: - id - name - type Job-Applicant: description: The representation of a job applicant in Gusto. type: object x-examples: Example: uuid: 94535f4f-b784-46e0-82c4-962c72fe5c99 first_name: John last_name: Smith email: jsmith99@gmail.com phone: '9606437980' gusto_person_type: Employee gusto_person_id: 7757869433913583 gusto_person_uuid: 1e58cce4-47ee-47aa-98e5-e0209c223456 company_uuid: 5c286695-783f-45a2-a9e2-3ca056ba7ae6 company_id: 7757616923766228 job_title: Software engineer start_date: '2021-04-30' date_of_birth: '1990-01-01' title: Job Applicant x-tags: - Job Applicants (Beta) properties: uuid: type: string first_name: type: string last_name: type: string email: type: string phone: type: string nullable: true gusto_person_type: type: string enum: - Employee - Contractor - Candidate nullable: true gusto_person_id: type: number nullable: true gusto_person_uuid: type: string nullable: true company_uuid: type: string company_id: type: number job_title: type: string nullable: true start_date: format: date type: string nullable: true date_of_birth: format: date type: string nullable: true Federal-Tax-Details: title: Federal-Tax-Details type: object properties: version: type: string description: The current version of the object. See the versioning guide for details using this field. tax_payer_type: type: string description: |- What type of tax entity the company is. One of: - C-Corporation - S-Corporation - Sole proprietor - LLC - LLP - Limited partnership - Co-ownership - Association - Trusteeship - General partnership - Joint venture - Non-Profit ein: type: string description: The company's Employer Identification Number (EIN) registered with the IRS taxable_as_scorp: type: string description: |- Whether the company is taxed as an S-Corporation. Tax payer types that may be taxed as an S-Corporation include: - S-Corporation - C-Corporation - LLC filing_form: type: string description: |- The form used by the company for federal tax filing. One of: - 941 (Quarterly federal tax return form) - 944 (Annual federal tax return form) ein_verified: type: boolean description: 'Whether the EIN was able to be verified as a valid EIN with the IRS. ' legal_name: type: string description: The legal name of the company x-examples: example-1: value: version: string tax_payer_type: string ein: string taxable_as_scorp: string filing_form: string ein_verified: true legal_name: string securitySchemes: Authorization: type: http scheme: bearer description: The access token responses: Employee-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Employee' examples: Example: value: id: 7757869432666662 uuid: 4b3f930f-82cd-48a8-b797-798686e12e5e first_name: Isom middle_initial: null last_name: Jaskolski email: dane7757869450111550@botsford.net company_id: 7756341740978008 company_uuid: a007e1ab-3595-43c2-ab4b-af7a5af2e365 manager_id: 7757869432666665 version: 1c7ba9d62c8bafbfff998ffccad5d296 department: null terminated: false two_percent_shareholder: false onboarded: true jobs: - id: 7757869441038001 version: 6c0ed1521e8b86eb36bd4455a63a2dac employee_id: 7757869432666662 current_compensation_id: 7757869444844982 payment_unit: Year primary: true title: Client Support Director compensations: - id: 7757869444844982 version: 2cd4b18662395eb53bcf80d5b5447f36 payment_unit: Year flsa_status: Exempt job_id: 7757869441038001 effective_date: '2021-01-20' rate: '70000.00' rate: '70000.00' hire_date: '2020-01-20' location_id: 7757727716657803 location: id: 7757727716657803 street_1: 412 Kiera Stravenue street_2: Suite 391 city: San Francisco state: CA zip: '94107' country: USA inactive: false eligible_paid_time_off: - name: Sick Hours accrual_unit: Hour accrual_rate: '208.0' accrual_period: Year accrual_balance: '31.8' maximum_accrual_balance: '240.0' paid_at_termination: false - name: Vacation Hours accrual_unit: Hour accrual_rate: '208.0' accrual_period: Year accrual_balance: '77.8' maximum_accrual_balance: '240.0' paid_at_termination: true terminations: [] custom_fields: - id: ee515986-f3ca-49da-b576-2691b95262f9 company_custom_field_id: ea7e5d57-6abb-47d7-b654-347c142886c0 name: employee_level description: Employee Level type: text value: '2' selection_options: null - id: 3796e08d-c2e3-434c-b4de-4ce1893e7b59 company_custom_field_id: 299650e4-e970-4acf-9bf0-6f05585d20ba name: t-shirt size description: What is your t-shirt size? type: text value: md selection_options: null - id: 3796e08d-c2e3-434c-b4de-4ce1893e7b59 company_custom_field_id: 024ec137-6c92-43a3-b061-14a9720531d6 name: favorite fruit description: Which is your favorite fruit? type: radio value: apple selection_options: - apple - banana - orange home_address: version: bfc6ed1d49aa9677265232c470fdbc3e employee_id: 7757869432666662 street_1: 73243 Wuckert Prairie street_2: Suite 189 city: San Francisco state: CA zip: '94107' country: USA active: true garnishments: [] date_of_birth: '1986-06-25' has_ssn: false ssn: '' phone: '1234567890' preferred_first_name: Angel work_email: null Employee-List: description: Example response content: application/json: schema: type: array items: $ref: '#/components/schemas/Employee' examples: Example: value: - id: 7757869432666660 uuid: 9779767c-6044-48e0-bf68-aeb370b9a2e7 first_name: Nicole middle_initial: M last_name: Boehm email: kory7757869450111548@barton-hermiston.io company_id: 7756341740978008 company_uuid: c44d66dc-c41b-4a60-9e25-5e93ff8583f2 manager_id: 7757869432666662 version: 414dedaca594b77135e0b8d2f398516d department: null terminated: false two_percent_shareholder: false onboarded: true jobs: - id: 7757869441037999 version: 91179081a7309c9fbd31bb3cf7b9893e employee_id: 7757869432666660 current_compensation_id: 7757869444844980 payment_unit: Hour primary: true title: Client Support Manager compensations: - id: 7757869444844980 version: 233f0096a8015e62d9795fadf1fd300d payment_unit: Hour flsa_status: Nonexempt job_id: 7757869441037999 effective_date: '2021-01-20' rate: '22.00' rate: '22.00' hire_date: '2020-01-20' location_id: 7757727716657803 location: id: 7757727716657803 street_1: 412 Kiera Stravenue street_2: Suite 391 city: San Francisco state: CA zip: '94107' country: USA inactive: false eligible_paid_time_off: - name: Sick Hours accrual_unit: Hour accrual_rate: '208.0' accrual_period: Year accrual_balance: '71.0' maximum_accrual_balance: '240.0' paid_at_termination: false - name: Vacation Hours accrual_unit: Hour accrual_rate: '208.0' accrual_period: Year accrual_balance: '34.0' maximum_accrual_balance: '240.0' paid_at_termination: true terminations: [] home_address: version: 7776defce07496b82f3f1ed469e48ae5 employee_id: 7757869432666660 street_1: 3772 Reynolds Centers street_2: Suite 461 city: San Francisco state: CA zip: '94107' country: USA active: true garnishments: [] date_of_birth: '1996-05-08' has_ssn: true ssn: '' phone: '1234567890' preferred_first_name: Vanessa work_email: null - id: 7757869432666661 first_name: Maci middle_initial: M last_name: Cassin email: claud_reinger7757869450111549@gutkowski.net company_id: 7756341740978008 manager_id: 7757869432666665 version: e867459e1360fa71e78b88142923d341 department: null terminated: false two_percent_shareholder: false onboarded: true jobs: - id: 7757869441038000 version: d0e719137f89ca3dd334dd4cc248ffbb employee_id: 7757869432666661 current_compensation_id: 7757869444844981 payment_unit: Year primary: true title: Account Director compensations: - id: 7757869444844981 version: 994b75511d1debac5d7e2ddeae13679f payment_unit: Year flsa_status: Exempt job_id: 7757869441038000 effective_date: '2021-01-20' rate: '78000.00' rate: '78000.00' hire_date: '2020-01-20' location_id: 7757727716657803 location: id: 7757727716657803 street_1: 412 Kiera Stravenue street_2: Suite 391 city: San Francisco state: CA zip: '94107' country: USA inactive: false eligible_paid_time_off: - name: Sick Hours accrual_unit: Hour accrual_rate: '208.0' accrual_period: Year accrual_balance: '74.0' maximum_accrual_balance: '240.0' paid_at_termination: false - name: Vacation Hours accrual_unit: Hour accrual_rate: '208.0' accrual_period: Year accrual_balance: '16.0' maximum_accrual_balance: '240.0' paid_at_termination: true terminations: [] home_address: version: b5f18a277987fe9b02230ef36910a248 employee_id: 7757869432666661 street_1: 8078 Bogisich Estate street_2: Suite 892 city: San Francisco state: CA zip: '94107' country: USA active: true garnishments: [] custom_fields: - id: ee515986-f3ca-49da-b576-2691b95262f9 company_custom_field_id: ea7e5d57-6abb-47d7-b654-347c142886c0 name: employee_level description: Employee Level type: text value: '2' selection_options: null - id: 3796e08d-c2e3-434c-b4de-4ce1893e7b59 company_custom_field_id: 299650e4-e970-4acf-9bf0-6f05585d20ba name: t-shirt size description: What is your t-shirt size? type: text value: md selection_options: null - id: 3796e08d-c2e3-434c-b4de-4ce1893e7b59 company_custom_field_id: 024ec137-6c92-43a3-b061-14a9720531d6 name: favorite fruit description: Which is your favorite fruit? type: radio value: apple selection_options: - apple - banana - orange date_of_birth: '1995-09-21' has_ssn: true ssn: '' phone: '1234567890' preferred_first_name: Denis work_email: null Company-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Company' examples: Example: value: ein: 00-0000001 entity_type: C-Corporation tier: core is_suspended: false company_status: Approved id: 7756341740978008 uuid: c7a07c73-a703-4462-9343-1b181182b6e0 name: Shoppe Studios LLC trade_name: Record Shoppe locations: - id: 7757727716657803 street_1: 412 Kiera Stravenue street_2: Suite 391 city: San Francisco state: CA zip: '94107' country: USA active: true - id: 7757727716657804 street_1: 644 Fay Vista street_2: Suite 842 city: Richmond state: VA zip: '23218' country: USA active: true compensations: 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 fixed: - name: Bonus - name: Commission - name: Paycheck Tips - name: Cash Tips - name: Correction Payment - name: Severance - name: Minimum Wage Adjustment - name: Reimbursement paid_time_off: - name: Vacation Hours - name: Sick Hours - name: Holiday Hours primary_signatory: first_name: Alda middle_initial: '' last_name: Carter phone: 1-565-710-7558 email: louie.hessel7757869450111547@zemlak.biz home_address: street_1: 524 Roob Divide street_2: Suite 565 city: San Francisco state: CA zip: '94107' country: USA primary_payroll_admin: first_name: Ian last_name: Labadie phone: 1-565-710-7559 email: louie.hessel7757869450111547@zemlak.biz Job-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Job' examples: Example: value: id: 7757869441038000 version: d0e719137f89ca3dd334dd4cc248ffbb employee_id: 7757869432666661 current_compensation_id: 7757869444844981 payment_unit: Year primary: true title: Account Director compensations: - id: 7757869444844981 version: 994b75511d1debac5d7e2ddeae13679f payment_unit: Year flsa_status: Exempt job_id: 7757869441038000 effective_date: '2021-01-20' rate: '78000.00' rate: '78000.00' hire_date: '2020-01-20' location_id: 7757727716657803 location: id: 7757727716657803 street_1: 412 Kiera Stravenue street_2: Suite 391 city: San Francisco state: CA zip: '94107' country: USA inactive: false Job-List: description: Example response content: application/json: schema: type: array items: $ref: '#/components/schemas/Job' examples: Example: value: - id: 7757869441038001 version: 6c0ed1521e8b86eb36bd4455a63a2dac employee_id: 7757869432666662 current_compensation_id: 7757869444844982 payment_unit: Year primary: true title: Client Support Director compensations: - id: 7757869444844982 version: 2cd4b18662395eb53bcf80d5b5447f36 payment_unit: Year flsa_status: Exempt job_id: 7757869441038001 effective_date: '2021-01-20' rate: '70000.00' rate: '70000.00' hire_date: '2020-01-20' location_id: 7757727716657803 location: id: 7757727716657803 street_1: 412 Kiera Stravenue street_2: Suite 391 city: San Francisco state: CA zip: '94107' country: USA inactive: false Location-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Location' examples: Example: value: company_id: 7756341740978008 version: 7d9753112507b9dda4fb97910f39b06e phone_number: '5825710808' id: 7757727716657803 street_1: 412 Kiera Stravenue street_2: Suite 391 city: San Francisco state: CA zip: '94107' country: USA active: true Location-List: description: Example response content: application/json: schema: type: array items: $ref: '#/components/schemas/Location' examples: Example: value: - company_id: 7756341740978008 version: 7d9753112507b9dda4fb97910f39b06e phone_number: '5825710808' id: 7757727716657803 street_1: 412 Kiera Stravenue street_2: Suite 391 city: San Francisco state: CA zip: '94107' country: USA active: true - company_id: 7756341740978008 version: 15e6b9680e00f3122729e64e3cef3224 phone_number: '2866070827' id: 7757727716657804 street_1: 644 Fay Vista street_2: Suite 842 city: Richmond state: VA zip: '23218' country: USA active: true Contractor-List: description: Example response content: application/json: schema: type: array items: $ref: '#/components/schemas/Contractor' examples: Example: value: - id: 7757515807594512 company_id: 7757616923763477 wage_type: Fixed is_active: false version: 63859768485e218ccf8a449bb60f14ed type: Individual first_name: Kory last_name: Gottlieb middle_initial: P business_name: null ein: null email: keira.west@mckenzie.org address: street_1: 621 Jast Row street_2: Apt. 281 city: Coral Springs state: FL zip: '33065' country: USA hourly_rate: '0.00' - id: 7757515807614539 company_id: 7757616923763477 wage_type: Fixed is_active: true version: 8aab307f1e8ed788697f8986346af559 type: Business first_name: null last_name: null middle_initial: null business_name: Labadie-Stroman ein: XX-XXX0001 email: jonatan@kerluke.info address: street_1: 1625 Bednar Center street_2: Apt. 480 city: Port Charlotte state: FL zip: '33954' country: USA hourly_rate: '0.00' - id: 7757515807623484 company_id: 7757616923763477 wage_type: Fixed is_active: true version: b48c46abfed1487b873b442334b3c4ff type: Individual first_name: Chanel last_name: Boyle middle_initial: X business_name: null ein: null email: loyal@hettinger.biz address: street_1: 35913 Darrick Run street_2: Apt. 913 city: Cypress state: TX zip: '77433' country: USA hourly_rate: '0.00' Contractor-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Contractor' examples: Individual Contractor: value: id: 7757515807594512 company_id: 7757616923763477 wage_type: Fixed is_active: false version: 63859768485e218ccf8a449bb60f14ed type: Individual first_name: Kory last_name: Gottlieb middle_initial: P business_name: null ein: null email: keira.west@mckenzie.org address: street_1: 621 Jast Row street_2: Apt. 281 city: Coral Springs state: FL zip: '33065' country: USA hourly_rate: '60.00' Business Contractor: value: id: 7757515807614539 company_id: 7757616923763477 wage_type: Fixed is_active: true version: 8aab307f1e8ed788697f8986346af559 type: Business first_name: null last_name: null middle_initial: null business_name: Labadie-Stroman ein: XX-XXX0001 email: jonatan@kerluke.info address: street_1: 1625 Bednar Center street_2: Apt. 480 city: Port Charlotte state: FL zip: '33954' country: USA hourly_rate: '0.00' Contractor-Payments: description: Example response content: application/json: schema: $ref: '#/components/schemas/Contractor-Payment-Summary' examples: Example: value: total: reimbursements: '110.0' wages: '1840.0' contractor_payments: - contractor_id: 1234 reimbursement_total: '110.0' wage_total: '1840.0' payments: - bonus: '20.0' date: '2020-10-19' hours: '40.0' payment_method: Direct Deposit reimbursement: '100.0' hourly_rate: '18.0' wage: '0.0' wage_type: Hourly wage_total: '740.00' - bonus: '100.0' date: '2020-10-19' hours: '0.00' payment_method: Direct Deposit reimbursement: '10.0' hourly_rate: '0.0' wage: '1000.0' wage_type: Fixed wage_total: '1100.0' Contractor-Payment-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Contractor-Payment' examples: Example: value: uuid: 04552eb9-7829-4b18-ae96-6983552948df contractor_id: 7757515807748202 bonus: '20.0' date: '2020-10-19' hours: '40.0' payment_method: Direct Deposit reimbursement: '100.0' hourly_rate: '18.0' wage: '0.0' wage_type: Hourly wage_total: '740.00' Compensation-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Compensation' examples: Example: value: id: 1363316536327004 version: 98jr3289h3298hr9329gf9egskt3kagri32qqgiqe3872 job_id: 1123581321345589 rate: '70.00' payment_unit: Hour flsa_status: Nonexempt effective_date: '2020-12-11' application/xml: schema: type: object properties: {} Compensation-List: description: Example response content: application/json: schema: type: array items: $ref: '#/components/schemas/Compensation' examples: Example: value: - id: 1363316536327004 version: 98jr3289h3298hr9329gf9egskt3kagri32qqgiqe3872 job_id: 1123581321345589 rate: '70.00' payment_unit: Hour flsa_status: Nonexempt effective_date: '2020-12-11' Garnishment-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Garnishment' examples: Example: value: id: 1363316538400333 version: 52b7c567242cb7452e89ba2bc02cb476 employee_id: 8964216891236743 active: true amount: '8.00' description: Company loan to employee court_ordered: false times: 5 recurring: false annual_maximum: null pay_period_maximum: '100.00' deduct_as_percentage: true Garnishment-List: description: Example response content: application/json: schema: type: array items: $ref: '#/components/schemas/Garnishment' examples: Example: value: - id: 1363316536327000 version: 63152767c822d6b0385509b973c49dda employee_id: 8964216891236743 active: true amount: '100.00' description: Child support court_ordered: true times: null recurring: true annual_maximum: '400.00' pay_period_maximum: null deduct_as_percentage: false - id: 1363316538400333 version: 52b7c567242cb7452e89ba2bc02cb476 employee_id: 8964216891236743 active: true amount: '8.00' description: Company loan to employee court_ordered: false times: 5 recurring: false annual_maximum: null pay_period_maximum: '100.00' deduct_as_percentage: true Termination-Object: description: '' content: application/json: schema: $ref: '#/components/schemas/Termination' examples: Example: value: id: 891238902131212 version: d487dd0b55dfcacdd920ccbdaeafa351 active: true effective_date: '2020-03-10' run_termination_payroll: false Termination-List: description: Example response content: application/json: schema: type: array items: $ref: '#/components/schemas/Termination' examples: Example: value: - id: 891238902131212 version: d487dd0b55dfcacdd920ccbdaeafa351 active: true effective_date: '2020-03-10' run_termination_payroll: false Time-Off-Request-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Time-Off-Request' examples: Example: value: id: 1 status: approved employee_note: Vacation at Disney World! employer_note: But Universal has Harry Potter World... days: '2019-06-01': '4.000' '2019-06-02': '8.000' '2019-06-03': '2.000' request_type: vacation employee: id: '234567' full_name: Jessica Gusto approver: id: '345678' full_name: Karen Gusto initiator: id: '234567' full_name: Jessica Gusto Time-Off-Request-List: description: Example response content: application/json: schema: type: array items: $ref: '#/components/schemas/Time-Off-Request' examples: Example: value: - id: 1 status: approved employee_note: Vacation at Disney World! employer_note: But Universal has Harry Potter World... days: '2019-06-01': '4.000' '2019-06-02': '8.000' '2019-06-03': '2.000' request_type: vacation employee: id: '234567' full_name: Jessica Gusto approver: id: '345678' full_name: Karen Gusto initiator: id: '234567' full_name: Jessica Gusto - id: 2 status: pending employee_note: Coming down with the flu employer_note: '' days: '2019-02-01': '8.000' request_type: sick employee: id: '654321' full_name: James Gusto approver: null initiator: id: '654321' full_name: James Gusto Pay-Schedule-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Pay-Schedule' examples: Example: value: id: 1 uuid: f2a69c38-e2f9-4e31-b5c5-4754fc60a052 frequency: Twice per month anchor_pay_date: '2020-05-15' day_1: 15 day_2: 31 name: Engineering auto_pilot: false Pay-Schedule-List: description: Example response content: application/json: schema: type: array items: $ref: '#/components/schemas/Pay-Schedule' examples: Example: value: - id: 1 uuid: 2097fe08-407a-46d7-b35c-a32402a2355e frequency: Twice per month anchor_pay_date: '2020-05-15' day_1: 15 day_2: 31 name: Engineering auto_pilot: false - id: 2 uuid: 8fc9f556-74fa-4271-97f6-4bfbfc5a5352 frequency: Monthly anchor_pay_date: '2020-05-31' day_1: 31 day_2: null name: Sales auto_pilot: false - id: 3 uuid: 0e07d35a-af11-4123-bfcb-4dd5f2f12ee1 frequency: Monthly anchor_pay_date: '2020-05-31' day_1: 31 day_2: null name: Staff auto_pilot: true Supported-Benefit-Object: description: Supported benefit response content: application/json: schema: $ref: '#/components/schemas/Supported-Benefit' examples: Example: value: id: 1 name: Medical Insurance description: Deductions and contributions for Medical Insurance pretax: true posttax: false imputed: false healthcare: true retirement: false yearly_limit: false Supported-Benefit-List: description: Example response content: application/json: schema: type: array items: $ref: '#/components/schemas/Supported-Benefit' examples: Supported Benefits: value: - id: 1 name: Medical Insurance description: Deductions and contributions for Medical Insurance pretax: true posttax: false imputed: false healthcare: true retirement: false yearly_limit: false - id: 2 name: Dental Insurance description: Deductions and contributions for Dental Insurance pretax: true posttax: false imputed: false healthcare: true retirement: false yearly_limit: false - id: 3 name: Vision Insurance description: Deductions and contributions for Vision Insurance pretax: true posttax: false imputed: false healthcare: true retirement: false yearly_limit: false - id: 6 name: Health Savings Account description: Health Savings Accounts (HSA) allow employees to be reimbursed for qualified medical expenses. Contributions are pre-tax and lower the total amount of tax paid by employees and the employer. Employers may also make tax-free contributions to employees' HSA. Remaining balances are carried over in next year. pretax: true posttax: false imputed: false healthcare: false retirement: false yearly_limit: true - id: 7 name: Health FSA description: Flexible Spending Accounts (FSA) allow employees to be reimbursed for qualified medical expenses. Contributions are pre-tax and lower the total amount of tax paid by employees and the employer. Employers may also make tax-free contributions to employees' FSA. Remaining balances are not carried over in next year. pretax: true posttax: false imputed: false healthcare: false retirement: false yearly_limit: true - id: 11 name: Dependent Care FSA description: 'translation missing: api-en.v1.benefits.descriptions.11' pretax: true posttax: false imputed: false healthcare: false retirement: false yearly_limit: true - id: 8 name: SIMPLE IRA description: The SIMPLE IRA is a tax-deferred retirement savings plan for employees. It is often used by small businesses as an alternative to 401(k) due to its relatively low operating cost. Employers are required to contribute a specific percentage to an employee's SIMPLE IRA. pretax: true posttax: false imputed: false healthcare: false retirement: true yearly_limit: true - id: 105 name: Roth 401(k) description: 'Roth 401(k) is an after-tax savings plan for employees. The standard maximum is $18,000, or $24,000 for employees over 50 years old.' pretax: false posttax: true imputed: false healthcare: false retirement: true yearly_limit: true - id: 110 name: Roth 403(b) description: 'translation missing: api-en.v1.benefits.descriptions.110' pretax: false posttax: true imputed: false healthcare: false retirement: true yearly_limit: true - id: 5 name: 401(k) description: '401(k) is tax-deferred retirement savings plan for employees. The standard maximum is $18,000, or $24,000 for employees over 50 years old.' pretax: true posttax: false imputed: false healthcare: false retirement: true yearly_limit: true - id: 9 name: 403(b) description: '403(b) is tax-deferred retirement savings plan for certain clerics, employees of public schools, and employees of other types of tax-exempt organizations.' pretax: true posttax: false imputed: false healthcare: false retirement: true yearly_limit: true - id: 108 name: SEP-IRA description: 'translation missing: api-en.v1.benefits.descriptions.108' pretax: true posttax: false imputed: false healthcare: false retirement: true yearly_limit: true - id: 109 name: SARSEP description: 'translation missing: api-en.v1.benefits.descriptions.109' pretax: true posttax: false imputed: false healthcare: false retirement: true yearly_limit: true - id: 107 name: Group-Term Life Insurance description: 'Group-Term Life Insurance for coverage in excess of $50,000 per employee is a taxable fringe benefit. See IRS Publication 15-B to determine the dollar value of the excess coverage.' pretax: false posttax: true imputed: true healthcare: false retirement: false yearly_limit: false - id: 10 name: Commuter Benefits (pre-tax) description: 'Tax-free commuter benefits for transit, vanpooling, bicycling, and work-related parking costs. The annual maximum contribution for this pre-tax benefit is in the IRS publication 15-B.' pretax: true posttax: false imputed: false healthcare: false retirement: false yearly_limit: false - id: 106 name: Personal Use of Company Car description: 'When an employee uses a company-owned car for personal matters, it is considered taxable benefit provided in-kind.' pretax: false posttax: true imputed: true healthcare: false retirement: false yearly_limit: false - id: 111 name: 529 College Savings description: 529 College Savings is an after-tax savings plan for employees designed to encourage saving for future college costs. This benefit should be reported as a taxable benefit and will therefore be taxed. pretax: false posttax: true imputed: true healthcare: false retirement: false yearly_limit: false - id: 112 name: Student Loan Repayment description: Student Loan Repayment is an after-tax savings plan for employees to pay towards their outstanding student loans. An employee can choose to set aside after-tax dollars towards this benefit. These benefits should be reported as a taxable benefit and will therefore be taxed. pretax: false posttax: true imputed: true healthcare: false retirement: false yearly_limit: false - id: 998 name: Short Term Disability (post-tax) description: 'translation missing: api-en.v1.benefits.descriptions.998' pretax: false posttax: true imputed: false healthcare: false retirement: false yearly_limit: false - id: 999 name: Long Term Disability (post-tax) description: 'translation missing: api-en.v1.benefits.descriptions.999' pretax: false posttax: true imputed: false healthcare: false retirement: false yearly_limit: false - id: 996 name: Short Term Disability (pre-tax) description: 'translation missing: api-en.v1.benefits.descriptions.996' pretax: true posttax: false imputed: false healthcare: false retirement: false yearly_limit: false - id: 997 name: Long Term Disability (pre-tax) description: 'translation missing: api-en.v1.benefits.descriptions.997' pretax: true posttax: false imputed: false healthcare: false retirement: false yearly_limit: false - id: 991 name: Voluntary Short Term Disability (post-tax) description: 'translation missing: api-en.v1.benefits.descriptions.991' pretax: false posttax: true imputed: false healthcare: false retirement: false yearly_limit: false - id: 992 name: Voluntary Long Term Disability (post-tax) description: 'translation missing: api-en.v1.benefits.descriptions.992' pretax: false posttax: true imputed: false healthcare: false retirement: false yearly_limit: false - id: 993 name: Voluntary Life (post-tax) description: 'translation missing: api-en.v1.benefits.descriptions.993' pretax: false posttax: true imputed: false healthcare: false retirement: false yearly_limit: false - id: 113 name: Commuter Parking description: 'translation missing: api-en.v1.benefits.descriptions.113' pretax: true posttax: false imputed: false healthcare: false retirement: false yearly_limit: false - id: 114 name: Commuter Transit description: 'translation missing: api-en.v1.benefits.descriptions.114' pretax: true posttax: false imputed: false healthcare: false retirement: false yearly_limit: false - id: 100 name: Other (taxable) description: Other taxable benefit pretax: false posttax: true imputed: true healthcare: false retirement: false yearly_limit: false - id: 201 name: Cell Phone (taxable) description: 'translation missing: api-en.v1.benefits.descriptions.201' pretax: false posttax: true imputed: true healthcare: false retirement: false yearly_limit: false - id: 202 name: Gym & Fitness (taxable) description: 'translation missing: api-en.v1.benefits.descriptions.202' pretax: false posttax: true imputed: true healthcare: false retirement: false yearly_limit: false - id: 203 name: Housing (taxable) description: 'translation missing: api-en.v1.benefits.descriptions.203' pretax: false posttax: true imputed: true healthcare: false retirement: false yearly_limit: false - id: 204 name: Wellness (taxable) description: 'translation missing: api-en.v1.benefits.descriptions.204' pretax: false posttax: true imputed: true healthcare: false retirement: false yearly_limit: false Admin-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Admin' examples: Example: value: first_name: John last_name: Smith email: jsmith99@gmail.com Admin-List: description: Example response content: application/json: schema: type: array items: $ref: '#/components/schemas/Admin' examples: Example: value: - first_name: Katherine last_name: Johnson email: Katherine@acmecorp.com - first_name: Anita last_name: Borg email: Anita@acmecorp.com Company-Benefit-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Company-Benefit' examples: Example: value: id: 1363316536327004 version: 98jr3289h3298hr9329gf9egskt3kagri32qqgiqe3872 company_id: 1363316537128394 benefit_id: 1 active: true description: Kaiser Permanente supports_percentage_amounts: true responsible_for_employer_taxes: false responsible_for_employee_w2: false Company-Benefit-List: description: Example response content: application/json: schema: type: array items: $ref: '#/components/schemas/Company-Benefit' examples: Example: value: - id: 1363316536327004 version: 98jr3289h3298hr9329gf9egskt3kagri32qqgiqe3872 company_id: 1363316537128394 benefit_id: 1 active: true description: Kaiser Permanente supports_percentage_amounts: true responsible_for_employer_taxes: false responsible_for_employee_w2: false Earning-Type-List: description: Example response content: application/json: schema: type: object properties: default: type: array description: The default earning types for the company. items: $ref: '#/components/schemas/Earning-Type' custom: type: array description: The custom earning types for the company. items: $ref: '#/components/schemas/Earning-Type' examples: Example: value: default: - name: Bonus uuid: b82e35c5-d7c6-4705-9e16-9f87499ade18 - name: Cash Tips uuid: f5618c94-ed7d-4366-b2c4-ff05e430064f - name: Commission uuid: 60191999-004a-49d9-b163-630574433653 - name: Correction Payment uuid: 368226e0-8e8c-48f0-bc91-aee46caafbc9 - name: Minimum Wage Adjustment uuid: 88a2e519-9ff5-4c19-9071-6a709f3c2939 - name: Paycheck Tips uuid: a3eaf03d-e712-4144-8f9b-71a85528adcf - name: Severance uuid: a6a2eba7-6c7d-4ced-bbe8-43452fbc9f63 custom: - name: Gym Membership Stipend uuid: 6b4a8efb-db90-4c13-a75f-aae11b3f4ff9 Earning-Type-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Earning-Type' examples: Example: value: name: Gym Membership Stipend uuid: f4dc8972-8830-4c07-b623-349a04b040d7 Employee-Benefit-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Employee-Benefit' examples: Example: value: id: 1363316536327004 version: 09j3d29jqdpj92109j9j2d90dq employee_id: 908123091820398 company_benefit_id: 290384923980230 active: true employee_deduction: '100.00' company_contribution: '100.00' employee_deduction_annual_maximum: '200.00' company_contribution_annual_maximum: '200.00' limit_option: null deduct_as_percentage: false contribute_as_percentage: false catch_up: false coverage_amount: null deduction_reduces_taxable_income: null coverage_salary_multiplier: '0.00' Employee-Benefit-List: description: Example response content: application/json: schema: type: array items: $ref: '#/components/schemas/Employee-Benefit' examples: Example: value: - id: 1363316536327004 version: 09j3d29jqdpj92109j9j2d90dq employee_id: 908123091820398 company_benefit_id: 290384923980230 active: true employee_deduction: '100.00' company_contribution: '100.00' employee_deduction_annual_maximum: '200.00' company_contribution_annual_maximum: '200.00' limit_option: null deduct_as_percentage: false contribute_as_percentage: false catch_up: false coverage_amount: null deduction_reduces_taxable_income: null coverage_salary_multiplier: '0.00' Payroll-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Payroll' examples: Example: value: version: 19289df18e6e20f797de4a585ea5a91535c7ddf7 payroll_deadline: '2021-02-18' check_date: '2021-02-22' processed: true processed_date: '2021-02-18' payroll_id: 7786400908986532 payroll_uuid: b50e611d-8f3d-4f24-b001-46675f7b5777 company_id: 7756341740978008 company_uuid: 6bf7807c-a5a0-4f4d-b2e7-3fbb4b2299fb pay_period: start_date: '2021-02-01' end_date: '2021-02-15' pay_schedule_id: 7757500908984137 pay_schedule_uuid: 00ebc4a4-ec88-4435-8f45-c505bb63e501 totals: company_debit: '121747.71' net_pay_debit: '79283.80' tax_debit: '42463.91' reimbursement_debit: '0.00' child_support_debit: '0.00' reimbursements: '0.00' net_pay: '81752.94' gross_pay: '130635.89' employee_bonuses: '0.00' employee_commissions: '18536.37' employee_cash_tips: '0.00' employee_paycheck_tips: '0.00' additional_earnings: '0.00' owners_draw: '0.00' check_amount: '2469.14' employer_taxes: '6917.19' employee_taxes: '35546.72' benefits: '0.00' employee_benefits_deductions: '13336.23' deferred_payroll_taxes: '0.00' employee_compensations: - employee_id: 1123581321345589 gross_pay: '2791.25' net_pay: '1953.31' payment_method: Direct Deposit fixed_compensations: - name: Bonus amount: '100.00' job_id: 1 - name: Reimbursement amount: '100.00' job_id: 1 hourly_compensations: - name: Regular Hours hours: '40.000' job_id: 1 compensation_multiplier: 1 - name: Overtime hours: '15.000' job_id: 1 compensation_multiplier: 1.5 - name: Double overtime hours: '0.000' job_id: 1 compensation_multiplier: 2 - name: Regular Hours hours: '40.000' job_id: 2 compensation_multiplier: 1 - name: Overtime hours: '5.000' job_id: 2 compensation_multiplier: 1.5 - name: Double overtime hours: '0.000' job_id: 2 compensation_multiplier: 2 paid_time_off: - name: Vacation Hours hours: '20.000' - name: Sick Hours hours: '0.000' - name: Holiday Hours hours: '0.000' benefits: - name: Group Term Life employee_deduction: '100.00' company_contribution: '50.00' imputed: true - name: 401K employee_deduction: '100.00' company_contribution: '50.00' imputed: false deductions: - name: Child Support amount: '80.00' taxes: - name: Federal Income Tax employer: false amount: '646.69' - name: Social Security employer: true amount: '191.25' Payroll-List: description: Example response content: application/json: schema: type: array items: $ref: '#/components/schemas/Payroll' examples: Example: value: - version: 19289df18e6e20f797de4a585ea5a91535c7ddf7 payroll_deadline: '2021-02-18' check_date: '2021-02-22' processed: true processed_date: '2021-02-18' payroll_id: 7786400908986532 payroll_uuid: b50e611d-8f3d-4f24-b001-46675f7b5777 company_id: 7756341740978008 company_uuid: 6bf7807c-a5a0-4f4d-b2e7-3fbb4b2299fb pay_period: start_date: '2021-02-01' end_date: '2021-02-15' pay_schedule_id: 7757500908984137 pay_schedule_uuid: 00ebc4a4-ec88-4435-8f45-c505bb63e501 totals: company_debit: '121747.71' net_pay_debit: '79283.80' tax_debit: '42463.91' reimbursement_debit: '0.00' child_support_debit: '0.00' reimbursements: '0.00' net_pay: '81752.94' gross_pay: '130635.89' employee_bonuses: '0.00' employee_commissions: '18536.37' employee_cash_tips: '0.00' employee_paycheck_tips: '0.00' additional_earnings: '0.00' owners_draw: '0.00' check_amount: '2469.14' employer_taxes: '6917.19' employee_taxes: '35546.72' benefits: '0.00' employee_benefits_deductions: '13336.23' deferred_payroll_taxes: '0.00' employee_compensations: - employee_id: 1123581321345589 gross_pay: '2791.25' net_pay: '1953.31' payment_method: Direct Deposit fixed_compensations: - name: Bonus amount: '100.00' job_id: 1 - name: Reimbursement amount: '100.00' job_id: 1 hourly_compensations: - name: Regular Hours hours: '40.000' job_id: 1 compensation_multiplier: 1 - name: Overtime hours: '15.000' job_id: 1 compensation_multiplier: 1.5 - name: Double Overtime hours: '0.000' job_id: 1 compensation_multiplier: 2 - name: Regular Hours hours: '40.000' job_id: 2 compensation_multiplier: 1 - name: Overtime hours: '5.000' job_id: 2 compensation_multiplier: 1.5 - name: Double Overtime hours: '0.000' job_id: 2 compensation_multiplier: 2 paid_time_off: - name: Vacation Hours hours: '20.000' - name: Sick Hours hours: '0.000' - name: Holiday Hours hours: '0.000' benefits: - name: Group Term Life employee_deduction: '100.00' company_contribution: '50.00' imputed: true - name: 401K employee_deduction: '100.00' company_contribution: '50.00' imputed: false deductions: - name: Child Support amount: '80.00' taxes: - name: Federal Income Tax employer: false amount: '646.69' - name: Social Security employer: true amount: '191.25' Job-Applicant-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Job-Applicant' examples: Example: value: uuid: 94535f4f-b784-46e0-82c4-962c72fe5c99 first_name: John last_name: Smith email: jsmith99@gmail.com phone: '9606437980' gusto_person_type: Employee gusto_person_id: 7757869433913583 gusto_person_uuid: 1e58cce4-47ee-47aa-98e5-e0209c223456 company_uuid: 5c286695-783f-45a2-a9e2-3ca056ba7ae6 company_id: 7757616923766228 job_title: Software engineer start_date: '2021-04-30' date_of_birth: '1990-01-01' Job-Applicant-List: description: Example response content: application/json: schema: type: array items: $ref: '#/components/schemas/Job-Applicant' examples: Example: value: - uuid: 94535f4f-b784-46e0-82c4-962c72fe5c99 first_name: John last_name: Smith email: jsmith99@gmail.com phone: '9606437980' gusto_person_type: Employee gusto_person_id: 7757869433913583 gusto_person_uuid: 1e58cce4-47ee-47aa-98e5-e0209c223456 company_uuid: 5c286695-783f-45a2-a9e2-3ca056ba7ae6 company_id: 7757616923766228 job_title: Software engineer start_date: '2021-04-30' date_of_birth: '1990-01-01' Company-Bank-Account-Object: description: Example response content: application/json: schema: $ref: '#/components/schemas/Company-Bank-Account' examples: Example: value: uuid: 1263eae5-4411-48d9-bd6d-18ed93082e65 company_uuid: e2c4c0ce-2986-48b9-86cf-ec27f6ed9a36 account_type: Checking routing_number: '851070439' account_number: XXXX4087 verification_status: verified Company-Bank-Account-List: description: Example response content: application/json: schema: type: array items: $ref: '#/components/schemas/Company-Bank-Account' examples: Example: value: - uuid: 1263eae5-4411-48d9-bd6d-18ed93082e65 company_uuid: e2c4c0ce-2986-48b9-86cf-ec27f6ed9a36 account_type: Checking routing_number: '851070439' account_number: XXXX4087 verification_status: verified requestBodies: post-employee-ytd-benefit-amounts-from-different-company: content: application/json: schema: type: object properties: benefit_id: type: number description: The id for the benefit got from the benefits api. tax_year: type: number minimum: 2000 maximum: 2999 description: The tax year for which this amount applies. ytd_employee_deduction_amount: type: string default: '0.00' description: The year-to-date employee deduction made outside the current company. ytd_company_contribution_amount: type: string default: '0.00' description: The year-to-date company contribution made outside the current company. required: - benefit_id - tax_year - ytd_employee_deduction_amount - ytd_company_contribution_amount security: - Authorization: []