HMRC VAT (MTD) Test API返回404 MATCHING_RESOURCE_NOT_FOUND错误求助
问题修复方案
触发MATCHING_RESOURCE_NOT_FOUND的核心原因及修复方法
- 无效GET请求冲突
你在POST提交数据前先发起了一次无参数的GET请求调用/organisations/vat/{vrn}/returns端点,该端点的GET方法必须携带periodKey参数才能匹配到对应申报周期的资源,无参数请求会直接触发资源不存在报错。如果不需要提前查询数据,直接删除这段GET请求代码即可。 - 请求体包含无效字段
你提交的vatData里混入了grant_type、client_secret、client_id三个OAuth鉴权字段,这三个字段仅用于获取access token,不属于VAT申报数据的合法字段,需要从vatData中删除。 - 请求头配置错误
- 第一次GET请求中放置的
Scope、ContentType为无效请求头,Scope仅在获取token时指定,不需要随业务请求传递,且Content-Type的标准写法为带连字符的形式,你写的ContentType无法被识别。 - POST请求的
Accept、gov-test-scenario参数没有放在headers字段内,导致这两个必要头没有发送给服务端,HMRC无法识别接口版本和测试场景,触发资源不存在报错。
- 第一次GET请求中放置的
- 测试VRN未绑定
请确认你使用的766434212是你的HMRC开发者后台绑定到当前应用的专属测试VRN,若使用未关联到你应用的测试VRN也会触发该报错。
权限相关说明
HMRC测试环境默认开放测试用户的VAT数据POST权限,只要你创建应用时勾选了VAT (MTD)接口的write:vat权限、测试用户授权时同意了对应权限,无需额外申请即可使用。
修正后的核心代码片段
// 移除无效的GET请求代码段后,POST部分调整为如下格式 var vatData = { 'periodKey': '18A2', 'vatDueSales': 105.50, 'vatDueAcquisitions': -100.45, 'totalVatDue': 5.05, 'vatReclaimedCurrPeriod': 105.15, 'netVatDue': 100.10, 'totalValueSalesExVAT': 300, 'totalValuePurchasesExVAT': 300, 'totalValueGoodsSuppliedExVAT': 3000, 'totalAcquisitionsExVAT': 3000, 'finalised': true }; var options = { 'headers': { 'Accept': 'application/vnd.hmrc.1.0+json', 'Authorization': 'Bearer ' + service.getAccessToken(), 'gov-test-scenario': 'QUARTERLY_NONE_MET' }, 'method': 'POST', 'contentType': 'application/json', 'payload': JSON.stringify(vatData) }; UrlFetchApp.fetch('https://test-api.service.hmrc.gov.uk/organisations/vat/766434212/returns', options);
内容的提问来源于stack exchange,提问作者h-edwards
相关产品推荐
相关产品推荐

