[BUG] [Billing] Extra usage credit purchase fails: prepaid commit returns "failed" with null payment_intent_client_secret — zero auth attempts reach banks (same class as #55982, #56281)

Open 💬 1 comment Opened Jul 2, 2026 by lucinity-gk

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Every attempt to purchase extra usage credits on a Max plan at claude.ai fails instantly with "Payment failed. Looks like that payment didn't go through."

Captured in Chrome DevTools: the status poll on the prepaid commit returns HTTP 200 with status "failed" and stripe_payment_intent_client_secret: null (full JSON in Error Messages/Logs below).

A Stripe invoice IS created, but no confirmable PaymentIntent is ever exposed to the client — so the card is never submitted to Stripe at all. Consistent with this, three different issuing banks confirm ZERO authorization attempts received. The failure is entirely server-side, before any card network is contacted — same class as the PaymentIntent voiding documented in #55982.

Ruled out client-side: 3 cards from different issuers, Google Pay, Chrome regular + incognito, extensions disabled, no VPN, billing address verified, Iceland (supported country). iOS app checked — in-app purchases not available for this account, so no App Store workaround exists.

Support status: AI support agent closed the chat twice without escalation (conversation ID 215474929182438); email support is auto-answered by the same agent and the thread auto-closed. Filed here as this is the only actively monitored Anthropic repo — there is no dedicated claude.ai billing repo.

Impact: paying Max customer unable to purchase usage for 3+ days.

What Should Happen?

The prepaid commit should expose a valid PaymentIntent client_secret so the client can confirm the payment (including 3DS) — or a real decline code should be surfaced instead of a generic failure.

Error Messages/Logs

GET https://claude.ai/api/organizations/{org_id}/prepaid/commits/b72b73cc-d2b7-4180-a05d-535453f458b5
HTTP 200

{
  "purchase_id": "b72b73cc-d2b7-4180-a05d-535453f458b5",
  "status": "failed",
  "stripe_invoice_id": "in_1TokpIBNUnCSzfs9iz4cHiZz",
  "stripe_payment_intent_client_secret": null,
  "entity": "us"
}

UI error: "Payment failed. Looks like that payment didn't go through. Check your payment details and try again."
Full HAR and Request-Id headers available on request.

Steps to Reproduce

  1. Log into claude.ai (Max plan), Iceland-issued card on file
  2. Go to Settings → Billing → purchase extra usage credits
  3. Complete the purchase flow with any card
  4. Purchase fails instantly; polling /prepaid/commits/{purchase_id} returns status "failed" with stripe_payment_intent_client_secret: null

100% reproducible over 3+ days, across 3 cards, Google Pay, and multiple browsers. Banks confirm no authorization attempts received.

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.198 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Other

Additional Information

This is a claude.ai web billing failure, not a CLI defect — the CLI fields above are filled to satisfy the template. The blocked purchase prevents Claude Code usage on the Max plan, hence the impact.

Related issues showing the same server-side payment-intent failure class: #55982 (PaymentIntent voided with void_invoice before confirm), #56281, #57122, #45361, #25745.

Location: Iceland. Happy to provide full HAR, Request-Ids, and org ID privately to support.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗