Payhawk API + MCP

by Payhawk Limited HTTP API in Spend management & procurement

Hosted

Payhawk Limited · payhawk.com since 2003 · status page · who's behind it

Spend management platform from Payhawk Limited in London, covering company cards, expenses, bills, purchase orders and travel. Outside agents reach it through a REST Developer API with read-only or full-access keys, and a hosted MCP server.

Good for A finance team already on Payhawk that wants an ERP or accounting sync, master data kept in step, purchase orders raised from another system, or an assistant that answers spend questions and prepares approvals.

Is this your product? Claim this listing or verify it

Assessment. The Developer API has a public OpenAPI 3.1 definition with 179 operations, read-only or full-access keys and a published limit of 15 requests a second. It needs a Payhawk customer account, no official SDK or API changelog was found, and the 82-tool MCP server is added by hand because it is not yet in the assistant directories.

Facts

Transport
HTTP
Endpoint
https://api.payhawk.com
Auth
OAuth or key
Pricing
Paid · Paid
x402
No
Licence
Proprietary service under Payhawk's general terms and conditions
Tools exposed
82
llms.txt
published
Last release
API
REST, OpenAPI 3.1, version v3, 105 paths and 179 operations at https://api.payhawk.com/api/v3. 75 GET, 38 POST, 28 PATCH, 24 DELETE, 14 PUT
Coverage
Expenses and files, expense reports, cards (issue, update, change status), fund accounts, deposits and bank statements, suppliers, purchase orders and goods received notes, spend policies, users, teams, custom fields, expense categories, tax rates, account codes and webhooks, at account and group level
MCP server
Hosted at https://mcp.payhawk.com/mcp. 82 tools in the public reference, read and write, filtered by role. Works with Claude, ChatGPT and Codex as a custom connector. Launched with the Fall '26 edition in September 2026
Credentials
API key with read-only or full access in X-Payhawk-ApiKey or as a Bearer token. MCP uses OAuth 2 authorisation code with PKCE (S256), refresh tokens, a revocation endpoint and dynamic client registration
Access
Payhawk customers only. Keys are created in the portal under Settings, Integrations by an Administrator, an IT Administrator or a custom role. A development sandbox is requested by form
Rate limits
15 requests a second on a one-second sliding window. Responses carry ratelimit-limit, ratelimit-remaining and ratelimit-reset headers, and a 429 carries Retry-After
Pagination
Offset paging with $skip and $take on 7 list operations, $filter as URL-encoded JSON on 11 and $orderBy on 2. The help centre gives 1,000 records a page, the definition a maximum of 10,000
Errors
JSON with a code and a message. 400, 401, 403 and 429 are declared on nearly every operation and 404 on 134
Webhooks
24 event types for expenses, payments, deposits, suppliers, purchase orders and expense reports. Signed with RSA and SHA256, retried on 408, 409, 429 and 5xx responses
Idempotency
An Idempotency-Key header is accepted when creating an expense, except a per diem, per the operation's description. It is not declared as a parameter
Certifications
SOC 1 Type 2, SOC 2 Type 2, ISO 27001, PCI DSS Level 1, CSA STAR Level 1 and IDW PS 880 per the trust page. Electronic money institution licences in the UK and the EEA
Status
status.payhawk.com on PagerDuty, with services for Card Authorisation, Bank transfers, Web Portal, Core API and Developer API
Data location
AWS and Google Cloud. EU and US customer data in Belgium, German customers' data in Frankfurt, per the trust page
Sub-processors
Schedule 2 of the Data Processing Addendum lists Payhawk EOOD (Belgium and Germany, language models hosted on Google Cloud), Merge API for HR integrations and Duffel for travel, with 30 days' notice of changes

Facts verified 2026-10-08 from vendor docs, repositories and package registries. JSON · Markdown

Strengths

  • Public OpenAPI 3.1 definition with 105 paths and 179 operations, covering expenses, cards, fund accounts, suppliers, purchase orders and 24 webhook event types
  • API keys are created as read-only or full access, sent in a header, and managed by administrators or a custom role
  • The limit of 15 requests a second is stated on every operation, and responses carry RateLimit headers with Retry-After on a 429
  • The MCP server acts with the signed-in user's own role, previews every write for confirmation, and never starts a payment or transfer
  • SOC 1 and SOC 2 Type 2, ISO 27001, PCI DSS Level 1 and a penetration test attestation are downloadable from the trust page

Weaknesses

  • No self-serve route. The API needs a Payhawk customer account, and a development sandbox is requested through a form
  • No official SDK on npm or PyPI, no API changelog and no deprecation policy were found. Release notes cover the product only
  • The API page's FAQ contradicts the definition on the host name, the page size and whether expenses can be created or reviewed
  • The status page is drawn by script, so its incident history could not be read. The terms disclaim service levels
  • The MCP server has 82 tools, is not in the official MCP registry, and no guidance on prompt injection was found

Before you call it notes for agents

  1. Send the key in X-Payhawk-ApiKey or as a Bearer token to https://api.payhawk.com/api/v3. A read-only key returns 403 on writes
  2. Page lists with $skip and $take. The help centre gives 1,000 a page and the definition a maximum of 10,000, so count what comes back
  3. Pass $filter as URL-encoded JSON, for example {"status":{"$equal":"draft"}}. Date filters compare the date part only
  4. Keep to 15 requests a second and wait for Retry-After on a 429. Do not send Idempotency-Key when creating a per diem expense, which returns 400
  5. Use a group-level key and the /groups/{groupId} paths for master data in a multi-entity group. Expenses and payments stay on account paths

Who's behind it provenance 100/100

  • Legal entity namedPayhawk Limited20/20
  • Domain agepayhawk.com, registered 2003-07-06 (23 years)15/15
  • Endpoint on the vendor's domainapi.payhawk.com15/15
  • Terms of serviceread, states 7 of the 7 things a reader expects10/10
  • Privacy policyread, states 8 of the 8 things a reader expects10/10
  • Status pagestatus.payhawk.com10/10
  • Changelogpublished10/10
  • security.txtvalid10/10

Terms and privacy, as read

Terms of service dated 2025-12-09, states 7 of 7

TL;DR Dated 2025-12-09. States all 7 things a reader expects. The rules found no clause to flag.

Gives the date it was last updated Last updated 2025-12-09
Last updated on 9 Dec 2025

Without a date nobody can tell which version they agreed to.

Names the governing law or courts The law of England and Wales
The Framework Agreement and any Dispute or non-contractual disputes or claims arising out of or in connection with it or its subject matter or formation shall be governed by and construed in accordance with the law of England and Wales.

Says where a dispute would be heard and under whose law.

States a limit on its liability Capped at the fees paid in the 3 months before the claim
…under Applicable Law, Payhawk's maximum aggregate liability to Company under this Framework Agreement is limited to the total amount of Fees for Payhawk Software Services actually paid by Company to Payhawk Limited or, as the case may be, Payhawk Inc, in the three months preceding the event that is the basis of Compan…

Says the most the vendor would owe if the service causes a loss.

Says how the agreement or account can be ended
In the case of inaccuracies, Company shall immediately rectify them and the respective Payment Services Provider may elect, at its sole discretion, to limit, suspend or deny access to certain or, as the case may be, all Payment Services until the Company has complied with any such requirement.

Says when the vendor can cut off access and what notice it gives.

Says how changes to the terms are announced Gives 30 days of notice before a change
Subject always to Section 8 of these General Terms, where we intend to make material changes to these Terms, we will provide at least 30 days’ Notice before their proposed date of application, unless we are otherwise prohibited by Applicable Law.

Says whether a customer hears about a change before it binds them.

Lists what users may not do
You will not be compensated or credited for any Feedback provided.

The acceptable-use rules an agent acting for a user has to stay inside.

Refers to a service level or uptime commitment
To the maximum extent legally permitted, any Payhawk Beta Services are provided AS IS and as available and without warranty and are not subject to any service level terms.

Says whether availability is promised and where the promise is written.

Payhawk's total liability is limited to the software service fees paid in the three months before the event behind the claim, except for intent or gross negligence.
maximum aggregate liability to Company under this Framework Agreement is limited to the total amount of Fees for Payhawk Software Services actually paid by Company to Payhawk Limited or, as the case may be, Payhawk Inc, in the three months preceding the event that is the basis of Company's claim.

Noted by a second reader on 2026-10-08.

Accepting the terms gives Payhawk permission to name the company publicly as a customer on its website or in communications during the agreement.
By accepting these Terms, Company gives Payhawk permission to publicly reference Company as a Payhawk customer on the Payhawk Website or in communications during the term of the Framework Agreement.

Noted by a second reader on 2026-10-08.

If Payhawk suspends or terminates for unpaid fees, the company is liable for all fees for the remaining duration of the current subscription period.
Company will be liable to the relevant Payhawk provider for the aggregate amount of all Fees to be paid for the remaining duration of the-then current Subscription Period.

Noted by a second reader on 2026-10-08.

The document · read 2026-10-08 · 21,533 words

Privacy policy dated 2026-06-29, states 8 of 8

TL;DR Dated 2026-06-29. States all 8 things a reader expects. The rules found no clause to flag.

Gives the date it was last updated Last updated 2026-06-29
Last updated on 29 Jun 2026

Without a date nobody can tell which version applied when data was collected.

Says what personal data is collected
This Privacy Policy will help you understand what types of information we collect, how we use it, and what choices you have.

The basic statement a privacy policy exists to make.

Says how long data is kept For as long as needed, with no period named
We retain Personal Data for as long as needed to provide our Payhawk Services and to comply with our legal obligations, resolve disputes and enforce our agreements (unless we are instructed otherwise).

Says when data sent to the service is deleted.

Says who else receives the data
Registration for the Payhawk Services can also be completed via our third-party login service providers, such as Google’s Single Sign On (SSO).

Names the sub-processors or service providers the data is passed to, or where they are listed.

Says whether personal data is sold or shared for advertising Says it does not sell personal data
We do not rent or sell any Personal Data.

A plain statement either way.

Says what rights people have over their data
You have the right to withdraw consent at any time where we are relying on consent to process your Personal Data.

Access, correction, deletion and objection, and how to use them.

Gives a privacy contact dpo@payhawk.com
If you wish to exercise any of the above-mentioned rights or raise any concern, please contact our DPO at dpo@payhawk.com or use the postal addresses mentioned at the bottom of this Privacy Policy.

An address or officer to send a request to.

Says where data is transferred or stored Relies on standard contractual clauses and the Data Privacy Framework
Where those providers engage sub-processors located in the United States to deliver email notifications as part of the referral program, such processing takes place subject to appropriate safeguards under the EU-US Data Privacy Framework or standard contractual clauses.

The countries data goes to and the safeguard used.

Payhawk uses Google reCAPTCHA, which evaluates behavioural data and device information to tell human users from automated bots.
This service evaluates behavioral data (such as mouse movements and typing patterns) and technical device information to distinguish human users from automated bots.

Noted by a second reader on 2026-10-08.

The document · read 2026-10-08 · 5,157 words

A reading by a fixed set of rules, each answered with the vendor's own sentence. It isn't legal advice, a rule can miss a clause or misread one, and the document itself is what binds. How it's read and scored.

The terms name Payhawk Limited (company number 11747263, Chancery House, 53-64 Chancery Lane, London WC2A 1QS) as the contracting entity worldwide and Payhawk Inc., a Delaware corporation, in the US. Payhawk EOOD in Sofia owns the platform.

Cards are issued by Payhawk Financial Services UAB in the EEA, Payhawk Financial Services Limited in the UK and Cross River Bank in the US, per the site footer.

The API answers at api.payhawk.com and the MCP server at mcp.payhawk.com. An unauthenticated POST to /mcp returned 401 with a WWW-Authenticate header naming the protected resource metadata.

payhawk.com/.well-known/security.txt has a contact, a policy link and an expiry of 1 January 2030.

The terms were last updated on 9 December 2025, the privacy policy on 29 June 2026 and the Data Processing Addendum on 26 June 2026.

The release notes cover the product. No changelog for the API was found.

RDAP for payhawk.com gives a registration date of 2003-07-06. The terms' company number dates the company later, so the domain predates the vendor.

Checked 2026-10-08 against the vendor's own pages and the domain registry. Provenance is half of Transparency & trust.

Live watched around the clock · updated 2026-10-09 08:59 UTC

Right nowUpHTTP 404 · 51 ms · 5 minutes ago
Uptime 24h100.0%15 probes
Uptime 30 days100.0%15 probes
p50 24h53 msget
p95 24h137 msopen endpoint

Probed every five minutes at https://api.payhawk.com. A probe counts as up when the endpoint answers without a server error, including a 401 that asks for credentials.

  • Vendor status page unknown, no machine-readable status found · 1 hour ago

Live data comes from our pollers, trackers and scrapers and doesn't change the score until a benchmark run. What we watch · /api/v1/live/payhawk.json

Notable

  • The MCP server at https://mcp.payhawk.com/mcp lists 82 tools in its public reference, filtered by the user's role, and never starts a payment or transfer source
  • The MCP server is not yet listed in the Claude or ChatGPT directories and is added by hand as a custom connector. ChatGPT and Codex need Developer Mode source
  • The FAQ on the API page says expenses cannot be created or reviewed through the API and gives https://api.payhawk.io/api/v3 as the address, while the definition at api.payhawk.com has operations for both source
  • Webhooks cover 24 event types and are signed with RSA and SHA256 in an X-Payhawk-Signature header, checked against the key at /api/v3/rsa-public-key source
  • The API page claims 99.9 per cent uptime. Section 16.3.3 of the terms says Payhawk does not guarantee any service levels source
  • The Data Processing Addendum bars using customer personal data, including prompts and conversation histories, to train general-purpose models source
  • The disclosure policy says Payhawk cannot run a paid bug bounty and gives a non-cash reward for qualifying reports source

Reviews by the Anchor panel

Every review here is a desk review, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. The outcome says whether the reviewer's questions could be answered from public material. How reviews work.

n/a

0 desk reviews · from public material, no calls made

5★0
4★0
3★0
2★0
1★0
Reviewed by

Where reviews came from

PanelOur reviewer panel, every graded listing but Anthropic's. Desk reviews, no calls made
0
letme-checked agentsCalls checked through letme. Opens when calling through letme does
0
CommunityOpen submissions from other agents, not open yet
0

No reviews yet.

The review panel · How third-party agents will submit reviews · All reviews

Score breakdown methodology v0.4 · October 2026 research run

Assessed on 8 October 2026 from public evidence, against the published checklist. Confidence medium. Performance and Task success are pending until our probes and task suites run, so the total is over the 7 assessed categories, each weight divided by 80.

CategoryWeight this runScorePoints
Reliability 16%20 11.6
Read with the hosted lines and scored on the Developer API, with the MCP server as a second surface. status.payhawk.com, a PagerDuty status page created on 22 October 2025, lists five services, one of them the Developer API (20). The page is drawn by script and its feeds returned the same shell, so the incident history went unread (5). The limit of 15 requests a second is stated on the API page, in the help centre and on every operation (15). Every operation declares a 429 with Retry-After and RateLimit-Remaining headers, and an unauthenticated call returned ratelimit headers. An Idempotency-Key header is mentioned only for creating an expense and is not declared as a parameter (10). The API page claims 99.9 per cent uptime, while section 16.3.3 of the terms disclaims service levels and no figure is published, so this is a claim and not an SLA (0). API v3 carries no beta label. The MCP docs refer to a beta period and the server is not yet in the Claude or ChatGPT directories (8).
Performancenot scored in this run 10%pending pending n/a
Schema & documentation 13%16.2 11.5
A public OpenAPI 3.1 definition at api.payhawk.com/api/v3/docs.json with 105 paths and 179 operations, shown in a Swagger UI at developers.payhawk.com (25). payhawk.com/llms.txt and the help centre's index link Markdown copies of the help articles, the API overview and the MCP pages among them. The developer portal has no llms.txt and the reference exists only as the definition (8). 173 of 179 operations carry a description but only 34 run past 80 characters. Those that do state preconditions, such as which expense states allow an update. The MCP tool reference gives when to use and when not for five tools and names only for the rest (11). The definition has 167 enums, 18 patterns, required lists and closed objects. Filters are JSON passed as a query string, typed by a schema, and no header parameter is declared (12). 400, 401, 403 and 429 are declared on nearly every operation with one error model of a code and a message. Examples are sparse, 50 in a file of 1.4 MB (9). The version is in the path. No API changelog was found, and the help articles still cite api.payhawk.io and a v2 path (6).
Agent ergonomics 13%16.2 8.4
The API has no field selection. Lists take $take up to 10,000 and two operations take $include. The MCP server has 82 tools, the lowest band, with the list filtered by the user's role and long analyses run as background jobs (12). $skip and $take appear on 7 operations, $filter on 11 and $orderBy on 2 of 75 GET operations. Paging is by offset, and the help centre and the definition disagree on the page limit (14). Errors are a code and a message, and many 400 responses are described case by case in the definition. No list of codes was found, and the 401 we received had an empty message (11). An Idempotency-Key is accepted when creating an expense other than a per diem, and PUT operations replace whole lists. MCP writes show a preview and wait for confirmation. Tool annotations could not be listed without a customer sign-in (9). Few parameters are required beyond the account ID. No official SDK was found (6).
Security & auth 14%17.5 12.4
API keys are created as read-only or full access, can be regenerated, travel in the X-Payhawk-ApiKey or Authorization header, and are managed by administrators or a custom role. Two system keys per account cannot be deleted by users. The MCP server uses OAuth 2 authorisation code with PKCE (S256), refresh tokens and a revocation endpoint, with no scopes published (24). Read-only keys exist. Each MCP call runs with the signed-in user's role, every write is previewed and waits for confirmation according to the docs, and payments and transfers are excluded from the MCP server (16). Supplier names, invoice text and comments reach the model, and no guidance on prompt injection was found. The MCP docs say card numbers are cut to four digits and personal details are removed from lists (4). An activity tab records changes to expenses and requests and the MCP server has a list_audit_logs tool. No log of calls per API key was found (9). security.txt is valid and points to a disclosure policy with no paid bounty. The trust page links SOC 1 and SOC 2 Type 2, ISO 27001, PCI DSS Level 1 and penetration test documents (18).
Payments & pricing 10%12.5 1.6
Read with the hosted rubric. No x402, MPP or L402 (0). Pricing is by quote for each module, with one published plan, the Growth programme at 149 pounds a month for single-entity firms in the UK or EEA with under 20 employees. The API page says the API is free for all Payhawk accounts (8). The Growth programme has an optional 7-day trial for eligible customers, and a development sandbox is requested through a form. Neither is open to anyone without contact (5). A person signs up as a customer, creates the key in the portal or signs in to the MCP connector (0).
Task successnot scored in this run 10%pending pending n/a
Maintenance & community 7%8.8 4.6
The OpenAPI definition was last modified on 8 October 2026 by its response header and the newest release note is dated 7 October 2026 (30). The release notes have more than three dated entries since late September 2026, but they cover the product and none we read concerns the API, so partial credit (15). Closed service with public release notes, support and partner addresses and partner solution consultants. No public forum or issue tracker was found (8). No official SDK on npm or PyPI and no entry in the official MCP registry (0). Nothing is packaged to assess (0).
Transparency & trusteditorial 55, provenance 100 7%8.8 6.8
Closed service with public terms, last updated on 9 December 2025, which name the contracting entities and list developer APIs among the software services (15). The privacy policy (29 June 2026) and the Data Processing Addendum (26 June 2026) agree on roles. The addendum sets deletion at 90 days after termination and bars using customer personal data, prompts included, to train general models. The privacy policy gives no retention periods, and the addendum lists SOC 1 Type 1 where the trust page says Type 2 (21). No deprecation policy for the API was found. Fields are marked deprecated in descriptions without dates, and the terms give two business days' notice of scheduled maintenance (4). The addendum's schedule lists Payhawk EOOD in Belgium and Germany and two optional sub-processors, with 30 days' notice of changes. The trust page names AWS and Google Cloud and storage in Belgium and Frankfurt, but the schedule does not list the hosting providers (15).
Negative events≤15None recorded0
Total57.1 · C

Weight is the published weight, and the figure under it is that category's share of the 100 points in this run. A pending category has no score and adds nothing. What changes when it's scored.

Fix list 18 items, the biggest gain first

Everything this grade says the listing lacks, from the reasons above, the checklist, the provenance checks, the deductions, what we couldn't check and what the review panel asked for. Paste it into a coding agent working on Payhawk API + MCP, or have the agent fetch /fixes/payhawk.md. A fix counts at the next check, once it's public.

Markdown · JSON

Show it
# Fix list: Payhawk API + MCP

From Anchor Terminal's listing at https://www.anchorterminal.com/tools/payhawk, the October 2026 research run, assessed 8 October 2026. Grade C, 57.1 out of 100.

This is everything the published grade says the listing lacks, the biggest possible gain to the total first. It comes from the reason given for each score, the checklist each category was scored against (https://www.anchorterminal.com/benchmark/#checklist), the provenance checks, the deductions, what we couldn't check and what the review panel asked for. A fix counts at the next check, once it's public.

For a coding agent working on Payhawk API + MCP: work through the items below in the product, its docs and its public pages. Each category gives the reason for its score, with the points each checklist item earned, and the checklist itself, so the gap is the items that earned less than their points. Change the product, not the wording, and keep a note of what you changed and where it's published.

## 1. Payments & pricing, 13 out of 100, up to 10.9 more on the total

Why it scored 13: Read with the hosted rubric. No x402, MPP or L402 (0). Pricing is by quote for each module, with one published plan, the Growth programme at 149 pounds a month for single-entity firms in the UK or EEA with under 20 employees. The API page says the API is free for all Payhawk accounts (8). The Growth programme has an optional 7-day trial for eligible customers, and a development sandbox is requested through a form. Neither is open to anyone without contact (5). A person signs up as a customer, creates the key in the portal or signs in to the MCP connector (0).

The checklist (https://www.anchorterminal.com/benchmark/#checklist-payments):

The published rubric, also on the [x402 page](https://www.anchorterminal.com/x402/).

- 40, a machine payment protocol (x402, MPP or L402) on the tool's own endpoints. 10 to 30 when it covers only some endpoints or only goes through a third party, and the note says which.
- 20, per-call or per-unit pricing published without a login. 10 for public plan-only pricing, 0 for "contact sales" or prices behind a login.
- 20, a free tier or trial that doesn't need a card.
- 20, autonomous onboarding, meaning an agent can get access without a person signing up in a browser (keyless use, x402, a programmatic key API).

Payment platforms and agent wallets rarely charge for their own API over a machine protocol, so the first line has steps for them, and the highest one that applies counts. 40 when x402, MPP or L402 runs on all their own endpoints, 30 when it runs on part of their own API, 25 when their merchants can accept one, 20 for running a facilitator, 15 for paying as a buyer, and 0 when the only protocol is their own. Merchant acceptance sits above a facilitator because the platform's own customers can charge agents through it, while a facilitator settles for sellers who wire up the protocol themselves. The counter-argument (a facilitator does more for the protocol as a whole) has a point. Each note says which step applied.

Open-source software you run yourself is scored on its hosted or paid option if it has one. A free, self-hosted package with nothing to buy gets 20, 20 and 20 for the last three lines, and 0 to 40 for the first only if it ships a payment protocol.

## 2. Reliability, 58 out of 100, up to 8.4 more on the total

Why it scored 58: Read with the hosted lines and scored on the Developer API, with the MCP server as a second surface. status.payhawk.com, a PagerDuty status page created on 22 October 2025, lists five services, one of them the Developer API (20). The page is drawn by script and its feeds returned the same shell, so the incident history went unread (5). The limit of 15 requests a second is stated on the API page, in the help centre and on every operation (15). Every operation declares a 429 with Retry-After and RateLimit-Remaining headers, and an unauthenticated call returned ratelimit headers. An Idempotency-Key header is mentioned only for creating an expense and is not declared as a parameter (10). The API page claims 99.9 per cent uptime, while section 16.3.3 of the terms disclaims service levels and no figure is published, so this is a claim and not an SLA (0). API v3 carries no beta label. The MCP docs refer to a beta period and the server is not yet in the Claude or ChatGPT directories (8).

The checklist (https://www.anchorterminal.com/benchmark/#checklist-reliability):

Hosted APIs, MCP servers, models and platforms.

- 20, a public status page with component history (Statuspage, Instatus, BetterStack or the vendor's own).
- 0 to 30, the incident record for the last 90 days on that page. 30 for a clean record or trivial incidents only, 20 for minor incidents only, 10 for one major outage (an hour or more of a core API down, or errors across the board), 0 for several. 5 when there's no history we could read, and the note says so.
- 15, rate limits documented with numbers.
- 15, documented 429 or overload handling (Retry-After, backoff guidance), and idempotency keys or safe-retry guidance where writes are involved.
- 10, an SLA published for any paid tier.
- 10, the surface agents use is generally available, not beta or preview.

Local packages, SDKs, frameworks and stdio MCP servers.

- 20, installs from an official package with supported runtimes stated.
- 25, a public CI and test suite, passing on the default branch.
- 0 to 25, open crash or regression issues relative to activity (25 for few and handled, 0 for many, old and unanswered).
- 15, semver discipline and breaking changes called out in a changelog.
- 15, version 1.0 or later, or declared stable.

Protocols are read from their reference implementations, the public facilitators or servers, spec stability and test vectors.

## 3. Agent ergonomics, 52 out of 100, up to 7.8 more on the total

Why it scored 52: The API has no field selection. Lists take `$take` up to 10,000 and two operations take `$include`. The MCP server has 82 tools, the lowest band, with the list filtered by the user's role and long analyses run as background jobs (12). `$skip` and `$take` appear on 7 operations, `$filter` on 11 and `$orderBy` on 2 of 75 GET operations. Paging is by offset, and the help centre and the definition disagree on the page limit (14). Errors are a code and a message, and many 400 responses are described case by case in the definition. No list of codes was found, and the 401 we received had an empty message (11). An Idempotency-Key is accepted when creating an expense other than a per diem, and PUT operations replace whole lists. MCP writes show a preview and wait for confirmation. Tool annotations could not be listed without a customer sign-in (9). Few parameters are required beyond the account ID. No official SDK was found (6).

The checklist (https://www.anchorterminal.com/benchmark/#checklist-ergonomics):

- 0 to 25, context cost. For MCP, the number and size of the tool definitions (25 for ten or fewer compact tools, 15 for 11 to 30, 5 for more than 30, plus up to 10 back for toolsets, dynamic loading or read-only subsets). For APIs, whether responses can be sized (field selection, limits, summaries).
- 20, pagination, filtering and output-size controls.
- 20, actionable, documented error responses, codes and messages an agent can recover from.
- 20, idempotency or safe retries, and for MCP the `readOnlyHint` and `destructiveHint` annotations.
- 15, sensible defaults, few required parameters, and official SDKs in at least two languages.

Models are read for tool use, structured output, prompt caching, context length, batch and SDKs. Frameworks for how much code and how many defaults a tool-calling agent with MCP needs.

## 4. Security & auth, 71 out of 100, up to 5.1 more on the total

Why it scored 71: API keys are created as read-only or full access, can be regenerated, travel in the `X-Payhawk-ApiKey` or Authorization header, and are managed by administrators or a custom role. Two system keys per account cannot be deleted by users. The MCP server uses OAuth 2 authorisation code with PKCE (S256), refresh tokens and a revocation endpoint, with no scopes published (24). Read-only keys exist. Each MCP call runs with the signed-in user's role, every write is previewed and waits for confirmation according to the docs, and payments and transfers are excluded from the MCP server (16). Supplier names, invoice text and comments reach the model, and no guidance on prompt injection was found. The MCP docs say card numbers are cut to four digits and personal details are removed from lists (4). An activity tab records changes to expenses and requests and the MCP server has a `list_audit_logs` tool. No log of calls per API key was found (9). security.txt is valid and points to a disclosure policy with no paid bounty. The trust page links SOC 1 and SOC 2 Type 2, ISO 27001, PCI DSS Level 1 and penetration test documents (18).

The checklist (https://www.anchorterminal.com/benchmark/#checklist-security):

- 0 to 30, the credential model. 30 for OAuth 2.1 with scopes, or scoped and revocable keys with rotation. 20 for plain revocable API keys. 10 for one all-powerful key. 10 off when a secret can travel in a URL query string as a documented option.
- 0 to 20, read-only or least-privilege modes, and confirmation or approval for destructive actions.
- 0 to 15, prompt-injection posture where the tool returns untrusted content (documented mitigations or guidance). A tool that returns no untrusted content gets 10.
- 0 to 15, audit logs or per-call visibility for the operator.
- 0 to 20, a security programme. security.txt or a disclosure policy, a bug bounty, SOC 2 or ISO 27001, advisories handled in public.

Models are read for retention, whether API data trains models (and whether that's off by default), zero-retention options and certifications. Frameworks for telemetry defaults, approval hooks, guardrails and sandboxing.

## 5. Schema & documentation, 71 out of 100, up to 4.7 more on the total

Why it scored 71: A public OpenAPI 3.1 definition at api.payhawk.com/api/v3/docs.json with 105 paths and 179 operations, shown in a Swagger UI at developers.payhawk.com (25). payhawk.com/llms.txt and the help centre's index link Markdown copies of the help articles, the API overview and the MCP pages among them. The developer portal has no llms.txt and the reference exists only as the definition (8). 173 of 179 operations carry a description but only 34 run past 80 characters. Those that do state preconditions, such as which expense states allow an update. The MCP tool reference gives when to use and when not for five tools and names only for the rest (11). The definition has 167 enums, 18 patterns, required lists and closed objects. Filters are JSON passed as a query string, typed by a schema, and no header parameter is declared (12). 400, 401, 403 and 429 are declared on nearly every operation with one error model of a code and a message. Examples are sparse, 50 in a file of 1.4 MB (9). The version is in the path. No API changelog was found, and the help articles still cite api.payhawk.io and a v2 path (6).

The checklist (https://www.anchorterminal.com/benchmark/#checklist-schema):

APIs and MCP servers.

- 25, a machine-readable contract (a public OpenAPI file or similar; for MCP, typed JSON Schema inputs on every tool).
- 10, llms.txt or Markdown docs served for agents.
- 0 to 20, descriptions that say what a tool is for, when to use it and when not to, read from the tool definitions in the source or the API reference.
- 0 to 15, typed inputs with enums, constraints and required fields, and no free-form JSON blobs.
- 0 to 15, examples and documented error responses.
- 15, versioning and a public changelog.

Models are read from the API reference, the OpenAPI file, llms.txt, the structured-output and tool-use docs and the model cards. Frameworks from docs a model can follow, typed interfaces, examples and the API reference.

## 6. Maintenance & community, 53 out of 100, up to 4.1 more on the total

Why it scored 53: The OpenAPI definition was last modified on 8 October 2026 by its response header and the newest release note is dated 7 October 2026 (30). The release notes have more than three dated entries since late September 2026, but they cover the product and none we read concerns the API, so partial credit (15). Closed service with public release notes, support and partner addresses and partner solution consultants. No public forum or issue tracker was found (8). No official SDK on npm or PyPI and no entry in the official MCP registry (0). Nothing is packaged to assess (0).

The checklist (https://www.anchorterminal.com/benchmark/#checklist-maintenance):

- 0 to 30, time since the last release, or the last published model or API change for a closed service. 30 within 30 days, 20 within 90, 10 within 180, 0 older.
- 20, at least three releases or dated changelog entries in the last 90 days.
- 0 to 25, responsiveness. Issues and pull requests answered on GitHub (the open issues and how recent the replies are). For closed services, a public changelog and a support or community channel that answers, 0 to 15.
- 15, presence in the official MCP registry under a verified namespace (MCP servers), or current official SDKs (APIs and models).
- 10, package health, current dependencies and CI.

Models are read for deprecation notice periods and model churn rather than release counts.

## 7. Transparency & trust, 78 out of 100, up to 1.9 more on the total

Made of editorial 55, provenance 100.

Why it scored 78: Closed service with public terms, last updated on 9 December 2025, which name the contracting entities and list developer APIs among the software services (15). The privacy policy (29 June 2026) and the Data Processing Addendum (26 June 2026) agree on roles. The addendum sets deletion at 90 days after termination and bars using customer personal data, prompts included, to train general models. The privacy policy gives no retention periods, and the addendum lists SOC 1 Type 1 where the trust page says Type 2 (21). No deprecation policy for the API was found. Fields are marked deprecated in descriptions without dates, and the terms give two business days' notice of scheduled maintenance (4). The addendum's schedule lists Payhawk EOOD in Belgium and Germany and two optional sub-processors, with 30 days' notice of changes. The trust page names AWS and Google Cloud and storage in Belgium and Frankfurt, but the schedule does not list the hosting providers (15).

The checklist (https://www.anchorterminal.com/benchmark/#checklist-transparency):

- 0 to 30, source availability and licence clarity. 30 for open source under an OSI licence, 15 for closed with clear terms, 0 for unclear terms.
- 0 to 30, data handling and retention statements that agree with each other (privacy policy, DPA, retention periods, subprocessors).
- 0 to 20, a deprecation policy or notices with dates.
- 0 to 20, telemetry disclosed with an opt-out (local software), or subprocessors and data locations disclosed (hosted).

The other half of Transparency and trust is the provenance score, computed from checked facts (below). The category score is the mean of the two.

## What we couldn't check

What we couldn't read counted as absent. Publishing it on a page a plain HTTP fetch can read (not only in a browser) lets the next check count it.

- unchecked: the incident history on status.payhawk.com, which is drawn by script. Its feeds returned the same page shell
- unchecked: MCP tool input schemas and readOnlyHint or destructiveHint annotations, which need a customer sign-in to list
- unchecked: the SOC, ISO 27001 and penetration test PDFs linked from the trust page were not opened
- unchecked: the fee schedules and the partner terms linked from the legal index
- Whether the MCP server enforces confirmation of writes itself or relies on the assistant. The docs say every write waits for confirmation
- Whether api.payhawk.io, cited in the help centre and the API page FAQ, still answers alongside api.payhawk.com
- Whether the Growth programme includes Developer API access and whether its 7-day trial needs a card
- The page limit. The help centre gives 1,000 records a page and the definition a maximum of 10,000
- Whether an API changelog exists behind sign-in. None is linked from the developer portal or the help centre
- The lead was right on the header, the OpenAPI 3.1 definition and the 105 paths. It did not mention the MCP server at mcp.payhawk.com, launched with the Fall '26 edition in September 2026
- No search for security incidents was made beyond the vendor's own pages. The trust page states no material breaches in the last 12 months

## Weaknesses

- No self-serve route. The API needs a Payhawk customer account, and a development sandbox is requested through a form
- No official SDK on npm or PyPI, no API changelog and no deprecation policy were found. Release notes cover the product only
- The API page's FAQ contradicts the definition on the host name, the page size and whether expenses can be created or reviewed
- The status page is drawn by script, so its incident history could not be read. The terms disclaim service levels
- The MCP server has 82 tools, is not in the official MCP registry, and no guidance on prompt injection was found

## What costs an agent a turn today

The notes we give agents before they call it. Each one is a workaround an agent shouldn't need.

- Send the key in `X-Payhawk-ApiKey` or as a Bearer token to `https://api.payhawk.com/api/v3`. A read-only key returns 403 on writes
- Page lists with `$skip` and `$take`. The help centre gives 1,000 a page and the definition a maximum of 10,000, so count what comes back
- Pass `$filter` as URL-encoded JSON, for example `{"status":{"$equal":"draft"}}`. Date filters compare the date part only
- Keep to 15 requests a second and wait for `Retry-After` on a 429. Do not send `Idempotency-Key` when creating a per diem expense, which returns 400
- Use a group-level key and the `/groups/{groupId}` paths for master data in a multi-entity group. Expenses and payments stay on account paths

## When it's done

Send what changed and where it's published as a dispute (https://www.anchorterminal.com/builders/#disputes, or `POST https://www.anchorterminal.com/api/v1/contact` with `"kind": "dispute"`). Disputes are answered in public, and the listing is checked again by the same checklist. Paying for an audit or a listing claim changes nothing here.

What we couldn't check

  • unchecked: the incident history on status.payhawk.com, which is drawn by script. Its feeds returned the same page shell
  • unchecked: MCP tool input schemas and readOnlyHint or destructiveHint annotations, which need a customer sign-in to list
  • unchecked: the SOC, ISO 27001 and penetration test PDFs linked from the trust page were not opened
  • unchecked: the fee schedules and the partner terms linked from the legal index
  • Whether the MCP server enforces confirmation of writes itself or relies on the assistant. The docs say every write waits for confirmation
  • Whether api.payhawk.io, cited in the help centre and the API page FAQ, still answers alongside api.payhawk.com
  • Whether the Growth programme includes Developer API access and whether its 7-day trial needs a card
  • The page limit. The help centre gives 1,000 records a page and the definition a maximum of 10,000
  • Whether an API changelog exists behind sign-in. None is linked from the developer portal or the help centre
  • The lead was right on the header, the OpenAPI 3.1 definition and the 105 paths. It did not mention the MCP server at mcp.payhawk.com, launched with the Fall '26 edition in September 2026
  • No search for security incidents was made beyond the vendor's own pages. The trust page states no material breaches in the last 12 months

Sources 28

  1. OpenAPI definition (API v3) api.payhawk.com · seen 2026-10-08
  2. developer portal (Swagger UI) and its config file developers.payhawk.com · seen 2026-10-08
  3. Developer API page and FAQ payhawk.com · seen 2026-10-08
  4. help centre, overview of the Developer API payhawk.com · seen 2026-10-08
  5. help centre, FAQ on the Developer API payhawk.com · seen 2026-10-08
  6. help centre, API returns only 999 results payhawk.com · seen 2026-10-08
  7. llms.txt payhawk.com · seen 2026-10-08
  8. help centre index for agents payhawk.document360.io · seen 2026-10-08
  9. about the Payhawk MCP payhawk.com · seen 2026-10-08
  10. connecting the Payhawk MCP payhawk.com · seen 2026-10-08
  11. MCP tool reference payhawk.com · seen 2026-10-08
  12. MCP troubleshooting payhawk.com · seen 2026-10-08
  13. MCP authorisation server metadata mcp.payhawk.com · seen 2026-10-08
  14. Fall '26 edition payhawk.com · seen 2026-10-08
  15. sandbox accounts payhawk.com · seen 2026-10-08
  16. pricing page payhawk.com · seen 2026-10-08
  17. release notes payhawk.com · seen 2026-10-08
  18. status page status.payhawk.com · seen 2026-10-08
  19. trust centre payhawk.com · seen 2026-10-08
  20. vulnerability disclosure policy payhawk.com · seen 2026-10-08
  21. security.txt payhawk.com · seen 2026-10-08
  22. general terms and conditions payhawk.com · seen 2026-10-08
  23. privacy policy payhawk.com · seen 2026-10-08
  24. Data Processing Addendum payhawk.com · seen 2026-10-08
  25. legal index payhawk.com · seen 2026-10-08
  26. official MCP registry search registry.modelcontextprotocol.io · seen 2026-10-08
  27. npm registry (no package) registry.npmjs.org · seen 2026-10-08
  28. RDAP record for payhawk.com rdap.org · seen 2026-10-08

Probe metrics

Not measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. The live panel above has what the pollers have seen so far, which doesn't change the score.

Pricing & changes

Paid Paid Sold by quote per module (Travel, Cards and Expenses, Accounts Payable, Procurement) on annual or multi-year contracts, with unit-based charges for extra cards, reimbursements, purchase orders and invoices. The one published price is the Growth programme at 149 pounds a month for single-entity firms in the UK or EEA with fewer than 20 employees, with an optional 7-day trial for eligible customers. The API page says the API is free for all Payhawk accounts, and the pricing page lists Developer API access and the MCP server in the modules. A development sandbox is requested through a form on the API page (checked 2026-10-08).

Recent changes

  • Latest release

Follow them as a feed at /feeds/tools/payhawk.xml, or this listing's score history at history.json.

Connect

First request

curl https://api.payhawk.com/api/v3/accounts/YOUR_ACCOUNT_ID/fund-accounts \
  -H "X-Payhawk-ApiKey: YOUR_API_KEY"

Through letme picks today, calling later

GET https://letme.dev/payhawk

letme.dev answers with this listing and how to call it direct, and picks the best tool for a job by capability or in words. Calling through letme (one key, the vendor's own price) comes later. Nothing on letme.dev is for people to look at; this page explains it.

Similar toolGrade ScoreShared capabilitiesx402
Airwallex Spend and Issuing AirwallexB68.3spend.transactions spend.cards spend.expenses spend.bills spend.procurementno
Spendesk API + MCP Spendesk SASB62.3spend.transactions spend.expenses spend.cards spend.bills spend.procurementno
Ramp Ramp Business CorporationC57.3spend.transactions spend.expenses spend.cards spend.bills spend.procurementno
BILL BILL Holdings, Inc.C60.9spend.transactions spend.expenses spend.cards spend.billsno
Brex Brex LLCC60.7spend.transactions spend.expenses spend.cards spend.billsno
Mercury API Mercury Technologies, Inc.B63.8spend.transactions spend.cards spend.expensesno

Machine-readable

Verify this listing

For the vendor

Is this your product? Link to this page from your own site or README, then tell us where. It shows people and agents that the listing is yours and that you know it's here. It never changes a grade, rank or review.

  1. Add the badge or a link

    Payhawk API + MCP on Anchor Terminal, C, 57.1/100
    On a light page
    On a dark page
    <a href="https://www.anchorterminal.com/tools/payhawk"><img src="https://www.anchorterminal.com/badges/payhawk.svg" alt="Payhawk API + MCP on Anchor Terminal" height="20"></a>
    [![Payhawk API + MCP on Anchor Terminal](https://www.anchorterminal.com/badges/payhawk.svg)](https://www.anchorterminal.com/tools/payhawk)

    It counts on a page on payhawk.com or one of its subdomains.

  2. Tell us where it is

    We read it once now and again every week. If the link is missing two weeks in a row the listing says so, and a later check puts it back.

Agents send the same to POST /api/v1/verify as {"slug": "payhawk", "url": "…"}, or call the verify_listing tool at /mcp. Ten checks an hour from one address. What we check. To announce the listing, get sharing assets for social media.

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.