Jet HR MCP by usefulapi
Read Jet HR employees, absences, clockings, payroll; create, approve, delete leave; create expenses.
我該用這個嗎
品質與安全性
發現項目(5)
- LOW在 jethr_list_fringe_benefit_kinds 中
- LOW在 jethr_list_payslip_extra_deductions 中
- LOW在 jethr_list_payslip_extra_deduction_kinds 中
- LOW在 jethr_list_company_headquarters 中
- LOW在 jethr_list_trip_refund_policies 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"jet-hr": {
"url": "https://jet-hr.usefulapi.io/mcp"
}
}
}遠端端點
https://jet-hr.usefulapi.io/mcpstreamable-http它能做什麼
工具清單
工具(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/.
輸入結構描述
{
"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}/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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}/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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}/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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}/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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}/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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}/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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}/.
輸入結構描述
{
"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}/.
輸入結構描述
{
"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/.
輸入結構描述
{
"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"
}社群
證據