# Check (slim) > 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. - Full: https://www.anchorterminal.com/tools/check-payroll.md (~7,750 tokens) · this version ~1,980 tokens · JSON https://www.anchorterminal.com/tools/check-payroll.json · canonical https://www.anchorterminal.com/tools/check-payroll - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-08 **B · 67.5/100 · rank #193 of 629 · #2 in Payroll infrastructure · not agent-ready · confidence medium** Assessment: 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. ## Facts - Kind: HTTP API · vendor: Check Technologies, Inc. · category: Payroll infrastructure · legal entity: Check Technologies, Inc. · provenance 86/100 - Endpoint: `https://api.checkhq.com` (HTTP) - Auth: OAuth or key · pricing: Paid · x402: no · licence: Proprietary service under Check's terms of service and partner agreement. The MCP server and CLI on GitHub are MIT - Probe metrics: not measured yet (probes haven't run) - Surface graded: The REST API used by a software platform under an embedded-payroll partnership, with the hosted MCP server as a second route to the same endpoints. Check has no API for reaching an existing employer's payroll account outside a partner platform - Base URLs: https://sandbox.checkhq.com (sandbox) and https://api.checkhq.com (production). MCP at https://mcp.sandbox.checkhq.com/check/mcp and https://mcp.checkhq.com/check/mcp - Credentials: Partner API key as a Bearer token, one per environment. Unused keys expire, last activity is shown, and IP restrictions are available through the account team. Integration partners receive OAuth access and refresh tokens limited to one employer and one permission level. Hosted MCP also accepts a Console OAuth login - Payroll flow: Create a payroll, add payroll items and contractor payments, preview (synchronous up to 500 of each, asynchronous up to 2,500), approve, and reopen a pending payroll to edit it. Approval needs a succeeded preview - Rate limits: 10, 20, 40 or 80 requests a second by payees paid in the prior month (under 1,000, 1,000 to 10,000, 10,000 to 50,000, 50,000 and over), 100 concurrent requests, 10 a second in sandbox. 429 with `Retry-After` - Pagination: Cursor pagination with `next` and `previous` URLs. Default page size 25, with `limit` up to 100 or 500 on 19 listed endpoints - Idempotency: `X-Idempotency-Key` header. The first response is stored for 24 hours and replayed, including 500 errors - Errors: JSON envelope with `type`, `message` and optional `input_errors` carrying `field` and `field_path`. A published table of error types (https://docs.checkhq.com/reference/error-codes) - Versioning: Dated versions through the `Check-Version` header, with an account default. Six versions since 2021-01-15, the latest 2025-01-01 (https://docs.checkhq.com/page/api-changelog) - Logs: GET /logs and GET /logs/{id}, `X-Request-Log-Id` on every response, and an API Logs tab in Console covering 14 days - MCP server and CLI: check-technologies/mcp-server-check, MIT, Python 3.10 or later, version 0.1.0, installed from a git clone with uv. 270 tools in 18 toolsets behind `search_tools`, `run_tool` and `list_toolsets`. Read-only mode, toolset and tool filters, and `CHECK_CONFIRM_DESTRUCTIVE` - Sensitive data: SSNs and bank account numbers are returned only by the Sensitive Data API, which needs Check's approval, MFA for all users and additional terms - Certifications: SOC 2 Type II per checkhq.com/company/security. Bug bounty through Federacy. Money transmitter licences in 50 US states and DC - Status: status.checkhq.com on Atlassian Statuspage with four components (API, Console, Onboard, Payments) - Scores: Reliability 80, Performance pending, Schema & documentation 78, Agent ergonomics 83, Security & auth 74, Payments & pricing 5, Task success pending, Maintenance & community 72, Transparency & trust 62 · total over the 7 assessed categories - Why: Reliability, Read with the hosted lines and scored on the REST API under an embedded-payroll partnership. · Schema & documentation, Each reference page embeds an OpenAPI 3.1 fragment for its one operation, with typed parameters and request bodies. · Agent ergonomics, `limit` sizes a page, and since version 2025-01-01 payrolls omit items unless `include_items` is set. · Security & auth, A partner API key in the `Authorization` header, one per environment, carrying the whole partner account. · Payments & pricing, Read with the hosted rubric. · Maintenance & community, The product changelog's latest entry is 10 September 2026 and the MCP server repository's latest commit 7 October 2026 (30). · Transparency & trust, Closed service. - Sources: 23, open questions: 7, both in the full twin - Capabilities: payroll.run, payroll.employees, payroll.embedded, payroll.tax-filing, payroll.contractors - JSON: https://www.anchorterminal.com/api/v1/tools/check-payroll.json - Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/check-payroll.svg` or a link to https://www.anchorterminal.com/tools/check-payroll from a page on checkhq.com or one of its subdomains, or the README of github.com/check-technologies/mcp-server-check, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin. ## Before you call it 1. 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 2. Preview a payroll before approving it, then pass `preview_started_at` to POST /payrolls/{id}/approve so a stale preview fails with 409 3. Send `X-Idempotency-Key` on every write. Keys expire after 24 hours, so list the resource before retrying later than that 4. 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 5. Connect the MCP server with `?read_only=true` or `X-MCP-Readonly: true` unless writes are intended. In production, approving a payroll moves money ## Connect ```bash curl -X POST https://sandbox.checkhq.com/companies \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer ' \ -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."}' ``` ```bash claude mcp add --transport http check https://mcp.sandbox.checkhq.com/check/mcp \ --header "Authorization: Bearer your-api-key-here" ``` Full config and headless snippets are in the full page. Through letme (picks today, calling later): https://letme.dev/check-payroll ## Similar tools | Tool | Grade | Score | Shared capabilities | Slim | | --- | --- | --- | --- | --- | | Gusto | B | 63.3 | payroll.run, payroll.employees, payroll.embedded, payroll.tax-filing, payroll.contractors | https://www.anchorterminal.com/tools/gusto.min.md | | Salsa | D | 46.1 | payroll.run, payroll.embedded, payroll.employees, payroll.tax-filing, payroll.contractors | https://www.anchorterminal.com/tools/salsa.min.md | | Zeal | E | 45.4 | payroll.run, payroll.embedded, payroll.employees, payroll.contractors, payroll.tax-filing | https://www.anchorterminal.com/tools/zeal.min.md | | Finch | BB | 71.6 | payroll.employees, payroll.contractors | https://www.anchorterminal.com/tools/finch.min.md | ## Panel reviews (0, desk reviews from public material, no calls made)