{
  "data": {
    "a": {
      "slug": "check-payroll",
      "name": "Check",
      "vendor": "Check Technologies, Inc.",
      "vendorUrl": "https://www.checkhq.com",
      "kind": "http-api",
      "category": "payroll",
      "summary": "Check is an embedded payroll API from Check Technologies in New York. Software platforms build US payroll on it for their own customers, with tax calculation, payment and filing handled by Check. Access is by partner agreement.",
      "url": "https://www.anchorterminal.com/tools/check-payroll",
      "markdownUrl": "https://www.anchorterminal.com/tools/check-payroll.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/check-payroll.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/check-payroll.json",
      "repo": "https://github.com/check-technologies/mcp-server-check",
      "license": "Proprietary service under Check's terms of service and partner agreement. The MCP server and CLI on GitHub are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.checkhq.com",
      "packages": [],
      "auth": "mixed",
      "authNotes": "A partner API key sent as `Authorization: Bearer`, one for sandbox and one for production, issued by Check after a request through its sales contact. The key carries the whole partner account, with no per-key scopes found. Check says unused keys expire, last activity is shown and IP restrictions can be set through the account team. Integration partners get OAuth tokens (authorisation code grant, with refresh tokens) limited to one employer and one permission level, after a Check partner authorises them. The hosted MCP server accepts the API key or a Console OAuth login that runs with the Console user's permissions. This listing grades embedded-payroll partner access. Check has no route to an existing employer's payroll account outside a partner platform.",
      "pricing": "paid",
      "pricingNotes": "No public prices. checkhq.com/pricing returns 404 and the site's buttons open a sales contact form. A sandbox exists at sandbox.checkhq.com under a Sandbox User Agreement, but the documentation says to request an API key from Check, so an agent can't start without a person contacting sales. Production needs a partner agreement. The Usage API reports billable companies, employees and contractors each month, with no unit price published (checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the documentation index, the API reference pages read or the website (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 18,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.checkhq.com",
      "llmsTxt": "https://docs.checkhq.com/llms.txt",
      "capabilities": [
        "payroll.run",
        "payroll.employees",
        "payroll.embedded",
        "payroll.tax-filing",
        "payroll.contractors"
      ],
      "tags": [
        "hosted",
        "embedded-payroll",
        "us-payroll",
        "api-key",
        "oauth",
        "mcp",
        "llms-txt",
        "sandbox",
        "webhooks",
        "sales-led",
        "partner-approval",
        "status-page",
        "bug-bounty",
        "soc2"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.5,
        "grade": "B",
        "agentReady": false,
        "rank": 252,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 83,
          "maintenance": 72,
          "payments": 5,
          "reliability": 80,
          "schema": 78,
          "security": 74,
          "transparency": 62
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Graded as embedded payroll through a partner API key, not access to an existing employer's payroll account. The API has idempotency keys on writes, a required preview before approval and queryable request logs. No price is public, a sandbox key comes through Check's sales team, and one API key carries the whole partner account.",
        "bestFor": "A software platform that wants to sell US payroll inside its own product and can sign a partnership, with Check handling tax calculation, money movement and filings.",
        "strengths": [
          "`X-Idempotency-Key` is accepted on writes and stored for 24 hours, and a 429 carries `Retry-After` with `RateLimit-Limit` and `RateLimit-Remaining` on every authenticated response",
          "A payroll must have a succeeded preview before approval, and `preview_started_at` makes approval fail with 409 `preview_superseded` if the preview is stale",
          "Every response carries `X-Request-Log-Id`, and GET /logs returns request logs with SSNs, bank account numbers and the `Authorization` header redacted",
          "The MCP server starts with three meta-tools over 270 tools, with read-only mode, toolset filters and optional confirmation for destructive tools",
          "llms.txt indexes the documentation, and each page is served as Markdown with an OpenAPI 3.1 fragment per operation"
        ],
        "weaknesses": [
          "No public price and no self-serve signup. The documentation says to request an API key through Check's sales contact",
          "An API key carries the whole partner account. No per-key scopes or read-only keys were found in the reviewed documentation",
          "No official SDK in a general programming language was found. The CLI and MCP server install from a git clone, not from PyPI",
          "No SLA is published. The terms of service make no representation about uptime unless agreed in writing",
          "No sub-processor list, hosting location or published DPA text was found, and the privacy policy states no retention periods"
        ],
        "agentNotes": [
          "Use https://sandbox.checkhq.com with the sandbox key and https://api.checkhq.com with the production key. A key is not valid across environments",
          "Preview a payroll before approving it, then pass `preview_started_at` to POST /payrolls/{id}/approve so a stale preview fails with 409",
          "Send `X-Idempotency-Key` on every write. Keys expire after 24 hours, so list the resource before retrying later than that",
          "On 429 wait for `Retry-After`. The limit is 10 requests a second in sandbox and for partners paying fewer than 1,000 payees a month, with 100 concurrent requests",
          "Connect the MCP server with `?read_only=true` or `X-MCP-Readonly: true` unless writes are intended. In production, approving a payroll moves money"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.5
          }
        ],
        "editorialScores": {
          "ergonomics": 83,
          "maintenance": 72,
          "payments": 5,
          "reliability": 80,
          "schema": 78,
          "security": 74,
          "transparency": 38
        },
        "provenanceScore": 86
      },
      "connect": {
        "http": "curl -X POST https://sandbox.checkhq.com/companies \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer \u003cAPI_KEY\u003e' \\\n  -d '{\"address\": {\"line1\": \"20 W 34th St\", \"postal_code\": \"10001\", \"city\": \"New York\", \"state\": \"NY\"}, \"start_date\": \"2020-05-20\", \"trade_name\": \"Good Web Design\", \"legal_name\": \"Good Web Design, Inc.\"}'",
        "claudeCode": "claude mcp add --transport http check https://mcp.sandbox.checkhq.com/check/mcp \\\n  --header \"Authorization: Bearer your-api-key-here\"",
        "config": {
          "mcpServers": {
            "check": {
              "type": "url",
              "url": "https://mcp.sandbox.checkhq.com/check/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/payroll.run",
        "tool": "https://letme.dev/check-payroll"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Check Technologies, Inc.",
        "domain": "checkhq.com",
        "domainRegistered": "2006-10-28",
        "endpointOnVendorDomain": true,
        "terms": "https://www.checkhq.com/company/terms",
        "privacy": "https://www.checkhq.com/company/privacy",
        "statusPage": "https://status.checkhq.com",
        "changelog": "https://www.checkhq.com/resources/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The privacy policy (effective 18 April 2024) names Check Technologies, Inc., 228 Park Ave. S, PMB 14961, New York, NY 10003. The site footer also names Check Payments LLC (NMLS #2103307).",
          "The terms of service are dated 3 September 2021. Sandbox use is also governed by a Sandbox User Agreement at checkhq.com/company/sandbox-user-agreement.",
          "www.checkhq.com/.well-known/security.txt and checkhq.com/.well-known/security.txt return 404. The security page sends vulnerability reports to a bug bounty at federacy.com/check.",
          "The API answers at api.checkhq.com and sandbox.checkhq.com, and the hosted MCP server at mcp.checkhq.com and mcp.sandbox.checkhq.com.",
          "RDAP for checkhq.com gives a registration date of 2006-10-28 and Squarespace Domains II LLC as registrar."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/check-payroll.json",
      "live": {
        "slug": "check-payroll",
        "probe": {
          "target": "https://api.checkhq.com",
          "method": "get",
          "lastAt": "2026-10-10T02:54:50.711519725Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 615,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 677,
          "p95ms24h": 1406,
          "samples24h": 249,
          "samples30d": 373,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 30,
              "ok": 30
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.checkhq.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T02:49:58.45741465Z"
        },
        "githubStars": 18,
        "securityTxt": {
          "url": "https://checkhq.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:20.197123073Z"
        },
        "llmsTxt": {
          "url": "https://docs.checkhq.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:01:35.211277377Z"
        },
        "pages": [
          {
            "url": "https://www.checkhq.com/resources/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:49:02.978667028Z",
            "changedAt": "2026-10-09T18:49:02.978667028Z",
            "fingerprint": "a0249c12c41b"
          },
          {
            "url": "https://www.checkhq.com/company/privacy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-09T18:48:58.923567103Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2d782586e2af"
          },
          {
            "url": "https://www.checkhq.com/company/terms",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-09T18:49:00.988854934Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c2d2a944fcea"
          }
        ],
        "updatedAt": "2026-10-10T02:54:50.711519725Z"
      }
    },
    "answer": "Check scores 67.5 (B) on agent readiness against PayFit's 55.5 (C), and leads in 4 of 7 scored categories. PayFit leads on payments \u0026 pricing and transparency \u0026 trust.",
    "b": {
      "slug": "payfit",
      "name": "PayFit",
      "vendor": "PayFit SAS",
      "vendorUrl": "https://payfit.com",
      "kind": "http-api",
      "category": "payroll",
      "summary": "PayFit is payroll and HR software for small and mid-sized employers in France, the United Kingdom and Spain. Its Partner API reads employees, contracts, payslips, absences and accounting exports, with a customer API key or partner OAuth.",
      "url": "https://www.anchorterminal.com/tools/payfit",
      "markdownUrl": "https://www.anchorterminal.com/tools/payfit.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/payfit.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/payfit.json",
      "license": "Proprietary service under PayFit's general terms of service",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "mixed",
      "authNotes": "Two routes. A customer's company admin creates an API key in the PayFit app at app.payfit.com/integrations/hub/api, picks its scopes, and sees it once. It is sent as a Bearer token and reaches that company only. Partners use the OAuth 2.0 authorisation code grant at oauth.payfit.com with a client ID and secret that PayFit issues after reviewing the use case, and the scopes a partner may request are fixed at approval. The partner guides say PayFit is temporarily not accepting new integration requests.",
      "pricing": "paid",
      "pricingNotes": "No charge for API calls was found. Access comes with a PayFit subscription. In France the API is included from the Paie avancée plan, listed at 27 € a collaborator a month plus a 49 € monthly subscription for 1 to 3 collaborators, before tax. The UK site lists no prices and sends buyers to a demo, and its contract appendix includes API access in the Payroll Core plan. The French site links a free signup and a first month free until 31 October 2026. Whether signup needs a card was not established. A sandbox company is given only to accepted partners (checked 2026-10-09).",
      "priceSummary": "Paid",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API guides, the OpenAPI file or the French pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://developers.payfit.io/",
      "llmsTxt": "https://developers.payfit.io/llms.txt",
      "openapi": "https://developers.payfit.io/openapi/partner-api.json",
      "capabilities": [
        "payroll.employees",
        "hr.time-off",
        "hr.employees"
      ],
      "tags": [
        "hosted",
        "payroll",
        "hr",
        "api-key",
        "oauth",
        "openapi",
        "llms-txt",
        "webhooks",
        "france",
        "uk",
        "spain",
        "status-page",
        "iso-27001"
      ],
      "lastRelease": "2026-07-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 55.5,
        "grade": "C",
        "agentReady": false,
        "rank": 656,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 51,
          "maintenance": 28,
          "payments": 10,
          "reliability": 79,
          "schema": 78,
          "security": 51,
          "transparency": 70
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "A public OpenAPI 3.0 file, llms.txt and scoped keys let a paying customer's agent read payroll outputs and write absences. The API cannot run or approve a payroll, new partner integrations are not being accepted, and no idempotency keys or SDKs were found.",
        "bestFor": "An agent working for an employer that already runs payroll on PayFit in France, the UK or Spain and needs employees, contracts, payslips, absences or the payroll journal.",
        "strengths": [
          "Public OpenAPI 3.0 file with 31 operations, each documenting 400, 401, 403 and 404 responses with an example",
          "llms.txt and a Markdown twin for every guide, reference and changelog page",
          "Customer API keys and partner OAuth tokens are limited to chosen scopes from 22, with read and write separate",
          "Rate limits are published as 50 read and 20 write requests a second, with `X-RateLimit` headers on responses",
          "The contract appendix of 15 June 2026 lists sub-processors by purpose and region, and the security page states hosting in France"
        ],
        "weaknesses": [
          "No operation runs, previews or approves a payroll. The API reads payroll status, payslips and accounting exports",
          "The partner guides say PayFit is temporarily not accepting new integration requests, with no reopening date",
          "The webhook guide documents a call that sends `clientSecret` and `clientId` in the URL query string",
          "No idempotency keys, no official SDK and no MCP server were found in the reviewed documentation",
          "Fifteen of 31 operations are France-only and two are UK-only, including contract creation and both accounting exports"
        ],
        "agentNotes": [
          "Have a company admin create the key at app.payfit.com/integrations/hub/api with only the scopes the task needs. The key is shown once",
          "POST the key to `https://oauth.payfit.com/introspect` to get `company_id`, then call `https://partner-api.payfit.com/companies/{companyId}/...`",
          "Page lists with `nextPageToken` and `maxResults`, which defaults to 10 and stops at 50",
          "Check before repeating a failed POST. There is no idempotency key, and `POST /absences` creates an absence that is already validated",
          "A collaborator or contract created through the API stays incomplete until an HR admin finishes it in the PayFit app, and a new contract takes 2 to 5 minutes to appear"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 55.5
          }
        ],
        "editorialScores": {
          "ergonomics": 51,
          "maintenance": 28,
          "payments": 10,
          "reliability": 79,
          "schema": 78,
          "security": 51,
          "transparency": 56
        },
        "provenanceScore": 84
      },
      "connect": {
        "http": "curl --request GET --url https://partner-api.payfit.com/companies/{companyId} --header 'Authorization: Bearer YOUR-API-KEY'"
      },
      "letme": {
        "capability": "https://letme.dev/payroll.employees",
        "tool": "https://letme.dev/payfit"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "PayFit SAS",
        "domain": "payfit.com",
        "domainRegistered": "2006-11-17",
        "endpointOnVendorDomain": true,
        "terms": "https://payfit.com/general-terms-of-service/",
        "privacy": "https://payfit.com/privacy-policy/",
        "statusPage": "https://status.payfit.com",
        "changelog": "https://developers.payfit.io/changelog",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The French general conditions (last updated 8 September 2026) name Payfit, a société par actions simplifiée registered in Paris under number 813 487 899, at 37-39 avenue Trudaine, 75009 Paris.",
          "The linked terms and privacy policy are the English ones, both last updated 15 June 2026. They name Payfit Ltd, registered in England and Wales under number 11623900, which contracts with UK clients. French clients contract under https://payfit.com/fr/conditions-generales-de-services/.",
          "No separate API terms were found. Clause 1.4 of the terms covers third-party services connected through the Payfit API, and the appendix lists access to the API as a plan item.",
          "The API answers at partner-api.payfit.com and OAuth at oauth.payfit.com. The documentation is on developers.payfit.io, a second domain.",
          "https://payfit.com/.well-known/security.txt returned 404. The security contact page gives security@payfit.com and a PGP key whose stated expiry is 27 August 2026.",
          "RDAP for payfit.com gives a registration date of 2006-11-17 and Gandi SAS as registrar."
        ],
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/payfit.json",
      "live": {
        "slug": "payfit",
        "vendorStatus": {
          "page": "https://status.payfit.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:51:07.656388577Z"
        },
        "pages": [
          {
            "url": "https://developers.payfit.io/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:36:07.999420808Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1d2fd9ebd502"
          },
          {
            "url": "https://payfit.com/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:43:03.382729135Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "99ea5438a60b"
          },
          {
            "url": "https://payfit.com/general-terms-of-service/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:43:01.261262581Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "816c4583c340"
          }
        ],
        "updatedAt": "2026-10-10T00:51:07.656388577Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Check Technologies, Inc.",
        "b": "PayFit SAS",
        "name": "Vendor"
      },
      {
        "a": "https://api.checkhq.com",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Check's terms of service and partner agreement. The MCP server and CLI on GitHub are MIT",
        "b": "Proprietary service under PayFit's general terms of service",
        "name": "Licence"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-07",
        "b": "2026-07-23",
        "name": "Last release"
      },
      {
        "a": "2021-09-03",
        "b": "2026-06-15",
        "name": "Terms last updated"
      },
      {
        "a": "2024-04-18",
        "b": "2026-06-15",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "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": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "18 stars",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Check scores 67.5 (B) on agent readiness against PayFit's 55.5 (C), and leads in 4 of 7 scored categories. PayFit leads on payments \u0026 pricing and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Check or PayFit?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Check and PayFit need an API key?"
      },
      {
        "answer": "Check has a hosted endpoint at https://api.checkhq.com. No hosted endpoint is listed for PayFit.",
        "question": "Can an agent call Check and PayFit without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 83 against 51",
          "Security \u0026 auth, 74 against 51",
          "Maintenance \u0026 community, 72 against 28"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "A software platform that wants to sell US payroll inside its own product and can sign a partnership, with Check handling tax calculation, money movement and filings.",
        "slug": "check-payroll",
        "watchFor": "No public price and no self-serve signup. The documentation says to request an API key through Check's sales contact"
      },
      {
        "aheadOn": [
          "Payments \u0026 pricing, 10 against 5",
          "Transparency \u0026 trust, 70 against 62"
        ],
        "also": null,
        "goodFor": "An agent working for an employer that already runs payroll on PayFit in France, the UK or Spain and needs employees, contracts, payslips, absences or the payroll journal.",
        "slug": "payfit",
        "watchFor": "No operation runs, previews or approves a payroll. The API reads payroll status, payslips and accounting exports"
      }
    ],
    "job": {
      "capability": "payroll.employees",
      "name": "Payroll records"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/argyle-vs-check-payroll.json",
        "title": "Argyle vs Check",
        "url": "https://www.anchorterminal.com/compare/argyle-vs-check-payroll"
      },
      {
        "json": "https://www.anchorterminal.com/compare/argyle-vs-payfit.json",
        "title": "Argyle vs PayFit",
        "url": "https://www.anchorterminal.com/compare/argyle-vs-payfit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/check-payroll-vs-finch.json",
        "title": "Check vs Finch",
        "url": "https://www.anchorterminal.com/compare/check-payroll-vs-finch"
      },
      {
        "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-payfit.json",
        "title": "Employment Hero Payroll vs PayFit",
        "url": "https://www.anchorterminal.com/compare/employment-hero-vs-payfit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/everee-vs-payfit.json",
        "title": "Everee vs PayFit",
        "url": "https://www.anchorterminal.com/compare/everee-vs-payfit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/finch-vs-payfit.json",
        "title": "Finch vs PayFit",
        "url": "https://www.anchorterminal.com/compare/finch-vs-payfit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gusto-vs-payfit.json",
        "title": "Gusto vs PayFit",
        "url": "https://www.anchorterminal.com/compare/gusto-vs-payfit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paychex-vs-payfit.json",
        "title": "Paychex vs PayFit",
        "url": "https://www.anchorterminal.com/compare/paychex-vs-payfit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/payfit-vs-salsa.json",
        "title": "PayFit vs Salsa",
        "url": "https://www.anchorterminal.com/compare/payfit-vs-salsa"
      },
      {
        "json": "https://www.anchorterminal.com/compare/payfit-vs-worklio.json",
        "title": "PayFit vs Worklio",
        "url": "https://www.anchorterminal.com/compare/payfit-vs-worklio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/payfit-vs-zeal.json",
        "title": "PayFit vs Zeal",
        "url": "https://www.anchorterminal.com/compare/payfit-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/check-payroll-vs-everee.json",
        "title": "Check vs Everee",
        "url": "https://www.anchorterminal.com/compare/check-payroll-vs-everee"
      },
      {
        "json": "https://www.anchorterminal.com/compare/check-payroll-vs-gusto.json",
        "title": "Check vs Gusto",
        "url": "https://www.anchorterminal.com/compare/check-payroll-vs-gusto"
      },
      {
        "json": "https://www.anchorterminal.com/compare/check-payroll-vs-salsa.json",
        "title": "Check vs Salsa",
        "url": "https://www.anchorterminal.com/compare/check-payroll-vs-salsa"
      },
      {
        "json": "https://www.anchorterminal.com/compare/check-payroll-vs-worklio.json",
        "title": "Check vs Worklio",
        "url": "https://www.anchorterminal.com/compare/check-payroll-vs-worklio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/check-payroll-vs-zeal.json",
        "title": "Check vs Zeal",
        "url": "https://www.anchorterminal.com/compare/check-payroll-vs-zeal"
      }
    ],
    "scores": [
      {
        "by": 1,
        "check-payroll": 80,
        "edge": "check-payroll",
        "key": "reliability",
        "name": "Reliability",
        "payfit": 79,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 0,
        "check-payroll": 78,
        "edge": "",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "payfit": 78,
        "weight": 13
      },
      {
        "by": 32,
        "check-payroll": 83,
        "edge": "check-payroll",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "payfit": 51,
        "weight": 13
      },
      {
        "by": 23,
        "check-payroll": 74,
        "edge": "check-payroll",
        "key": "security",
        "name": "Security \u0026 auth",
        "payfit": 51,
        "weight": 14
      },
      {
        "by": 5,
        "check-payroll": 5,
        "edge": "payfit",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "payfit": 10,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 44,
        "check-payroll": 72,
        "edge": "check-payroll",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "payfit": 28,
        "weight": 7
      },
      {
        "by": 8,
        "check-payroll": 62,
        "edge": "payfit",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "payfit": 70,
        "weight": 7
      }
    ],
    "summary": "Check scores 67.5 (B) on agent readiness against PayFit's 55.5 (C), and leads in 4 of 7 scored categories. PayFit leads on payments \u0026 pricing and transparency \u0026 trust. Both do payroll records.",
    "verdicts": {
      "check-payroll": "Graded as embedded payroll through a partner API key, not access to an existing employer's payroll account. The API has idempotency keys on writes, a required preview before approval and queryable request logs. No price is public, a sandbox key comes through Check's sales team, and one API key carries the whole partner account.",
      "payfit": "A public OpenAPI 3.0 file, llms.txt and scoped keys let a paying customer's agent read payroll outputs and write absences. The API cannot run or approve a payroll, new partner integrations are not being accepted, and no idempotency keys or SDKs were found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/check-payroll-vs-payfit",
    "json": "https://www.anchorterminal.com/compare/check-payroll-vs-payfit.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/check-payroll-vs-payfit.md",
    "slim": "https://www.anchorterminal.com/compare/check-payroll-vs-payfit.min.md"
  },
  "markdown": "Check scores 67.5 (B) on agent readiness against PayFit's 55.5 (C), and leads in 4 of 7 scored categories. PayFit leads on payments \u0026 pricing and transparency \u0026 trust. Both do payroll records.\n\n- Check: grade B, 67.5/100, rank #252 of 950. Markdown https://www.anchorterminal.com/tools/check-payroll.md · JSON https://www.anchorterminal.com/api/v1/tools/check-payroll.json\n- PayFit: grade C, 55.5/100, rank #656 of 950. Markdown https://www.anchorterminal.com/tools/payfit.md · JSON https://www.anchorterminal.com/api/v1/tools/payfit.json\n- Best payroll APIs and embedded payroll for AI agents: https://www.anchorterminal.com/best/payroll/index.md\n- All 55 payroll comparisons: https://www.anchorterminal.com/compare/payroll/index.md\n\n## Which one, for what\n\n### Check (B)\n\nGood for: A software platform that wants to sell US payroll inside its own product and can sign a partnership, with Check handling tax calculation, money movement and filings.\n\nAhead on:\n- Agent ergonomics, 83 against 51\n- Security \u0026 auth, 74 against 51\n- Maintenance \u0026 community, 72 against 28\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: No public price and no self-serve signup. The documentation says to request an API key through Check's sales contact\n\n### PayFit (C)\n\nGood for: An agent working for an employer that already runs payroll on PayFit in France, the UK or Spain and needs employees, contracts, payslips, absences or the payroll journal.\n\nAhead on:\n- Payments \u0026 pricing, 10 against 5\n- Transparency \u0026 trust, 70 against 62\n\nWatch for: No operation runs, previews or approves a payroll. The API reads payroll status, payslips and accounting exports\n\n\n## Score by category\n\n| Category | Weight | Check | PayFit | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 79 | Check +1 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 78 | 78 | even |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 51 | Check +32 |\n| Security \u0026 auth | 14% (17.5 this run) | 74 | 51 | Check +23 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 5 | 10 | PayFit +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 72 | 28 | Check +44 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 62 | 70 | PayFit +8 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **67.5 · B** | **55.5 · C** | |\n\n## Facts side by side\n\n| Fact | Check | PayFit |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Check Technologies, Inc. | PayFit SAS |\n| Hosted endpoint | `https://api.checkhq.com` | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under Check's terms of service and partner agreement. The MCP server and CLI on GitHub are MIT | Proprietary service under PayFit's general terms of service |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-07 | 2026-07-23 |\n| Terms last updated | 2021-09-03 | 2026-06-15 |\n| Privacy policy last updated | 2024-04-18 | 2026-06-15 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | not found in the text | yes |\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 | not found in the text |\n| Popularity | 18 stars | none |\n\n## Verdicts\n\n**Check.** Graded as embedded payroll through a partner API key, not access to an existing employer's payroll account. The API has idempotency keys on writes, a required preview before approval and queryable request logs. No price is public, a sandbox key comes through Check's sales team, and one API key carries the whole partner account.\n\n**PayFit.** A public OpenAPI 3.0 file, llms.txt and scoped keys let a paying customer's agent read payroll outputs and write absences. The API cannot run or approve a payroll, new partner integrations are not being accepted, and no idempotency keys or SDKs were found.\n\n## Before you call either\n\n### Check\n\n1. Use https://sandbox.checkhq.com with the sandbox key and https://api.checkhq.com with the production key. A key is not valid across environments\n2. Preview a payroll before approving it, then pass `preview_started_at` to POST /payrolls/{id}/approve so a stale preview fails with 409\n3. Send `X-Idempotency-Key` on every write. Keys expire after 24 hours, so list the resource before retrying later than that\n4. On 429 wait for `Retry-After`. The limit is 10 requests a second in sandbox and for partners paying fewer than 1,000 payees a month, with 100 concurrent requests\n5. Connect the MCP server with `?read_only=true` or `X-MCP-Readonly: true` unless writes are intended. In production, approving a payroll moves money\n\n### PayFit\n\n1. Have a company admin create the key at app.payfit.com/integrations/hub/api with only the scopes the task needs. The key is shown once\n2. POST the key to `https://oauth.payfit.com/introspect` to get `company_id`, then call `https://partner-api.payfit.com/companies/{companyId}/...`\n3. Page lists with `nextPageToken` and `maxResults`, which defaults to 10 and stops at 50\n4. Check before repeating a failed POST. There is no idempotency key, and `POST /absences` creates an absence that is already validated\n5. A collaborator or contract created through the API stays incomplete until an HR admin finishes it in the PayFit app, and a new contract takes 2 to 5 minutes to appear\n\n## Questions\n\n### Which is better for AI agents, Check or PayFit?\n\nCheck scores 67.5 (B) on agent readiness against PayFit's 55.5 (C), and leads in 4 of 7 scored categories. PayFit leads on payments \u0026 pricing and transparency \u0026 trust.\n\n### Do Check and PayFit need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Check and PayFit without installing anything?\n\nCheck has a hosted endpoint at https://api.checkhq.com. No hosted endpoint is listed for PayFit.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/check-payroll-vs-payfit.json, and with the fewest tokens: https://www.anchorterminal.com/compare/check-payroll-vs-payfit.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"check-payroll\", \"b\": \"payfit\"}`. From a terminal: `anchor compare check-payroll payfit`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/check-payroll.json and https://www.anchorterminal.com/api/v1/tools/payfit.json\n\n## Other comparisons with Check or PayFit\n\n- [Argyle vs Check](https://www.anchorterminal.com/compare/argyle-vs-check-payroll.md)\n- [Argyle vs PayFit](https://www.anchorterminal.com/compare/argyle-vs-payfit.md)\n- [Check vs Finch](https://www.anchorterminal.com/compare/check-payroll-vs-finch.md)\n- [Check vs Paychex](https://www.anchorterminal.com/compare/check-payroll-vs-paychex.md)\n- [Employment Hero Payroll vs PayFit](https://www.anchorterminal.com/compare/employment-hero-vs-payfit.md)\n- [Everee vs PayFit](https://www.anchorterminal.com/compare/everee-vs-payfit.md)\n- [Finch vs PayFit](https://www.anchorterminal.com/compare/finch-vs-payfit.md)\n- [Gusto vs PayFit](https://www.anchorterminal.com/compare/gusto-vs-payfit.md)\n- [Paychex vs PayFit](https://www.anchorterminal.com/compare/paychex-vs-payfit.md)\n- [PayFit vs Salsa](https://www.anchorterminal.com/compare/payfit-vs-salsa.md)\n- [PayFit vs Worklio](https://www.anchorterminal.com/compare/payfit-vs-worklio.md)\n- [PayFit vs Zeal](https://www.anchorterminal.com/compare/payfit-vs-zeal.md)\n- [Check vs Employment Hero Payroll](https://www.anchorterminal.com/compare/check-payroll-vs-employment-hero.md)\n- [Check vs Everee](https://www.anchorterminal.com/compare/check-payroll-vs-everee.md)\n- [Check vs Gusto](https://www.anchorterminal.com/compare/check-payroll-vs-gusto.md)\n- [Check vs Salsa](https://www.anchorterminal.com/compare/check-payroll-vs-salsa.md)\n- [Check vs Worklio](https://www.anchorterminal.com/compare/check-payroll-vs-worklio.md)\n- [Check vs Zeal](https://www.anchorterminal.com/compare/check-payroll-vs-zeal.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "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": "Check vs PayFit",
        "url": ""
      }
    ],
    "description": "Check scores 67.5 (B) to PayFit's 55.5 (C) for payroll records. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Check B 67.5",
      "PayFit C 55.5",
      "scores"
    ],
    "h1": "Check vs PayFit",
    "image": "https://www.anchorterminal.com/assets/og/compare-check-payroll-vs-payfit.png",
    "path": "/compare/check-payroll-vs-payfit",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Check vs PayFit for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/check-payroll-vs-payfit"
  },
  "tokens": {
    "markdown": 2250,
    "slim": 680
  },
  "version": 1
}
