These docs are for v2024-03-01. Click to read the latest docs for v2025-06-15.

Adjust for minimum wage

When creating an employee’s job, employers can tell Gusto to help adjust for minimum wage on payroll if wages earned are below the minimum wage threshold. This functionality is applicable when:

  • An employee’s compensation is hourly (for example, payment_unit is set to "Hour") AND
  • The employee’s job would be susceptible to not making minimum wage, in particular employees who receive tips.

This feature applies to a given employee’s job and compensation. To build this functionality into your application, we suggest making the following calls when creating an employee’s job:

  1. Call GET an employee's work addresses to retrieve the correct minimum wage options for where a given employee works.

    Example request:

    curl --request GET \
      --url https://api.gusto-demo.com/v1/employees/employee_id/work_addresses \
      --header 'X-Gusto-API-Version: 2024-03-01' \
      --header 'accept: application/json'
    
  2. In the response, find the location_uuid for the work address that is currently active (active is set to "true"), as you’ll use this in the next step. Here's an example response:

    [  
      {  
        "uuid": "f640c53a-fba1-43ba-91e3-69b709f64ab7",  
        "employee_uuid": "46a4955d-99ae-49da-b53a-8cfbd3294dee",  
        "location_uuid": "eecbdfdd-4458-443c-9ebc-aaf2172a8994",  
        "effective_date": "2021-01-01",  
        "active": true,  
        "version": "3776a600b82dde1b1359c279c7fa0ab2",  
        "street_1": "91678 Farrell Meadow",  
        "street_2": "Apt. 835",  
        "city": "Phoenix",  
        "state": "AZ",  
        "zip": "85016",  
        "country": "USA"  
      }  
    ]
    
    
  3. Call GET minimum wages for a location using the location_uuid from the previous step.

    Example request:

    curl --request GET  
         --url <https://api.gusto-demo.com/v1/locations/location_uuid/minimum_wages>  
         --header 'X-Gusto-API-Version: 2024-03-01'  
         --header 'accept: application/json'
    

    Example response:

    [  
      {  
        "uuid": "11354b70-9ff8-4835-a13f-ec6fadc885ad",  
        "authority": "City",  
        "wage": "15.0",  
        "wage_type": "Regular",  
        "effective_date": "2017-01-01",  
        "notes": "large companies"  
      },  
      {  
        "uuid": "8cdab222-2622-4c0a-8f8d-4550001e8b84",  
        "authority": "City",  
        "wage": "10.5",  
        "wage_type": "Regular",  
        "effective_date": "2017-01-01",  
        "notes": "large companies"  
      },  
      {  
        "uuid": "5bcb0e48-4f56-4978-8aff-549dce924503",  
        "authority": "State",  
        "wage": "10.5",  
        "wage_type": "Regular",  
        "effective_date": "2017-01-01",  
        "notes": "large companies"  
      },  
      {  
        "uuid": "4adca313-1e34-433d-828b-8cca2952038c",  
        "authority": "Federal",  
        "wage": "10.5",  
        "wage_type": "Regular",  
        "effective_date": "2017-01-01",  
        "notes": "large companies"  
      }  
    ]
    
  4. Build a checkbox labeled “Adjust for minimum wage.” When a user selects this checkbox, surface the minimum wage options returned from the previous request as options in your application’s UI for users to choose from.

  5. You would then make an API request with the boolean field adjust_for_minimum_wage set to true in the body params. You could call either a POST call to /jobs/{job_id}/compensations if this is a brand new compensation, or a PUT call to /compensations/{compensation_id} if you’re adjusting a compensation that already exists.

    Example request:

    curl --request POST  
         --url <https://api.gusto-demo.com/v1/jobs/job_id/compensations>  
         --header 'X-Gusto-API-Version: 2024-03-01'  
         --header 'accept: application/json'  
         --header 'content-type: application/json'  
         --data '  
    {  
      "payment_unit": "Hour",  
      "flsa_status": "Exempt",  
      "adjust_for_minimum_wage": true,  
      "minimum_wages": [  
        {  
          "uuid": "11354b70-9ff8-4835-a13f-ec6fadc885ad"  
        }  
      ]  
    }  
    '
    

    Example response:

    {  
      "uuid": "db57832c-d8bc-43a7-ae99-0a04480ff037",  
      "version": "98jr3289h3298hr9329gf9egskt3kagri32qqgiqe3872",  
      "job_uuid": "d8f8fbe7-496d-4b69-86f0-1e2d1b73a086",  
      "rate": "60000.00",  
      "payment_unit": "Year",  
      "flsa_status": "Exempt",  
      "effective_date": "2020-12-11",  
      "adjust_for_minimum_wage": true,  
      "minimum_wages": \[]  
    }
    
  6. Make sure you have logic that surfaces the proper error to the user. For example, we'd return an error like the following if a minimum wage adjustment isn’t available in the given location (such as in California):

       {  
         "error_key": "adjust_for_minimum_wage",  
         "category": "invalid_attribute_value",  
         "message": "Minimum wage adjustment does not apply to state."  
       }
    

Where to find adjusted earnings

After the compensation has been adjusted, the adjusted earnings will show in ‘fixed_compensations’ for the employee when running payroll once the payroll is calculated. The ‘fixed_compensations’ array will be in the responses for both the PUT /companies/{company_id}/payrolls/{payroll_id}/prepare and PUT /companies/{company_id}/payrolls/{payroll_id} endpoints, and look like the following:

"fixed_compensations": [  
  {  
    "job_uuid": "357815a2-9743-461e-8aaf-67e583bbeed7",  
    "name": "Minimum Wage Adjustment",  
    "amount": "294.30"  
  }  
]