Employment Hero Payroll MCP by usefulapi
Read Employment Hero Payroll pay runs, payslips, timesheets and leave; approve or decline leave.
Connect it
Settings → Connectors → Add custom connector
URL: https://keypay.usefulapi.io/mcpSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://keypay.usefulapi.io/mcp{
"mcpServers": {
"keypay": {
"url": "https://keypay.usefulapi.io/mcp"
}
}
}claude mcp add --transport http keypay https://keypay.usefulapi.io/mcp{
"servers": {
"keypay": {
"type": "http",
"url": "https://keypay.usefulapi.io/mcp"
}
}
}26 tools, pulled live
keypay_get_userread-onlyThe Employment Hero Payroll user this API key belongs to: id, email, display name and time zone. GET /user.
keypay_list_businessesread-onlyList 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).
keypay_get_businessread-onlyOne business by id: name, legal name, contact, address, ABN/company details, leave year, standard hours, pay cycle. GET /business/{businessId}.
keypay_list_employeesread-onlyList 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).
keypay_get_employeeread-onlyOne 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}.
keypay_get_leave_balancesread-onlyAn employee's leave balances per leave category (accrued amount and unit), optionally as at a date. GET /business/{businessId}/employee/{employeeId}/leavebalances.
keypay_list_pay_runsread-onlyList 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).
keypay_get_pay_runread-onlyOne pay run by id: pay schedule, period, date paid, whether it is finalised, notation. GET /business/{businessId}/payrun/{payRunId}.
keypay_list_pay_run_summariesread-onlyPay runs with their totals: total hours, gross wages and net wages, plus the usual pay run fields. GET /business/{businessId}/payrun/summary (OData).
keypay_get_pay_run_summaryread-onlyOne pay run with its total hours, gross wages and net wages. GET /business/{businessId}/payrun/{payRunId}/summary.
keypay_get_pay_run_totalsread-onlyPer-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.
keypay_get_pay_run_payslipsread-onlyPay 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.
keypay_list_pay_run_warningsread-onlyWarnings 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.
keypay_list_timesheetsread-onlyList 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).
keypay_get_timesheetread-onlyOne timesheet line by id. GET /business/{businessId}/timesheet/{timesheetLineId}.
keypay_list_leave_requestsread-onlyList 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.
keypay_get_leave_requestread-onlyOne leave request: employee, category, dates, hours, status, notes. GET /business/{businessId}/employee/{employeeId}/leaverequest/{leaveRequestId}.
keypay_list_leave_categoriesread-onlyLeave categories of the business (annual, personal/sick, long service...): id, name, unit type, accrual rule. GET /business/{businessId}/leavecategory (OData).
keypay_list_pay_schedulesread-onlyPay 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).
keypay_list_locationsread-onlyLocations of the business (sites, departments): id, name, parent, fully qualified name, state. GET /business/{businessId}/location (OData).
keypay_list_pay_categoriesread-onlyPay categories (earnings types) of the business: id, name, rate unit, loadings, super rate, whether leave accrues. GET /business/{businessId}/paycategory (OData).
keypay_list_work_typesread-onlyWork types of the business: id, name, pay category, leave category, short code. GET /business/{businessId}/worktype (OData).
keypay_report_gross_to_netread-onlyGross-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.
keypay_report_leave_balancesread-onlyLeave 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.
keypay_approve_leave_requestcan modifyWRITE: 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.
keypay_decline_leave_requestcan modifyWRITE: 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.
Alternatives in Productivity
Compare →
Rinkel MCP by usefulapiB
Read Rinkel calls, voicemails, contacts and numbers; add call notes, edit contacts, block numbers.
AgencyBloc MCP by usefulapiB
Read and update AgencyBloc individuals, groups, policies and agents; log activities and notes.
Lawcus MCP by usefulapiB
Read Lawcus contacts, matters, leads, time and billing reports; create contacts and tasks.
CharlieHR MCP by usefulapiB
Read CharlieHR team members, leave, allowances, offices, teams and salaries; add team member notes.
Fieldwire MCP by usefulapiB
Read Fieldwire projects, tasks, plans, forms, RFIs and submittals; create and update tasks.
IDX Broker MCP by usefulapiB
Read IDX Broker leads, agents, listings and MLS data; create and update leads and notes.