出口退税申报与单证核对(免费版)
完全本地运行:引擎已经打包在本技能里(
engine/目录)。 核对过程不需要联网、不需要 API Key、没有调用次数上限。
什么时候用
谁会在什么时候用:外贸企业(免退税)与生产企业(免抵退)的出口退税经办岗、复核岗, 在每个申报期收尾、每一票出口退税申报之前,把当期这张「出口退税申报与单证对照表」核一遍。 税率或金额只要有一票对不上,退税审核就会卡住,函调要翻的单证本来就是这张表里已经填好的东西。
这张表长什么样:一行一票出口明细,列包括 所属期 / 申报企业 / 报关单号 / 出口发票号 / 商品编码 / 商品编码适用退税率 / 出口数量 / 出口额人民币 / 外币离岸价 / 汇率 / 出口发票金额 / 计税金额 / 退税率 / 退税额 / 报关单状态 / 出口发票状态 / 收汇水单状态,最后一行是「合计」。 从 Excel 连表头一起复制粘成文本即可,Tab 分隔最稳。
每条结论都带原文行号,可被第三方用同一口径复算。
这个免费版查什么
- 退税额逐行复算:出口额人民币 × 退税率 = 退税额;
- 申报表合计行与明细勾稽:合计行各列 = 明细行相加;
- 报关单号与出口发票号一一对应及重复登记:完全同源行、一单多票、一票多单;
- 申报退税率与商品编码适用退税率档位一致性;
- 单证缺失与关键字段空缺检测(报关单 / 出口发票 / 收汇水单状态列)。
怎么用
node scripts/run.mjs --sample # 先看内置干净样例
node scripts/run.mjs --input 你的对照表.json # 跑自己的材料
node scripts/run.mjs --input 你的对照表.json --json # 机器可读输出
入参写法:{"text":"(含表头的对照表文本,Tab 分隔最稳)"};
也可以直接把含表头的文本文件交给 --input(不是合法 JSON 时按纯文本材料处理)。
出参
- 退出码:0 已执行检查(有问题项或没有问题项都算执行成功);1 没给入参; 3 材料不足(不给结论,并列出缺什么);4 入参读不到或解析失败;9 未预期错误。
result.findings[]:每条带level(P0/P1)、category、line(原文行号)、message。result.scope:checks(本次执行的检查项)、checks_not_run(没执行的检查项,如实列出)、rows/periods/declarations、export_total/rebate_total、totals_row。result.summary.verdict:NO_ISSUE_FOUND/NEEDS_REVIEW/ERROR_FOUND。
常见错法(本产品专属)
- 把「出口额人民币」当成外币金额填:这一列是退税额的计算基数,填成美元口径就差了一个汇率。
- 「外币离岸价」与「汇率」两列搞反:外币离岸价 × 汇率 必须等于出口额人民币,反了整票基数就错。
- 退税率写成 13 而不是 13%:引擎两种写法都认(大于 1 的数字按百分比折算),但最好与申报表写法一致。
- 合计行是从别处粘来的:明细改了合计没跟着改,报上去的申报表与附送单证就对不上。
- 同一报关单号被粘了两行:完全同源行会把出口额与退税额重复计一遍,退税额当场虚增。
- 单证没齐先用 0 或空白顶着:空值与「缺 / 待补」都会被判「单证缺失 / 关键字段空缺」,不会静默跳过。
- 一票货拆成两行却没有拆单说明:同一报关单号对应多张出口发票会被报出来,需要人工确认是拆单还是填串了。
这个免费版不包含
- 跨月 / 跨企业汇总台账与重复申报比对(同一报关单横跨两个所属期或两家企业);
- 按差异金额排序的处理清单(按 |应有退税额 − 申报退税额| 排优先级);
- 差异归因(退税率档位 / 汇率折算 / 金额口径 / 单证不齐);
- 按适用档位的应有退税额复算、汇率折算复算、出口发票金额与出口额口径核对、 「单证不齐仍计入本期申报」提示。
需要这些请在完整版里跑。未执行的检查项会由 result.scope.checks_not_run 如实列出。
需要完整档时(可选)
本免费版是完整可用的核心产出,本版本不包含下面这些项:
- 跨月与企业汇总台账异常(同一报关单横跨两个所属期或两家申报企业时逐组报出,并输出按所属期 / 申报企业的汇总台账)
- 按差异金额排序的处理清单(按 |应有退税额 − 申报退税额| 从大到小排优先级,逐条带归因)
- 汇率折算与出口额不符(外币离岸价 × 汇率 ≠ 出口额人民币)
- 出口发票金额与出口额口径不符(同一票货的发票金额与出口额人民币应当一致)
- 单证不齐仍计入本期申报(单证没齐就把退税额报进本期,应当挂账等单证齐)
同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准);两档的差别就是上面这些,没有别的。
边界
本工具不做 CHECKS_OUT_OF_SCOPE 里列的那些判断:这一票该不该退税、该用哪个版本的
出口退税率文库、生产企业免抵退的「不得免征和抵扣税额」怎么算、关税与消费税的处理、
收汇期限与函调应对等,一律以税法与主管税务机关口径为准。
材料不足时不给结论,也不会输出「未发现问题」;全部在本机完成,不外发材料。
