Manage earning types

Earning types are the category of pay associated with each payroll item—essentially, the kinds of earnings an employee receives. Earning types in Gusto are all forms of fixed compensation, not hourly rates.

Gusto has two earning type categories:

  • Default. When making a new company, Gusto provides default earning types such as:
    • Bonus
    • Cash Tips
    • Commission
    • Correction Payment
    • Minimum Wage Adjustment
    • Paycheck Tips
    • Severance
  • Custom. You can also create a custom earning type and name it whatever you like

You can create, update, deactivate, and reactivate custom earning types, but you can’t modify the default earning types.

Get all earning types for a company

Check all available earning types for a company—both default and custom—by using the GET /companies/{company_id}/earning_types endpoint.

curl --request GET \
     --url https://api.gusto-demo.com/v1/companies/{company_id}/earning_types \
     --header 'X-Gusto-API-Version: 2025-06-15' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer COMPANY_API_TOKEN'

The response provides a list of default and custom earning types:

{
  "default": [
    {
      "name": "Bonus",
      "uuid": "b82e35c5-d7c6-4705-9e16-9f87499ade18",
      "active": true
    },
    {
      "name": "Cash Tips",
      "uuid": "f5618c94-ed7d-4366-b2c4-ff05e430064f",
      "active": true
    },
    {
      "name": "Commission",
      "uuid": "60191999-004a-49d9-b163-630574433653",
      "active": true
    },
    {
      "name": "Correction Payment",
      "uuid": "368226e0-8e8c-48f0-bc91-aee46caafbc9",
      "active": true
    },
    {
      "name": "Minimum Wage Adjustment",
      "uuid": "88a2e519-9ff5-4c19-9071-6a709f3c2939",
      "active": true
    },
    {
      "name": "Paycheck Tips",
      "uuid": "a3eaf03d-e712-4144-8f9b-71a85528adcf",
      "active": true
    },
    {
      "name": "Severance",
      "uuid": "a6a2eba7-6c7d-4ced-bbe8-43452fbc9f63",
      "active": true
    }
  ],
  "custom": [
    {
      "name": "Sales",
      "uuid": "6226915e-ce54-41fa-842f-9adcc0cae709",
      "active": true
    }
  ]
}

Create a custom earning type

You can create a custom earning type by calling the POST /companies/{company_id}/earning_types endpoint. The new earning type will now be available under the fixed_compensation array for every employee.

📘

Unique earning names

If an inactive earning type exists with a particular name, creating a custom earning type with that name will reactivate the inactive earning type instead of creating a new one.

curl --request POST \
     --url https://api.gusto-demo.com/v1/companies/{company_id}/earning_types \
     --header 'accept: application/json' \
     --header 'authorization: Bearer COMPANY_API_TOKEN' \
     --header 'content-type: application/json' \
     --data '{"name":"Sales"}'

The API response will include the name of the earning type, unique identifier, and active status.

{
  "name": "Sales",
  "uuid": "6226915e-ce54-41fa-842f-9adcc0cae709",
  "active": true
}

Update an earning type's name

Call the PUT/companies/companies/{company_id}/earning_types/{earning_type_uuid} endpoint to update an earning type’s name.

Note that you cannot change an earning type’s active status. If you no longer want an earning type to be active, you must deactivate it.

For example, you could update an earning type named “Sales” to instead have a name of “Sales and Marketing” as in this example request:

curl --request PUT \
     --url https://api.gusto-demo.com/v1/companies/{company_id}/earning_types/{earning_type_uuid} \
     --header 'X-Gusto-API-Version: 2025-06-15' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer COMPANY_API_TOKEN' \
     --header 'content-type: application/json' \
     --data '
{
  "name": "Sales and Marketing"
}
'

It will return a response that displays the new type name, along with the earning type uuid and active status.

{
  "name": "Sales and Marketing",
  "uuid": "6226915e-ce54-41fa-842f-9adcc0cae709",
  "active": true
}

Deactivate an earning type

To remove a custom earnings type, call the DELETE /v1/companies/{company_id}/earning_types/{earning_type_uuid} endpoint.

For example, in the following request deactivates the “Sales and Marketing” earning type from the Updating an earning type’s name step.

Sample request

curl --request DELETE \
     --url https://api.gusto-demo.com/v1/companies/{company_id}/earning_types/6226915e-ce54-41fa-842f-9adcc0cae709 \
     --header 'X-Gusto-API-Version: 2025-06-15'

Deactivating an earning time means that when you call the GET /v1/companies/{company_id}/earning_types endpoint, it will no longer be listed in the array of ”custom” earning type objects.

Reactivating

You can reactivate an earning type by calling POST /v1/companies/{company_id}/earning_types with the same name you used before, and it will be available with ”active”: true with the same uuid that it had before deactivation.