Read Jet HR employees, absences, clockings, payroll; create, approve, delete leave; create expenses.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Create a leave, sickness, remote-work or other presence/absence request for an employee. WRITES to the company's HR records. codename is the request kind (from jethr_list_absence_policies); give start_date and end_date for day requests, or start_date + start_time + time_duration for hourly requests. send_notification=true makes Jet HR notify the people involved (approvers/employee) and needs confirm_notification=true; default false. Some kinds need extra fields (child data, trip data, sickness certificate): Jet HR answers with a validation error naming them. POST /public-api/v1/presence-absence-requests/.
Request kind codename (from jethr_list_absence_policies), e.g. HOLIDAY.
Employee uuid (from jethr_list_employees).
Sickness only: the PUC protocol number.
Note on the request.
Last day (yyyy-mm-dd); omit for a single day.
Child fiscal code (required for FEEDING, SICKNESS_CHILD_CHILD, SICKNESS_CHILD_INFANT).
Trip policy name (required for TRIP_* kinds; see jethr_list_trip_refund_policies).
First day (yyyy-mm-dd).
Start time HH:MM, hourly requests only.
Fiscal code of the assisted person (kinds that need it, e.g. Law 104 leave).
Duration HH:MM, hourly requests only.
Child birth date (required for PARENTAL_PATERNAL_MANDATORY_LEAVE).
Notify the people involved (default false); needs confirm_notification=true.
Must be true when send_notification is true: the user approved that Jet HR notifies the people involved.
TRIP_* kinds: meals are reimbursed.
Sickness only: PUC protocol number or paper certificate.
Donor leave only: fiscal code of the transfusion center.
TRIP_* kinds: accommodation is reimbursed.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Create a leave, sickness, remote-work or other presence/absence request for an employee. WRITES to the company's HR records. codename is the request kind (from jethr_list_absence_policies); give start_date and end_date for day requests, or start_date + start_time + time_duration for hourly requests. send_notification=true makes Jet HR notify the people involved (approvers/employee) and needs confirm_notification=true; default false. Some kinds need extra fields (child data, trip data, sickness certificate): Jet HR answers with a validation error naming them. POST /public-api/v1/presence-absence-requests/.
| Argument | Type | Description |
|---|---|---|
| puc | string | Sickness only: the PUC protocol number. |
| note | string | Note on the request. |
| codename* | string | Request kind codename (from jethr_list_absence_policies), e.g. HOLIDAY. |
| employee* | string | Employee uuid (from jethr_list_employees). |
| end_date | string | Last day (yyyy-mm-dd); omit for a single day. |
| child_ssn | string | Child fiscal code (required for FEEDING, SICKNESS_CHILD_CHILD, SICKNESS_CHILD_INFANT). |
| trip_name | string | Trip policy name (required for TRIP_* kinds; see jethr_list_trip_refund_policies). |
| start_date | string | First day (yyyy-mm-dd). |
| start_time | string | Start time HH:MM, hourly requests only. |
| assisted_ssn | string | Fiscal code of the assisted person (kinds that need it, e.g. Law 104 leave). |
| time_duration | string | Duration HH:MM, hourly requests only. |
| child_birth_date | string | Child birth date (required for PARENTAL_PATERNAL_MANDATORY_LEAVE). |
| send_notification | boolean | Notify the people involved (default false); needs confirm_notification=true. |
| confirm_notification | boolean | Must be true when send_notification is true: the user approved that Jet HR notifies the people involved. |
| trip_meals_reimbursed | boolean | TRIP_* kinds: meals are reimbursed. |
| sickness_justification_type | string | Sickness only: PUC protocol number or paper certificate. |
| donor_transfusion_center_ssn | string | Donor leave only: fiscal code of the transfusion center. |
| trip_accommodation_reimbursed | boolean | TRIP_* kinds: accommodation is reimbursed. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"employee",
"codename"
],
"properties": {
"puc": {
"type": "string",
"maxLength": 100,
"description": "Sickness only: the PUC protocol number."
},
"note": {
"type": "string",
"maxLength": 2000,
"description": "Note on the request."
},
"codename": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Request kind codename (from jethr_list_absence_policies), e.g. HOLIDAY."
},
"employee": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Employee uuid (from jethr_list_employees)."
},
"end_date": {
"type": "string",
"description": "Last day (yyyy-mm-dd); omit for a single day."
},
"child_ssn": {
"type": "string",
"maxLength": 32,
"description": "Child fiscal code (required for FEEDING, SICKNESS_CHILD_CHILD, SICKNESS_CHILD_INFANT)."
},
"trip_name": {
"type": "string",
"maxLength": 200,
"description": "Trip policy name (required for TRIP_* kinds; see jethr_list_trip_refund_policies)."
},
"start_date": {
"type": "string",
"description": "First day (yyyy-mm-dd)."
},
"start_time": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}(:\\d{2})?$",
"description": "Start time HH:MM, hourly requests only."
},
"assisted_ssn": {
"type": "string",
"maxLength": 32,
"description": "Fiscal code of the assisted person (kinds that need it, e.g. Law 104 leave)."
},
"time_duration": {
"type": "string",
"pattern": "^\\d{1,3}:\\d{2}(:\\d{2})?$",
"description": "Duration HH:MM, hourly requests only."
},
"child_birth_date": {
"type": "string",
"description": "Child birth date (required for PARENTAL_PATERNAL_MANDATORY_LEAVE)."
},
"send_notification": {
"type": "boolean",
"description": "Notify the people involved (default false); needs confirm_notification=true."
},
"confirm_notification": {
"type": "boolean",
"const": true,
"description": "Must be true when send_notification is true: the user approved that Jet HR notifies the people involved."
},
"trip_meals_reimbursed": {
"type": "boolean",
"description": "TRIP_* kinds: meals are reimbursed."
},
"sickness_justification_type": {
"enum": [
"PUC",
"PAPER_CERTIFICATE"
],
"type": "string",
"description": "Sickness only: PUC protocol number or paper certificate."
},
"donor_transfusion_center_ssn": {
"type": "string",
"maxLength": 32,
"description": "Donor leave only: fiscal code of the transfusion center."
},
"trip_accommodation_reimbursed": {
"type": "boolean",
"description": "TRIP_* kinds: accommodation is reimbursed."
}
}
}Create an expense reimbursement request for an employee (no receipt files; those are uploaded in Jet HR). WRITES to the company's records as a reimbursement request. amount is the EUR amount; amount_total is the amount in amount_total_currency (the same value for EUR). POST /public-api/v1/expenses/.
| Argument | Type | Description |
|---|---|---|
| kind* | string | Expense kind: FOOD, TRAVELS, KM, TELECOM, HOTELS, DEVICES, SERVICES, OTHER, CUSTOM. |
| note | string | Note. |
| amount* | string | Amount in EUR, e.g. 49.90. |
| car_km | integer | Mileage (KM) only: kilometres driven. |
| subkind | string | Sub-kind of the expense, if the policy has one. |
| employee* | string | Employee uuid (from jethr_list_employees). |
| car_brand | string | Mileage (KM) only: vehicle make. |
| car_cost_km | string | Mileage (KM) only: cost per km in EUR, e.g. 0.4521. |
| description* |
Permanently delete a presence/absence request (it disappears from the employee's calendar and balance). Cannot be undone; needs confirm=true. DELETE /public-api/v1/presence-absence-requests/{uuid}/.
| Argument | Type | Description |
|---|---|---|
| id* | string | Request uuid (from jethr_list_absence_requests). |
| confirm* | boolean | Must be true: the user approved permanently deleting this request. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id",
"confirm"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Request uuid (from jethr_list_absence_requests)."
},
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be true: the user approved permanently deleting this request."
}
}
}One absence request kind setting: codename, whether it needs approval or a note, whether it can be requested in hours or days, duration limits. GET /public-api/v1/company-absence-request-kinds/{uuid}/.
| Argument | Type | Description |
|---|---|---|
| id* | string | Request kind uuid (from jethr_list_absence_policies, absence_kinds_settings). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Request kind uuid (from jethr_list_absence_policies, absence_kinds_settings)."
}
}
}One contractor with their collaborations. GET /public-api/v1/contractors/{uuid}/.
| Argument | Type | Description |
|---|---|---|
| id* | string | Contractor uuid (from jethr_list_contractors). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Contractor uuid (from jethr_list_contractors)."
}
}
}One company device with its assignment. GET /public-api/v1/devices/{uuid}/.
| Argument | Type | Description |
|---|---|---|
| id* | string | Device uuid (from jethr_list_devices). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Device uuid (from jethr_list_devices)."
}
}
}One employee's full record (contract, salary, manager, headquarters, custom fields). GET /public-api/v1/employees/{uuid}/.
| Argument | Type | Description |
|---|---|---|
| id* | string | Employee uuid (from jethr_list_employees). |
| as_of_date | string | Resolve the employee's data as of this date (yyyy-mm-dd) instead of today. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Employee uuid (from jethr_list_employees)."
},
"as_of_date": {
"type": "string",
"description": "Resolve the employee's data as of this date (yyyy-mm-dd) instead of today."
}
}
}One employee's overview record (job title, contract dates, manager, headquarters, custom fields). GET /public-api/v1/employee-overviews/{uuid}/.
| Argument | Type | Description |
|---|---|---|
| id* | string | Employee uuid (from jethr_list_employee_overviews). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Employee uuid (from jethr_list_employee_overviews)."
}
}
}One hiring process with its status and data. GET /public-api/v1/hirings/{uuid}/.
| Argument | Type | Description |
|---|---|---|
| id* | string | Hiring uuid (from jethr_list_hirings). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Hiring uuid (from jethr_list_hirings)."
}
}
}List the company's absence policies with their active request kinds (codename, name, approval and attachment rules) and the employees assigned to each. The codename is what jethr_create_absence_request needs. Paged: pass next_page as page. GET /public-api/v1/company-absence-policies/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
}
}
}List leave, sickness, remote-work and other presence/absence requests with status (APPROVED, REJECTED, PENDING), kind, dates, hours, note and approver. Filters combine with AND. Use status filtering on the result for pending requests. Paged: pass next_page as page. GET /public-api/v1/presence-absence-requests/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| codename | string | Request kind codename, e.g. HOLIDAY or SICKNESS (see jethr_list_absence_policies). |
| employee | string | Only this employee (uuid from jethr_list_employees). |
| created_to | string | Only requests created at or before this timestamp. |
| end_date_to | string | Only requests ending on or before this date (yyyy-mm-dd). |
| created_from | string | Only requests created at or after this timestamp. |
| end_date_from | string | Only requests ending on or after this date (yyyy-mm-dd). |
| start_date_to | string |
List the bonus kinds (categories) the company can use in payroll. Paged: pass next_page as page. GET /public-api/v1/bonus-kinds/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
}
}
}List payroll bonuses (employee, payroll month, amount, kind, note), optionally for one employee, year or month. Paged: pass next_page as page. GET /public-api/v1/bonuses/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| year | integer | Payslip year, e.g. 2026. |
| employee | string | Only this employee (uuid from jethr_list_employees). |
| monthly_pay | integer | Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1990,
"description": "Payslip year, e.g. 2026."
},
"employee": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Only this employee (uuid from jethr_list_employees)."
},
"monthly_pay": {
"type": "integer",
"maximum": 14,
"minimum": 1,
"description": "Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them)."
}
}
}List time-clock events (in, out, work and break start/end, overtime) with employee, timestamp, method (web, mobile, badge, QR code), workplace and location. Paged: pass next_page as page. GET /public-api/v1/clockings/.
| Argument | Type | Description |
|---|---|---|
| kind | string | Only this clocking kind. |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| method | string | Only this clocking method. |
| employee | string | Only this employee (uuid from jethr_list_employees). |
| clocked_to | string | Only clockings at or before this timestamp. |
| created_to | string | Only clockings created at or before this timestamp. |
| clocked_from | string | Only clockings at or after this timestamp. |
| created_from | string | Only clockings created at or after this timestamp. |
List the national collective labour agreements (CCNL) the company applies. Paged: pass next_page as page. GET /public-api/v1/company-ccnl/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
}
}
}List the company's headquarters (legal and operative sites), optionally by kind. Paged: pass next_page as page. GET /public-api/v1/company-headquarters/.
| Argument | Type | Description |
|---|---|---|
| kind | string | Only legal or only operative headquarters. |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"kind": {
"enum": [
"LEGAL",
"OPERATIVE"
],
"type": "string",
"description": "Only legal or only operative headquarters."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
}
}
}List external contractors (collaborators) and their collaborations, optionally filtered by contractor, linked employee or a collaboration date window. Paged: pass next_page as page. GET /public-api/v1/contractors/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| employee_uuid | string | Only contractors linked to this employee. |
| contractor_uuid | string | Only this contractor. |
| collaboration_date_to | string | Only collaborations overlapping this date or earlier (yyyy-mm-dd). |
| collaboration_date_from | string | Only collaborations overlapping this date or later (yyyy-mm-dd). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"employee_uuid": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Only contractors linked to this employee."
},
"contractor_uuid": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Only this contractor."
},
"collaboration_date_to": {
"type": "string",
"description": "Only collaborations overlapping this date or earlier (yyyy-mm-dd)."
},
"collaboration_date_from": {
"type": "string",
"description": "Only collaborations overlapping this date or later (yyyy-mm-dd)."
}
}
}List company devices (laptops, phones...) and the employee each is assigned to, optionally by employee or device uuid. Paged: pass next_page as page. GET /public-api/v1/devices/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| uuid | string | Only this device uuid. |
| employee | string | Only this employee (uuid from jethr_list_employees). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"uuid": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Only this device uuid."
},
"employee": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Only this employee (uuid from jethr_list_employees)."
}
}
}List documents stored in Jet HR (payslips, contracts and other files): metadata per document, optionally by employee, kind name, payroll period or last-update window. Paged: pass next_page as page. GET /public-api/v1/documents/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| period | string | Only documents of the payroll of this month (YYYY-MM). |
| employee | string | Only this employee (uuid from jethr_list_employees). |
| kind_name | string | Only documents of this kind name. |
| updated_after | string | Only documents updated at or after this timestamp. |
| updated_before | string | Only documents updated at or before this timestamp. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"period": {
"type": "string",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
"description": "Only documents of the payroll of this month (YYYY-MM)."
},
"employee": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Only this employee (uuid from jethr_list_employees)."
},
"kind_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only documents of this kind name."
},
"updated_after": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})$",
"description": "Only documents updated at or after this timestamp."
},
"updated_before": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})$",
"description": "Only documents updated at or before this timestamp."
}
}
}List employees with the lighter overview record: name, fiscal code, work email, job title, contract dates, probation end, manager, headquarters and custom fields (no salary or personal contact data). Needs only the employee_overview:read scope. Paged: pass next_page as page. GET /public-api/v1/employee-overviews/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
}
}
}List the company's employees with the full record: name, fiscal code, work and personal email, job title and level, contract kind and dates, annual gross salary (RAL), manager, headquarters and custom fields. Contains personal data; for a lighter list use jethr_list_employee_overviews. Paged: pass next_page as page. GET /public-api/v1/employees/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| as_of_date | string | Resolve the employee's data as of this date (yyyy-mm-dd) instead of today. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"as_of_date": {
"type": "string",
"description": "Resolve the employee's data as of this date (yyyy-mm-dd) instead of today."
}
}
}List the company's expense policies (which expense kinds and limits apply to which employees). Paged: pass next_page as page. GET /public-api/v1/company-expense-policies/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
}
}
}List expense reimbursement requests (employee, amount, currency, kind, description, payment date, receipts, status). Paged: pass next_page as page. GET /public-api/v1/expenses/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
}
}
}List the fringe benefit kinds (categories) available in payroll. Paged: pass next_page as page. GET /public-api/v1/fringe-benefit-kinds/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
}
}
}List fringe benefits assigned in payroll (employee, payroll month, amount, kind), optionally for one employee, year or month. Paged: pass next_page as page. GET /public-api/v1/fringe-benefits/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| year | integer | Payslip year, e.g. 2026. |
| employee | string | Only this employee (uuid from jethr_list_employees). |
| monthly_pay | integer | Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1990,
"description": "Payslip year, e.g. 2026."
},
"employee": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Only this employee (uuid from jethr_list_employees)."
},
"monthly_pay": {
"type": "integer",
"maximum": 14,
"minimum": 1,
"description": "Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them)."
}
}
}List hiring processes (drafts and onboarding in progress), optionally by status (for example INCOMPLETE or COMPLETED). Paged: pass next_page as page. GET /public-api/v1/hirings/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| status | string | Only hirings in this status. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"status": {
"enum": [
"AWAITING_EXTERNAL_PROVIDER_VERIFICATION",
"AWAITING_JET_ACTIVATION",
"COMPLETED",
"CONTRACT_AWAITING_EMPLOYEE_DATA",
"CONTRACT_AWAITING_SIGNATURE",
"CUSTOM_CONTRACT_AWAITING_EMPLOYEE_DATA",
"INCOMPLETE",
"IN_CHARGE_TO_JET",
"OFFER_LETTER_AWAITING_SIGNATURE",
"PENDING_HIRING_FORM"
],
"type": "string",
"description": "Only hirings in this status."
}
}
}List the company's monthly payrolls (year and month, status and totals). Sensitive financial data. Paged: pass next_page as page. GET /public-api/v1/payrolls/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| year | integer | Payslip year, e.g. 2026. |
| monthly_pay | integer | Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1990,
"description": "Payslip year, e.g. 2026."
},
"monthly_pay": {
"type": "integer",
"maximum": 14,
"minimum": 1,
"description": "Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them)."
}
}
}List the extra deduction kinds (categories) available on payslips. Paged: pass next_page as page. GET /public-api/v1/payslip-extra-deduction-kinds/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
}
}
}List extra deductions applied to payslips (employee, payroll month, amount, kind), optionally for one employee, year or month. Paged: pass next_page as page. GET /public-api/v1/payslip-extra-deductions/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| year | integer | Payslip year, e.g. 2026. |
| employee | string | Only this employee (uuid from jethr_list_employees). |
| monthly_pay | integer | Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1990,
"description": "Payslip year, e.g. 2026."
},
"employee": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Only this employee (uuid from jethr_list_employees)."
},
"monthly_pay": {
"type": "integer",
"maximum": 14,
"minimum": 1,
"description": "Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them)."
}
}
}List employee payslips, optionally for one employee, year or month. Sensitive payroll data. Paged: pass next_page as page. GET /public-api/v1/payslips/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| year | integer | Payslip year, e.g. 2026. |
| employee | string | Only this employee (uuid from jethr_list_employees). |
| monthly_pay | integer | Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1990,
"description": "Payslip year, e.g. 2026."
},
"employee": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Only this employee (uuid from jethr_list_employees)."
},
"monthly_pay": {
"type": "integer",
"maximum": 14,
"minimum": 1,
"description": "Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them)."
}
}
}List employee terminations (resignations and dismissals recorded in Jet HR). Paged: pass next_page as page. GET /public-api/v1/terminations/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
}
}
}List the company's business-trip daily refund policies (needed as trip_name for trip absence requests). Paged: pass next_page as page. GET /public-api/v1/company-trip-daily-refund-policies/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
}
}
}Change a presence/absence request: dates, hours, note, or its status (APPROVED, REJECTED, PENDING; give rejection_reason when rejecting). WRITES to the company's HR records; approving or rejecting is visible to the employee, and send_notification=true notifies the people involved (default false; needs confirm_notification=true). Only the fields you pass change. PATCH /public-api/v1/presence-absence-requests/{uuid}/.
| Argument | Type | Description |
|---|---|---|
| id* | string | Request uuid (from jethr_list_absence_requests). |
| puc | string | Sickness only: the PUC protocol number. |
| note | string | New note. |
| status | string | New status. |
| end_date | string | null | New last day (yyyy-mm-dd); null clears it. |
| start_date | string | null | New first day (yyyy-mm-dd); null clears it. |
| start_time | any | New start time HH:MM, hourly requests only; null clears it. |
| assisted_ssn | string | Fiscal code of the assisted person (kinds that need it, e.g. Law 104 leave). |
| string |
| What the expense was for. |
| amount_total* | string | Amount in amount_total_currency (equal to amount for EUR). |
| payment_date* | string | Date the employee paid (yyyy-mm-dd). |
| car_model_series | string | Mileage (KM) only: vehicle model and series. |
| is_billed_to_company | boolean | The expense was billed to the company. |
| amount_total_currency | string | Currency of amount_total (default EUR). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"employee",
"kind",
"description",
"amount",
"amount_total",
"payment_date"
],
"properties": {
"kind": {
"enum": [
"FOOD",
"TRAVELS",
"KM",
"TELECOM",
"HOTELS",
"DEVICES",
"SERVICES",
"OTHER",
"CUSTOM"
],
"type": "string",
"description": "Expense kind: FOOD, TRAVELS, KM, TELECOM, HOTELS, DEVICES, SERVICES, OTHER, CUSTOM."
},
"note": {
"type": "string",
"maxLength": 2000,
"description": "Note."
},
"amount": {
"type": "string",
"pattern": "^-?\\d{1,6}(\\.\\d{1,2})?$",
"description": "Amount in EUR, e.g. 49.90."
},
"car_km": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0,
"description": "Mileage (KM) only: kilometres driven."
},
"subkind": {
"type": "string",
"maxLength": 200,
"description": "Sub-kind of the expense, if the policy has one."
},
"employee": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Employee uuid (from jethr_list_employees)."
},
"car_brand": {
"type": "string",
"maxLength": 200,
"description": "Mileage (KM) only: vehicle make."
},
"car_cost_km": {
"type": "string",
"pattern": "^\\d(\\.\\d{1,4})?$",
"description": "Mileage (KM) only: cost per km in EUR, e.g. 0.4521."
},
"description": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "What the expense was for."
},
"amount_total": {
"type": "string",
"pattern": "^-?\\d{1,6}(\\.\\d{1,2})?$",
"description": "Amount in amount_total_currency (equal to amount for EUR)."
},
"payment_date": {
"type": "string",
"description": "Date the employee paid (yyyy-mm-dd)."
},
"car_model_series": {
"type": "string",
"maxLength": 200,
"description": "Mileage (KM) only: vehicle model and series."
},
"is_billed_to_company": {
"type": "boolean",
"description": "The expense was billed to the company."
},
"amount_total_currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "Currency of amount_total (default EUR)."
}
}
}| Only requests starting on or before this date (yyyy-mm-dd). |
| start_date_from | string | Only requests starting on or after this date (yyyy-mm-dd). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"codename": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Request kind codename, e.g. HOLIDAY or SICKNESS (see jethr_list_absence_policies)."
},
"employee": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Only this employee (uuid from jethr_list_employees)."
},
"created_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})$",
"description": "Only requests created at or before this timestamp."
},
"end_date_to": {
"type": "string",
"description": "Only requests ending on or before this date (yyyy-mm-dd)."
},
"created_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})$",
"description": "Only requests created at or after this timestamp."
},
"end_date_from": {
"type": "string",
"description": "Only requests ending on or after this date (yyyy-mm-dd)."
},
"start_date_to": {
"type": "string",
"description": "Only requests starting on or before this date (yyyy-mm-dd)."
},
"start_date_from": {
"type": "string",
"description": "Only requests starting on or after this date (yyyy-mm-dd)."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"kind": {
"enum": [
"in",
"out",
"start_work",
"end_work",
"start_break",
"end_break",
"start_absence",
"end_absence",
"start_overtime",
"end_overtime"
],
"type": "string",
"description": "Only this clocking kind."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"method": {
"enum": [
"WEB",
"MOBILE",
"BADGE",
"QR_CODE"
],
"type": "string",
"description": "Only this clocking method."
},
"employee": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Only this employee (uuid from jethr_list_employees)."
},
"clocked_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})$",
"description": "Only clockings at or before this timestamp."
},
"created_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})$",
"description": "Only clockings created at or before this timestamp."
},
"clocked_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})$",
"description": "Only clockings at or after this timestamp."
},
"created_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})$",
"description": "Only clockings created at or after this timestamp."
}
}
}| time_duration | any | New duration HH:MM, hourly requests only; null clears it. |
| rejection_reason | string | Reason shown to the employee when status is REJECTED. |
| send_notification | boolean | Notify the people involved (default false); needs confirm_notification=true. |
| confirm_notification | boolean | Must be true when send_notification is true: the user approved that Jet HR notifies the people involved. |
| donor_transfusion_center_ssn | string | Donor leave only: fiscal code of the transfusion center. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Request uuid (from jethr_list_absence_requests)."
},
"puc": {
"type": "string",
"maxLength": 100,
"description": "Sickness only: the PUC protocol number."
},
"note": {
"type": "string",
"maxLength": 2000,
"description": "New note."
},
"status": {
"enum": [
"APPROVED",
"REJECTED",
"PENDING"
],
"type": "string",
"description": "New status."
},
"end_date": {
"type": [
"string",
"null"
],
"description": "New last day (yyyy-mm-dd); null clears it."
},
"start_date": {
"type": [
"string",
"null"
],
"description": "New first day (yyyy-mm-dd); null clears it."
},
"start_time": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{2}:\\d{2}(:\\d{2})?$"
},
{
"type": "null"
}
],
"description": "New start time HH:MM, hourly requests only; null clears it."
},
"assisted_ssn": {
"type": "string",
"maxLength": 32,
"description": "Fiscal code of the assisted person (kinds that need it, e.g. Law 104 leave)."
},
"time_duration": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{1,3}:\\d{2}(:\\d{2})?$"
},
{
"type": "null"
}
],
"description": "New duration HH:MM, hourly requests only; null clears it."
},
"rejection_reason": {
"type": "string",
"maxLength": 2000,
"description": "Reason shown to the employee when status is REJECTED."
},
"send_notification": {
"type": "boolean",
"description": "Notify the people involved (default false); needs confirm_notification=true."
},
"confirm_notification": {
"type": "boolean",
"const": true,
"description": "Must be true when send_notification is true: the user approved that Jet HR notifies the people involved."
},
"donor_transfusion_center_ssn": {
"type": "string",
"maxLength": 32,
"description": "Donor leave only: fiscal code of the transfusion center."
}
}
}