报销单合规预检(免费)
一句话:把一沓发票 + 一张报销单放在一起核一遍 —— 不需要付款,也不需要注册。
完全免费:不需要付款、不需要注册、不需要配置任何 API Key,直接调用即可。
什么时候用
- 报销前想确认:这一沓发票里有没有同一张被贴了两次(重复报销)
- 担心某张发票要素不齐(缺发票号 / 开票日期 / 销售方 / 金额),到财务那里被打回
- 报销单模板里还留着
【填写…】、XXX、TBD没替换
这个免费版查什么
| # | 检查项 |
|---|---|
| 1 | 重复发票号(重复报销线索) |
| 2 | 发票要素完整性:发票号 / 开票日期 / 销售方 / 金额 |
| 3 | 模板占位符残留 |
只出现在一张单据里的字段不会报 —— 无从比对的事情我们不猜。
怎么用
node scripts/run.mjs --sample
node scripts/run.mjs --input my-expense.json
node scripts/run.mjs --input my-expense.json --json
入参两种写法,任选:
{ "documents": [
{ "type": "报销单", "text": "报销单号: BX-1\n报销金额: 1326.00\n住宿费 1240.00\n市内交通 86.00" },
{ "type": "发票", "text": "发票号: INV-1\n开票日期: 2026-05-08\n销售方: 某某酒店\n价税合计: 1240.00" },
{ "type": "发票", "text": "发票号: INV-2\n开票日期: 2026-05-07\n销售方: 某某出租车\n价税合计: 86.00" }
] }
或者直接给纯文本,单据之间空一行。
退出码
| 码 | 含义 |
|---|---|
| 0 | 已执行检查 |
| 1 | 没给入参 |
| 3 | 材料不足 —— 此时不给结论(既不说合规,也不说不合规) |
| 4 | 入参文件读不到或无法解析 |
| 9 | 未预期错误 |
这个免费版不包含
以下检查项不在本版本范围内,调用时也不会执行:
- 报销明细加总是否等于申请金额
- 申请金额大小写是否一致
- 发票合计与申请金额是否匹配
- 日期逻辑(发票日期 ≤ 报销日期;发票日期在出差区间内)
- 同一张发票的金额与报销明细是否对得上
- 报销单要素完整性(单号 / 报销人 / 部门 / 日期)
- 差旅标准超标提示(可配置标准)
- 发票税率与税额自洽
需要完整档时(可选)
本免费版是完整可用的核心产出,本版本不包含下面这些项:
- 报销明细加总是否等于申请金额
- 申请金额大小写是否一致
- 发票合计与申请金额是否匹配
- 日期逻辑(发票日期 ≤ 报销日期;发票日期在出差区间内)
- 同一张发票的金额与报销明细是否对得上
- 报销单要素完整性(单号 / 报销人 / 部门 / 日期)
- 差旅标准超标提示(可配置标准)
- 发票税率与税额自洽
同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准);两档的差别就是上面这些,没有别的。
边界(请务必知道)
- 本工具只做AI核对,不判断这笔费用该不该报 —— 那是公司制度与审批流程的事;
- 不做发票真伪查验,不做发票代码号码规则校验;
- 「没报问题」不等于「没有问题」:超出上述三类的检查,本版本不执行;
- 材料不足时不给结论,也不会用默认值编一个「没问题」出来;
输出示例
[P0] 重复发票号
发票号「04412026-0088」在同一份报销材料里出现了 2 次(增值税电子普通发票)。
建议:同一张发票只能报销一次;请确认是不是重复粘贴或重复提交。
