一年四次,每个个体经营者和房东都得向HMRC提交一份收支汇总。2026-27税年的第一个截止日8月7日已经过去,第二个落在11月7日。每一次汇总,本质上就是软件向HMRC发出的一次API调用——而这次调用能不能一次过,是这篇教程要解决的事。
不需要任何前置阅读。每个MTD集成都需要的一次性配置(沙箱应用、OAuth 2.0访问令牌、防欺诈请求头)在下面的快速回顾里一并给出,还有每个代码片段都会用到的小请求助手。跟着走完,你会知道怎么找到要申报的企业、算出哪个周期到期、构建HMRC接受的累计汇总、提交它,然后读取随之而来的税务计算。
![]()
先看一次性配置
在提交任何东西之前,你的应用需要和所有MTD集成一样的一次性配置。如果已经有了,跳到下一节。否则,这里是简版:
- 在HMRC开发者中心注册一个沙箱应用,并订阅这里用到的四个API:Business Details、Obligations、Self Employment Business、Individual Calculations。没订阅的API会返回403 Forbidden,看起来像授权问题,其实不是。
- 用HMRC的Create Test User API创建一个沙箱测试用户,它会给你一个带国家保险号(NINO)和政府网关凭证的假纳税人。
- 通过HMRC的OAuth 2.0授权码流程获取访问令牌,申请read:self-assessmentwrite:self-assessment两个scope,在HMRC的同意页面上以测试用户身份登录。
- 每次调用都发送防欺诈请求头。HMRC强制要求,具体集合取决于你的应用如何连接,所以一次性写进一个
getFraudHeaders(req)函数里。
本教程的每个片段都调用一个小助手。它设置bearer令牌、通过Accept头固定API版本(每个HMRC API有自己的版本,版本错了返回406 Not Acceptable),并附上你的防欺诈请求头。
助手代码里有个细节值得单独拎出来:只有当请求带body时才设置JSON的Content-Type。HMRC的边缘会拒绝一个没有body却带着Content-Type的GET请求,返回403。这个坑和订阅缺失长得一模一样,但成因完全不同。
季度更新到底在更新什么
季度更新不是纳税申报表。它是一组滚动总计:本税年至今,企业赚了多少、花了多少,按Self Assessment已经在用的相同类别分组。
关键词是"至今"。每次更新都是累计的,覆盖从税年开始到当前更新周期结束的全部内容,而不只是最近三个月。GOV.UK关于发送季度更新的指引列出了标准周期和截止日:
- 4月6日至7月5日 → 截止8月7日
- 4月6日至10月5日 → 截止11月7日
- 4月6日至1月5日 → 截止2月7日
- 4月6日至4月5日 → 截止次年5月7日
这个设计有个讨喜的副作用:如果用户发现前一个季度有错,下一次更新直接带上更正就行。HMRC的端到端服务指南说得很直白:每次更新都会让上一次失效,因为每个周期都从4月6日开始。会计年度从4月1日开始的客户可以选择改用日历周期(4月1日至6月30日,以此类推),截止日相同。
这两套日期你都不需要硬编码,因为Obligations API会返回确切日期。HMRC把每一次必须提交的更新称为一个"obligation":每个自营职业或房产企业每税年四次,外加年度纳税申报表。
第一步:找到Business ID
每个自营职业端点都需要一个businessId,这是HMRC对单一收入来源的标识。一个同时出租房产的个体经营者有两个。你通过Business Details API,用客户的国家保险号(NINO)拿到它们。
返回的数组在listOfBusinesses下,每个条目带有typeOfBusiness(self-employment、uk-property、foreign-property或property-unspecified)、businessId,以及可选的tradingName。沙箱里的自营职业ID形如XBIS12345678901。
HMRC的指南建议把ID存下来,而不是每次调用前都去查一遍。这个建议值得照做——少一次调用,就少一次踩403和406的机会。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.