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

请求Revolut API可复用访问令牌时遇client_id缺失错误求助

Troubleshooting "invalid_client: client_id is missing" in Revolut B2B API Token Request

我之前对接Revolut B2B API时也踩过这个一模一样的坑,结合你已经完成的步骤,给你几个针对性的排查方向:

1. 确认请求参数的传递格式

Revolut的这个令牌接口**只接受表单格式(application/x-www-form-urlencoded)**的参数,很多人会误选JSON格式提交,哪怕你填了client_id,后端也根本识别不到。

  • 在Insomnia里操作:切换到请求的「Body」标签,选择「Form URL Encoded」类型,然后逐一填入以下必填参数:
    • grant_type: 固定填authorization_code(对应你用的授权码流程)
    • client_id: 粘贴你上传公钥后获取到的官方client ID
    • code: 你之前拿到的授权码
    • client_assertion_type: 固定值urn:ietf:params:oauth:client-assertion-type:jwt-bearer
    • client_assertion: 用私钥签署生成的完整JWT字符串

2. 校验JWT的核心字段是否正确

就算你成功生成了JWT,如果里面的关键字段不符合要求,也会触发这个错误。你可以用本地的jwt命令行工具(或者离线解码工具)解析你的JWT,确认:

  • sub字段的值和你使用的client_id完全一致(这个字段是JWT里代表客户端身份的核心,必须匹配)
  • aud字段严格等于https://b2b.revolut.com/api/1.0/auth/token(这是接口要求的受众,不能填错)
  • 签名算法是RS256(Revolut只支持这个非对称加密算法)

3. 检查client_id的准确性

有时候看起来改了client_id,但可能是复制时带了空格、或者漏了前缀(比如Revolut的B2B client_id一般以b2b_开头)。建议直接从Revolut商家后台的公钥管理页面复制client_id,粘贴到Insomnia后双击选中,检查有没有隐藏的空白字符。

4. 确认公钥是否已生效

虽然你已经完成了公钥上传,但Revolut后台偶尔会有几分钟的同步延迟。如果是刚上传完就测试,建议等待5-10分钟再重试,或者去后台确认公钥的状态是「Active」(活跃)状态。

按照这几个步骤排查下来,应该能解决这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 18:02:27