---
title: "Create Employee Earning [Single]"
method: POST
path: "/apiHub/payroll/v1/companies/{companyId}/employees/{employeeId}/earnings"
tags: ["Recurring Earnings"]
---

# Create Employee Earning \[Single\]

`POST /apiHub/payroll/v1/companies/{companyId}/employees/{employeeId}/earnings`

## Request

- Base URL: `dc1demogwext.paylocity.com` (relative, and the document’s source URL is not known)
- URL: `dc1demogwext.paylocity.com/apiHub/payroll/v1/companies/{companyId}/employees/{employeeId}/earnings`
- Auth: none declared

**Summary Description**

This function will allow the API user to create a new earning on the employee record.

## Path parameters

- `companyId` string, required
- `employeeId` string, required

## Request body

- CreateEarningDto: A Payroll Earning Code is a specific classification used in payroll systems to categorize the different types of income an employee receives. These codes denote various earnings such as regular hours worked, overtime, bonuses, commissions, or holiday pay, among others. The purpose of these codes is to streamline the payroll process, making it easier to track, manage, and report different types of income. They are essential for accurate payroll calculations and compliance with tax and labor laws.
  - `code` string, nullable: Earning Code
  - `effectiveFrom` string, date-time, nullable: Effective Date of Earning
  - `effectiveTo` string, date-time, nullable: End Date of Earning
  - `amount` number, double, nullable: Amount of Earning
  - `rate` number, double, nullable: Earning Code Rate
  - `units` number, double, nullable: Hours or Units Worked
  - `selfInsured` boolean, nullable: Self Insured Flag
  - `calculationCode` string, nullable: Earning Calculation Code
  - `frequency` string, nullable: Frequency determines how often the earning Amount is applied in payroll
  - `agency` string, nullable: Agency Code
  - `miscellaneousInfo` string, nullable: Miscellaneous Info
  - `rateCode` string, nullable: Rate Code
  - `distribution` DistributionDto: Labor Distribution is the term for the system categorizing (distributing) payroll data among Cost Centers and Job Codes
    - `jobCode` string, nullable: Job Code Allocation
    - `costCenters` CostCenterDto[], nullable: An array of objects representing the Cost Centers
      - `level` integer, nullable: Cost center level (Levels are 1-3)
      - `code` string, nullable: Cost Center Code associated with the Level. This must match a Paylocity Cost Center Code
  - `limits` CreateLimitsDto: Limits are used to control the amount of an earning or deduction
    - `goal` number, double, nullable: The Goal is the deduction/earning limit. When deductions/earnings have met the limit, the employee pay deductions/earnings will stop. For payroll, this amount is the lifetime deduction/earning limit. For benefits, this limit amount could be annual.
    - `paidToDate` number, double, nullable: Paid to Date tracks the amount paid toward the Goal. The Paid to Date amount will never be more than the Goal amount
    - `payPeriodMinimum` number, double, nullable: Minimum for the pay period
    - `payPeriodMaximum` number, double, nullable: Maximum for the pay period
    - `annualMaximum` number, double, nullable: Entering an amount in the Annual Maximum field will override the system setting, and you'll need to manually manage the maximum each year. Leave this field blank to keep the system setting.

## Response `201`

Created

- CreateEarningDtoResponse: A Payroll Earning Code is a specific classification used in payroll systems to categorize the different types of income an employee receives. These codes denote various earnings such as regular hours worked, overtime, bonuses, commissions, or holiday pay, among others. The purpose of these codes is to streamline the payroll process, making it easier to track, manage, and report different types of income. They are essential for accurate payroll calculations and compliance with tax and labor laws.
  - `id` string, uuid: Resource ID of the record.
  - `code` string, nullable: Earning Code
  - `effectiveFrom` string, date-time, nullable: Effective Date of Earning
  - `effectiveTo` string, date-time, nullable: End Date of Earning
  - `amount` number, double, nullable: Amount of Earning
  - `rate` number, double, nullable: Earning Code Rate
  - `units` number, double, nullable: Hours or Units Worked
  - `selfInsured` boolean, nullable: Self Insured Flag
  - `calculationCode` string, nullable: Earning Calculation Code
  - `frequency` string, nullable: Frequency determines how often the earning Amount is applied in payroll
  - `agency` string, nullable: Agency Code
  - `miscellaneousInfo` string, nullable: Miscellaneous Info
  - `rateCode` string, nullable: Rate Code
  - `distribution` DistributionDto: Labor Distribution is the term for the system categorizing (distributing) payroll data among Cost Centers and Job Codes
    - `jobCode` string, nullable: Job Code Allocation
    - `costCenters` CostCenterDto[], nullable: An array of objects representing the Cost Centers
      - `level` integer, nullable: Cost center level (Levels are 1-3)
      - `code` string, nullable: Cost Center Code associated with the Level. This must match a Paylocity Cost Center Code
  - `limits` CreateLimitsDto: Limits are used to control the amount of an earning or deduction
    - `goal` number, double, nullable: The Goal is the deduction/earning limit. When deductions/earnings have met the limit, the employee pay deductions/earnings will stop. For payroll, this amount is the lifetime deduction/earning limit. For benefits, this limit amount could be annual.
    - `paidToDate` number, double, nullable: Paid to Date tracks the amount paid toward the Goal. The Paid to Date amount will never be more than the Goal amount
    - `payPeriodMinimum` number, double, nullable: Minimum for the pay period
    - `payPeriodMaximum` number, double, nullable: Maximum for the pay period
    - `annualMaximum` number, double, nullable: Entering an amount in the Annual Maximum field will override the system setting, and you'll need to manually manage the maximum each year. Leave this field blank to keep the system setting.

---

[API](https://skmtc.dev/paylocity/apis/pay-setup-api.md) - [All operations](https://skmtc.dev/paylocity/apis/pay-setup-api/llms.txt) - [OpenAPI document](https://skmtc.dev/paylocity/apis/pay-setup-api/revisions/d588d54cc4b6?raw)
