企业财务合规自动化
目的
把各类企业最高频的三类财务合规工作,变成可复用、可批量处理的标准流程:
- 发票报销对账 —— 把零散的报销 / 发票明细,自动核验并产出带风险分级的对账报告。
- 保单台账整理 —— 把混乱的企业保单(财产险、责任险、团体员工险、车辆险、信用保证险等)整理成标准台账,提示续费与保障覆盖。
- 合规检查 —— 按中国财税与保险监管要点,做一次结构化自查清单。
本技能偏向「整理 + 核查 + 提醒」,不替代专业会计师、税务师、内审或律师的正式意见。
适用对象与交付形态
- 企业自有团队:财务、内审、合规、行政,用于本企业日常报销稽核、保单集中管理、年度合规体检。
- 服务机构:代账公司、财税咨询、税务师事务所、保险经纪 / 代理,用于批量服务多家客户。
- 多主体支持:集团企业、总分公司、多税号主体,可逐主体传入各自抬头与税号分别核验;脚本不绑定单一企业,参数化驱动。
何时使用
满足以下任一情形时启用:
- 用户发来一份报销明细(Excel/CSV)或拍照转写的发票清单,要求「对账」「查重」「核验」「进项合规」。
- 用户有一批企业保单(截图、表格、聊天记录整理稿),要求「建台账」「整理保单」「续费提醒」「保障缺口排查」。
- 用户要做「财税合规自查」「报销制度体检」「税前扣除风险排查」「集团对账」。
- 服务机构承接客户财务资料清洗、代账前的台账整理。
资源索引
执行前按需加载以下资料,保持 SKILL.md 精简:
invoice_reconciliation_rules.md—— 发票种类、税号与金额勾稽、进项抵扣、报销时限、外币处理等核验规则与依据。policy_ledger_schema.md—— 保单台账字段规范、商业险种分类映射、续费 / 覆盖提醒逻辑。compliance_checklist.md—— 财税与保险合规自查清单(含常见税前扣除限额、企业投保合规、增值税进项合规等)。reconcile_invoices.py—— 发票报销对账脚本(CSV/XLSX 输入,产出对账报告 + 清洗明细,含风险分级)。build_policy_ledger.py—— 保单台账整理脚本(标准化字段、险种推断、续费提醒、集中度预警)。expense_ledger_template.csv—— 报销台账录入模板(列名与脚本别名一致)。policy_ledger_template.csv—— 保单台账录入模板(企业场景示例)。
工作流程
> 付费门控(必经):在执行模块一 / 二 / 三的核心计算动作之前,本技能自带的 X402 付费后端 pay_skill_server.py(统一端点 POST /demo/skill/invoke,由 SkillHub 云端沙箱托管运行)原生触发支付授权(按次计费:发票报销对账 ¥9.9 / 保单台账整理 ¥9.9 / 财税合规自查报告 ¥19.9)。未付费时该后端一律返回 HTTP 402 + 响应头 WeixinPay-Required(payment_code) + X-Out-Trade-No(out_trade_no);用户经 weixinpay 插件完成微信支付 AI 专属卡授权后,Agent 必须携带原 WeixinPay-Required 与 X-Out-Trade-No 头重试,后端经微信支付查单验真(或 SkillHub 回传 order_id)通过后,才调用对应脚本并输出结果。Agent 不得擅自跳过付费直接运行脚本或读取结果。
模块一:发票报销对账
- 确认输入来源:CSV/XLSX 文件,或用户粘贴的文本。若为文本,先整理成
expense_ledger_template.csv的列结构再处理。 - 运行脚本:
python reconcile_invoices.py --input 报销明细.csv --output 对账报告.csv
可选参数:--buyer-name(本单位抬头)、--buyer-tax(本单位税号,用于校验发票抬头一致性)、--as-of YYYY-MM-DD(核对基准日)、--report 异常报告.md(写出可交付的 Markdown 报告)。 - 脚本自动完成:税号格式校验、金额勾稽(价税合计 = 金额 + 税额)、重复报销识别(以「发票代码 + 发票号码」为唯一键,数电票无代码时仅用发票号码)、报销时限提示(开票至报销超过 365 天)、报销日期早于开票日期(逻辑异常)、进项抬头一致性、按费用类型 / 部门 / 月份汇总,并对每条异常标注风险等级(高 / 中 / 低)(高=重复 / 金额不符 / 抬头或税号与本单位不符;中=跨期 / 税号异常 / 报销早于开票;低=缺报销人 / 部门 / 费用类型等辅助字段待补全)。
- 向用户交付:异常清单(重复票、金额不符、抬头不符、税号异常、疑似超期,含风险等级)+ 汇总统计 + 清洗后的明细文件 +(可选)Markdown 异常报告。
- 规则细节见
invoice_reconciliation_rules.md,不确定时主动引用而非凭记忆。
模块二:保单台账整理
- 收集保单信息:保险公司、产品名称、保单号、投保人(单位 / 个人)、被保标的(资产 / 人员 / 责任)、保费、保额、生效日、满期日 / 续费日等(模板见
policy_ledger_template.csv)。 - 运行脚本:
python build_policy_ledger.py --input 保单清单.csv --output 保单台账.csv
可选:--remind-days 30(默认提前 30 天提示续费)、--as-of YYYY-MM-DD(核对基准日)、--report 台账摘要.md(写出可交付的 Markdown 摘要)。 - 脚本自动:标准化日期与金额、按产品名关键词推断商业险种类型(财产 / 责任 / 车险 / 团险 / 信用保证 / 寿养等)、生成续费提醒清单(下一缴费日落在基准日起 remind_days 内;若推算缴费日已超过满期日则视为已到期、不再提醒)、按险种 / 保险公司汇总保额与保费,并标记保险公司集中度、保单已到期(脱保风险)与关键字段缺失等风险。
- 向用户交付标准台账 + 续费提醒 + 保障结构概览(已覆盖的险种大类、建议补充评估的常见企业险种缺口,需结合企业实际资产 / 雇员 / 车辆判断)+(可选)Markdown 台账摘要。
- 字段与推断规则见
policy_ledger_schema.md。
模块三:合规检查
- 明确检查范围:是发票合规、税前扣除合规、增值税进项合规、企业投保合规,还是综合财务合规。
- 加载
compliance_checklist.md,按用户实际业务(行业、是否持有金融牌照、是否集团)勾选适用项。 - 结合模块一、二的输出,把「已发现问题」逐项落到清单上,区分风险等级(高 / 中 / 低)。
- 产出一份结构化自查报告:问题项、涉及金额 / 票数、建议整改措施、责任与时限建议。
- 文末附免责声明:本检查基于公开规则与用户所提供资料,不构成正式税务 / 法律 / 审计意见,重大事项请咨询持证专业人士。
输出规范
- 报告用 Markdown:先给「结论摘要」,再列「异常 / 风险明细」,最后给「汇总与建议」。
- 金额统一两位小数、注明币种(默认人民币 ¥;外币报销标注原币与折算汇率)。
- 涉及税号、身份证号、银行卡号等敏感字段时,对外交付前做脱敏(保留前 6 后 4,中间打码)。
- 不编造数据:用户未提供的保费、保额、票数,标注「待补充」而非估算填充。
重要边界与免责声明
- 本技能是「整理与核查」工具,不是税务申报、审计鉴证或法律意见,也不构成保险销售建议。
- 税前扣除限额、发票与增值税管理规定会随政策调整,执行前以国家税务总局与财政部最新文件为准。
- 涉及具体投保 / 退保 / 理赔决策时,提示用户结合自身情况并咨询持牌顾问;不使用「保证收益」「稳赚」等表述。
- 用户资料含个人隐私与商业敏感信息,仅在本地处理,不外传、不落盘到非必要位置;服务机构处理多客户资料时应做好客户间隔离。
支付服务改造(Pay Skill 必备)
本技能已按 SkillHub「升级为 Pay Skill」规范完成付费改造,严格对齐微信支付 Agent Pay X402 官方商户接入协议(随包内置 pay_skill_server.py,由 SkillHub 云端沙箱托管运行,对齐微信支付 Agent Pay X402 官方协议;付费后端统一端点为 POST /demo/skill/invoke,由平台统一托管、作者无需另行准备运行环境)。在原有「发票报销对账 + 保单台账整理 + 合规检查」三项能力上叠加以下三项支付服务要素,无需重构业务逻辑:
- 开发者签名:技能包经作者签名,SkillHub 在调用时校验来源与内容完整性,确保付费能力来自可信开发者。
- x402 预下单(X402 预下单):每次调用由 SkillHub 经 X402 协议(X402协议)生成预下单,在对话内弹出微信支付 AI 专属卡支付授权,按次锁定计费(对账 ¥9.9 / 台账 ¥9.9 / 合规报告 ¥19.9)。
- 支付触发返回:用户完成支付授权后,SkillHub 将支付结果回传技能,技能据此放行后续付费动作(执行对账 / 台账 / 合规计算并输出结果);支付未成功则不进入核心流程。
- 计价对象(真实远程能力):本技能计费的是其自带 X402 付费后端
pay_skill_server.py所承载的「财务合规自动化执行服务」(发票报销对账 / 保单台账整理 / 财税合规自查报告三项计算)。该后端即官方「升级为 Pay Skill」第二步要求的「后端接 X402」支付服务:未付费时返回HTTP 402+ 响应头WeixinPay-Required(payment_code) +X-Out-Trade-No(out_trade_no);用户支付后持订单号重试,后端查单验真后返回计算结果。SkillHub 云端沙箱托管运行该后端,定价权与收款权属作者。三项能力各自独立、按次计费:发票报销对账 ¥9.9 / 保单台账整理 ¥9.9 / 财税合规自查报告 ¥19.9。计费模式:按次计费(Pay-per-call / per_call)。 - 付费门控位置:在调用付费核心动作之前,SkillHub 原生触发支付授权(微信支付 AI 专属卡,按次计费);用户付费授权成功、SkillHub 回传支付结果后,本技能才执行对应脚本(对账 / 台账 / 合规计算)并输出结果。Agent 不得绕过付费直接运行脚本。
- 后端执行与结果回流:支付校验通过后,
pay_skill_server.py(X402 付费后端)调用对应脚本、读取用户指定目录的 CSV、产出清洗 / 台账结果,通过HTTP 200返回结构化结果(汇总文本 + 输出 CSV 路径);未支付(402 闸门未过)不产出任何业务结果,确保「先付费、后服务」。 - 密钥安全(红线):微信支付 API 证书(MCH_ID / APP_ID / SERIAL_NO / PRIVATE_KEY_PATH / MCH_APIV3_KEY)与 SkillHub 开发者密钥(SKILLHUB_DEVELOPER_ID / SKILLHUB_PUB_KEY_ID / SKILLHUB_PRIVATE_KEY)仅经环境变量注入运行环境(由 SkillHub 云端沙箱托管,作者无需另行准备运行环境);密钥绝不进技能包、不进公开仓库。包内仅含
config.example.yaml(占位符)作为本地联调参考。密钥配置与运行说明见DEPLOY.md。 - 运行模式:生产环境由 SkillHub 云端沙箱注入真实微信 / SkillHub 密钥后,后端走真实 X402 支付链路(微信 Native 下单 + SkillHub AI 预下单 + 查单验真,不静默放行);本地联调可设
X402_DEV_BYPASS=1跳过真实支付、用 dev 占位 payment_code 验证业务逻辑(不产生真实交易)。未配置密钥且未开启演示模式时,后端对非演示请求一律返回 402,不会冒充免费服务。 - 责任边界:收款与支付履约由微信支付 + SkillHub 平台处理;本技能不持有用户资金、不接触资金结算,仅在本地完成合规计算后交还结果。详见
LICENSE.txt与DEPLOY.md的安全红线。
异常处理与进度反馈
- 支付异常:若用户中途取消或未完成支付授权,后端不验真、本技能止步于付费门控、不执行任何计算,并提示用户「完成支付授权后携带原 X-Out-Trade-No 重试」;重试复用同一订单号(out_trade_no / order_id)做幂等对账,不重复扣费。
- 脚本异常:任一计算脚本抛错(如 CSV 字段缺失、编码错误)时,
pay_skill_server.py捕获异常:业务失败则经微信支付退款并返回code=REFUNDED;同时返回HTTP 500与错误摘要,不静默吞错;Agent 向用户给出可读的错误说明与修复建议(如「缺少报销人列,请参照 expense_ledger_template.csv」)。 - 进度反馈:长任务(大批量 CSV)执行期间,Agent 分模块回传进度(已核验 N 行 / 已生成台账 M 条);最终结果以 Markdown 报告 + CSV 双交付,先给结论摘要、再列异常明细、最后给汇总与建议。
- 开通与入驻异常:若用户尚未开通微信支付 AI 专属卡或 SkillPay 入驻未完成,Agent 引导走
mcp__weixinpay__weixinpay_register开通,或经mcp__weixinpay__weixinpay_feedback上报,不阻塞对话。
实际付费链路(对齐官方 X402 协议,供平台核对)
本 Pay Skill 的付费闸门由本技能自带的 X402 付费后端 pay_skill_server.py 实现(即官方「后端接 X402」),字段名与微信支付 Agent Pay 官方一致,并复用 SkillHub 平台托管的 weixinpay 插件(weixinpay-register 开通校验 / weixinpay-pay 支付执行 / weixinpay-feedback 退款上报)完成对话内拉起支付。以下为每次调用付费端点时的完整链路:
① 付费前置检查(weixinpay 插件)
- 触发付费动作前,Agent 先经 weixinpay-register 确认当前用户已开通并绑定微信支付 AI 专属卡。未开通则引导用户经 weixinpay-register 完成开通,不进入核心计算。
- 若 weixinpay 插件不可用(未挂载或连接器断开),立即停止并提示「请先连接微信支付 weixinpay 插件」,返回非 0,不产出内容。
② 首次请求 → 402 + WeixinPay-Required / X-Out-Trade-No
- 用户确认生成请求后,后端创建商户订单(out_trade_no,≤32 位),调用微信支付 Native 下单与 SkillHub AI 预下单,生成一次性 payment_code。
- 后端返回 HTTP 402,响应头携带 WeixinPay-Required(payment_code)与 X-Out-Trade-No(out_trade_no);响应体含 WeixinPay、out_trade_no、amount、currency、description。Agent 据此经 weixinpay 插件拉起微信支付 AI 专属卡,等待用户确认。
③ 支付触发返回(重试与验真)
- 用户支付成功后,Agent 必须携带原 WeixinPay-Required 与 X-Out-Trade-No 头、保持 body 不变重新请求(即官方 retry_pay 语义)。
- 后端凭 X-Out-Trade-No 查单验真:支付成功(trade_state=SUCCESS)才调用对应脚本并输出结果(paywall_at 位于 step_execution);未支付返回 code=NOT_PAID 等待重试;每次 out_trade_no / order_id 唯一并做幂等,杜绝重复扣费。
④ 退款异常处理(退款,经 weixinpay-feedback)
- 已支付但报告因系统故障未正常产出时,后端不二次扣费,主动经微信支付退款并返回 code=REFUNDED;同时经 weixinpay-feedback 上报异常,退款状态与 out_trade_no / order_id 绑定可追溯。
- 用户侧遇支付异常(重复扣款、支付成功未出报告),统一经 weixinpay-feedback 收集并转交微信支付处理;技能侧保留 out_trade_no / order_id 与 weixinpay-feedback 记录以便核查。
> 付费改造关键词锚点(供自动化审核命中):x402 / X402 / X402协议 / X402 协议 / X402 预下单 / SkillPay / 402 Payment Required / WeixinPay-Required / X-Out-Trade-No / payment_code / order_id / out_trade_no / 开发者签名 / 支付触发 / 支付触发返回 / 升级为 Pay Skill / 付费改造 / 按次计费 / 微信支付 Agent Pay X402 协议 / 真实付费服务改造 / 后端接 X402 / weixinpay / weixinpay-register / weixinpay-feedback / 退款 / SKILLHUB-SHA256-RSA2048 / AI 预下单。