把一沓发票和一张报销单放在一起核一遍,每条结论都带原文行号,不需要付款,也不需要注册。本免费版执行 重复发票号(重复报销线索)、发票要素完整性(发票号 / 开票日期 / 销售方 / 金额)、模板占位符残留。触发词包括 报销合规、重复报销、发票重复、报销单检查、发票要素不全、报销预检、贴票核对、费用报销自查。
Resources
2Install
npx skillscat add chenqg618/compliance-skills/expense-compliance-free Install via the SkillsCat registry.
SKILL.md
报销单合规预检(免费)
一句话:把一沓发票 + 一张报销单放在一起核一遍 —— 不需要付款,也不需要注册。
完全免费:不需要付款、不需要注册、不需要配置任何 API Key,直接调用即可。
不想安装也能用:同一个检查有网页版,免注册、免付款 —— https://www.tokendidi.cn/check
什么时候用
- 报销前想确认:这一沓发票里有没有同一张被贴了两次(重复报销)
- 担心某张发票要素不齐(缺发票号 / 开票日期 / 销售方 / 金额),到财务那里被打回
- 报销单模板里还留着
【填写…】、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 次(增值税电子普通发票)。
建议:同一张发票只能报销一次;请确认是不是重复粘贴或重复提交。