调用直销订单SP API的Tokens API时遭遇InvalidInput错误
亚马逊直销订单API调用及RDT获取问题
我尝试调用亚马逊直销订单API的两个操作但失败:
getOrders:接口地址为https://sandbox.sellingpartnerapi-na.amazon.com/vendor/directFulfillment/orders/v1/purchaseOrders?createdAfter=XXXX&MarketplaceIds=XXXXsubmitAcknowledgement:接口地址为https://sandbox.sellingpartnerapi-na.amazon.com/vendor/directFulfillment/orders/v1/acknowledgements
排查后确认这些是受限操作,需要通过LWA和AWS STS Token调用Tokens API获取RDT,但调用Tokens API时始终返回InvalidInput错误:
第一次请求体:
{"restrictedResources": [{"method": "GET","path": "vendor/directFulfillment/orders/v1/purchaseOrders"}],"targetApplication": "amz1.sellerapps.app.target-application"}
响应:
{"errors": [{"code": "InvalidInput","message": "Could not match input arguments","details": ""}]}
第二次请求体(更换方法为POST):
{"restrictedResources": [{"method": "POST","path": "vendor/directFulfillment/orders/v1/purchaseOrders"}],"targetApplication": "amzn1.sellerapps.app.target-application"}
响应同样是上述InvalidInput错误。
问题求助
- 我哪里出错了,为何会出现该错误?
- 我已配置IAM用户、角色、策略,创建开发者资料和应用并通过卖家账号自授权,是否合理?是否需要使用Vendor Central账号?
- 用于获取直销订单API RDT的Tokens API请求体是否正确?存在哪些问题?
- 能否指导我获取Tokens API POST请求的正确payload以获取RDT?
问题解答
1. 错误原因分析
你遇到的InvalidInput错误主要来自两个核心问题:
targetApplication值错误:你使用的amz1.sellerapps.app.target-application(或拼写错误的amzn1版本)不是直销订单API对应的目标应用ID,系统无法匹配到对应受限资源的权限规则。restrictedResources配置不匹配:第二次请求错误地用POST方法对应purchaseOrders路径,且未正确配置submitAcknowledgement的路径和方法,导致参数无法匹配接口要求。
2. 账号授权合理性说明
不合理,必须使用Vendor Central账号完成授权:
- 直销订单API是面向供应商的专属接口,仅支持Vendor Central账号授权,卖家账号(Seller Central)没有调用该类接口的权限,即便完成自授权也无法获取对应资源的访问权限。
- 你之前配置的IAM用户、角色、策略是SP-API调用的基础,但账号主体错误,直接导致后续权限验证不通过。
3. 当前请求体的问题
你的请求体存在两个关键问题:
targetApplication值错误:直销订单API有专属的目标应用ID,你使用的是卖家类应用的ID,完全不匹配。restrictedResources配置错误:- 针对
submitAcknowledgement,你未配置正确的路径(应为vendor/directFulfillment/orders/v1/acknowledgements)和POST方法; - 缺少必填的
dataElements字段,该字段需要指定对应API的资源元素,不能省略。
- 针对
4. 正确的Tokens API请求Payload
针对你需要的两个操作,正确的请求Payload如下:
{ "restrictedResources": [ { "method": "GET", "path": "/vendor/directFulfillment/orders/v1/purchaseOrders", "dataElements": ["purchaseOrders"] }, { "method": "POST", "path": "/vendor/directFulfillment/orders/v1/acknowledgements", "dataElements": ["acknowledgements"] } ], "targetApplication": "amzn1.vendorapps.app.12345678-1234-1234-1234-123456789012" }
注意:
targetApplication的具体值需从亚马逊SP-API供应商章节文档或Vendor Central应用授权页面获取;dataElements字段为必填项,必须匹配对应API的资源元素名称。
内容的提问来源于stack exchange,提问作者BILAL AHMED
相关产品推荐
相关产品推荐

