Jet HR MCP by usefulapi
Read Jet HR employees, absences, clockings, payroll; create, approve, delete leave; create expenses.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (5)
- LOWin jethr_list_fringe_benefit_kinds
- LOWin jethr_list_payslip_extra_deductions
- LOWin jethr_list_payslip_extra_deduction_kinds
- LOWin jethr_list_company_headquarters
- LOWin jethr_list_trip_refund_policies
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"jet-hr": {
"url": "https://jet-hr.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://jet-hr.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (33)
🟢jethr_list_employees(as_of_date, page)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"as_of_date": {
"description": "Resolve the employee's data as of this date (yyyy-mm-dd) instead of today.",
"type": "string"
},
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_get_employee(id, as_of_date)
One employee's full record (contract, salary, manager, headquarters, custom fields). GET /public-api/v1/employees/{uuid}/.
Eingabe-Schema
{
"type": "object",
"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": {
"description": "Resolve the employee's data as of this date (yyyy-mm-dd) instead of today.",
"type": "string"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_employee_overviews(page)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_get_employee_overview(id)
One employee's overview record (job title, contract dates, manager, headquarters, custom fields). GET /public-api/v1/employee-overviews/{uuid}/.
Eingabe-Schema
{
"type": "object",
"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)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_terminations(page)
List employee terminations (resignations and dismissals recorded in Jet HR). Paged: pass next_page as page. GET /public-api/v1/terminations/.
Eingabe-Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_hirings(status, page)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"status": {
"description": "Only hirings in this status.",
"type": "string",
"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"
]
},
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_get_hiring(id)
One hiring process with its status and data. GET /public-api/v1/hirings/{uuid}/.
Eingabe-Schema
{
"type": "object",
"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)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_contractors(contractor_uuid, employee_uuid, collaboration_date_from, collaboration_date_to, page)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"contractor_uuid": {
"description": "Only this contractor.",
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"employee_uuid": {
"description": "Only contractors linked to this employee.",
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"collaboration_date_from": {
"description": "Only collaborations overlapping this date or later (yyyy-mm-dd).",
"type": "string"
},
"collaboration_date_to": {
"description": "Only collaborations overlapping this date or earlier (yyyy-mm-dd).",
"type": "string"
},
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_get_contractor(id)
One contractor with their collaborations. GET /public-api/v1/contractors/{uuid}/.
Eingabe-Schema
{
"type": "object",
"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)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_absence_requests(employee, codename, start_date_from, start_date_to, end_date_from, ...)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"employee": {
"description": "Only this employee (uuid from jethr_list_employees).",
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"codename": {
"description": "Request kind codename, e.g. HOLIDAY or SICKNESS (see jethr_list_absence_policies).",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"start_date_from": {
"description": "Only requests starting on or after this date (yyyy-mm-dd).",
"type": "string"
},
"start_date_to": {
"description": "Only requests starting on or before this date (yyyy-mm-dd).",
"type": "string"
},
"end_date_from": {
"description": "Only requests ending on or after this date (yyyy-mm-dd).",
"type": "string"
},
"end_date_to": {
"description": "Only requests ending on or before this date (yyyy-mm-dd).",
"type": "string"
},
"created_from": {
"description": "Only requests created at or after this timestamp.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})$"
},
"created_to": {
"description": "Only requests created at or before this timestamp.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})$"
},
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_absence_policies(page)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_get_absence_request_kind(id)
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}/.
Eingabe-Schema
{
"type": "object",
"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)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_clockings(employee, kind, method, clocked_from, clocked_to, ...)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"employee": {
"description": "Only this employee (uuid from jethr_list_employees).",
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"kind": {
"description": "Only this clocking kind.",
"type": "string",
"enum": [
"in",
"out",
"start_work",
"end_work",
"start_break",
"end_break",
"start_absence",
"end_absence",
"start_overtime",
"end_overtime"
]
},
"method": {
"description": "Only this clocking method.",
"type": "string",
"enum": [
"WEB",
"MOBILE",
"BADGE",
"QR_CODE"
]
},
"clocked_from": {
"description": "Only clockings at or after this timestamp.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})$"
},
"clocked_to": {
"description": "Only clockings at or before this timestamp.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})$"
},
"created_from": {
"description": "Only clockings created at or after this timestamp.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})$"
},
"created_to": {
"description": "Only clockings created at or before this timestamp.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})$"
},
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_payrolls(year, monthly_pay, page)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"year": {
"description": "Payslip year, e.g. 2026.",
"type": "integer",
"minimum": 1990,
"maximum": 2100
},
"monthly_pay": {
"description": "Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them).",
"type": "integer",
"minimum": 1,
"maximum": 14
},
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_payslips(employee, year, monthly_pay, page)
List employee payslips, optionally for one employee, year or month. Sensitive payroll data. Paged: pass next_page as page. GET /public-api/v1/payslips/.
Eingabe-Schema
{
"type": "object",
"properties": {
"employee": {
"description": "Only this employee (uuid from jethr_list_employees).",
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"year": {
"description": "Payslip year, e.g. 2026.",
"type": "integer",
"minimum": 1990,
"maximum": 2100
},
"monthly_pay": {
"description": "Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them).",
"type": "integer",
"minimum": 1,
"maximum": 14
},
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_bonuses(employee, year, monthly_pay, page)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"employee": {
"description": "Only this employee (uuid from jethr_list_employees).",
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"year": {
"description": "Payslip year, e.g. 2026.",
"type": "integer",
"minimum": 1990,
"maximum": 2100
},
"monthly_pay": {
"description": "Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them).",
"type": "integer",
"minimum": 1,
"maximum": 14
},
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_bonus_kinds(page)
List the bonus kinds (categories) the company can use in payroll. Paged: pass next_page as page. GET /public-api/v1/bonus-kinds/.
Eingabe-Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_fringe_benefits(employee, year, monthly_pay, page)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"employee": {
"description": "Only this employee (uuid from jethr_list_employees).",
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"year": {
"description": "Payslip year, e.g. 2026.",
"type": "integer",
"minimum": 1990,
"maximum": 2100
},
"monthly_pay": {
"description": "Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them).",
"type": "integer",
"minimum": 1,
"maximum": 14
},
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_fringe_benefit_kinds(page)
List the fringe benefit kinds (categories) available in payroll. Paged: pass next_page as page. GET /public-api/v1/fringe-benefit-kinds/.
Eingabe-Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_payslip_extra_deductions(employee, year, monthly_pay, page)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"employee": {
"description": "Only this employee (uuid from jethr_list_employees).",
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"year": {
"description": "Payslip year, e.g. 2026.",
"type": "integer",
"minimum": 1990,
"maximum": 2100
},
"monthly_pay": {
"description": "Payslip monthly pay: month number 1-12 (13 and 14 for the extra monthly payments, tredicesima and quattordicesima, where the company has them).",
"type": "integer",
"minimum": 1,
"maximum": 14
},
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_payslip_extra_deduction_kinds(page)
List the extra deduction kinds (categories) available on payslips. Paged: pass next_page as page. GET /public-api/v1/payslip-extra-deduction-kinds/.
Eingabe-Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_documents(employee, kind_name, period, updated_after, updated_before, ...)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"employee": {
"description": "Only this employee (uuid from jethr_list_employees).",
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"kind_name": {
"description": "Only documents of this kind name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"period": {
"description": "Only documents of the payroll of this month (YYYY-MM).",
"type": "string",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$"
},
"updated_after": {
"description": "Only documents updated at or after this timestamp.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})$"
},
"updated_before": {
"description": "Only documents updated at or before this timestamp.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})$"
},
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_expenses(page)
List expense reimbursement requests (employee, amount, currency, kind, description, payment date, receipts, status). Paged: pass next_page as page. GET /public-api/v1/expenses/.
Eingabe-Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_expense_policies(page)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_devices(employee, uuid, page)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"employee": {
"description": "Only this employee (uuid from jethr_list_employees).",
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"uuid": {
"description": "Only this device uuid.",
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_get_device(id)
One company device with its assignment. GET /public-api/v1/devices/{uuid}/.
Eingabe-Schema
{
"type": "object",
"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)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_company_headquarters(kind, page)
List the company's headquarters (legal and operative sites), optionally by kind. Paged: pass next_page as page. GET /public-api/v1/company-headquarters/.
Eingabe-Schema
{
"type": "object",
"properties": {
"kind": {
"description": "Only legal or only operative headquarters.",
"type": "string",
"enum": [
"LEGAL",
"OPERATIVE"
]
},
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_company_ccnl(page)
List the national collective labour agreements (CCNL) the company applies. Paged: pass next_page as page. GET /public-api/v1/company-ccnl/.
Eingabe-Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢jethr_list_trip_refund_policies(page)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡jethr_create_absence_request(employee, codename, start_date, end_date, start_time, ...)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"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)."
},
"codename": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Request kind codename (from jethr_list_absence_policies), e.g. HOLIDAY."
},
"start_date": {
"description": "First day (yyyy-mm-dd).",
"type": "string"
},
"end_date": {
"description": "Last day (yyyy-mm-dd); omit for a single day.",
"type": "string"
},
"start_time": {
"description": "Start time HH:MM, hourly requests only.",
"type": "string",
"pattern": "^\\d{2}:\\d{2}(:\\d{2})?$"
},
"time_duration": {
"description": "Duration HH:MM, hourly requests only.",
"type": "string",
"pattern": "^\\d{1,3}:\\d{2}(:\\d{2})?$"
},
"note": {
"description": "Note on the request.",
"type": "string",
"maxLength": 2000
},
"send_notification": {
"description": "Notify the people involved (default false); needs confirm_notification=true.",
"type": "boolean"
},
"confirm_notification": {
"description": "Must be true when send_notification is true: the user approved that Jet HR notifies the people involved.",
"type": "boolean",
"const": true
},
"sickness_justification_type": {
"description": "Sickness only: PUC protocol number or paper certificate.",
"type": "string",
"enum": [
"PUC",
"PAPER_CERTIFICATE"
]
},
"puc": {
"description": "Sickness only: the PUC protocol number.",
"type": "string",
"maxLength": 100
},
"assisted_ssn": {
"description": "Fiscal code of the assisted person (kinds that need it, e.g. Law 104 leave).",
"type": "string",
"maxLength": 32
},
"donor_transfusion_center_ssn": {
"description": "Donor leave only: fiscal code of the transfusion center.",
"type": "string",
"maxLength": 32
},
"child_ssn": {
"description": "Child fiscal code (required for FEEDING, SICKNESS_CHILD_CHILD, SICKNESS_CHILD_INFANT).",
"type": "string",
"maxLength": 32
},
"child_birth_date": {
"description": "Child birth date (required for PARENTAL_PATERNAL_MANDATORY_LEAVE).",
"type": "string"
},
"trip_name": {
"description": "Trip policy name (required for TRIP_* kinds; see jethr_list_trip_refund_policies).",
"type": "string",
"maxLength": 200
},
"trip_meals_reimbursed": {
"description": "TRIP_* kinds: meals are reimbursed.",
"type": "boolean"
},
"trip_accommodation_reimbursed": {
"description": "TRIP_* kinds: accommodation is reimbursed.",
"type": "boolean"
}
},
"required": [
"employee",
"codename"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴jethr_update_absence_request(id, status, rejection_reason, start_date, end_date, ...)
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}/.
Eingabe-Schema
{
"type": "object",
"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)."
},
"status": {
"description": "New status.",
"type": "string",
"enum": [
"APPROVED",
"REJECTED",
"PENDING"
]
},
"rejection_reason": {
"description": "Reason shown to the employee when status is REJECTED.",
"type": "string",
"maxLength": 2000
},
"start_date": {
"description": "New first day (yyyy-mm-dd); null clears it.",
"type": [
"string",
"null"
]
},
"end_date": {
"description": "New last day (yyyy-mm-dd); null clears it.",
"type": [
"string",
"null"
]
},
"start_time": {
"description": "New start time HH:MM, hourly requests only; null clears it.",
"anyOf": [
{
"type": "string",
"pattern": "^\\d{2}:\\d{2}(:\\d{2})?$"
},
{
"type": "null"
}
]
},
"time_duration": {
"description": "New duration HH:MM, hourly requests only; null clears it.",
"anyOf": [
{
"type": "string",
"pattern": "^\\d{1,3}:\\d{2}(:\\d{2})?$"
},
{
"type": "null"
}
]
},
"note": {
"description": "New note.",
"type": "string",
"maxLength": 2000
},
"puc": {
"description": "Sickness only: the PUC protocol number.",
"type": "string",
"maxLength": 100
},
"assisted_ssn": {
"description": "Fiscal code of the assisted person (kinds that need it, e.g. Law 104 leave).",
"type": "string",
"maxLength": 32
},
"donor_transfusion_center_ssn": {
"description": "Donor leave only: fiscal code of the transfusion center.",
"type": "string",
"maxLength": 32
},
"send_notification": {
"description": "Notify the people involved (default false); needs confirm_notification=true.",
"type": "boolean"
},
"confirm_notification": {
"description": "Must be true when send_notification is true: the user approved that Jet HR notifies the people involved.",
"type": "boolean",
"const": true
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴jethr_delete_absence_request(id, confirm)
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}/.
Eingabe-Schema
{
"type": "object",
"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."
}
},
"required": [
"id",
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡jethr_create_expense(employee, kind, description, amount, amount_total, ...)
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/.
Eingabe-Schema
{
"type": "object",
"properties": {
"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)."
},
"kind": {
"type": "string",
"enum": [
"FOOD",
"TRAVELS",
"KM",
"TELECOM",
"HOTELS",
"DEVICES",
"SERVICES",
"OTHER",
"CUSTOM"
],
"description": "Expense kind: FOOD, TRAVELS, KM, TELECOM, HOTELS, DEVICES, SERVICES, OTHER, CUSTOM."
},
"description": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "What the expense was for."
},
"amount": {
"type": "string",
"pattern": "^-?\\d{1,6}(\\.\\d{1,2})?$",
"description": "Amount in EUR, e.g. 49.90."
},
"amount_total": {
"type": "string",
"pattern": "^-?\\d{1,6}(\\.\\d{1,2})?$",
"description": "Amount in amount_total_currency (equal to amount for EUR)."
},
"amount_total_currency": {
"description": "Currency of amount_total (default EUR).",
"type": "string",
"pattern": "^[A-Z]{3}$"
},
"payment_date": {
"type": "string",
"description": "Date the employee paid (yyyy-mm-dd)."
},
"subkind": {
"description": "Sub-kind of the expense, if the policy has one.",
"type": "string",
"maxLength": 200
},
"note": {
"description": "Note.",
"type": "string",
"maxLength": 2000
},
"is_billed_to_company": {
"description": "The expense was billed to the company.",
"type": "boolean"
},
"car_brand": {
"description": "Mileage (KM) only: vehicle make.",
"type": "string",
"maxLength": 200
},
"car_model_series": {
"description": "Mileage (KM) only: vehicle model and series.",
"type": "string",
"maxLength": 200
},
"car_cost_km": {
"description": "Mileage (KM) only: cost per km in EUR, e.g. 0.4521.",
"type": "string",
"pattern": "^\\d(\\.\\d{1,4})?$"
},
"car_km": {
"description": "Mileage (KM) only: kilometres driven.",
"type": "integer",
"minimum": 0,
"maximum": 2147483647
}
},
"required": [
"employee",
"kind",
"description",
"amount",
"amount_total",
"payment_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Nachweis