Employment Hero Payroll MCP by usefulapi

Read Employment Hero Payroll pay runs, payslips, timesheets and leave; approve or decline leave.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
98%
Vollständigkeit des Schemas
97%
Qualität der Benennung
80%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~6,928Tokens (Tool-Definitionen)
~1.9 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (5.41% von 128k Kontext)

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": {
    "keypay": {
      "url": "https://keypay.usefulapi.io/mcp"
    }
  }
}

Remote-Endpunkte

https://keypay.usefulapi.io/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (26)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢keypay_get_user

The Employment Hero Payroll user this API key belongs to: id, email, display name and time zone. GET /user.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_list_businesses(top, skip, filter, orderby)

List the payroll businesses this user can access: id, name, region, legal name, contact details, pay cycle, number of employees. Start here: most other tools need a business id. GET /business (OData).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "top": {
      "description": "Results per request, 1-100 (default 25; the API caps it at 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Results to skip (default 0). Pass the previous reply's next_skip.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "filter": {
      "description": "OData v3 $filter. Property names are capitalised, e.g. \"Surname eq 'Smith'\", \"StartTime gt datetime'2026-04-01T00:00:00'\", \"DefaultSuperRate ne 9.5M\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "orderby": {
      "description": "OData $orderby, e.g. \"Name\" or \"PayPeriodEnding desc\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_get_business(business_id)

One business by id: name, legal name, contact, address, ABN/company details, leave year, standard hours, pay cycle. GET /business/{businessId}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    }
  },
  "required": [
    "business_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_list_employees(business_id, top, skip, filter, orderby)

List the business's employees with basic details: id, name, preferred name, gender, date of birth, contact details, address, start and end date, external id. Tax file, bank and super details are not part of this list. Filter with OData, e.g. "Surname eq 'Smith'". GET /business/{businessId}/employee/details (OData).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "top": {
      "description": "Results per request, 1-100 (default 25; the API caps it at 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Results to skip (default 0). Pass the previous reply's next_skip.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "filter": {
      "description": "OData v3 $filter. Property names are capitalised, e.g. \"Surname eq 'Smith'\", \"StartTime gt datetime'2026-04-01T00:00:00'\", \"DefaultSuperRate ne 9.5M\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "orderby": {
      "description": "OData $orderby, e.g. \"Name\" or \"PayPeriodEnding desc\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "business_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_get_employee(business_id, employee_id)

One employee's full record: name, contact, employment type, status, start/end date, pay schedule, primary location and pay category, rate and rate unit, hours per week, award, leave template, work types, tags. Tax file / national insurance / IRD / NRIC numbers, bank accounts and super member numbers are removed. GET /business/{businessId}/employee/unstructured/{employeeId}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "employee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Employee id (from keypay_list_employees)."
    }
  },
  "required": [
    "business_id",
    "employee_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_get_leave_balances(business_id, employee_id, as_at_date)

An employee's leave balances per leave category (accrued amount and unit), optionally as at a date. GET /business/{businessId}/employee/{employeeId}/leavebalances.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "employee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Employee id."
    },
    "as_at_date": {
      "description": "Balance as at this date (yyyy-mm-dd); default today.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    }
  },
  "required": [
    "business_id",
    "employee_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_list_pay_runs(business_id, top, skip, filter, orderby)

List the business's pay runs: id, pay schedule, pay period start/end, date paid, finalised flag, payslips published, notation. Newest first with orderby "PayPeriodEnding desc". GET /business/{businessId}/payrun (OData).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "top": {
      "description": "Results per request, 1-100 (default 25; the API caps it at 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Results to skip (default 0). Pass the previous reply's next_skip.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "filter": {
      "description": "OData v3 $filter. Property names are capitalised, e.g. \"Surname eq 'Smith'\", \"StartTime gt datetime'2026-04-01T00:00:00'\", \"DefaultSuperRate ne 9.5M\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "orderby": {
      "description": "OData $orderby, e.g. \"Name\" or \"PayPeriodEnding desc\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "business_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_get_pay_run(business_id, pay_run_id)

One pay run by id: pay schedule, period, date paid, whether it is finalised, notation. GET /business/{businessId}/payrun/{payRunId}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "pay_run_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Pay run id (from keypay_list_pay_runs)."
    }
  },
  "required": [
    "business_id",
    "pay_run_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_list_pay_run_summaries(business_id, top, skip, filter, orderby)

Pay runs with their totals: total hours, gross wages and net wages, plus the usual pay run fields. GET /business/{businessId}/payrun/summary (OData).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "top": {
      "description": "Results per request, 1-100 (default 25; the API caps it at 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Results to skip (default 0). Pass the previous reply's next_skip.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "filter": {
      "description": "OData v3 $filter. Property names are capitalised, e.g. \"Surname eq 'Smith'\", \"StartTime gt datetime'2026-04-01T00:00:00'\", \"DefaultSuperRate ne 9.5M\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "orderby": {
      "description": "OData $orderby, e.g. \"Name\" or \"PayPeriodEnding desc\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "business_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_get_pay_run_summary(business_id, pay_run_id)

One pay run with its total hours, gross wages and net wages. GET /business/{businessId}/payrun/{payRunId}/summary.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "pay_run_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Pay run id."
    }
  },
  "required": [
    "business_id",
    "pay_run_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_get_pay_run_totals(business_id, pay_run_id)

Per-employee totals of a pay run (gross, net, tax withheld, super and the like; the fields depend on the region). Bank payment details are removed. GET /business/{businessId}/payrun/{payRunId}/totals.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "pay_run_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Pay run id."
    }
  },
  "required": [
    "business_id",
    "pay_run_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_get_pay_run_payslips(business_id, pay_run_id, show_all_data)

Pay slip data for every employee in a pay run, keyed by employee: earnings lines, deductions, tax, super, leave taken and accrued, gross/net and year-to-date totals. Large for big pay runs. Bank account numbers and tax/identity numbers are removed. GET /business/{businessId}/payrun/{payRunId}/payslips.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "pay_run_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Pay run id."
    },
    "show_all_data": {
      "description": "Include all pay slip data, not only what is printed on the slip (default false).",
      "type": "boolean"
    }
  },
  "required": [
    "business_id",
    "pay_run_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_list_pay_run_warnings(business_id, pay_run_id)

Warnings on a pay run (for example an employee paid below their award rate or with a negative net pay): type, employee and message. GET /business/{businessId}/payrun/{payRunId}/warnings.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "pay_run_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Pay run id."
    }
  },
  "required": [
    "business_id",
    "pay_run_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_list_timesheets(business_id, top, skip, filter, orderby)

List the business's timesheet lines: employee, start/end time, units, work type, location, status, comments, breaks. Filter by employee or date with OData, e.g. "EmployeeId eq 123 and StartTime gt datetime'2026-04-01T00:00:00'". GET /business/{businessId}/timesheet (OData: $filter, $orderby, $top, $skip).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "top": {
      "description": "Results per request, 1-100 (default 25; the API caps it at 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Results to skip (default 0). Pass the previous reply's next_skip.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "filter": {
      "description": "OData v3 $filter. Property names are capitalised, e.g. \"Surname eq 'Smith'\", \"StartTime gt datetime'2026-04-01T00:00:00'\", \"DefaultSuperRate ne 9.5M\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "orderby": {
      "description": "OData $orderby, e.g. \"Name\" or \"PayPeriodEnding desc\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "business_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_get_timesheet(business_id, timesheet_id)

One timesheet line by id. GET /business/{businessId}/timesheet/{timesheetLineId}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "timesheet_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Timesheet line id (from keypay_list_timesheets)."
    }
  },
  "required": [
    "business_id",
    "timesheet_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_list_leave_requests(business_id, status, from_date, to_date, leave_category_id, ...)

List the business's leave requests: employee, leave category, from/to date, total hours, status (Approved, Pending, Rejected, Cancelled), notes. Filter by status, dates, category, location or employee. GET /business/{businessId}/leaverequest.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "status": {
      "description": "Only requests with this status.",
      "type": "string",
      "enum": [
        "Approved",
        "Pending",
        "Rejected",
        "Cancelled"
      ]
    },
    "from_date": {
      "description": "Only leave starting on or after this date (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "to_date": {
      "description": "Only leave ending on or before this date (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "leave_category_id": {
      "description": "Only this leave category (keypay_list_leave_categories).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "location_id": {
      "description": "Only this location (keypay_list_locations).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "employee_id": {
      "description": "Only this employee.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "business_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_get_leave_request(business_id, employee_id, leave_request_id)

One leave request: employee, category, dates, hours, status, notes. GET /business/{businessId}/employee/{employeeId}/leaverequest/{leaveRequestId}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "employee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Employee id."
    },
    "leave_request_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Leave request id (from keypay_list_leave_requests)."
    }
  },
  "required": [
    "business_id",
    "employee_id",
    "leave_request_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_list_leave_categories(business_id, top, skip, filter, orderby)

Leave categories of the business (annual, personal/sick, long service...): id, name, unit type, accrual rule. GET /business/{businessId}/leavecategory (OData).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "top": {
      "description": "Results per request, 1-100 (default 25; the API caps it at 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Results to skip (default 0). Pass the previous reply's next_skip.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "filter": {
      "description": "OData v3 $filter. Property names are capitalised, e.g. \"Surname eq 'Smith'\", \"StartTime gt datetime'2026-04-01T00:00:00'\", \"DefaultSuperRate ne 9.5M\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "orderby": {
      "description": "OData $orderby, e.g. \"Name\" or \"PayPeriodEnding desc\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "business_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_list_pay_schedules(business_id, top, skip, filter, orderby)

Pay schedules of the business: id, name, frequency, last date paid, last pay run. Bank and tax account details are removed. GET /business/{businessId}/payschedule (OData).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "top": {
      "description": "Results per request, 1-100 (default 25; the API caps it at 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Results to skip (default 0). Pass the previous reply's next_skip.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "filter": {
      "description": "OData v3 $filter. Property names are capitalised, e.g. \"Surname eq 'Smith'\", \"StartTime gt datetime'2026-04-01T00:00:00'\", \"DefaultSuperRate ne 9.5M\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "orderby": {
      "description": "OData $orderby, e.g. \"Name\" or \"PayPeriodEnding desc\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "business_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_list_locations(business_id, top, skip, filter, orderby)

Locations of the business (sites, departments): id, name, parent, fully qualified name, state. GET /business/{businessId}/location (OData).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "top": {
      "description": "Results per request, 1-100 (default 25; the API caps it at 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Results to skip (default 0). Pass the previous reply's next_skip.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "filter": {
      "description": "OData v3 $filter. Property names are capitalised, e.g. \"Surname eq 'Smith'\", \"StartTime gt datetime'2026-04-01T00:00:00'\", \"DefaultSuperRate ne 9.5M\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "orderby": {
      "description": "OData $orderby, e.g. \"Name\" or \"PayPeriodEnding desc\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "business_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_list_pay_categories(business_id, top, skip, filter, orderby)

Pay categories (earnings types) of the business: id, name, rate unit, loadings, super rate, whether leave accrues. GET /business/{businessId}/paycategory (OData).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "top": {
      "description": "Results per request, 1-100 (default 25; the API caps it at 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Results to skip (default 0). Pass the previous reply's next_skip.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "filter": {
      "description": "OData v3 $filter. Property names are capitalised, e.g. \"Surname eq 'Smith'\", \"StartTime gt datetime'2026-04-01T00:00:00'\", \"DefaultSuperRate ne 9.5M\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "orderby": {
      "description": "OData $orderby, e.g. \"Name\" or \"PayPeriodEnding desc\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "business_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_list_work_types(business_id, top, skip, filter, orderby)

Work types of the business: id, name, pay category, leave category, short code. GET /business/{businessId}/worktype (OData).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "top": {
      "description": "Results per request, 1-100 (default 25; the API caps it at 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "skip": {
      "description": "Results to skip (default 0). Pass the previous reply's next_skip.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "filter": {
      "description": "OData v3 $filter. Property names are capitalised, e.g. \"Surname eq 'Smith'\", \"StartTime gt datetime'2026-04-01T00:00:00'\", \"DefaultSuperRate ne 9.5M\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "orderby": {
      "description": "OData $orderby, e.g. \"Name\" or \"PayPeriodEnding desc\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "business_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_report_gross_to_net(business_id, pay_run_id, from_date, to_date, employee_id, ...)

Gross-to-net report per employee: earnings by pay category, tax, deductions, super, net pay. Choose a date range (from_date + to_date) or one finalised pay run (pay_run_id). The report has no paging: at most 200 rows are returned (narrow with employee_id or location_id). GET /business/{businessId}/report/grosstonet.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "pay_run_id": {
      "description": "A pay run id: report that pay run (then from_date/to_date are ignored).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "from_date": {
      "description": "Start of the date range (yyyy-mm-dd), with to_date.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "to_date": {
      "description": "End of the date range (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "employee_id": {
      "description": "Only this employee.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "location_id": {
      "description": "Only this location.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "pay_schedule_id": {
      "description": "Only this pay schedule.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "business_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢keypay_report_leave_balances(business_id, as_at_date, location_id, leave_category_id)

Leave balances of all employees as at a date, per leave category. The report has no paging: at most 200 rows are returned (narrow with location_id or leave_category_id). For one employee use keypay_get_leave_balances. GET /business/{businessId}/report/leavebalances.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "as_at_date": {
      "description": "Balances as at this date (yyyy-mm-dd); default today.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "location_id": {
      "description": "Only this location.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "leave_category_id": {
      "description": "Only this leave category.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "business_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴keypay_approve_leave_request(business_id, employee_id, leave_request_id)

WRITE: approves a pending leave request (the employee is notified and the leave is applied to their pay). Check the request first with keypay_get_leave_request. Cannot be undone through this server. POST /business/{businessId}/employee/{employeeId}/leaverequest/{leaveRequestId}/approve.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "employee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Employee id."
    },
    "leave_request_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Leave request id."
    }
  },
  "required": [
    "business_id",
    "employee_id",
    "leave_request_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴keypay_decline_leave_request(business_id, employee_id, leave_request_id, reason)

WRITE: declines a leave request, with an optional reason the employee sees. Check the request first with keypay_get_leave_request. POST /business/{businessId}/employee/{employeeId}/leaverequest/{leaveRequestId}/decline.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Business id (from keypay_list_businesses)."
    },
    "employee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Employee id."
    },
    "leave_request_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Leave request id."
    },
    "reason": {
      "description": "Reason shown to the employee.",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    }
  },
  "required": [
    "business_id",
    "employee_id",
    "leave_request_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet26 Tools