[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)
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
- Log into claude.ai (Max plan), Iceland-issued card on file
- Go to Settings → Billing → purchase extra usage credits
- Complete the purchase flow with any card
- 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.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗