# AX Check: moderntreasury.com
Checked 2026-09-29.

Docs and quickstart are solid, but pricing has no real numbers
The Payments Quickstart gives working code and auth steps in minutes. The pricing page skips dollar amounts, pushing agents to "Talk to us" instead.

## Onboarding needs a login

## Coding sessions
All three independent sessions completed. Each concluded pricing is quote-based rather than published, describing a platform fee plus usage-based charges and naming assumptions like rails, volume, and minimum commitment rather than citing a fixed number.

### DeepSeek V4.1 Flash
[View public run](https://agents.withgauge.com/p/runs/da76911d-de9d-48c5-b6ee-fbf7c9fddddc) · [Read transcript](https://www.ax-check.com/moderntreasury.com/sessions/deepseek.json)
Final output states pricing is quote-based with platform+usage fee buckets, and names assumptions (rails, volume, account structure, annual minimum commitment) rather than a bare number.
#### End-to-end onboarding
- **Onboarding needs a login**: The agent thoroughly researched Modern Treasury's docs, SDK, and quickstart, and wrote a working example script with a credential guard, but it never obtained real Modern Treasury API credentials. The only environment variable present was an unrelated gateway key. The script was only test-run in its no-credentials failure path (the guard clause), never against the live API. The agent explicitly flagged this as a blocker and stopped without acting further.
  Event 26:

  ```text
  PI_GATEWAY_API_KEY=<set>
  ---done---
  
  ```
  Event 98:

  ```text
  --- guard test (no creds) ---
  Missing credentials. Set MODERN_TREASURY_API_KEY and MODERN_TREASURY_ORGANIZATION_ID (Sandbox keys from https://app.moderntreasury.com/developers/api_keys).
  exit=1
  
  ```
  Event 110:

  ```text
  I got blocked on **credentials**: no Modern Treasury API key/org ID is present in the environment (only an unrelated `PI_GATEWAY_API_KEY`), so I could not execute live calls.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No Modern Treasury API key or Organization ID available**: The sandbox environment only exposed an unrelated gateway key (PI_GATEWAY_API_KEY). Modern Treasury requires an Organization ID and API key for HTTP Basic Auth on every request. This is a missing-credentials limitation of the test environment, not a product defect — the agent correctly identified it, built a credential guard, and stopped rather than faking success.
  Event 26:

  ```text
  PI_GATEWAY_API_KEY=<set>
  ---done---
  
  ```
  Event 110:

  ```text
  I got blocked on **credentials**: no Modern Treasury API key/org ID is present in the environment (only an unrelated `PI_GATEWAY_API_KEY`), so I could not execute live calls.
  ```

#### Suggested Changes
None identified in this transcript.

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/11c0d7c6-e557-44ee-8d19-8024acedb21c) · [Read transcript](https://www.ax-check.com/moderntreasury.com/sessions/kimi.json)
Final output gives platform fee ($2,000/month), per-transaction ACH/RTP/stablecoin rates, and names assumptions (annual terms, minimum commitment, volume/rails dependency, free sandbox tier), sourced from a live curl of moderntreasury.com/pricing at seq 13-19.
#### End-to-end onboarding
- **Onboarding needs a login**: Agent installed the official modern-treasury npm SDK and correctly wired up the client, verifying the full request path against the live hosted API (app.moderntreasury.com) down to the exact auth boundary. It never obtained real API credentials on its own — sandbox signup requires human email verification through the dashboard, which the agent explicitly flagged as something it cannot do. No authenticated operation (e.g. actually creating a counterparty or payment order) ever succeeded because no real key was available.
  Event 61:

  ```text
  API error 401: 401 status code (no body)
  ```
  Event 63:

  ```text
  I can't complete a live run because **sandbox credentials require a human signup** — email verification at app.moderntreasury.com, which I can't do. There's no programmatic signup or publishable test key.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **Sandbox signup requires human email verification**: Modern Treasury has no programmatic or self-service API for creating a sandbox org with API keys; account creation happens through the dashboard and requires a human to sign up and verify. This is a product/process limitation (by design, not a bug) that blocked the agent from obtaining real credentials and completing a live authenticated run within the session.
  Event 63:

  ```text
  I can't complete a live run because **sandbox credentials require a human signup** — email verification at app.moderntreasury.com, which I can't do. There's no programmatic signup or publishable test key.
  ```
- **SDK client construction required trial-and-error on option names and base URL**: Agent error, quickly self-corrected: the constructor threw on a lowercase 'organizationId' before finding the correct casing 'organizationID', and the initial baseURL guess of 'https://app.moderntreasury.com/api' produced a 404 because the SDK appends '/api' itself. Both were fixed within the same turn using error messages, so they did not block final progress.
  Event 34:

  ```text
  Error: The MODERN_TREASURY_ORGANIZATION_ID environment variable is missing or empty; either provide it, or instantiate the ModernTreasury client with an organizationID option, like new ModernTreasury({ organizationID: 'my-organization-ID' }).
  ```
  Event 48:

  ```text
  API error 404: 404 {"errors":{"code":"not_found","message":"path \"/api/api/ping\" not found","parameter":null},"error_list":[{"code":"not_found","message":"path \"/api/api/ping\" not found","parameter":null}]}
  ```

#### Suggested Changes
- **Add a publishable or self-service sandbox key option for developer trials**: The pricing page and docs footer link to API Reference and Getting Started, but there is no path to get a working test-mode API key without going through dashboard signup and email verification. Consider a self-service sandbox key (similar to Stripe test keys) so a first-time developer or automated agent can exercise the SDK end-to-end without human intervention. Verify by having a fresh, non-interactive session obtain a key and successfully call client.ping() and create a resource.
  Event 63:

  ```text
  There's no programmatic signup or publishable test key.
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/afe56dfa-bf77-4731-8b08-d98c08526e52) · [Read transcript](https://www.ax-check.com/moderntreasury.com/sessions/qwen.json)
seq 16/final output states Modern Treasury has no public self-serve pricing, is quote-based via sales, and historically a monthly platform fee plus per-transaction fees — naming the basis/assumptions for the claim.
#### End-to-end onboarding
- **Onboarding needs a login**: Agent never obtained or used real Modern Treasury credentials. It searched the sandbox environment for existing keys/config, found none, and explicitly stopped because sandbox API access requires signing up through Modern Treasury's sales-gated onboarding. It only scaffolded example code and verified the SDK loads locally, never making an authenticated API call.
  Event 4:

  ```text
  cat ~/.netrc 2>/dev/null; ls ~/.config 2>/dev/null
  ```
  Event 27:

  ```text
  I can't run the example: **no Modern Treasury credentials exist in this environment**, and getting sandbox `organization_id` / `api_key` requires signing up through their sales-gated process. Every API call would 401 without them.
  ```
  Event 25:

  ```text
  SDK loads OK: function
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No self-serve API credentials available**: Modern Treasury requires an organization_id and api_key to make any API call, and obtaining sandbox access requires going through a sales-gated signup process rather than self-service. This is a normal product/business-model limitation (not a bug) that blocked the agent from running its scaffolded example against the live API.
  Event 16:

  ```text
  Every API call requires `organization_id` + `api_key` from a Modern Treasury account (their sandbox environment requires signing up, and sandbox access is gated behind contacting their team).
  ```
  Event 27:

  ```text
  getting sandbox `organization_id` / `api_key` requires signing up through their sales-gated process. Every API call would 401 without them.
  ```

#### Suggested Changes
- **Publish self-serve sandbox signup for the API quickstart**: On the Modern Treasury developer docs/quickstart page, add a way to generate sandbox organization_id/api_key credentials without contacting sales. Verify by having a new developer sign up and successfully call the API (e.g., list payment orders) within minutes, no sales conversation required.
  Event 16:

  ```text
  Modern Treasury has **no public, self-serve pricing**. It's quote-based, sold via their sales team
  ```
  Event 27:

  ```text
  getting sandbox `organization_id` / `api_key` requires signing up through their sales-gated process
  ```

### Task given to each agent
Help me build a simple example using Modern Treasury. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.

No product credentials were supplied and no purchases were authorized.

## Score: B · 74/100 (provisional)
Grades come from completed site checks. Coding sessions and skipped checks do not affect the score.

### Clarity
- **Failed** — Homepage answers Markdown requests

  ```text
  Homepage returned text/html even when text/markdown was requested; no Markdown representation served.
  ```

- **Pass** — llms.txt provides an actionable documentation index

  ```text
  llms.txt is a curated index linking docs, API reference, OpenAPI spec, SDKs, and MCP server.
  ```

- **Pass** — llms.txt provides navigation guidance

  ```text
  llms.txt organizes links into Start here, developers, products, guides, and reference sections.
  ```

- **Pass** — llms.txt mentions offered API, MCP, and skills

  ```text
  llms.txt lists API reference, OpenAPI spec, SDKs, and the MCP server under developers and AI agents.
  ```

- **Pass** — A compact guide representation exists

  ```text
  Payments Quickstart is published as standalone Markdown at /payments/docs/quickstart.md.
  ```

- **Pass** — A focused guide is directly retrievable

  ```text
  Payments Quickstart .md gives four concrete steps: API key, account, counterparty, payment.
  ```

- **Pass** — Equivalent instructions fit a token budget

  ```text
  Quickstart Markdown is 1340 tokens, well under the 8000-token budget.
  ```

- **Skipped** — Product-docs links survive format changes

  ```text
  Homepage Markdown is unsupported, so link preservation across formats cannot be measured.
  ```

- **Pass** — The compact guide is independently actionable

  ```text
  Payments Quickstart gives concrete steps: get API key, ping, create counterparty, fund account.
  ```

- **Pass** — Install and next-step links resolve

  ```text
  Quickstart's API endpoints returned 401 auth errors, confirming live routes; docs links fetched fine.
  ```


### Onboarding
- **Pass** — Docs lead to a relevant quickstart

  ```text
  Getting Started links to the Payments Quickstart, which walks through auth, account setup, and first payment.
  ```

- **Pass** — Installation commands are extractable

  ```text
  Quickstart gives extractable cURL, Python, and TypeScript install/init snippets with env-var API key handling.
  ```

- **Pass** — Code examples are available without interaction

  ```text
  Quickstart shows cURL, Python, and TypeScript code plus JSON request/response examples without interaction.
  ```

- **Pass** — Prerequisites and auth boundaries are explicit

  ```text
  Quickstart states HTTP Basic Auth with Organization ID and API key, and where to obtain keys.
  ```


### Pricing
- **Failed** — Prices are stated, not gated

  ```text
  Pricing page states no dollar amounts; only 'Talk to us' and 'exact pricing depends on volume'.
  ```

- **Failed** — Pricing units and limits are explicit

  ```text
  Pricing page lists rails and a minimum commitment but no explicit units or limits.
  ```

- **Pass** — Pricing is readable without interaction

  ```text
  Pricing page loads as static HTML with tiers and FAQs, no interaction required.
  ```

- **Pass** — Agents identify pricing and its assumptions

  ```text
  3 of 3 sessions were judged on pricing; 0 fell short. DeepSeek V4.1 Flash: Final output states pricing is quote-based with platform+usage fee buckets, and names assumptions (rails, volume, account structure, annual minimum commitment) rather than a bare number. Kimi K3: Final output gives platform fee ($2,000/month), per-transaction ACH/RTP/stablecoin rates, and names assumptions (annual terms, minimum commitment, volume/rails dependency, free sandbox tier), sourced from a live curl of moderntreasury.com/pricing at seq 13-19. Qwen 3.8 Max: seq 16/final output states Modern Treasury has no public self-serve pricing, is quote-based via sales, and historically a monthly platform fee plus per-transaction fees — naming the basis/assumptions for the claim. This behavioural item does not affect the fast grade.
  ```


### Activation
- **Pass** — An API reference or OpenAPI spec is reachable

  ```text
  API reference page and full OpenAPI 3 YAML spec both fetched successfully.
  ```

- **Pass** — An MCP server is documented and well-formed

  ```text
  MCP docs give remote server URL and Cursor/Windsurf/Claude config snippets.
  ```

- **Skipped** — A CLI install path is documented

  ```text
  No CLI install path documented; only SDKs and MCP server are offered.
  ```

- **Skipped** — SDK packages resolve on their registries

  ```text
  SDKs listed on GitHub but no registry lookup result supplied for any package.
  ```

- **Skipped** — Agent skills are published

  ```text
  No agent skills surface documented in the fetched pages.
  ```



[Full report data](https://www.ax-check.com/moderntreasury.com/report.json)
