# Employment Hero Payroll Muse connector

From musedirectory.ai, the independent directory of Meta Muse connectors. Not affiliated with Meta.

## Employment Hero Payroll

Read and manage payroll, timesheets, leave requests and employee records from Employment Hero.

- Record: https://musedirectory.ai/connector/employment-hero-payroll
- Category: Finance & Bills
- Developer: usefulapi (https://usefulapi.io/keypay/)
- Muse status: Extra setup. Not in Muse's Connectors list yet. Muse can still use it: its page gives you a request to paste into Muse.
- Health: Working, 313ms, checked 2026-10-29T18:06:32Z
- Endpoint: https://keypay.usefulapi.io/mcp
- Auth: No account needed; Pricing: unknown
- Screening: Screened, no issues found (2026-10-29T18:06:32Z)
- Source: Found in the official MCP Registry (io.usefulapi/keypay) https://registry.modelcontextprotocol.io/v0/servers?search=io.usefulapi%2Fkeypay

Connects to Employment Hero Payroll to view pay runs, payslips, timesheets, leave balances and employee details. Approve or decline leave requests. Supports multiple businesses and locations with filtering and reporting.

Example request: "Show me the leave balance for Sarah in annual leave and approve her pending time off request."

How to connect: Not in Muse's Connectors list yet, but Muse can still use it. Paste this into Muse: "Use Employment Hero Payroll to help me. It is a free service with an MCP server at https://keypay.usefulapi.io/mcp. It does not need an API key. Ask me before you share anything with it." Muse asks before it shares anything with the app's site. Meta does not review apps used this way, so only use ones you trust. We tested this in the Muse app on September 24, 2026: Muse used an app's link directly this way and returned a live answer.

Tools:
- keypay_get_user: The Employment Hero Payroll user this API key belongs to: id, email, display name and time zone. GET /user.
- keypay_list_businesses: 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).
- keypay_get_business: One business by id: name, legal name, contact, address, ABN/company details, leave year, standard hours, pay cycle. GET /business/{businessId}.
- keypay_list_employees: 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/{b
- keypay_get_employee: 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 
- keypay_get_leave_balances: An 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_runs: 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).
- keypay_get_pay_run: One pay run by id: pay schedule, period, date paid, whether it is finalised, notation. GET /business/{businessId}/payrun/{payRunId}.
- keypay_list_pay_run_summaries: Pay 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_summary: One pay run with its total hours, gross wages and net wages. GET /business/{businessId}/payrun/{payRunId}/summary.
- keypay_get_pay_run_totals: 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.
- keypay_get_pay_run_payslips: 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}/payr
- keypay_list_pay_run_warnings: 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.
- keypay_list_timesheets: 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: $filte
- keypay_get_timesheet: One timesheet line by id. GET /business/{businessId}/timesheet/{timesheetLineId}.
- keypay_list_leave_requests: 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.
- keypay_get_leave_request: One leave request: employee, category, dates, hours, status, notes. GET /business/{businessId}/employee/{employeeId}/leaverequest/{leaveRequestId}.
- keypay_list_leave_categories: Leave categories of the business (annual, personal/sick, long service...): id, name, unit type, accrual rule. GET /business/{businessId}/leavecategory (OData).
- keypay_list_pay_schedules: 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).
- keypay_list_locations: Locations of the business (sites, departments): id, name, parent, fully qualified name, state. GET /business/{businessId}/location (OData).
- keypay_list_pay_categories: Pay categories (earnings types) of the business: id, name, rate unit, loadings, super rate, whether leave accrues. GET /business/{businessId}/paycategory (OData).
- keypay_list_work_types: Work types of the business: id, name, pay category, leave category, short code. GET /business/{businessId}/worktype (OData).
- keypay_report_gross_to_net: 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 /bus
- keypay_report_leave_balances: 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.
- keypay_approve_leave_request: 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}/a
- keypay_decline_leave_request: 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.

Screening checks:
- MCP handshake: pass (Answered in 313ms)
- Domain against threat feeds (Cloudflare security DNS): pass (keypay.usefulapi.io, usefulapi.io not flagged)
- Published packages against the OSV malicious-package database: n/a (No npm or PyPI package published)
- Hidden instructions or invisible characters in tool text: pass (26 tools read, nothing found)
- Inputs asking for passwords, card numbers or seed phrases: pass (None found)
- Domain and redirects: pass (No redirects off the domain)
- AI review of purpose and tool behavior: pass (No concerns)
