# BILL vs Spendesk API + MCP > Spendesk API + MCP scores 62.3 (B) on agent readiness against BILL's 60.9 (C), and leads in 5 of 7 scored categories. BILL leads on reliability and payments & pricing. Both do spend transactions. Category scores, facts, verdicts and agent notes side by side. - Canonical: https://www.anchorterminal.com/compare/bill-vs-spendesk - Markdown: https://www.anchorterminal.com/compare/bill-vs-spendesk.md (~2,150 tokens) - Slim: https://www.anchorterminal.com/compare/bill-vs-spendesk.min.md (~730 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/compare/bill-vs-spendesk.json (this page as data, same URL with Accept: application/json) - Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt) - API: https://www.anchorterminal.com/api/v1/index.json - Updated: 2026-10-08 Spendesk API + MCP scores 62.3 (B) on agent readiness against BILL's 60.9 (C), and leads in 5 of 7 scored categories. BILL leads on reliability and payments & pricing. Both do spend transactions. - BILL: grade C, 60.9/100, rank #380 of 722. Markdown https://www.anchorterminal.com/tools/bill.md · JSON https://www.anchorterminal.com/api/v1/tools/bill.json - Spendesk API + MCP: grade B, 62.3/100, rank #342 of 722. Markdown https://www.anchorterminal.com/tools/spendesk.md · JSON https://www.anchorterminal.com/api/v1/tools/spendesk.json ## Which one, for what ### BILL (C) Good for: A US company already on BILL that wants an agent to create and read bills, run approvals, schedule vendor payments, raise invoices and manage budgets, vendor cards, card transactions and reimbursements. Ahead on: - Reliability, 81 against 55 - Payments & pricing, 25 against 0 Watch for: `POST /v3/login` takes a user's username and password with a developer key, and the session carries that user's role with no scopes ### Spendesk API + MCP (B) Good for: A finance team already on Spendesk that wants an assistant to analyse spend, follow invoices and prepare the accounting close, or an ERP sync reading payables and settlements. Ahead on: - Security & auth, 86 against 56 - Maintenance & community, 57 against 32 - Transparency & trust, 80 against 66 Watch for: No public price, free tier or self-serve signup. API access and demo credentials are requested from a Spendesk representative ## Score by category | Category | Weight | BILL | Spendesk API + MCP | Edge | | --- | --- | --- | --- | --- | | Reliability | 16% (20 this run) | 81 | 55 | BILL +26 | | Performance | 10%, pending | pending | pending | not scored in this run | | Schema & documentation | 13% (16.2 this run) | 83 | 87 | Spendesk API + MCP +4 | | Agent ergonomics | 13% (16.2 this run) | 60 | 62 | Spendesk API + MCP +2 | | Security & auth | 14% (17.5 this run) | 56 | 86 | Spendesk API + MCP +30 | | Payments & pricing | 10% (12.5 this run) | 25 | 0 | BILL +25 | | Task success | 10%, pending | pending | pending | not scored in this run | | Maintenance & community | 7% (8.8 this run) | 32 | 57 | Spendesk API + MCP +25 | | Transparency & trust | 7% (8.8 this run) | 66 | 80 | Spendesk API + MCP +14 | | Negative events | ≤15 | 0 | 0 | | | **Total** | | **60.9 · C** | **62.3 · B** | | ## Facts side by side | Fact | BILL | Spendesk API + MCP | | --- | --- | --- | | Kind | HTTP API | HTTP API | | Vendor | BILL Holdings, Inc. | Spendesk SAS | | Hosted endpoint | `https://gateway.prod.bill.com/connect` | `https://public-api.spendesk.com` | | Transports | HTTP | HTTP | | Auth | OAuth or key | OAuth or key | | Pricing | Freemium | Paid | | x402 | no | no | | Licence | Proprietary service under the BILL Developer Terms and the BILL General Terms of Service | Proprietary service under Spendesk's terms and conditions and a separate Spendesk API agreement | | Tools exposed | none | 62 | | Read-only variant documented | no | no | | llms.txt | yes | yes | | Last release | 2026-05-21 | 2026-09-29 | | Terms last updated | 2026-03-03 | couldn't be read | | Privacy policy last updated | 2026-01-30 | 2025-03-01 | | Customer content may train models | not found in the text | couldn't be read | | Terms restrict automated access | not found in the text | 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 | not found in the text | couldn't be read | ## Verdicts **BILL.** A public OpenAPI 3.0.1 spec covers 326 operations, a self-serve sandbox moves no money, and payments need a session trusted by multi-factor authentication. The AP and AR API signs in with a user's password and has no scopes, no idempotency key protects payment calls, and no official SDK was found. **Spendesk API + MCP.** Scoped credentials, MCP write permissions that are off by default, an action log and published guidance on prompt injection suit delegated finance work. Access needs a paying customer and a request to Spendesk, most write endpoints are experimental, no official SDK was found, and the status page lists three critical incidents between 2 and 29 September 2026. ## Before you call either ### BILL 1. Sign in with `POST /v3/login` and send `sessionId` and `devKey` as headers on every AP and AR call. The session expires after 35 minutes idle 2. Send the `apiToken` header alone on `/v3/spend/` paths. Spend & Expense calls need no login and are limited to 60 a minute per token 3. Complete the MFA challenge before `POST /v3/payments`. An untrusted session fails with `BDC_1361` 4. Read back payments before retrying a failed `POST /v3/payments`. No idempotency key is accepted, so a blind retry can pay twice 5. Keep to three concurrent requests per developer key per organisation and 20,000 an hour. After `BDC_1144`, wait for the next hour ### Spendesk API + MCP 1. Request a token at POST /v1/auth/token with HTTP Basic (client ID and secret). It lasts 3,600 seconds, so renew on a 401 2. Stop paging at the last page calculated from `total` and `pageSize` (maximum 30). A page past the end returns 404, not an empty list 3. With an organisation-level token, send `X-Company-Id` on every v1 call or expect a 400 4. The MCP server refuses API keys. Connect with OAuth authorisation code and PKCE, and treat `Tool not found` (-32601) as a missing permission 5. After an unclear write result, read the object again before retrying. Creating a purchase order or supplier twice creates two ## Questions ### Which is better for AI agents, BILL or Spendesk API + MCP? Spendesk API + MCP scores 62.3 (B) on agent readiness against BILL's 60.9 (C), and leads in 5 of 7 scored categories. BILL leads on reliability and payments & pricing. ### Do BILL and Spendesk API + MCP need an API key? Both take an API key or an OAuth sign-in. ### Can an agent call BILL and Spendesk API + MCP without installing anything? Yes. BILL has a hosted endpoint at https://gateway.prod.bill.com/connect and Spendesk API + MCP at https://public-api.spendesk.com. ## For agents - This comparison as JSON: https://www.anchorterminal.com/compare/bill-vs-spendesk.json, and with the fewest tokens: https://www.anchorterminal.com/compare/bill-vs-spendesk.min.md - Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "bill", "b": "spendesk"}`. From a terminal: `anchor compare bill spendesk` - Each listing in full: https://www.anchorterminal.com/api/v1/tools/bill.json and https://www.anchorterminal.com/api/v1/tools/spendesk.json ## Other comparisons with BILL or Spendesk API + MCP - [Airwallex Spend and Issuing vs BILL](https://www.anchorterminal.com/compare/airwallex-vs-bill.md) - [Airwallex Spend and Issuing vs Spendesk API + MCP](https://www.anchorterminal.com/compare/airwallex-vs-spendesk.md) - [BILL vs Brex](https://www.anchorterminal.com/compare/bill-vs-brex.md) - [BILL vs Expensify](https://www.anchorterminal.com/compare/bill-vs-expensify.md) - [BILL vs Mercury API](https://www.anchorterminal.com/compare/bill-vs-mercury.md) - [BILL vs Pleo API + MCP](https://www.anchorterminal.com/compare/bill-vs-pleo.md) - [BILL vs Ramp](https://www.anchorterminal.com/compare/bill-vs-ramp.md) - [Brex vs Spendesk API + MCP](https://www.anchorterminal.com/compare/brex-vs-spendesk.md) - [Expensify vs Spendesk API + MCP](https://www.anchorterminal.com/compare/expensify-vs-spendesk.md) - [Mercury API vs Spendesk API + MCP](https://www.anchorterminal.com/compare/mercury-vs-spendesk.md) - [Pleo API + MCP vs Spendesk API + MCP](https://www.anchorterminal.com/compare/pleo-vs-spendesk.md) - [Ramp vs Spendesk API + MCP](https://www.anchorterminal.com/compare/ramp-vs-spendesk.md)