Update a Pay Item

Updates a pay item. Only the fields provided are changed. Editing amount or effective_date archives the existing pay item and creates a new one with a new id. Any id this API returned for a pay item edited through PATCH, including every entry of replaced_ids, keeps working and resolves to its current version, so storing the new id is strongly advised but not necessary; replaced_ids in the response lists the earlier ids for integrations that track changes. A deleted pay item (no live version left) returns 404 with the message "Pay item not found because it was deleted".
Cannot update pay items linked to a payroll adjustment, salary pay items, pay items automatically created from an external source, pay items whose payroll run is no longer in preparation, or pay items with more than one live version.
Recurring pay items cannot be updated or deleted through this API and return 422. A monthly payment generated from a recurring pay item can be regenerated with a new id when the recurring item changes; its old id then returns 404.
When custom_configuration doesn't match the pay code's custom configuration, the 422 response is a parameter error with the same code bulk create returns: custom_configuration_not_used, custom_configuration_required or invalid_custom_configuration, and the param at fault.

Authentication

This endpoint accepts any one of the following token types:

  • Company-scoped access token (OAuth2AuthorizationCode) — obtained through the Authorization Code flow or the Refresh Token flow. See Authentication for partners.
  • Customer API token (CustomerAPIToken) — generated by the customer on their Integration Settings page. See Authorization for customers.

Scopes

CategoryRead only ScopeWrite only Scope (read access implicit)
Manage payroll runs (payroll)-Manage pay items (pay_item:write)
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
uuid
required

Pay item ID

Body Params

Pay Item

Partial update — only the fields provided are changed. Editing amount or effective_date archives the existing pay item and creates a new one with a new id; the old id keeps working, and the response's replaced_ids lists the earlier ids for integrations that track changes. Editing end_date, provider_data or custom_configuration alone updates the pay item in place and keeps the same id.

integer

Value of the pay item. See PayItemParams.amount for unit details. Must not be zero. Negative values are supported: send a negative amount to submit a deduction or to correct an earlier submission downwards — for any pay code, including hours-based ones such as working_hours.

custom_configuration
object | null

The pay item custom configuration values for pay codes that use one, such as the employee's company car. The pay code's custom_configuration (GET …/pay-codes) gives the key and the JSON Schema of the values. On PATCH, values are merged onto the stored ones: nested objects merge, and null removes a field at any level. Send null for the whole custom_configuration to remove the stored values.

date

Date the pay item is applied on (YYYY-MM-DD) — the day worked, the day a correction was submitted, or the first day of a leave period.

date | null

Last day of a leave period, inclusive (YYYY-MM-DD). Leave-of-absence pay codes only; send null to clear it.

string | null

A reference code for the pay item record in the calling integration's own system.
Private to that integration — no other integration can read or overwrite it.
Omit the field to leave the value unchanged; send null or an empty string to clear
it. Surrounding whitespace is trimmed off. A value can be held by one live pay item at a time, per integration and company; editing a
pay item keeps its value on the new version. At most 64 characters, after trimming.

provider_data
object
Responses

Callback
Language
Credentials
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json