Anthropic 控制台计费错误:输入 5.04 被收取 504 美元,因区域设置小数处理问题

一位使用 Anthropic 控制台的开发者报告称,在信用购买金额字段中输入 5.04 被静默解释为 504,并以 504.00 美元从信用卡扣款,约为预期金额的 100 倍,且交易执行前没有确认界面。该报告发布在 Hacker News 上,编号为 50121562,描述了一个与区域设置相关的输入解析失败,以及一个拒绝退款的自动化支持流程。

核心说法是,在逗号小数区域设置下,用户输入的小数分隔符被剥离,而不是被拒绝或规范化,结果金额被立即提交到支付网关。

报告者所述经过

发帖者自称是哥斯达黎加一个开发者团队的首席法律科技律师。根据帖子,他尝试向 Anthropic API 账户添加信用额度,并被提示输入支付金额。由于他在西班牙语地区工作,当地系统通常使用逗号作为小数分隔符,他输入了 5.04。

根据帖子,系统没有报格式错误,也没有转换该值,而是在内部剥离了小数点,并收取了 504.00 美元。发帖者称,在处理前没有确认弹窗或审查界面来显示最终金额。

报告者对错误的复现

在同一帖子的后续评论中,原始发帖者表示他在控制台内复现了输入验证失败。他对机制的描述:

“当你的区域设置使用逗号作为小数分隔符时(例如,我的余额显示为 430,26),输入字段仍然允许你输入点号(0.5 或 5.04)。灾难性的用户体验失败发生在你输入后立即按回车键时。表单在前端验证层能够阻止或正确提醒用户之前,就立即将原始、未净化的输入字符串提交到后端。”

他进一步声称该行为绕过了平台自身声明的下限:

“系统违反了自己‘最低 5.00 美元’的规则,绕过了正确的错误预防机制,并立即向 Stripe/支付网关发送了支付请求。”

这些是报告者对系统行为的描述,并非独立验证的结果。

扣款金额因税费而增加

在另一条更新中,发帖者称最终从卡上扣除的金额高于 504.00 美元,因为当地增值税是在错误的基础金额上计算的:

“由于系统处理了错误的 504.00 美元基础金额,它自动计算了当地增值税(税费),额外增加了 65.52 美元。这个单击错误从我的卡上扣除的绝对总额是 569.52 美元。”

支持体验

发帖者称他当天就提交了投诉,但被转给了自动化支持机器人,而不是人工客服。根据帖子,机器人拒绝了退款,并引用通用政策关闭了工单,没有人工审核关于超额收费源于平台错误的说法。

他还表示已向哥斯达黎加的银行发起拒付,当地银行流程可能需要长达 120 天才能解决,期间这笔费用会保留在他的账单上。

反驳观点:屏幕上显示了总额

一位评论者对金额从未显示的说法提出了反驳。用户 striking 报告称,在 platform.claude.com 上检查“添加信用额度”屏幕时,观察到应付总额会明显更新:

“我正在查看 https://platform.claude.com 上的‘添加信用额度’屏幕,当输入 5,04 时,它显著显示了‘应付总额’为 504.00 美元……”

这一观察有两个值得注意的点。首先,它表明该字段可能将逗号视为千位分隔符,而不是小数分隔符,这也会从 5,04 产生 504。其次,它表明计算出的总额在提交前已渲染,这比确认步骤更弱,但并非静默扣款。报告者的立场是,显示的总额不是确认弹窗,输入应被视为歧义而被拒绝。

另一位评论者 merb 对输入本身提出了质疑:

“你想用 5.04 达到什么目的?在西班牙或其他欧洲国家,5,04 才是正确的?所以 5.04 要么无效,要么就像 Claude 那样是 504。”

为什么这种失败模式不仅仅影响一笔交易

报告者将问题定性为系统性问题,而非个人问题。他的论点是,相同的解析路径会随输入的数字规模扩大:在相同行为下,输入 50.00 将产生 5,000.00 美元的扣款。他还认为,金融软件应拒绝有歧义的数字输入,而不是猜测其含义。

“在金融软件中,系统绝不应在没有明确验证的情况下猜测或自动操作数字输入。如果输入因区域设置差异而有歧义,应用程序必须拒绝它或要求澄清,而不是执行 100 倍的超额收费。”

自动化支持的不对称性

帖子中最广泛回应的担忧不是解析错误本身,而是无法联系到能识别明显错误的人工客服。评论者 clickety_clack 将其描述为结构性失衡:

“这是我害怕的那种错误,一个正常人会说‘哦,当然这是错误,抱歉’,但你无法与人工对话。公司可以等待数月解决,但个人等不了。”

评论者 nottorp 提出了关于支付控制的相邻问题,询问这些支付界面是否接受一次性虚拟卡号,以及是否支持欧洲卡片的 3D Secure。这些问题在帖子中没有得到回答。

一位评论者 UnlockedSecrets 质疑原始帖子是否由 AI 辅助撰写。该评论在可见的帖子中没有得到实质性回复。

尚未解决的问题

帖子中没有 Anthropic 的回应来确认或否认该错误,没有声明已发布修复,也没有迹象表明退款已获批准。报告者的复现声明和银行对账单截图均为自行报告。帖子中唯一独立的检查来自 striking,确认控制台对输入 5,04 显示计算出的应付总额为 504.00 美元,这与报告者的扣款金额一致,但本身并不能确定确切的解析路径或是否存在确认步骤。

对任何构建支付输入的人的可推广教训

货币金额字段如果接受自由文本,必须明确解析小数分隔符,而不是推断。这里描述的失败模式有三个可分离的组成部分,每个都可以独立预防:

  • 静默接受有歧义的输入。 包含与用户区域设置不匹配的分隔符的值应被拒绝并报错,或通过可见的回显来规范化解释的值。
  • 不可逆扣款前没有确认步骤。 显示的运行总额不等于对最终金额和货币的明确确认。
  • 没有升级路径的自动化支持。 机器人拒绝退款且没有人工审核,使受影响方只能走缓慢的拒付途径,报告者称在哥斯达黎加可能需要长达 120 天。

对于集成任何按量计费 API 的开发者,实际要点是核对结账时显示的金额与预期金额,并在供应商支持的情况下,优先使用允许每笔交易限额或一次性号码的支付工具。

Sources