You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QuickBooks API创建客户POST请求失败:认证错误代码100求助

解决QuickBooks API POST请求的General Authentication Error(错误码100)

看起来你遇到了QuickBooks API POST请求的认证问题,不过既然GET请求一切正常,说明你的基础OAuth2认证流程是通的,大概率是POST请求的细节没踩对QB API的要求,下面是几个常见的排查方向:

1. 检查OAuth2令牌的权限范围

创建客户需要com.intuit.quickbooks.accounting这个读写权限,如果你的令牌只有只读权限(比如com.intuit.quickbooks.accounting.readonly),POST写操作肯定会被拦截。你可以通过QB开发者后台查看令牌的权限,或者重新引导用户授权时,确保申请了正确的读写scope。

2. 强制设置POST请求的Content-Type头

QB API要求POST/PUT请求必须携带application/json的Content-Type头,很多OAuth2客户端库不会自动帮你设置这个,导致服务器无法正确解析请求体,进而触发看似是认证的通用错误。

以你用的Ruby OAuth2库为例,手动添加头并把哈希转成JSON字符串:

at.post(
  "https://quickbooks.api.intuit.com/v3/company/#{realm_id}/customer",
  new_customer.to_json,
  headers: { "Content-Type" => "application/json" }
)

3. 确认Realm ID完全正确

虽然GET请求正常,但还是要核对POST请求里的realm_id和GET时用的是否完全一致——有时候变量传递或复制粘贴时容易出现拼写错误,导致请求指向错误的公司实体,触发认证错误。

4. 排查请求体的格式细节

你的客户数据大致没问题,但有两个小细节可以先调整试试:

  • CountrySubDivisionCode:法国的地区代码应该是具体的大区标识(比如IDF对应法兰西岛),而不是国家代码FR,QB API对这个字段的校验比较严格,错误值可能导致请求被拒绝(服务器有时候会把格式错误映射成通用认证错误)。
  • 拼写修正:DonwtownLA应该是DowntownLA,虽然这个不影响认证,但建议修正避免后续其他问题。

你也可以先简化请求体,只传必填字段(比如DisplayName、GivenName、FamilyName),看看能不能成功创建客户,再逐步添加其他字段定位问题。

5. 验证令牌有效性(概率较低)

虽然GET正常,但也可以确认下令牌的expires_at时间,或者尝试刷新令牌后再发起POST请求排除过期问题。


内容的提问来源于stack exchange,提问作者Jordan Mcn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:18:56