Employment Hero Ess API

Employee Self Setup

Operations 127

POST /api/v2/ess/devicetoken/register Register Device Token #
POST /api/v2/ess/devicetoken/unregister Unregister Device Token #
GET /api/v2/ess/security/employees Get Employees #
POST /api/v2/ess/security/forgottenpassword Recover Forgotten Password #
GET /api/v2/ess/{employeeId}/bankaccounts List Bank Accounts #
POST /api/v2/ess/{employeeId}/bankaccounts Create Bank Account #
GET /api/v2/ess/{employeeId}/bankaccounts/{bankAccountId} Get Bank Account by ID #
DELETE /api/v2/ess/{employeeId}/bankaccounts/{bankAccountId} Delete Bank Account #
PUT /api/v2/ess/{employeeId}/bankaccounts/{bankAccountId} Update Bank Account #
PUT /api/v2/ess/{employeeId}/bankaccounts/{id} Update Bank Account #
GET /api/v2/ess/{employeeId}/dashboard Get Dashboard #
POST /api/v2/ess/{employeeId}/details Save Details #
GET /api/v2/ess/{employeeId}/details Get Details #
GET /api/v2/ess/{employeeId}/document List all Documents #
POST /api/v2/ess/{employeeId}/document/acknowledge/{documentId} Acknowledge Document #
GET /api/v2/ess/{employeeId}/document/download/{documentId} Download Document #
GET /api/v2/ess/{employeeId}/document/paymentsummaries Get Payment Summaries #
GET /api/v2/ess/{employeeId}/document/paymentsummary/{documentId} Get Payment Summary PDF #
GET /api/v2/ess/{employeeId}/document/payslip List Pay Slips #
GET /api/v2/ess/{employeeId}/document/payslip/{payrunId} Get Pay Slip by Pay Run ID #
GET /api/v2/ess/{employeeId}/document/{documentId} Get Document Details by ID #
GET /api/v2/ess/{employeeId}/emergencycontacts Get Emergency Contacts #
POST /api/v2/ess/{employeeId}/emergencycontacts Save Emergency Contacts #
PUT /api/v2/ess/{employeeId}/emergencycontacts Update Emergency Contacts #
GET /api/v2/ess/{employeeId}/expense Get Expense Requests #
POST /api/v2/ess/{employeeId}/expense Create Expense Request #
GET /api/v2/ess/{employeeId}/expense/categories Get Expense Categories #
GET /api/v2/ess/{employeeId}/expense/summary Get Expense Payment Summary #
GET /api/v2/ess/{employeeId}/expense/taxcodes Get Tax Codes #
GET /api/v2/ess/{employeeId}/expense/{expenseRequestId} Get Expense Request by ID #
PUT /api/v2/ess/{employeeId}/expense/{expenseRequestId} Update Expense Request #
DELETE /api/v2/ess/{employeeId}/expense/{expenseRequestId} Delete Expense Request #
PUT /api/v2/ess/{employeeId}/expense/{expenseRequestId}/attachment Upload Attachment to Expense Request #
GET /api/v2/ess/{employeeId}/leave List Leave Requests #
POST /api/v2/ess/{employeeId}/leave Create Leave Request #
GET /api/v2/ess/{employeeId}/leave/balances Get Leave Balances #
GET /api/v2/ess/{employeeId}/leave/estimate Estimate Leave Hours #
GET /api/v2/ess/{employeeId}/leave/leavecategories Get Leave Categories #
GET /api/v2/ess/{employeeId}/leave/{leaveRequestId} Get Leave Request by ID #
POST /api/v2/ess/{employeeId}/leave/{leaveRequestId} Update Leave Request #
DELETE /api/v2/ess/{employeeId}/leave/{leaveRequestId} Delete Leave Request #
PUT /api/v2/ess/{employeeId}/leave/{leaveRequestId}/attachment Upload Attachment to Leave Request #
DELETE /api/v2/ess/{employeeId}/leave/{leaveRequestId}/attachment Delete Attachment from Leave Request #
GET /api/v2/ess/{employeeId}/lookup/location Get Locations #
GET /api/v2/ess/{employeeId}/lookup/shiftcondition Get Shift Conditions #
GET /api/v2/ess/{employeeId}/lookup/suburb Get Suburb #
GET /api/v2/ess/{employeeId}/lookup/suburbs Search Suburbs #
GET /api/v2/ess/{employeeId}/lookup/title Get Titles #
GET /api/v2/ess/{employeeId}/lookup/worktype Get Work Types #
PUT /api/v2/ess/{employeeId}/personaldetails Update Personal Details #
GET /api/v2/ess/{employeeId}/personaldetails Get Personal Details #
GET /api/v2/ess/{employeeId}/profileimage Get Employee Profile Image #
POST /api/v2/ess/{employeeId}/profileimage Set Employee Profile Image #
DELETE /api/v2/ess/{employeeId}/profileimage Delete Employee Profile Image #
GET /api/v2/ess/{employeeId}/publicHolidays Get public holidays #
GET /api/v2/ess/{employeeId}/qualification Get Qualifications for Employee #
POST /api/v2/ess/{employeeId}/qualification Add Employee Qualification #
PUT /api/v2/ess/{employeeId}/qualification/{employeeQualificationId}/attachment Upload attachment to qualification #
DELETE /api/v2/ess/{employeeId}/qualification/{employeeQualificationId}/attachment/{documentId} Delete attachment from EmployeeQualification #
GET /api/v2/ess/{employeeId}/qualification/{id} Get Qualification Details #
PUT /api/v2/ess/{employeeId}/qualification/{id} Update Employee Qualification #
DELETE /api/v2/ess/{employeeId}/qualification/{id} Delete Employee Qualification #
GET /api/v2/ess/{employeeId}/satisfaction Get Satisfaction Survey Results #
POST /api/v2/ess/{employeeId}/satisfaction Submit Satisfaction Survey #
GET /api/v2/ess/{employeeId}/security/features Get Enabled Features #
GET /api/v2/ess/{employeeId}/selfmanagedsuperfund List Self Managed Super Funds #
POST /api/v2/ess/{employeeId}/selfmanagedsuperfund Create ESS Self Managed Super Fund #
GET /api/v2/ess/{employeeId}/selfmanagedsuperfund/{id} Get ESS Self Managed Super Fund by id #
PUT /api/v2/ess/{employeeId}/selfmanagedsuperfund/{id} Update ESS Self Managed Super Fund #
GET /api/v2/ess/{employeeId}/shift List Roster Shifts #
POST /api/v2/ess/{employeeId}/shift/accept Bulk Accept Roster Shifts #
POST /api/v2/ess/{employeeId}/shift/decline Bulk Decline Roster Shifts #
GET /api/v2/ess/{employeeId}/shift/matchingclockoff Find Matching Clock Off Roster Shift #
GET /api/v2/ess/{employeeId}/shift/matchingclockon Find Matching Clock On Roster Shift #
GET /api/v2/ess/{employeeId}/shift/nearby Find Nearby Roster Shifts #
POST /api/v2/ess/{employeeId}/shift/swap/accept Bulk Accept Roster Shift Swaps #
POST /api/v2/ess/{employeeId}/shift/swap/cancel Bulk Cancel Roster Shift Swaps #
POST /api/v2/ess/{employeeId}/shift/swap/decline Bulk Decline Roster Shift Swaps #
POST /api/v2/ess/{employeeId}/shift/swap/propose Propose Shift Swap #
GET /api/v2/ess/{employeeId}/shift/{rosterShiftId} Get Roster Shift by ID #
POST /api/v2/ess/{employeeId}/shift/{rosterShiftId}/accept Accept Roster Shift #
POST /api/v2/ess/{employeeId}/shift/{rosterShiftId}/decline Decline Roster Shift #
POST /api/v2/ess/{employeeId}/shift/{rosterShiftId}/swap/accept Accept Shift Swap #
POST /api/v2/ess/{employeeId}/shift/{rosterShiftId}/swap/cancel Cancel Shift Swap #
GET /api/v2/ess/{employeeId}/shift/{rosterShiftId}/swap/candidates Employees Eligible For Shift Swap #
POST /api/v2/ess/{employeeId}/shift/{rosterShiftId}/swap/decline Decline Shift Swap #
GET /api/v2/ess/{employeeId}/superfunds List Super Funds #
POST /api/v2/ess/{employeeId}/superfunds Create Super Fund #
GET /api/v2/ess/{employeeId}/superfunds/productsearch Search Super Fund Products #
PUT /api/v2/ess/{employeeId}/superfunds/{id} Update Super Fund #
DELETE /api/v2/ess/{employeeId}/superfunds/{superFundId} Delete Super Fund #
GET /api/v2/ess/{employeeId}/superfunds/{superfundId} Get Super Fund by ID #
POST /api/v2/ess/{employeeId}/timeandattendance/clockoff Clock Out Employee #
POST /api/v2/ess/{employeeId}/timeandattendance/clockon Clock In Employee #
POST /api/v2/ess/{employeeId}/timeandattendance/discard Discard current shift #
POST /api/v2/ess/{employeeId}/timeandattendance/endbreak End Break #
GET /api/v2/ess/{employeeId}/timeandattendance/lookupdata Get Lookup Data #
POST /api/v2/ess/{employeeId}/timeandattendance/shift/{shiftId}/notes Add Note to Shift #
GET /api/v2/ess/{employeeId}/timeandattendance/shift/{shiftId}/notes Get Shift Notes #
POST /api/v2/ess/{employeeId}/timeandattendance/shift/{shiftId}/notes/read-state Mark Shift Notes Read #
POST /api/v2/ess/{employeeId}/timeandattendance/shifts Shifts #
POST /api/v2/ess/{employeeId}/timeandattendance/startbreak Start Break #
GET /api/v2/ess/{employeeId}/timesheet List Timesheets #
POST /api/v2/ess/{employeeId}/timesheet Submit or Update Timesheet #
GET /api/v2/ess/{employeeId}/timesheet/data Get Timesheet Creation Data #
POST /api/v2/ess/{employeeId}/timesheet/{timesheetId} Edit Timesheet #
DELETE /api/v2/ess/{employeeId}/timesheet/{timesheetId} Delete Timesheet #
GET /api/v2/ess/{employeeId}/unavailability List Unavailabilities #
POST /api/v2/ess/{employeeId}/unavailability Create Unavailability #
GET /api/v2/ess/{employeeId}/unavailability/{unavailabilityId} Get unavailability by ID #
PUT /api/v2/ess/{employeeId}/unavailability/{unavailabilityId} Update Unavailability #
DELETE /api/v2/ess/{employeeId}/unavailability/{unavailabilityId} Delete Unavailability #
GET /api/v2/ess/{employeeId}/document/eaform/{documentId} Download EA Form #
GET /api/v2/ess/{employeeId}/document/eaforms Get EA Forms #
GET /api/v2/ess/{employeeId}/document/pcb2form/{documentId} Download PCB2 Form #
GET /api/v2/ess/{employeeId}/document/pcb2forms Get PCB2 Forms #
GET /api/v2/ess/{employeeId}/document/earningscertificate/{documentId} Get Earnings Certificate PDF #
GET /api/v2/ess/{employeeId}/document/earningscertificates Get Earnings Certificates #
GET /api/v2/ess/{employeeId}/kiwisaver Get KiwiSaver options for employee #
GET /api/v2/ess/{employeeId}/lookup/enrollmentoptions Get KiwiSaver Enrollment Options #
GET /api/v2/ess/{employeeId}/document/irasforms Get IRAS forms #
GET /api/v2/ess/{employeeId}/document/irasforms/{formType}/{documentId} Get Iras Form PDF #
GET /api/v2/ess/{employeeId}/document/LeavingEmployeeForm Get Leaving employee form PDF #
GET /api/v2/ess/{employeeId}/document/P60/{documentId} Get P60 certificate PDF #
GET /api/v2/ess/{employeeId}/document/p11d/{taxYear} Get P11D form PDF #
GET /api/v2/ess/{employeeId}/document/p11ds List P11D forms #
GET /api/v2/ess/{employeeId}/document/p60s Get P60 certificates #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/employment-hero:employment-hero-ess-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

employment-hero-ess-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Employment Hero Ess API
  version: '1.0'
  description: 'Operations tagged Ess across 5 of this provider''s published API definitions: employment-hero-payroll-au-swagger.json, employment-hero-payroll-my-swagger.json, employment-hero-payroll-nz-swagger.json, employment-hero-payroll-sg-swagger.json, employment-hero-payroll-uk-swagger.json. Each path carries the servers of the definition it was published in.'
security:
- basic: []
- apiKey: []
- oauth2:
  - read
  - write
- basic: []
- apiKey: []
- oauth2:
  - read
  - write
- basic: []
- apiKey: []
- oauth2:
  - read
  - write
- basic: []
- apiKey: []
- oauth2:
  - read
  - write
- basic: []
- apiKey: []
- oauth2:
  - read
  - write
tags:


# --- truncated at 32 KB (632 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/employment-hero/refs/heads/main/openapi/employment-hero-ess-api-openapi.yml