Managing Employee Salaries
Salary records let you provide the compensation data Kota needs for salary-based benefits. Each record belongs to an employee and contains:
amount: The salary amount for the selected pay frequencycurrency: The ISO 4217 currency codepay_frequency:annual,monthly,bi_weekly, orweeklyeffective_from: The date the salary takes effect, inYYYY-MM-DDformat
Before managing salaries, create the employee and save their employee_id.
Create a Salary Record
Create the employee’s first salary record or add a record for a salary change. The amount must be greater than zero.
Use a new idempotency key for each logical salary creation. Reuse that key only when retrying the exact same request. See Authentication and idempotency.
View the Create salary API documentation.
Salary records are immutable. To record a salary change, create another record with the new amount and effective_from date.
Retrieve Salary Records
Use the salary endpoints according to the data you need:
- List salary records returns a paginated page in descending
effective_fromorder. Usepageandpage_sizeto navigate results.page_sizedefaults to 10 and has a maximum of 100. The response includesitems,page,page_size,total_count,has_next_page, andhas_previous_page. - Retrieve the current salary record returns the record with the latest
effective_fromdate on or before today. - Retrieve a salary record returns a specific record by its
salary_id.
Future-dated records appear in the list, but they do not become current until their effective_from date.
Correct a Salary Record
There is no update endpoint for salary records. If a record was submitted in error:
- Delete the incorrect salary record.
- Create a replacement record with the correct values.
Deleting a record removes it from salary lists and from consideration as the current salary. If you delete the current record, the next most recent eligible record becomes current.
Deleting a salary record a second time returns a 404 response.
Listen for Salary Events
Kota emits the following events when salary records change:
employee.salary_createdemployee.salary_deleted
Salary events use a V2 envelope. Handlers should read version, not api_version. The data object is sparse and contains identifiers rather than the complete salary record.
For employee.salary_created, use Retrieve a salary record to hydrate the complete record. For employee.salary_deleted, the deleted record itself is no longer retrievable. Retain salary state locally if you need the deleted record’s details, then reconcile the employee’s remaining records with List salary records and Retrieve the current salary record.
For shared webhook delivery and signature validation guidance only, see Working with Events. Its V1 payload shape does not apply to salary events.

