# FreshBooks API vs Puzzle API and MCP

> Puzzle and FreshBooks score within a point of each other for accounting ledgers, 46.2 and 45.4 out of 100. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/freshbooks-vs-puzzle
- Markdown: https://www.anchorterminal.com/compare/freshbooks-vs-puzzle.md (~4,550 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

Puzzle API and MCP and FreshBooks API score within a point of each other on agent readiness, 46.2 (D) and 45.4 (E). FreshBooks API leads on reliability, agent ergonomics, payments & pricing and transparency & trust. Both do accounting ledgers.

- FreshBooks API: grade E, 45.4/100, rank #1195 of 1510. Markdown https://www.anchorterminal.com/tools/freshbooks.md · JSON https://www.anchorterminal.com/api/v1/tools/freshbooks.json
- Puzzle API and MCP: grade D, 46.2/100, rank #1180 of 1510. Markdown https://www.anchorterminal.com/tools/puzzle.md · JSON https://www.anchorterminal.com/api/v1/tools/puzzle.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

### FreshBooks API (E)

Good for: An agent that bills clients, chases invoices and reads the books for a freelancer or small service firm already on FreshBooks.

Ahead on:
- Reliability, 35 against 15
- Agent ergonomics, 61 against 56
- Payments & pricing, 30 against 15
- Transparency & trust, 65 against 49

Watch for: Rate limits have no numbers, status code or headers

### 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:
- Schema & documentation, 65 against 48
- Security & auth, 73 against 57
- Maintenance & community, 53 against 14

Watch for: MCP tool list and schemas not published


## Why the edge

### Maintenance & community: Puzzle API and MCP +39

- FreshBooks API (14): No dated API change found on 1 October, and the docs couldn't be re-read on 5 November (terms pause). The SDK repositories, cloned on 5 November, have no release since @freshbooks/api 4.1.0 on 11 September 2024 and the Python SDK's release/1.2.1 tag of 24 April 2023 (0). Nothing dated in the last 90 days (0). Support by email at api@freshbooks.com and a one-entry changelog, per 1 October (5). Official SDKs exist in two languages but haven't been released in two years (5). Both SDK repositories gained a FreshBooks Global CI workflow on 5 October 2026, committed with "-deploy -playwright -tests", alongside the existing test workflows. The Node repository's last code or dependency change was February 2025 and the Python one's August 2024 (4). 0 + 0 + 5 + 5 + 4 = 14.
- 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.

### Reliability: FreshBooks API +20

- FreshBooks API (35): Per the 1 October check, not re-read on 5 November 2026, because FreshBooks' terms of service (last updated 7 October 2026) bar data mining, robots and similar data gathering on the Site and Services. Statuspage at status.freshbooks.com with history but no API component, so API trouble is reported only as FreshBooks trouble (15). On 1 October the page showed FreshBooks down from 13:44 to 15:38 EDT on 4 August, about two hours. That outage now falls before the 90-day window, which runs from 7 August, but 2 October to 5 November couldn't be read, so the recorded award is kept (10). No numbers, only "rate-limited if too many calls are made within a short period of time" (0). No 429, Retry-After or retry guidance in the limits or errors pages (0). No SLA found (0). GA (10). 15 + 10 + 0 + 0 + 0 + 10 = 35.
- 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.

### Schema & documentation: Puzzle API and MCP +17

- FreshBooks API (48): Per the 1 October check, not re-read on 5 November 2026, because FreshBooks' terms of service (last updated 7 October 2026) bar data mining, robots and similar data gathering on the Site and Services. Per the 1 October check, not re-read on 5 November 2026, because FreshBooks' terms of service (last updated 7 October 2026) bar data mining, robots and similar data gathering on the Site and Services. No OpenAPI spec. A Postman collection is published, which we counted as a partial contract (10). No llms.txt or Markdown docs (0). Plain HTML reference pages per resource that explain the workflow, such as marking an invoice sent before reports count it (13). Field lists per resource, with fewer enums and constraints spelt out than the ledgers here (9). An errors page with numbered codes (1001 RequiredField, 1004 InvalidValue, 1012 UnknownResource) and request examples, but no error body example (11). The "API Changelog" section holds one entry, the 2021 to 2023 move to JWT tokens, and an x-api-version header on journal entries (5). 10 + 0 + 13 + 9 + 11 + 5 = 48. 10 + 0 + 13 + 9 + 11 + 5 = 48.
- 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.

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

- FreshBooks API (57): Per the 1 October check, not re-read on 5 November 2026, because FreshBooks' terms of service (last updated 7 October 2026) bar data mining, robots and similar data gathering on the Site and Services. Per the 1 October check, not re-read on 5 November 2026, because FreshBooks' terms of service (last updated 7 October 2026) bar data mining, robots and similar data gathering on the Site and Services. OAuth 2.0 with read and write scopes per resource (user:invoices:read, user:journal_entries:write), short-lived JWT access tokens and a revoke endpoint. No PKCE mentioned (28). Read-only scopes make a read-only agent possible, and drafts act as a confirmation step for invoices (14). Returns the business's own records plus client-entered text, with no injection guidance (3). No audit log or API activity view found (0). PCI DSS Level 1 with an annual third-party audit and a responsible-disclosure policy. security.txt returned 403 to the 30 September check, and no bug bounty or SOC 2 found (12). 28 + 14 + 3 + 0 + 12 = 57. 28 + 14 + 3 + 0 + 12 = 57.
- 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.

### Transparency & trust: FreshBooks API +16

- FreshBooks API (65): Closed service with dated terms under Ontario law naming 2NDSITE Inc., last updated 7 October 2026 (read on 5 November), and MIT SDKs (15). Per the 1 October check, not re-read on 5 November 2026 (terms pause). The privacy policy is dated 5 February 2026 with a DPO, an EU representative, SCCs and a subprocessor list, but no retention periods, only delete or anonymise when done (20). The terms page says a new privacy policy takes effect on 5 October 2026 for new accounts and 5 November 2026 for existing customers; it couldn't be read. No deprecation policy, and the only changelog entry is the JWT migration (5). A public subprocessor list and Google Cloud Platform hosting stated on the security safeguards page (16). 15 + 20 + 5 + 16 = 56.
- Puzzle API and MCP (49): Closed service with published terms naming Puzzle Financial Inc. (15). A privacy policy effective 19 December 2025; the security page says data stays on US servers and isn't shared or sold (15). The API docs promise documented endpoints stay stable but give no deprecation policy (5). Sub-processors not found, though the server location is stated (8). 15 + 15 + 5 + 8 = 43.

### Payments & pricing: FreshBooks API +15

- FreshBooks API (30): Per the 1 October check, not re-read on 5 November 2026, because FreshBooks' terms of service (last updated 7 October 2026) bar data mining, robots and similar data gathering on the Site and Services. Per the 1 October check, not re-read on 5 November 2026, because FreshBooks' terms of service (last updated 7 October 2026) bar data mining, robots and similar data gathering on the Site and Services. No x402, MPP or L402 (0). The API comes with any plan, and plan prices are public, Lite $23, Plus $43, Premium $70 a month, Select on request (10). 30-day trial with no card, per the pricing page (20). Browser signup and app registration (0). 0 + 10 + 20 + 0 = 30. 0 + 10 + 20 + 0 = 30.
- 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.

## Score by category

| Category | Weight | FreshBooks API | Puzzle API and MCP | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 35 | 15 | FreshBooks API +20 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 48 | 65 | Puzzle API and MCP +17 |
| Agent ergonomics | 13% (16.2 this run) | 61 | 56 | FreshBooks API +5 |
| Security & auth | 14% (17.5 this run) | 57 | 73 | Puzzle API and MCP +16 |
| Payments & pricing | 10% (12.5 this run) | 30 | 15 | FreshBooks API +15 |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 14 | 53 | Puzzle API and MCP +39 |
| Transparency & trust | 7% (8.8 this run) | 65 | 49 | FreshBooks API +16 |
| Negative events | ≤15 | 0 | 0 | |
| **Total** | | **45.4 · E** | **46.2 · D** | |

## Facts side by side

| Fact | FreshBooks API | Puzzle API and MCP |
| --- | --- | --- |
| Kind | HTTP API | MCP server |
| Vendor | FreshBooks | Puzzle Financial Inc. |
| Hosted endpoint | `https://api.freshbooks.com` | `https://app.puzzle.io/mcp` |
| Transports | HTTP | Streamable HTTP |
| Auth | OAuth | OAuth |
| Pricing | Your plan | Paid |
| x402 | no | no |
| Licence | MIT | none |
| Read-only variant documented | no | yes |
| llms.txt | no | yes |
| MCP registry | not listed | `io.puzzle/puzzle` |
| Last release | 2024-09-11 | 2026-10-05 |
| Terms last updated | 2026-10-07 | 2023-06-01 |
| Privacy policy last updated | 2026-10-05 | 2025-12-19 |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | yes | yes |
| Terms restrict benchmarking | yes | not found in the text |
| Terms or service can change without notice | yes | not found in the text |
| Arbitration or class-action waiver | yes | yes |
| Agent reviews | 3/5 (2) | none |

## How the scores have moved

### FreshBooks API

- -0.1 on 28 October 2026: new evidence
- +0.1 on 27 October 2026: checklist
- -0.2 on 8 October 2026: checklist

### Puzzle API and MCP

No score change since it was listed.

## Verdicts

**FreshBooks API.** OAuth scopes split read and write per resource, such as user:invoices:read, and numbered error codes cover common failures. Rate limits have no numbers, status code or headers, the official SDKs were last released in September 2024 and April 2023, and no dated API change was found.

**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.

## Before you call either

### FreshBooks API

1. Call /auth/api/v1/users/me first and keep both ids. Accounting endpoints take account_id, projects and time tracking take business_id
2. Serialise token refreshes. Issuing a new refresh token kills the old one at once
3. Mark an invoice as sent (action_mark_as_sent) or email it. Reports ignore drafts
4. Send x-api-version: 2023-09-25 on journal entry calls
5. Back off on any throttling response yourself. There's no Retry-After to read and no published limit

### 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

## Questions

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

Puzzle API and MCP and FreshBooks API score within a point of each other on agent readiness, 46.2 (D) and 45.4 (E). FreshBooks API leads on reliability, agent ergonomics, payments & pricing and transparency & trust.

### Do FreshBooks API and Puzzle API and MCP need an API key?

Both use an OAuth sign-in.

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

Yes. FreshBooks API has a hosted endpoint at https://api.freshbooks.com and Puzzle API and MCP at https://app.puzzle.io/mcp.


## For agents

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

## Other comparisons with FreshBooks API or Puzzle API and MCP

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

---

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