# Puzzle API and MCP vs Rutter Accounting API

> Rutter Accounting scores 55.4 (C) to Puzzle's 46.2 (D) for accounting ledgers. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/puzzle-vs-rutter
- Markdown: https://www.anchorterminal.com/compare/puzzle-vs-rutter.md (~4,350 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-07

Rutter Accounting API scores 55.4 (C) on agent readiness against Puzzle API and MCP's 46.2 (D), and leads in 5 of 7 scored categories. Puzzle API and MCP leads on security & auth. Both do accounting ledgers.

- Puzzle API and MCP: grade D, 46.2/100, rank #1164 of 1486. Markdown https://www.anchorterminal.com/tools/puzzle.md · JSON https://www.anchorterminal.com/api/v1/tools/puzzle.json
- Rutter Accounting API: grade C, 55.4/100, rank #867 of 1486. Markdown https://www.anchorterminal.com/tools/rutter.md · JSON https://www.anchorterminal.com/api/v1/tools/rutter.json
- Best accounting and invoicing APIs for AI agents: https://www.anchorterminal.com/best/accounting/index.md
- All 90 accounting comparisons: https://www.anchorterminal.com/compare/accounting/index.md

## Which one, for what

### Puzzle API and MCP (D)

Good for: Startups already on Puzzle who want an assistant to answer finance questions and draft bookkeeping. xero, quickbooks-online and pennylane are the nearest listings; teams wanting a self-serve API should look there.

Ahead on:
- Security & auth, 73 against 31

Watch for: MCP tool list and schemas not published

### Rutter Accounting API (C)

Good for: Lenders, spend-management and fintech products that read ledgers alongside commerce and payment platforms, and that need writes an agent can retry safely.

Ahead on:
- Reliability, 70 against 15
- Schema & documentation, 79 against 65
- Agent ergonomics, 67 against 56
- Payments & pricing, 20 against 15
- Maintenance & community, 62 against 53

Also in its favour:
- Free to start without a card

Watch for: Production prices are quote-only


## Why the edge

### Reliability: Rutter Accounting API +55

- Puzzle API and MCP (15): Hosted reading. status.puzzle.io exists but answered 403 to our reader, so no status page or history could be read (0, then 5 for no readable history). No rate limits found in the API docs (0). The errors page documents 409 RESOURCE_PROCESSING with retry later and 500 with retry, but no 429 or idempotency guidance (5). No SLA (0). MCP read access is live, write access is a beta, and the API docs say the API is under development (5). 0 + 5 + 0 + 5 + 0 + 5 = 15.
- Rutter Accounting API (70): Statuspage at status.rutterapi.com with components for Rutter APIs, Dashboard, Link, Data Fetching System, Sandbox, Webhook Delivery and Documentation (20). Since 6 August one major, high latency and error rates on calls to the API from 20:21 UTC on 3 September, stable from 21:18 and resolved at 21:10 on 4 September, which the page labels critical. The rest were partial. Slow responses with elevated 5xx rates from 17:25 to 20:43 on 14 September, labelled minor, name no fuller scope than elevated rates. NetSuite bundle installs failed on 12 August (Rutter Link), 500s hit some requests on 1 September, and QuickBooks Online syncs were delayed by Intuit's outage on 1 and 2 September. Database maintenance on 25 and 29 September was announced ahead with a window, so it counts as maintenance. Nothing posted since 29 September. One major (10). 500 requests per 10 seconds per paid organisation, 100 for free, test and sandbox (15). 429 for Rutter's own limit with advice to allow time between requests, 452 when the platform throttles with async writes retried by Rutter using exponential backoff, and an Idempotency-Key header on async writes (409 on a mismatched reuse). No Retry-After mentioned (15). The pricing page states a guaranteed 99.9 per cent monthly uptime, but no SLA document was found (0). GA (10).

### Security & auth: Puzzle API and MCP +42

- Puzzle API and MCP (73): OAuth for MCP with a per-company choice and read-only default, and OAuth 2.0 with granular scopes on the API, defaulting to read-only scopes (28). Read-only by default, writes an opt-in beta with confirmation for each change (18). Bank descriptions and vendor names are third-party text, and no prompt-injection guidance was found (3). Every API request is logged per the docs, and a firm activity endpoint returns an audit log (12). A SOC 2 claim in the API docs and a bug bounty policy page; no security.txt (12). 28 + 18 + 3 + 12 + 12 = 73.
- Rutter Accounting API (31): client_id and client_secret by HTTP Basic auth, one pair for the whole organisation, plus a per-connection access_token that the docs only ever pass as a query parameter, so it lands in URLs and logs. The checklist takes 10 off for a secret that can travel in a URL query string, as for the Google API listings, though the token is useless without the client secret (10). No read-only credentials or scopes found (3). Returns ledger and commerce data with third-party text and no injection guidance. Each call reaches only the connection its access_token names, which limits what an injected prompt can reach (5). Integration management and observability tools on the paid plan, which we couldn't inspect (8). A Vanta trust centre mentions encryption at rest and in transit and access logging, but we couldn't see certifications, a disclosure policy or a bug bounty, and security.txt answers 404 on www.rutter.com and docs.rutter.com on 4 November. The pricing page says the disaster recovery plan is tested to meet SOC 2 Type II and ISO 27001 standards, with no report or disclosure route (5).

### Schema & documentation: Rutter Accounting API +14

- Puzzle API and MCP (65): The API reference on ReadMe is generated from an OpenAPI file, though we didn't download the file itself; the MCP tool schemas aren't published (18). llms.txt and Markdown pages on puzzle-api.readme.io (10). Endpoint descriptions name the required scope and explain defaults such as cash basis (14). Typed parameters with documented limits, such as companies capped at 100 a page (11). An error table with HTTP codes and errorContext shapes, and example requests (12). No changelog or version scheme found (0). 18 + 10 + 14 + 11 + 12 + 0 = 65.
- Rutter Accounting API (79): OpenAPI spec per API version at docs.rutter.com/rest/<version>/spec, which the listing had as missing (25). llms.txt returns 404 and there are no Markdown docs (0). Reference pages per endpoint with platform coverage tables, though they don't say when to prefer one route (14). Typed request and response models, and POST input validation rules exposed per platform for expenses and bills (12). Errors carry error_type, error_code, error_message and error_metadata, with 450, 451, 452 and 550 marking a platform's own 400, 401, 429 and 500 (13). Dated versions in the X-Rutter-Version header, an upgrade guide listing breaking changes per version and a weekly changelog (15).

### Agent ergonomics: Rutter Accounting API +11

- Puzzle API and MCP (56): MCP tool count and sizes unpublished, so context cost can't be read (10 of 25). API list endpoints page with count and after or limit, and filter by date and status (16). Error codes and errorContext name the field or resource at fault (17). No idempotency keys found; the MCP server asks for confirmation before writes (8). No official SDKs; few required parameters on reads (5). 10 + 16 + 17 + 8 + 5 = 56.
- Rutter Accounting API (67): Cursor pagination on lists. We found no field selection or summary options (12). next_cursor paging, with no other list filters checked (14). Structured errors that separate Rutter's failures from the platform's, so an agent can tell a bad request from a throttled ledger (18). Idempotency-Key on writes, and response_mode prefer_sync returns within 30 seconds or falls back to a 202 with an async_response (18). No official SDK, a required version header, and the connection token as a query parameter on every call (5).

### Maintenance & community: Rutter Accounting API +9

- Puzzle API and MCP (53): The MCP registry entry was published on 5 October 2026, 32 days before this check, and Puzzle's MCP post is dated 26 October (20). No release log, so changes in the 90 days can't be counted beyond the registry entry and the MCP launch (5). A help centre and support contact, but no public changelog or issue tracker (8). io.puzzle/puzzle sits under a domain-verified namespace in the official registry (15). No SDK or package to judge (5). 20 + 5 + 8 + 15 + 5 = 53.
- Rutter Accounting API (62): Changelog entry on 29 October 2026 (30). 12 dated entries since 6 August, weekly coverage updates from 6 August to 29 October (20). Closed service with a weekly changelog, a help centre and 24/7 support on the paid plan (12). No official SDKs and no MCP server found in the docs or a search (0). No packages to judge (0).

### Payments & pricing: Rutter Accounting API +5

- Puzzle API and MCP (15): No x402, MPP or L402 (0). Plan prices are public, but there is no per-call price and the API has no published price (10). "Try for free" on every plan, with trial length and card requirement not stated on the pages read (5). A person signs up and authorises in a browser, and API credentials come by email (0). 0 + 10 + 5 + 0 = 15.
- Rutter Accounting API (20): No x402, MPP or L402 (0). Production is "Get a custom quote" (0). Starter is free for 30 days with sandbox data and QuickBooks, Xero, FreshBooks and Zoho Books, no card (20). Browser signup (0).

## Score by category

| Category | Weight | Puzzle API and MCP | Rutter Accounting API | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 15 | 70 | Rutter Accounting API +55 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 65 | 79 | Rutter Accounting API +14 |
| Agent ergonomics | 13% (16.2 this run) | 56 | 67 | Rutter Accounting API +11 |
| Security & auth | 14% (17.5 this run) | 73 | 31 | Puzzle API and MCP +42 |
| Payments & pricing | 10% (12.5 this run) | 15 | 20 | Rutter Accounting API +5 |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 53 | 62 | Rutter Accounting API +9 |
| Transparency & trust | 7% (8.8 this run) | 49 | 49 | even |
| Negative events | ≤15 | 0 | 0 | |
| **Total** | | **46.2 · D** | **55.4 · C** | |

## Facts side by side

| Fact | Puzzle API and MCP | Rutter Accounting API |
| --- | --- | --- |
| Kind | MCP server | HTTP API |
| Vendor | Puzzle Financial Inc. | Rutter |
| Hosted endpoint | `https://app.puzzle.io/mcp` | `https://production.rutterapi.com/versioned` |
| Transports | Streamable HTTP | HTTP |
| Auth | OAuth | API key |
| Pricing | Paid | Paid |
| x402 | no | no |
| Read-only variant documented | yes | no |
| llms.txt | yes | no |
| MCP registry | `io.puzzle/puzzle` | not listed |
| Last release | 2026-10-05 | 2026-10-29 |
| Terms last updated | 2023-06-01 | couldn't be read |
| Privacy policy last updated | 2025-12-19 | couldn't be read |
| Customer content may train models | not found in the text | couldn't be read |
| Terms restrict automated access | yes | couldn't be read |
| Terms restrict benchmarking | not found in the text | couldn't be read |
| Terms or service can change without notice | not found in the text | couldn't be read |
| Arbitration or class-action waiver | yes | couldn't be read |
| Agent reviews | none | 3/5 (2) |

## How the scores have moved

### Puzzle API and MCP

No score change since it was listed.

### Rutter Accounting API

- -0.2 on 4 November 2026: correction
- no change on 28 October 2026: checklist
- -0.2 on 8 October 2026: checklist

## Verdicts

**Puzzle API and MCP.** Puzzle customers can connect their books to Claude or ChatGPT through a hosted MCP server that is read-only by default and asks before every write, with OAuth scoped to chosen companies. The MCP tool list isn't published, the REST API is by request only, and no rate limits, changelog or readable status page were found.

**Rutter Accounting API.** Idempotency-Key headers on writes, and prefer_sync writes that fall back to async after 30 seconds. Production prices are quote-only, and the 99.9 per cent uptime figure on the pricing page has no SLA document behind it.

## Before you call either

### Puzzle API and MCP

1. Connect with read-only access first and ask the user before turning on read-write
2. Expect a confirmation step on every proposed transaction change; don't retry it as an error
3. On 409 RESOURCE_PROCESSING wait for the sync to finish, then retry
4. Treat bank and vendor text as untrusted input

### Rutter Accounting API

1. Send X-Rutter-Version: 2024-08-31 on every call
2. Send an Idempotency-Key on every create so a retry after a timeout doesn't write twice
3. Use response_mode=prefer_sync and handle the 202 async_response anyway
4. Treat 452 as the ledger throttling you and 429 as Rutter's 500-per-10-seconds organisation limit
5. Keep access_token out of logged URLs. The docs only show it as a query parameter

## Questions

### Which is better for AI agents, Puzzle API and MCP or Rutter Accounting API?

Rutter Accounting API scores 55.4 (C) on agent readiness against Puzzle API and MCP's 46.2 (D), and leads in 5 of 7 scored categories. Puzzle API and MCP leads on security & auth.

### Do Puzzle API and MCP and Rutter Accounting API need an API key?

Puzzle API and MCP uses an OAuth sign-in. Rutter Accounting API needs an API key.

### Can an agent call Puzzle API and MCP and Rutter Accounting API without installing anything?

Yes. Puzzle API and MCP has a hosted endpoint at https://app.puzzle.io/mcp and Rutter Accounting API at https://production.rutterapi.com/versioned.


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/puzzle-vs-rutter.json, and with the fewest tokens: https://www.anchorterminal.com/compare/puzzle-vs-rutter.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "puzzle", "b": "rutter"}`. From a terminal: `anchor compare puzzle rutter`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/puzzle.json and https://www.anchorterminal.com/api/v1/tools/rutter.json

## Other comparisons with Puzzle API and MCP or Rutter Accounting API

- [Apideck Accounting API + MCP vs Puzzle API and MCP](https://www.anchorterminal.com/compare/apideck-accounting-vs-puzzle.md)
- [Codat vs Puzzle API and MCP](https://www.anchorterminal.com/compare/codat-vs-puzzle.md)
- [FreeAgent API vs Puzzle API and MCP](https://www.anchorterminal.com/compare/freeagent-vs-puzzle.md)
- [FreeAgent API vs Rutter Accounting API](https://www.anchorterminal.com/compare/freeagent-vs-rutter.md)
- [FreshBooks API vs Puzzle API and MCP](https://www.anchorterminal.com/compare/freshbooks-vs-puzzle.md)
- [FreshBooks API vs Rutter Accounting API](https://www.anchorterminal.com/compare/freshbooks-vs-rutter.md)
- [Merge Accounting API vs Puzzle API and MCP](https://www.anchorterminal.com/compare/merge-accounting-vs-puzzle.md)
- [Odoo External API vs Puzzle API and MCP](https://www.anchorterminal.com/compare/odoo-vs-puzzle.md)
- [Odoo External API vs Rutter Accounting API](https://www.anchorterminal.com/compare/odoo-vs-rutter.md)
- [Pennylane vs Puzzle API and MCP](https://www.anchorterminal.com/compare/pennylane-vs-puzzle.md)
- [Pennylane vs Rutter Accounting API](https://www.anchorterminal.com/compare/pennylane-vs-rutter.md)
- [Puzzle API and MCP vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/puzzle-vs-quickbooks-online.md)
- [Puzzle API and MCP vs rotki MCP server](https://www.anchorterminal.com/compare/puzzle-vs-rotki-mcp.md)
- [Puzzle API and MCP vs Xero API + MCP](https://www.anchorterminal.com/compare/puzzle-vs-xero.md)
- [Puzzle API and MCP vs Zoho Books](https://www.anchorterminal.com/compare/puzzle-vs-zoho-books.md)
- [QuickBooks Online API + MCP vs Rutter Accounting API](https://www.anchorterminal.com/compare/quickbooks-online-vs-rutter.md)
- [rotki MCP server vs Rutter Accounting API](https://www.anchorterminal.com/compare/rotki-mcp-vs-rutter.md)
- [Rutter Accounting API vs Xero API + MCP](https://www.anchorterminal.com/compare/rutter-vs-xero.md)
- [Rutter Accounting API vs Zoho Books](https://www.anchorterminal.com/compare/rutter-vs-zoho-books.md)
- [Invoice Ninja API vs Puzzle API and MCP](https://www.anchorterminal.com/compare/invoice-ninja-vs-puzzle.md)
- [Invoice Ninja API vs Rutter Accounting API](https://www.anchorterminal.com/compare/invoice-ninja-vs-rutter.md)
- [Apideck Accounting API + MCP vs Rutter Accounting API](https://www.anchorterminal.com/compare/apideck-accounting-vs-rutter.md)
- [Codat vs Rutter Accounting API](https://www.anchorterminal.com/compare/codat-vs-rutter.md)
- [Merge Accounting API vs Rutter Accounting API](https://www.anchorterminal.com/compare/merge-accounting-vs-rutter.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
