Skip to main content

Payroll

Everything about pay, and nothing writable. The figure on an entry is the product of attendance, leave, loans, bonuses, adjustments, statutory contributions and tax slabs — a write path that set it directly would produce a number the workspace itself disagrees with.

Money is a decimal string at two places; days are at one, because half days are real and hundredths of a day are not.

List salary components

GET/v1/salary_components

Query parameters

NameTypeRequiredDescription
limitintegerNoPage size. Values above 100 are clamped.
starting_afterstringNoOpaque cursor from a previous response’s next_cursor.
updated_sincetimestampNoReturn records changed at or after this instant. Tracks the record itself, not its child collections.
is_activebooleanNoFilter by whether the record is in use.
typestringNoearning, deduction, or employer_contribution.
codestringNoLook up one component by its code.

Responses

StatusMeaning
200A page of salary components.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
429Rate limit exceeded. See the RateLimit-* headers.

Retrieve a salary component

GET/v1/salary_components/{id}

Path parameters

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses

StatusMeaning
200The salary component.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such salary component in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

List salary structures

GET/v1/salary_structures

Query parameters

NameTypeRequiredDescription
limitintegerNoPage size. Values above 100 are clamped.
starting_afterstringNoOpaque cursor from a previous response’s next_cursor.
updated_sincetimestampNoReturn records changed at or after this instant. Tracks the record itself, not its child collections.
is_activebooleanNoFilter by whether the record is in use.

Responses

StatusMeaning
200A page of salary structures.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
429Rate limit exceeded. See the RateLimit-* headers.

Retrieve a salary structure

GET/v1/salary_structures/{id}

Path parameters

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses

StatusMeaning
200The salary structure.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such salary structure in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

List salary structure components

GET/v1/salary_structure_components

Query parameters

NameTypeRequiredDescription
limitintegerNoPage size. Values above 100 are clamped.
starting_afterstringNoOpaque cursor from a previous response’s next_cursor.
salary_structure_idstringNoOnly components of this structure.
salary_component_idstringNoOnly rows for this component.

Responses

StatusMeaning
200A page of salary structure components.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
429Rate limit exceeded. See the RateLimit-* headers.

Retrieve a salary structure component

GET/v1/salary_structure_components/{id}

Path parameters

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses

StatusMeaning
200The salary structure component.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such salary structure component in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

List salary assignments

GET/v1/salary_assignments

Query parameters

NameTypeRequiredDescription
limitintegerNoPage size. Values above 100 are clamped.
starting_afterstringNoOpaque cursor from a previous response’s next_cursor.
updated_sincetimestampNoReturn records changed at or after this instant. Tracks the record itself, not its child collections.
employee_idstringNoOnly records for this employee.
salary_structure_idstringNoOnly assignments on this structure.

Responses

StatusMeaning
200A page of salary assignments.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
429Rate limit exceeded. See the RateLimit-* headers.

Retrieve a salary assignment

GET/v1/salary_assignments/{id}

Path parameters

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses

StatusMeaning
200The salary assignment.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such salary assignment in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

List payroll runs

GET/v1/payroll_runs

Query parameters

NameTypeRequiredDescription
limitintegerNoPage size. Values above 100 are clamped.
starting_afterstringNoOpaque cursor from a previous response’s next_cursor.
updated_sincetimestampNoReturn records changed at or after this instant. Tracks the record itself, not its child collections.
statusstringNoOnly runs in this state.
sourcestringNoprocessed or imported.
monthintegerNoCalendar month, 1–12.
yearintegerNoCalendar year.

Responses

StatusMeaning
200A page of payroll runs.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
429Rate limit exceeded. See the RateLimit-* headers.

Retrieve a payroll run

GET/v1/payroll_runs/{id}

Path parameters

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses

StatusMeaning
200The payroll run.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such payroll run in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

List payroll entries

GET/v1/payroll_entries

Query parameters

NameTypeRequiredDescription
limitintegerNoPage size. Values above 100 are clamped.
starting_afterstringNoOpaque cursor from a previous response’s next_cursor.
updated_sincetimestampNoReturn records changed at or after this instant. Tracks the record itself, not its child collections.
employee_idstringNoOnly records for this employee.
payroll_run_idstringNoOnly entries in this run.
statusstringNoOnly entries in this state.

Responses

StatusMeaning
200A page of payroll entries.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
429Rate limit exceeded. See the RateLimit-* headers.

Retrieve a payroll entry

GET/v1/payroll_entries/{id}

Path parameters

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses

StatusMeaning
200The payroll entry.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such payroll entry in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

List payroll entry components

GET/v1/payroll_entry_components

Query parameters

NameTypeRequiredDescription
limitintegerNoPage size. Values above 100 are clamped.
starting_afterstringNoOpaque cursor from a previous response’s next_cursor.
payroll_entry_idstringNoOnly lines on this entry.
salary_component_idstringNoOnly lines for this component.
typestringNoearning, deduction, or employer_contribution.

Responses

StatusMeaning
200A page of payroll entry components.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
429Rate limit exceeded. See the RateLimit-* headers.

Retrieve a payroll entry component

GET/v1/payroll_entry_components/{id}

Path parameters

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses

StatusMeaning
200The payroll entry component.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such payroll entry component in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

List salary slips

GET/v1/salary_slips

Query parameters

NameTypeRequiredDescription
limitintegerNoPage size. Values above 100 are clamped.
starting_afterstringNoOpaque cursor from a previous response’s next_cursor.
payroll_entry_idstringNoOnly slips for this entry.

Responses

StatusMeaning
200A page of salary slips.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
429Rate limit exceeded. See the RateLimit-* headers.

Retrieve a salary slip

GET/v1/salary_slips/{id}

Path parameters

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses

StatusMeaning
200The salary slip.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such salary slip in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.