[UX] "Credit balance" (API console) and "Current balance" (subscription) use identical framing for unrelated billing systems
Summary
Two separate Anthropic billing systems — the API (console.anthropic.com) and Claude subscriptions (claude.ai) — both display dollar amounts under visually identical "balance" labels, with no UI distinction between them. They refer to unrelated systems with different mechanics, different activation conditions, and different monthly caps. A user with both active has no single place to see their full picture.
Observed behavior
console.anthropic.com (API console):
- Shows "Credit balance: $5.00" — prepaid API credits consumed per token for API key users, depletes continuously
- Shows "No activity in the last 7 days" for token volume when the user is actively using Claude via subscription — API console is blind to subscription usage
- A heavy subscription user appears completely idle here
claude.ai/settings → Usage credits (subscription):
- Shows "Current balance: $120.84" — overflow credits, only activated when the plan limit is hit and "extra usage" is enabled
- Governed by a separate "Monthly spend limit: $100" cap
- Does not deplete during normal subscription use
The UI treatment is identical: same visual component, same "balance" label pattern, no explanatory copy distinguishing the two systems.
Impact
- Subscription users believe they have a prepaid wallet that depletes continuously (like API credits) — it does not
- Users do not understand why a "Monthly spend limit" exists separately from the balance
- Users holding both API credits and subscription usage credits cannot distinguish them without reading fine print across two consoles
- Subscription users who check console.anthropic.com see "No activity" and conclude something is wrong, when their usage is simply invisible to the API console
- There is no single view showing total spend across both billing systems
- Confusion compounds when both consoles are open simultaneously (see Evidence)
- Users may enable "extra usage" expecting to spend existing credits, not realizing it authorizes new charges up to the cap
Evidence
Simultaneous observation with both consoles open: console.anthropic.com shows "Credit balance: $5.00" and "No activity in the last 7 days" while claude.ai shows "Current balance: $120.84" under Usage credits. Both use identical "balance" framing; neither surface explains that these are unrelated systems tracking different things.
Expected behavior
What is actually needed is a consolidated billing view — a single page (or clearly sectioned dashboard) that shows both systems with unambiguous labels:
── API billing (console.anthropic.com) ──────────────────
API credit balance: $5.00 (consumed per token, API key users)
API usage this month: $0.00
── Subscription billing (claude.ai) ─────────────────────
Plan: Max (5x)
Usage credit reserve: $120.84 (charged only if plan limit is reached)
Monthly spend cap: $100
Subscription usage this period: [breakdown by surface]
Short of a unified view, each console should at minimum carry a clear label identifying which billing system it represents (see #67077) and cross-link to the other.
Related
- #67077 — console.anthropic.com lacks API-console identity label
- #67073 — no per-surface activity log for subscription usage
- #54677 — CLI startup banner does not distinguish API vs subscription auth
- #50994 — general billing confusion between claude.ai and Claude Code
Environment
- Claude Code v2.1.170, macOS 15.x
- Claude Max (5x) subscription + API account
Showing cached comments. Read the full discussion on GitHub ↗
5 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
Not a duplicate. #54677 is about the CLI startup banner auth label; #67077 is about console.anthropic.com identity. #67082 is a true duplicate (filed twice due to a CLI error) — closing that one. This issue is specifically about billing mechanics confusion between two "balance" displays across unrelated systems.
Periodic verification — July 2026
Checked against Claude Code v2.1.197 (latest release as of 2026-07-01).
Reproduction test: Requires visual inspection of the Claude Code usage overlay and console.anthropic.com — cannot be automated. This is a cross-surface UX/labeling issue ("Credit balance" API vs. "Current balance" subscription). Reporter will verify on next manual check.
Release notes through v2.1.197: no mention of a fix.
Automated verification comment — reporter will close upon confirming resolved.
Periodic verification — July 2026
Checked against Claude Code v2.1.216 (latest release as of 2026-07-21).
Reproduction test: Requires visual inspection of the usage overlay and console.anthropic.com — cannot be automated. This is a cross-surface UX issue ("Credit balance" for the API console and "Current balance" for subscription use identical framing for unrelated billing systems). Reporter will verify on next manual check.
Release notes through v2.1.216: no mention of a fix.
Automated verification comment — reporter (@blwfish) will close upon confirming resolved.
Adding a related public-safe data point because this UI/ledger split becomes much more than a wording problem when payment or credit posting fails.
In my current unresolved Claude billing incident, the manual prepaid / discounted usage-credit purchase path fails or fails to commit cleanly, while automatic usage-credit top-ups on the same Claude billing account continue charging successfully. The latest public-safe support posture is still that Fin/support has not produced a human Billing Platform / payment-operations reconciliation, refund, or restored manual purchase path.
This is not the same report as the original issue, but it points at the same product gap: users and support need a clearly separated, auditable view of:
Public sanitized incident hub: https://coolak.github.io/anthropic-claude-billing-incident/
Reconciliation matrix: https://coolak.github.io/anthropic-claude-billing-incident/reconciliation-matrix.html
The actionable ask is narrow: distinct labels/cross-links are helpful, but the deeper fix is a Billing Platform / payment-operations reconciliation view and support runbook that can compare payment auth, order commit, invoice/receipt, auto-reload, discount eligibility, and credit-ledger posting without routing users between unrelated billing surfaces. I am intentionally omitting private card, bank, invoice, payment-object, support-thread, support-ticket, screenshot, raw-log, and account identifiers here.