> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plane.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a compensation

> Creates a compensation for a worker, such as a commission, bonus, or a new regular pay rate.

Use this endpoint to record a one-time earning — for example a commission, bonus,
or other imputed income — or a new regular pay rate for a worker. Accepted
compensations flow into [payroll changes](/reference/payroll-changes/object) and
are included in payroll calculations. One-time earnings for workers employed
through an employer of record are reviewed by Plane before they are accepted.

### Parameters

<ParamField body="worker" type="string" required>
  The ID of the worker this compensation is for.
</ParamField>

<ParamField body="type" type="string" required>
  The type of earning. One of `regular`, `commission`, `bonus`, `overtime`,
  `allowance`, `severance`, `retropay`, `other_imputed`, or `pto_payout`.
  `regular` records a new pay rate that takes effect on the `starts` date;
  every other type records a one-time earning.
</ParamField>

<ParamField body="amount" type="string" required>
  The amount of the compensation, as a decimal string, e.g. `2500.00`. For
  `regular` compensation this is the pay rate per `unit`; for one-time earnings
  it is the total amount to pay.
</ParamField>

<ParamField body="currency" type="string" required>
  Three-letter ISO currency code of the compensation, e.g. `USD`.
</ParamField>

<ParamField body="unit" type="string">
  The time period the pay rate is denominated in, one of `year`, `month`,
  `week`, `day`, `hour`, `fixed`, or `other`. Required for `regular`
  compensation. One-time earnings default to `fixed`.
</ParamField>

<ParamField body="starts" type="string">
  The date this compensation starts, formatted as `YYYY-MM-DD`. Defaults to
  today. A `regular` compensation replaces the worker's pay rate from this
  date; a one-time earning is paid in the pay period containing this date, so
  for workers on a pay schedule the date must fall within a scheduled pay
  period. The response's `starts` reflects the resolved pay period placement.
</ParamField>

<ParamField body="reason" type="string">
  An optional reason for the compensation, shown alongside the resulting
  payroll change, e.g. `Q3 sales commission`.
</ParamField>

### Returns

Returns the new [compensation](/reference/compensations/object) on success. The
`status` is `accepted` when the compensation flows straight into payroll, or
`pending` when it needs review first. Retrying an identical `regular` create
returns the existing compensation instead of recording a duplicate change.

<ResponseExample>
  ```json Response theme={null}
  {
    "id": "wec_cNqYX2J3s9bI2Aa",
    "worker": "wr_5yMmVvd6Cz7Ptx",
    "type": "commission",
    "status": "accepted",
    "reason": "Q3 sales commission",
    "amount": "2500.00",
    "currency": "USD",
    "unit": "fixed",
    "frequency": "once",
    "stock": null,
    "other": null,
    "starts": "2026-08-31",
    "ends": "2026-08-31",
    "created": "2026-08-04T00:00:00Z"
  }
  ```
</ResponseExample>
