设计与多媒体

发票识别

试用

面向上市公司的发票识别与自动入账技能包,通过 OCR 拍照/截图提取发票数据, 自动分类并匹配入账。支持增值税专用发票、普通发票、全电发票、机动车发票、 通行费、火车票机票等全类型发票,实现发票验真、自动分类、三单匹配和台账管理。

它能做什么

本技能包专为上市公司财务部门设计,实现发票全生命周期管理:从 OCR 识别提取数据 → 发票验真 → 自动分类入账 → 台账管理 → 与进销存系统联动。

技能文档

发票识别技能包 (finance-invoice-ocr)

概述

本技能包专为上市公司财务部门设计,实现发票全生命周期管理:从 OCR 识别提取数据 → 发票验真 → 自动分类入账 → 台账管理 → 与进销存系统联动。


一、支持的发票类型

1.1 增值税发票

发票类型代码规则特点
增值税专用发票(纸质)10位或12位需认证抵扣
增值税专用发票(电子)20位全电票前身
全电发票(数电发票)20位,格式:XX+两位年份+8位号码无需打印
增值税普通发票(纸质)12位不可抵扣
增值税普通发票(电子)20位不可抵扣

1.2 其他发票类型

类型票面特征用途
机动车销售统一发票机动车二维码车辆采购入账
通行费发票(ETC/高速)抬头+金额+日期费用报销
火车票姓名+身份证+金额出差费用
机票行程单电子客票号+乘客差旅费用
出租车发票金额+时间+车牌市内交通
通用机打发票各省市格式不一餐饮/住宿等

二、OCR 提取字段规范

2.1 核心字段(必须提取)

发票代码 / Invoice Code
发票号码 / Invoice Number  
开票日期 / Invoice Date
购买方名称 / Buyer Name
购买方纳税人识别号 / Buyer Tax ID
销售方名称 / Seller Name
销售方纳税人识别号 / Seller Tax ID

2.2 金额字段

不含税金额 / Amount Excluding Tax
税率 / Tax Rate
税额 / Tax Amount
价税合计 / Total Amount (含税)

2.3 商品明细字段

商品名称 / Product Name
商品规格型号 / Specification
计量单位 / Unit
数量 / Quantity
单价 / Unit Price
金额 / Line Amount
税率 / Tax Rate
税额 / Line Tax Amount

2.4 特殊字段

校验码(后6位)/ Check Code (Last 6 digits)
收款人 / Payee
复核人 / Reviewer
开票人 / Issuer
备注 / Remarks

2.5 OCR 识别公式

字段完整性校验公式:

完整性得分 = (已识别字段数 / 总字段数) × 100%
阈值:≥85% 为合格,<85% 需人工复核

金额勾稽公式:

价税合计 = 不含税金额 + 税额
税额 = 不含税金额 × 税率
验证结果 = (价税合计 == 不含税金额 + 税额) ? 通过 : 异常

三、发票验真流程

3.1 查验平台

3.2 验真规则

1. 发票状态检查:
   - 正常 / 作废 / 红冲 / 失控 / 异常

2. 票面信息一致性:
   发票号码 + 发票代码 + 开票日期 + 金额(开票日期起5日内有效)

3. 校验码规则(增值税普通发票):
   纸票:验证码后6位
   电子票:完整20位验证码

3.3 异常状态处理

状态处理方式
作废发票标记作废,不予报销入账
红冲发票通知原报销人冲减,原件存档
失控发票立即停止报销,通知税务部门
查无此票要求重新取得有效发票
不一致退回报销人核对修正

3.4 验真自动化流程图

┌─────────────┐
│  拍照/截图   │
└──────┬──────┘
       ▼
┌─────────────┐
│   OCR 识别   │──── 字段提取
└──────┬──────┘
       ▼
┌─────────────┐
│  字段校验    │──── 完整性 ≥85%?
└──────┬──────┘
       ▼ (通过)
┌─────────────┐
│  金额勾稽    │──── 价税合计=不含税+税额?
└──────┬──────┘
       ▼ (通过)
┌─────────────┐
│  查验平台    │──── 查询发票状态
│   API 调用   │
└──────┬──────┘
       ▼
┌─────────────┐
│  状态判定    │
│  正常/异常   │
└─────────────┘

四、自动入账流程

4.1 入账方向判定

判断逻辑:
  IF 购买方 == 本公司:
    入账类型 = 进项发票(采购/资产/费用)
    入账方向 = 借:相关成本/费用科目
               贷:应付账款/银行存款
  ELSE IF 销售方 == 本公司:
    入账类型 = 销项发票(收入确认)
    入账方向 = 借:应收账款/银行存款
               贷:主营业务收入
               应交税费-应交增值税(销项税额)

4.2 进项发票分类入账

发票类型用途借方科目贷方科目
采购原材料生产领用原材料 / 在途物资应付账款
采购商品对外销售库存商品应付账款
购置固定资产自用固定资产 / 在建工程银行存款
办公费用行政管理管理费用-办公费银行存款
广告宣传市场营销销售费用-广告费银行存款
咨询顾问专业服务管理费用-咨询费银行存款
差旅交通员工报销差旅费 / 交通费其他应收款

4.3 销项发票入账

销售商品/服务:
  借:应收账款 / 银行存款
      应交税费-应交增值税(销项税额)
  贷:主营业务收入 / 其他业务收入

特殊处理:
  - 视同销售:需计算销项税额
  - 不开票收入:申报未开票收入

4.4 自动入账流程

┌─────────────────┐
│   发票验真通过   │
└────────┬────────┘
         ▼
┌─────────────────┐
│  识别发票类型    │
│  进项/销项判定   │
└────────┬────────┘
         ▼
┌─────────────────┐
│  匹配业务单据    │
│  采购单/销售合同 │
└────────┬────────┘
         ▼
    ┌────┴────┐
    │ 匹配成功? │
    └────┬────┘
    是/   \否
    ▼         ▼
┌───────┐ ┌───────────┐
│三单匹配│ │ 标记待确认 │
│自动入账│ │ 推送人工   │
└───┬───┘ └───────────┘
    ▼
┌─────────────────┐
│  生成凭证号     │
│  更新台账       │
└─────────────────┘

五、发票台账管理

5.1 进项发票台账结构

字段说明
入账日期系统自动记录
发票代码10/12/20位
发票号码8位
发票类型专票/普票/全电
开票日期票面日期
销售方名称销售方公司名
销售方税号统一社会信用代码
不含税金额金额字段
税额税额字段
价税合计价税合计字段
认证状态已认证/未认证/逾期
认证日期认证当月
抵扣用途生产用/集体福利/简易计税
对应采购单号关联业务单据
入账凭证号会计凭证号
备注异常说明

5.2 销项发票台账结构

字段说明
开具日期开票日期
发票代码/号码票面信息
购买方名称客户名称
购买方税号客户税号
商品服务名称编码+名称
不含税金额销售额
税率适用税率
税额销项税额
价税合计总金额
发票状态正常/作废/红冲
对应销售单号关联订单
凭证号记账凭证
申报状态已申报/未申报
申报属期增值税申报表所属期

5.3 认证期限提醒规则

政策依据:《增值税暂行条例》及实施细则
- 增值税专用发票:开票之日起360天内认证(2017年7月前为180天)
- 全电发票:用途确认无期限限制,但建议及时处理

提醒机制:
  认证到期前 30/15/7/3/1 天提醒
  逾期未认证标记为"逾期待处理"

5.4 作废处理流程

进项发票作废:
  1. 购方尚未认证抵扣 → 销售方自行作废
  2. 购方已认证未抵扣 → 购方需开红字信息表
  3. 已抵扣入账 → 需做进项税额转出

操作步骤:
  原发票标记"已作废"
  关联凭证标记"已冲销"
  创建新合规发票(若需)
  台账备注变更原因

六、与进销存系统联动

6.1 Excel 进销存结构

Sheet1: 进项发票

| 入账日期 | 发票代码 | 发票号码 | 商品名称 | 规格型号 | 数量 | 单价 | 金额 | 税额 | 价税合计 | 供应商 | 采购单号 | 仓库 | 状态 |

Sheet2: 销项发票

| 开具日期 | 发票代码 | 发票号码 | 商品名称 | 数量 | 单价 | 金额 | 税率 | 税额 | 价税合计 | 客户 | 销售单号 | 仓库 | 状态 |

Sheet3: 库存台账

| 日期 | 单据类型 | 单据号 | 商品编码 | 商品名称 | 规格 | 单位 | 期初库存 | 入库数量 | 出库数量 | 期末库存 | 仓库 |

Sheet4: 三单匹配查询

| 采购单号 | 采购合同号 | 供应商 | 发票号码 | 发票金额 | 入库单号 | 入库金额 | 匹配状态 | 差异金额 |

6.2 三单匹配规则

匹配公式:
  发票金额 = 入库单金额 = 采购订单金额 → 完全匹配 ✓
  差异容差:±0.01元(四舍五入误差)
  存在差异 → 标记"差异待处理"

匹配状态枚举:
  0: 未匹配
  1: 部分匹配
  2: 完全匹配
  3: 差异处理中
  4: 匹配异常

6.3 联动写入示例

# 写入进项发票到 Excel
def write_purchase_invoice(invoice_data: dict, excel_path: str):
    """
    invoice_data: OCR识别的发票数据字典
    excel_path: 进销存Excel文件路径
    """
    from openpyxl import load_workbook
    
    wb = load_workbook(excel_path)
    ws = wb['进项发票']
    
    # 找到最后一行
    last_row = ws.max_row + 1
    
    # 写入数据
    ws[f'A{last_row}'] = invoice_data.get('entry_date', date.today())
    ws[f'B{last_row}'] = invoice_data.get('invoice_code')
    ws[f'C{last_row}'] = invoice_data.get('invoice_number')
    ws[f'D{last_row}'] = invoice_data.get('product_name')
    ws[f'E{last_row}'] = invoice_data.get('spec')
    ws[f'F{last_row}'] = invoice_data.get('quantity')
    ws[f'G{last_row}'] = invoice_data.get('unit_price')
    ws[f'H{last_row}'] = invoice_data.get('amount')
    ws[f'I{last_row}'] = invoice_data.get('tax_amount')
    ws[f'J{last_row}'] = invoice_data.get('total_amount')
    ws[f'K{last_row}'] = invoice_data.get('seller_name')
    ws[f'L{last_row}'] = invoice_data.get('purchase_order_no')
    ws[f'M{last_row}'] = '已入账'
    
    wb.save(excel_path)
    return last_row

七、使用示例

7.1 拍照识别发票

用户:请帮我识别这张发票并入账
[上传发票图片]

系统处理:
1. OCR识别完成
   - 发票类型:增值税专用发票(电子)
   - 发票代码:144031900110
   - 发票号码:12345678
   - 开票日期:2024-01-15
   - 销售方:深圳市XX科技有限公司
   - 购买方:贵公司
   - 不含税金额:¥10,000.00
   - 税率:13%
   - 税额:¥1,300.00
   - 价税合计:¥11,300.00

2. 发票验真:通过 ✓
   状态:正常发票

3. 入账建议:
   借:管理费用-办公费  ¥10,000.00
       应交税费-应交增值税(进项税额) ¥1,300.00
   贷:应付账款  ¥11,300.00

是否确认入账?

7.2 批量验真查询

用户:帮我查询这批发票的验真状态
[提交发票列表]

系统返回:
| 发票号码 | 开票日期 | 金额 | 验真状态 | 操作建议 |
|---------|---------|------|---------|---------|
| 12345678 | 2024-01-10 | ¥5,000 | ✓ 正常 | 可入账 |
| 87654321 | 2024-01-11 | ¥8,000 | ✗ 作废 | 勿入账 |
| 11223344 | 2024-01-12 | ¥3,500 | ✓ 正常 | 可入账 |
| 55667788 | 2024-01-13 | ¥6,000 | ? 查无此票 | 重新获取 |

八、注意事项

8.1 政策合规

  • 本技能包仅辅助发票管理,最终入账以财务人员确认为准
  • 发票验真结果仅供参考,以主管税务机关认定为准
  • 增值税申报以纳税申报表为准

8.2 数据安全

  • 发票数据涉及商业机密,请妥善保管
  • 建议设置数据访问权限
  • 定期备份发票台账

8.3 常见问题

问题解决方案
OCR识别不完整重新拍照,确保光线充足、图片清晰
发票验真失败检查发票代码号码是否正确,确认开票日期5日内
金额不一致核对票面金额与系统金额,以票面为准
供应商信息缺失手动补录或联系开票方核实

本技能包由 @AOLIKEJI 创建,版本 1.0.0

相关技能

把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。

作者 nssa.io1.0k 次安装47 星标

以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。

作者 johnpatternai22 次安装8 星标

在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。

作者 Iván559 次安装18 星标

诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。

作者 Iván855 次安装69 星标

从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。

作者 fly0pants4.3k 次安装296 星标

aolikeji 的更多技能

浏览全部技能

OpenClaw 财务能力终极扩展包 - 覆盖财报分析、杜邦拆解、风险识别、财务报告生成、现金流分析、税务管理等企业级财务工作流。适用于投资分析、尽职调查、财务尽调、预算管理等场景。

作者 aolikeji2 次安装

万能财务会计技能包 — 基于进销存收支记账一体化系统设计,涵盖账务处理、分录生成、凭证审核、发票管理、银行对账、税务计算、财务报表编制、Excel自动化操作。适用于上市公司或中小企业的日常财务核算、报表分析、税务申报、往来管理、库存成本核算。

作者 aolikeji2 次安装

企业成本核算技能包 — 面向上市公司成本会计,覆盖材料成本、人工成本、制造费用、 在产品/产成品成本结转、标准成本法、作业成本法、成本差异分析、降本增效等全流程。 支持品种法/分批法/分步法/作业成本法等多种成本核算方法,提供公式、示例和Excel自动化模板。

作者 aolikeji1 次安装

上市公司税务计算技能包 — 覆盖增值税(一般纳税人/小规模)、企业所得税(季度预缴/年度汇算)、个人所得税(累计预扣法/综合所得)、附加税费、税务申报逻辑与税负预警。适用于企业税务核算、申报辅助、财税合规检查。

作者 aolikeji1 次安装

上市公司财务文件归档与整理技能包,自动整理凭证、合同、附件,按标准目录结构归档,支持PDF处理、批量重命名、MD5查重、会计档案保管期限管理及审计支持。

作者 aolikeji1 次安装

上市公司审计追踪与风险检测技能包,自动化分析往来账龄、标记异常交易、检测重复付款、监控大额异常预警。适用于财务审计、内控合规、风险预警、税务风险检测等场景。当用户提到审计追踪、账龄分析、异常交易检测、重复付款、大额预警、风险检测、内控审计、应收账款、应付账款、银行对账、费用审计、税务风险等关键词时触发。

作者 aolikeji1 次安装