{
  "data": {
    "a": {
      "slug": "employment-hero",
      "name": "Employment Hero Payroll",
      "vendor": "Employment Hero Pty Ltd",
      "vendorUrl": "https://employmenthero.com",
      "kind": "http-api",
      "category": "payroll",
      "summary": "Employment Hero Payroll (formerly KeyPay) is cloud payroll for Australia, New Zealand, the United Kingdom, Singapore and Malaysia. Its REST API covers businesses, employees, timesheets, leave, pay runs and reports, with an API key or OAuth 2.0.",
      "url": "https://www.anchorterminal.com/tools/employment-hero",
      "markdownUrl": "https://www.anchorterminal.com/tools/employment-hero.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/employment-hero.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/employment-hero.json",
      "repo": "https://github.com/Thinkei/keypay-dotnet-v2",
      "license": "Proprietary service under Employment Hero's General Terms. The `KeyPayV2` .NET client is MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "nuget",
          "name": "KeyPayV2"
        }
      ],
      "auth": "mixed",
      "authNotes": "Graded on the Payroll API. A user with a payroll login generates an API key under My Account, with no partner review, and sends it as the HTTP Basic username with a blank password. The key acts with that user's access, and Change API Key invalidates the old one. OAuth 2.0 is the other route. A support request with the application's name, callback URL and logo returns a client ID and secret, and the authorisation code grant at `/oauth/authorise` and `/oauth/token` returns a 24-hour access token and a 28-day refresh token. The spec names `read` and `write` scopes, and the guide's sample token shows an empty scope.",
      "pricing": "paid",
      "pricingNotes": "No charge for API calls was found. Access comes with an Employment Hero Payroll subscription. The Australian pricing page lists the Payroll plan at $10 with conditions, a minimum of 10 users and billing by user count, with prices stated as AUD ex. GST in the page's disclaimers. Employment Unlimited, which includes Payroll, is priced through sales. No free tier, trial or sandbox for Payroll was found on the pages read, so an agent starts only where a paying account exists (checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API guides, the five Swagger files or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 6,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://api.keypay.com.au/",
      "openapi": "https://api.keypay.com.au/swagger-au.json",
      "capabilities": [
        "payroll.run",
        "payroll.employees",
        "payroll.embedded",
        "payroll.tax-filing",
        "payroll.contractors",
        "hr.time-off"
      ],
      "tags": [
        "hosted",
        "payroll",
        "api-key",
        "oauth",
        "openapi",
        "webhooks",
        "dotnet",
        "white-label",
        "australia",
        "new-zealand",
        "uk",
        "singapore",
        "malaysia",
        "status-page"
      ],
      "lastRelease": "2026-10-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 50.4,
        "grade": "D",
        "agentReady": false,
        "rank": 591,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 53,
          "maintenance": 68,
          "payments": 10,
          "reliability": 65,
          "schema": 51,
          "security": 46,
          "transparency": 60
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Five public Swagger 2.0 files describe 660 to 821 operations per region, and any payroll user can generate an API key without a partner review. The key carries its user's whole access, no idempotency keys or API changelog were found, and the only official client is for .NET.",
        "bestFor": "An agent acting for an employer or bureau already on Employment Hero Payroll in Australia, New Zealand, the United Kingdom, Singapore or Malaysia, and white label partners who create businesses through the brand endpoints.",
        "strengths": [
          "Public Swagger 2.0 file for each of five regions, 728 operations for Australia and 821 for the United Kingdom, downloadable without a login",
          "A payroll user generates an API key under My Account with no partner review, and Change API Key invalidates the old one",
          "OData `$filter`, `$orderby`, `$top` and `$skip` on most GET operations, with `$top` capped at 100",
          "Pay run endpoints cover create, recalculate, warnings, approval start, finalise and unlock, so a run can be checked before it is finalised",
          "The .NET client is regenerated from the API, with commits on 52 separate days between 10 July and 8 October 2026"
        ],
        "weaknesses": [
          "An API key carries the whole access of the user who generated it. No per-key scopes were found",
          "No idempotency keys in the spec or guides, and 5 requests a second per key and IP address is the only documented limit",
          "No changelog, versioning policy or deprecation policy was found for the Payroll API",
          "Only 13 of 460 schema definitions in the Australian spec list required fields, and 711 of 728 operations document a 200 response and little else",
          "The developer forum's recent topics include spam, and several API questions from 2024 and 2025 show no replies"
        ],
        "agentNotes": [
          "Send the API key as the Basic auth username with a blank password, for example `curl -u {api_key}: https://api.yourpayroll.com.au/api/v2/user`",
          "Pick the Swagger file for the business's region (`swagger-au.json`, `swagger-nz.json`, `swagger-uk.json`, `swagger-sg.json`, `swagger-my.json`). Paths and models differ by region",
          "Stay under 5 requests a second per key and IP address. A 429 answered our test with `retry-after: 1`",
          "Page lists with `$skip` and `$top` (100 at most). Filter property names are capitalised, unlike the camelCase JSON",
          "Read `GET /api/v2/business/{businessId}/payrun/{payRunId}/warnings` before `POST .../finalise`. Finalise can lodge with the tax office and publish pay slips in the same call"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 50.4
          }
        ],
        "editorialScores": {
          "ergonomics": 53,
          "maintenance": 68,
          "payments": 10,
          "reliability": 65,
          "schema": 51,
          "security": 46,
          "transparency": 49
        },
        "provenanceScore": 71
      },
      "connect": {
        "install": "Install-Package KeyPayV2",
        "http": "curl -u {api_key}: https://api.yourpayroll.com.au/api/v2/user"
      },
      "letme": {
        "capability": "https://letme.dev/payroll.run",
        "tool": "https://letme.dev/employment-hero"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Employment Hero Pty Ltd",
        "domain": "employmenthero.com",
        "domainRegistered": "2012-05-02",
        "endpointOnVendorDomain": false,
        "terms": "https://employmenthero.com/legals/terms-conditions/",
        "privacy": "https://employmenthero.com/legals/privacy-policy/",
        "statusPage": "https://status.employmenthero.com",
        "changelog": "",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The General Terms (effective 15 June 2026) name Employment Hero Pty Ltd and its affiliates, and define the EH Platform to include products reached through its APIs. They are the platform terms, and no separate API terms were found.",
          "The privacy policy is effective 3 June 2026 and points to a Data Processing Addendum effective 15 June 2026 at https://employmenthero.com/legals/privacy-policy/data-processing/.",
          "The API answers at api.yourpayroll.com.au and the documentation at api.keypay.com.au, both off employmenthero.com. RDAP for yourpayroll.com.au names the registrar only, so we could not confirm the registrant.",
          "https://employmenthero.com/.well-known/security.txt gives vuln@employmenthero.com, a policy link and an expiry of 31 December 2026.",
          "RDAP for employmenthero.com gives a registration date of 2012-05-02 and GoDaddy.com, LLC as registrar.",
          "No changelog for the Payroll API was found on the documentation site."
        ],
        "score": 71
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/employment-hero.json",
      "live": {
        "slug": "employment-hero",
        "vendorStatus": {
          "page": "https://status.employmenthero.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:06:03.50426119Z"
        },
        "updatedAt": "2026-10-08T21:06:03.50426119Z"
      }
    },
    "answer": "Employment Hero Payroll scores 50.4 (D) on agent readiness against Paychex's 44.8 (E), and leads in 4 of 7 scored categories. Paychex leads on schema \u0026 documentation and security \u0026 auth.",
    "b": {
      "slug": "paychex",
      "name": "Paychex",
      "vendor": "Paychex, Inc.",
      "vendorUrl": "https://www.paychex.com",
      "kind": "http-api",
      "category": "payroll",
      "summary": "Paychex's REST API reads and updates company, worker and pay data in Paychex Flex, a US payroll and HR service. Clients create an app inside their Flex account. Software partners apply to Paychex for a sandbox and production credentials.",
      "url": "https://www.anchorterminal.com/tools/paychex",
      "markdownUrl": "https://www.anchorterminal.com/tools/paychex.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/paychex.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/paychex.json",
      "license": "Proprietary service. Public use is under the Paychex User Terms of Use. Partner terms aren't published",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "oauth",
      "authNotes": "Graded on the Paychex API for Paychex Flex. Access is by OAuth 2.0 client credentials. A key and secret go in the form body of POST `/auth/oauth/v2/token` and return a Bearer token that lasts 60 minutes, with no refresh token. A Paychex client with a Super Admin or Security Admin role creates an app inside Flex and chooses its access levels. A software partner fills in a questionnaire, is reviewed by the Corporate Partnerships Team, builds in a sandbox Paychex issues, demos the integration and then receives a production key and secret limited to the verbs and endpoints requested. Each client approves a partner app in Flex before its data is reachable.",
      "pricing": "paid",
      "pricingNotes": "No price is published for the API or for Paychex payroll. The Request Pricing button on paychex.com/payroll leads to the sales contact form, and the developer centre states no fee. The API reaches only companies with a paid Paychex Flex account, and the Payroll API needs online payroll added by a Paychex representative. The partner sandbox is issued after Paychex approves the partnership, so there is no way to start without Paychex's agreement (checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer centre pages or the OpenAPI definition (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developer.paychex.com/documentation",
      "openapi": "https://developer.paychex.com/sites/default/files/apidocument/openapi-merge-develop.210-public.json",
      "capabilities": [
        "payroll.employees",
        "hr.employees",
        "hr.onboarding",
        "hr.documents",
        "hr.org"
      ],
      "tags": [
        "hosted",
        "payroll",
        "hr",
        "oauth",
        "openapi",
        "partner-approval",
        "sandbox",
        "webhooks",
        "sales-led",
        "soc2",
        "iso27001"
      ],
      "lastRelease": "2026-08-20",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 44.8,
        "grade": "E",
        "agentReady": false,
        "rank": 666,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 54,
          "maintenance": 26,
          "payments": 0,
          "reliability": 41,
          "schema": 66,
          "security": 58,
          "transparency": 54
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "A public OpenAPI 3.0.3 definition covers 110 operations, and payroll entries stay unprocessed until a person submits the payroll in Flex. Partner credentials and the sandbox follow approval by Paychex, no price is published, and no status page, SLA or SDK was found in the reviewed pages.",
        "bestFor": "A software partner with shared customers on Paychex Flex that needs to sync workers, pay rates, direct deposits and tax setup, or to send hours and earnings into pay entry.",
        "strengths": [
          "One public OpenAPI 3.0.3 file describes 110 operations and 147 schemas, with named request and response examples for most of them",
          "Checks are created as unprocessed entries. The docs say the client or a Paychex service provider must review and submit the payroll",
          "A client admin approves each partner app inside Paychex Flex before any company data is reachable, and a delete endpoint removes the link",
          "Errors return a `code`, `description` and `resolution`, and every response carries an `x-payx-txid` for support",
          "Published limit of 10,000 requests a minute per partner, with `X-RateLimit-*` headers and `Retry-After` on 429"
        ],
        "weaknesses": [
          "Partner access needs a questionnaire, review by the Corporate Partnerships Team, a demo and final approval. The sandbox is issued only after approval",
          "No price is published for the API or for Paychex payroll. The pricing button leads to a sales contact form",
          "No status page, incident history or SLA was found, and the User Terms of Use give no availability guarantee",
          "Paging works on three endpoints only, and on the worker list it can't be combined with filters",
          "No SDK, llms.txt or dated changelog was found. The News page holds two notices",
          "The User Terms of Use bar automated access to Paychex sites and applications unless Paychex approves it, and allow suspension without notice"
        ],
        "agentNotes": [
          "POST `grant_type=client_credentials` with the key and secret in the form body to `/auth/oauth/v2/token`. Tokens last 60 minutes and there is no refresh token, so request a new one",
          "Call GET `/companies` first. Worker and payroll paths need a `companyId` or `workerId` the app has been granted",
          "Send `offset` and `limit` on GET `/companies/{companyId}/workers`, 50 at most, and resend the `ETag` between pages. The unpaged form is withdrawn on 24 February 2027",
          "Creating a check doesn't pay anyone. A person must review and submit the payroll in Paychex Flex",
          "Send a unique `X-payx-client-correlationId` per request and keep the `x-payx-txid` from the response. Support asks for it",
          "On 423 the client is locked by another user or process. Wait and retry"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 44.8
          }
        ],
        "editorialScores": {
          "ergonomics": 54,
          "maintenance": 26,
          "payments": 0,
          "reliability": 41,
          "schema": 66,
          "security": 58,
          "transparency": 39
        },
        "provenanceScore": 69
      },
      "connect": {
        "http": "curl --location 'https://api.paychex.com/auth/oauth/v2/token' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--data-urlencode 'grant_type=client_credentials' \\\n--data-urlencode 'client_id=CLIENT_ID' \\\n--data-urlencode 'client_secret=CLIENT_SECRET'"
      },
      "letme": {
        "capability": "https://letme.dev/payroll.employees",
        "tool": "https://letme.dev/paychex"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Paychex, Inc.",
        "domain": "paychex.com",
        "domainRegistered": "1991-06-10",
        "endpointOnVendorDomain": true,
        "terms": "https://www.paychex.com/corporate/terms",
        "privacy": "https://www.paychex.com/corporate/security/privacy",
        "statusPage": "",
        "changelog": "https://developer.paychex.com/news",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The privacy policy (last updated 1 June 2026) names Paychex, Inc., 911 Panorama Trail South, Rochester, NY 14625.",
          "The terms link is the Paychex User Terms of Use, effective 1 June 2026, which govern Paychex's websites, software applications, mobile applications and services. No API-specific terms are published. The partner agreement and the Third-Party Terms of Use a client accepts in Flex weren't found in public.",
          "API calls go to https://api.paychex.com. An unauthenticated GET `/companies` answered 401 with error code API-103.",
          "www.paychex.com/.well-known/security.txt, www.paychex.com/security.txt and developer.paychex.com/.well-known/security.txt return 404. Vulnerability reports go through a form at paychex.com/corporate/security/responsible-disclosure run with Bugcrowd.",
          "No status page was found on the developer centre or the security page, and status.paychex.com didn't resolve.",
          "The changelog link is the developer centre's News page, which holds two notices and no dated list of changes.",
          "RDAP for paychex.com gives a registration date of 1991-06-10."
        ],
        "score": 69
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/paychex.json"
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Employment Hero Pty Ltd",
        "b": "Paychex, Inc.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Employment Hero's General Terms. The `KeyPayV2` .NET client is MIT",
        "b": "Proprietary service. Public use is under the Paychex User Terms of Use. Partner terms aren't published",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-08",
        "b": "2026-08-20",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2026-06-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "6 stars",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Employment Hero Payroll scores 50.4 (D) on agent readiness against Paychex's 44.8 (E), and leads in 4 of 7 scored categories. Paychex leads on schema \u0026 documentation and security \u0026 auth.",
        "question": "Which is better for AI agents, Employment Hero Payroll or Paychex?"
      },
      {
        "answer": "Employment Hero Payroll takes an API key or an OAuth sign-in. Paychex uses an OAuth sign-in.",
        "question": "Do Employment Hero Payroll and Paychex need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Employment Hero Payroll. No hosted endpoint is listed for Paychex.",
        "question": "Can an agent call Employment Hero Payroll and Paychex without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 65 against 41",
          "Payments \u0026 pricing, 10 against 0",
          "Maintenance \u0026 community, 68 against 26",
          "Transparency \u0026 trust, 60 against 54"
        ],
        "also": null,
        "goodFor": "An agent acting for an employer or bureau already on Employment Hero Payroll in Australia, New Zealand, the United Kingdom, Singapore or Malaysia, and white label partners who create businesses through the brand endpoints.",
        "slug": "employment-hero",
        "watchFor": "An API key carries the whole access of the user who generated it. No per-key scopes were found"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 66 against 51",
          "Security \u0026 auth, 58 against 46"
        ],
        "also": null,
        "goodFor": "A software partner with shared customers on Paychex Flex that needs to sync workers, pay rates, direct deposits and tax setup, or to send hours and earnings into pay entry.",
        "slug": "paychex",
        "watchFor": "Partner access needs a questionnaire, review by the Corporate Partnerships Team, a demo and final approval. The sandbox is issued only after approval"
      }
    ],
    "job": {
      "capability": "payroll.employees",
      "name": "Payroll employees"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/argyle-vs-employment-hero.json",
        "title": "Argyle vs Employment Hero Payroll",
        "url": "https://www.anchorterminal.com/compare/argyle-vs-employment-hero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/argyle-vs-paychex.json",
        "title": "Argyle vs Paychex",
        "url": "https://www.anchorterminal.com/compare/argyle-vs-paychex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/check-payroll-vs-paychex.json",
        "title": "Check vs Paychex",
        "url": "https://www.anchorterminal.com/compare/check-payroll-vs-paychex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/employment-hero-vs-finch.json",
        "title": "Employment Hero Payroll vs Finch",
        "url": "https://www.anchorterminal.com/compare/employment-hero-vs-finch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/everee-vs-paychex.json",
        "title": "Everee vs Paychex",
        "url": "https://www.anchorterminal.com/compare/everee-vs-paychex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/finch-vs-paychex.json",
        "title": "Finch vs Paychex",
        "url": "https://www.anchorterminal.com/compare/finch-vs-paychex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gusto-vs-paychex.json",
        "title": "Gusto vs Paychex",
        "url": "https://www.anchorterminal.com/compare/gusto-vs-paychex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paychex-vs-salsa.json",
        "title": "Paychex vs Salsa",
        "url": "https://www.anchorterminal.com/compare/paychex-vs-salsa"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paychex-vs-zeal.json",
        "title": "Paychex vs Zeal",
        "url": "https://www.anchorterminal.com/compare/paychex-vs-zeal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/check-payroll-vs-employment-hero.json",
        "title": "Check vs Employment Hero Payroll",
        "url": "https://www.anchorterminal.com/compare/check-payroll-vs-employment-hero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/employment-hero-vs-everee.json",
        "title": "Employment Hero Payroll vs Everee",
        "url": "https://www.anchorterminal.com/compare/employment-hero-vs-everee"
      },
      {
        "json": "https://www.anchorterminal.com/compare/employment-hero-vs-gusto.json",
        "title": "Employment Hero Payroll vs Gusto",
        "url": "https://www.anchorterminal.com/compare/employment-hero-vs-gusto"
      },
      {
        "json": "https://www.anchorterminal.com/compare/employment-hero-vs-salsa.json",
        "title": "Employment Hero Payroll vs Salsa",
        "url": "https://www.anchorterminal.com/compare/employment-hero-vs-salsa"
      },
      {
        "json": "https://www.anchorterminal.com/compare/employment-hero-vs-zeal.json",
        "title": "Employment Hero Payroll vs Zeal",
        "url": "https://www.anchorterminal.com/compare/employment-hero-vs-zeal"
      }
    ],
    "scores": [
      {
        "by": 24,
        "edge": "employment-hero",
        "employment-hero": 65,
        "key": "reliability",
        "name": "Reliability",
        "paychex": 41,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 15,
        "edge": "paychex",
        "employment-hero": 51,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "paychex": 66,
        "weight": 13
      },
      {
        "by": 1,
        "edge": "paychex",
        "employment-hero": 53,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "paychex": 54,
        "weight": 13
      },
      {
        "by": 12,
        "edge": "paychex",
        "employment-hero": 46,
        "key": "security",
        "name": "Security \u0026 auth",
        "paychex": 58,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "employment-hero",
        "employment-hero": 10,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "paychex": 0,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 42,
        "edge": "employment-hero",
        "employment-hero": 68,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "paychex": 26,
        "weight": 7
      },
      {
        "by": 6,
        "edge": "employment-hero",
        "employment-hero": 60,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "paychex": 54,
        "weight": 7
      }
    ],
    "summary": "Employment Hero Payroll scores 50.4 (D) on agent readiness against Paychex's 44.8 (E), and leads in 4 of 7 scored categories. Paychex leads on schema \u0026 documentation and security \u0026 auth. Both do payroll employees.",
    "verdicts": {
      "employment-hero": "Five public Swagger 2.0 files describe 660 to 821 operations per region, and any payroll user can generate an API key without a partner review. The key carries its user's whole access, no idempotency keys or API changelog were found, and the only official client is for .NET.",
      "paychex": "A public OpenAPI 3.0.3 definition covers 110 operations, and payroll entries stay unprocessed until a person submits the payroll in Flex. Partner credentials and the sandbox follow approval by Paychex, no price is published, and no status page, SLA or SDK was found in the reviewed pages."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/employment-hero-vs-paychex",
    "json": "https://www.anchorterminal.com/compare/employment-hero-vs-paychex.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/employment-hero-vs-paychex.md",
    "slim": "https://www.anchorterminal.com/compare/employment-hero-vs-paychex.min.md"
  },
  "markdown": "Employment Hero Payroll scores 50.4 (D) on agent readiness against Paychex's 44.8 (E), and leads in 4 of 7 scored categories. Paychex leads on schema \u0026 documentation and security \u0026 auth. Both do payroll employees.\n\n- Employment Hero Payroll: grade D, 50.4/100, rank #591 of 722. Markdown https://www.anchorterminal.com/tools/employment-hero.md · JSON https://www.anchorterminal.com/api/v1/tools/employment-hero.json\n- Paychex: grade E, 44.8/100, rank #666 of 722. Markdown https://www.anchorterminal.com/tools/paychex.md · JSON https://www.anchorterminal.com/api/v1/tools/paychex.json\n\n## Which one, for what\n\n### Employment Hero Payroll (D)\n\nGood for: An agent acting for an employer or bureau already on Employment Hero Payroll in Australia, New Zealand, the United Kingdom, Singapore or Malaysia, and white label partners who create businesses through the brand endpoints.\n\nAhead on:\n- Reliability, 65 against 41\n- Payments \u0026 pricing, 10 against 0\n- Maintenance \u0026 community, 68 against 26\n- Transparency \u0026 trust, 60 against 54\n\nWatch for: An API key carries the whole access of the user who generated it. No per-key scopes were found\n\n### Paychex (E)\n\nGood for: A software partner with shared customers on Paychex Flex that needs to sync workers, pay rates, direct deposits and tax setup, or to send hours and earnings into pay entry.\n\nAhead on:\n- Schema \u0026 documentation, 66 against 51\n- Security \u0026 auth, 58 against 46\n\nWatch for: Partner access needs a questionnaire, review by the Corporate Partnerships Team, a demo and final approval. The sandbox is issued only after approval\n\n\n## Score by category\n\n| Category | Weight | Employment Hero Payroll | Paychex | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 65 | 41 | Employment Hero Payroll +24 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 51 | 66 | Paychex +15 |\n| Agent ergonomics | 13% (16.2 this run) | 53 | 54 | Paychex +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 46 | 58 | Paychex +12 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 10 | 0 | Employment Hero Payroll +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 68 | 26 | Employment Hero Payroll +42 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 60 | 54 | Employment Hero Payroll +6 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **50.4 · D** | **44.8 · E** | |\n\n## Facts side by side\n\n| Fact | Employment Hero Payroll | Paychex |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Employment Hero Pty Ltd | Paychex, Inc. |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | OAuth |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under Employment Hero's General Terms. The `KeyPayV2` .NET client is MIT | Proprietary service. Public use is under the Paychex User Terms of Use. Partner terms aren't published |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-10-08 | 2026-08-20 |\n| Terms last updated | no date given | no date given |\n| Privacy policy last updated | no date given | 2026-06-01 |\n| Customer content may train models | not found in the text | yes |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 6 stars | none |\n\n## Verdicts\n\n**Employment Hero Payroll.** Five public Swagger 2.0 files describe 660 to 821 operations per region, and any payroll user can generate an API key without a partner review. The key carries its user's whole access, no idempotency keys or API changelog were found, and the only official client is for .NET.\n\n**Paychex.** A public OpenAPI 3.0.3 definition covers 110 operations, and payroll entries stay unprocessed until a person submits the payroll in Flex. Partner credentials and the sandbox follow approval by Paychex, no price is published, and no status page, SLA or SDK was found in the reviewed pages.\n\n## Before you call either\n\n### Employment Hero Payroll\n\n1. Send the API key as the Basic auth username with a blank password, for example `curl -u {api_key}: https://api.yourpayroll.com.au/api/v2/user`\n2. Pick the Swagger file for the business's region (`swagger-au.json`, `swagger-nz.json`, `swagger-uk.json`, `swagger-sg.json`, `swagger-my.json`). Paths and models differ by region\n3. Stay under 5 requests a second per key and IP address. A 429 answered our test with `retry-after: 1`\n4. Page lists with `$skip` and `$top` (100 at most). Filter property names are capitalised, unlike the camelCase JSON\n5. Read `GET /api/v2/business/{businessId}/payrun/{payRunId}/warnings` before `POST .../finalise`. Finalise can lodge with the tax office and publish pay slips in the same call\n\n### Paychex\n\n1. POST `grant_type=client_credentials` with the key and secret in the form body to `/auth/oauth/v2/token`. Tokens last 60 minutes and there is no refresh token, so request a new one\n2. Call GET `/companies` first. Worker and payroll paths need a `companyId` or `workerId` the app has been granted\n3. Send `offset` and `limit` on GET `/companies/{companyId}/workers`, 50 at most, and resend the `ETag` between pages. The unpaged form is withdrawn on 24 February 2027\n4. Creating a check doesn't pay anyone. A person must review and submit the payroll in Paychex Flex\n5. Send a unique `X-payx-client-correlationId` per request and keep the `x-payx-txid` from the response. Support asks for it\n6. On 423 the client is locked by another user or process. Wait and retry\n\n## Questions\n\n### Which is better for AI agents, Employment Hero Payroll or Paychex?\n\nEmployment Hero Payroll scores 50.4 (D) on agent readiness against Paychex's 44.8 (E), and leads in 4 of 7 scored categories. Paychex leads on schema \u0026 documentation and security \u0026 auth.\n\n### Do Employment Hero Payroll and Paychex need an API key?\n\nEmployment Hero Payroll takes an API key or an OAuth sign-in. Paychex uses an OAuth sign-in.\n\n### Can an agent call Employment Hero Payroll and Paychex without installing anything?\n\nNo hosted endpoint is listed for Employment Hero Payroll. No hosted endpoint is listed for Paychex.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/employment-hero-vs-paychex.json, and with the fewest tokens: https://www.anchorterminal.com/compare/employment-hero-vs-paychex.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"employment-hero\", \"b\": \"paychex\"}`. From a terminal: `anchor compare employment-hero paychex`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/employment-hero.json and https://www.anchorterminal.com/api/v1/tools/paychex.json\n\n## Other comparisons with Employment Hero Payroll or Paychex\n\n- [Argyle vs Employment Hero Payroll](https://www.anchorterminal.com/compare/argyle-vs-employment-hero.md)\n- [Argyle vs Paychex](https://www.anchorterminal.com/compare/argyle-vs-paychex.md)\n- [Check vs Paychex](https://www.anchorterminal.com/compare/check-payroll-vs-paychex.md)\n- [Employment Hero Payroll vs Finch](https://www.anchorterminal.com/compare/employment-hero-vs-finch.md)\n- [Everee vs Paychex](https://www.anchorterminal.com/compare/everee-vs-paychex.md)\n- [Finch vs Paychex](https://www.anchorterminal.com/compare/finch-vs-paychex.md)\n- [Gusto vs Paychex](https://www.anchorterminal.com/compare/gusto-vs-paychex.md)\n- [Paychex vs Salsa](https://www.anchorterminal.com/compare/paychex-vs-salsa.md)\n- [Paychex vs Zeal](https://www.anchorterminal.com/compare/paychex-vs-zeal.md)\n- [Check vs Employment Hero Payroll](https://www.anchorterminal.com/compare/check-payroll-vs-employment-hero.md)\n- [Employment Hero Payroll vs Everee](https://www.anchorterminal.com/compare/employment-hero-vs-everee.md)\n- [Employment Hero Payroll vs Gusto](https://www.anchorterminal.com/compare/employment-hero-vs-gusto.md)\n- [Employment Hero Payroll vs Salsa](https://www.anchorterminal.com/compare/employment-hero-vs-salsa.md)\n- [Employment Hero Payroll vs Zeal](https://www.anchorterminal.com/compare/employment-hero-vs-zeal.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Employment Hero Payroll vs Paychex",
        "url": ""
      }
    ],
    "description": "Employment Hero Payroll scores 50.4 (D) on agent readiness against Paychex's 44.8 (E), and leads in 4 of 7 scored categories. Paychex leads on schema \u0026 documentation and security \u0026 auth. Both do payroll employees. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Employment Hero Payroll D 50.4",
      "Paychex E 44.8",
      "scores"
    ],
    "h1": "Employment Hero Payroll vs Paychex",
    "image": "https://www.anchorterminal.com/assets/og/compare-employment-hero-vs-paychex.png",
    "path": "/compare/employment-hero-vs-paychex",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Employment Hero Payroll vs Paychex for AI agents, D 50.4 vs E 44.8",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/employment-hero-vs-paychex"
  },
  "tokens": {
    "markdown": 2250,
    "slim": 680
  },
  "version": 1
}
