AI PLAY玩法更新持续收录
← 回到更新流

2026-09-28 · 原文发布日

LINE拍照报销:发票识别加日本税号核验

免费n8n模板:LINE机器人收到图片后下载存档到Google Drive并转Base64交给Gemini,先判断是不是收据,再抽取日期、商家、总额、税额、类别和T号码;不像收据就回复请重拍,有合规税号则调日本国税厅发票系统Web-API按日期核验真伪,最终把报销记录连同Drive链接写入Google Sheets,并在LINE回执里告知发票核验结果。

原文要点

该免费n8n模板由作者ryo发布:LINE webhook收到事件后区分消息类型,非图片直接回复要求发收据照片;图片则从LINE下载、传Google Drive存档并转Base64交给Gemini,先判断是否收据,再抽取日期、商家、总额、税额、类别、摘要和T号码;不像收据则回复重拍,存在看似合规的T号码时调日本国税厅(NTA)发票系统Web-API按收据日期核验,最后把记录连同Drive链接写入Google Sheets并在LINE回执中告知核验结果。配置需要LINE Channel Access Token、Gemini API密钥、Drive/Sheets凭据、目标文件夹与表格ID,并把NTA请求URL中的YOUR_NTA_APP_ID换成注册所得ID。

这次做成什么

在自托管n8n上搭一条「LINE拍照→Gemini识别→日本税号核验→写表回执」的报销流水线,并用本站设计的合成数据完成一次端到端走查。

准备什么

  • 一个可公网访问的n8n实例(云端或带隧道的自托管)
  • LINE Messaging API频道及Channel Access Token
  • Google Gemini API密钥(可能产生API费用)
  • 已OAuth连接的Google Drive与Google Sheets,且建好目标文件夹和报销表
  • 已注册日本国税厅发票系统Web-API并取得App ID
  • 一张不含真实个人信息的测试收据照片

具体怎么做

  1. 配置LINE入口

    在LINE Developers控制台创建Messaging API频道取得Channel Access Token;在n8n中按模板把webhook节点切换为生产(production)URL,将该URL填入LINE控制台的Webhook设置并启用;模板会从事件中取出消息类型、消息ID、reply token和用户ID,非图片消息直接走「请发送收据照片」的回复分支。

  2. 接入Drive与Gemini识别

    连接Google Drive凭据并在模板对应节点填入目标文件夹ID;图片消息到达后按模板逻辑从LINE下载图片、上传Drive存档、转Base64,随下方提示词发给Gemini(在模板节点里填入你的Gemini密钥,HTTP header方式)。先让模型判断是否收据,false则回LINE请用户重拍。

  3. 设置提取提示词与写表

    把材料1的提示词整段粘贴进Gemini节点的提示词位置,输出应为单条JSON。连接Google Sheets凭据,填入表格文档ID与工作表名,按材料2的列头建好表;在合并节点把提取字段、Drive文件链接拼成一行追加。

  4. 接入NTA税号核验

    仅当提取结果含看似合规的T号码(T+13位数字)时进入核验分支:在模板的NTA请求URL中把YOUR_NTA_APP_ID替换为你注册所得的App ID,并按模板以收据日期为参数请求核验;不要把本站示例URL当作真实端点,具体路径以模板节点为准。

  5. 端到端走查

    用下方example中的虚构收据拍照发给机器人,确认LINE回执包含金额、类别与核验结论,Sheets新增一行且Drive链接可打开。

可直接复制的材料

Gemini收据识别与抽取提示词

本站独立编写示例,粘贴到模板的Gemini节点提示词处;类别集合可按公司科目自行调整

你是日本费用报销助手。先看图片是否为收据或发票,不是则只返回 {"is_receipt": false}。是则只返回一条JSON,字段为:{"is_receipt": true, "receipt_date": "YYYY-MM-DD", "vendor": "商家名", "total": 含税总额(日元整数,无符号), "tax": 消费税额(日元整数), "category": "餐饮|交通|办公用品|住宿|通信|其他" 之一, "description": "不超过20字的费用摘要", "t_number": "T加13位数字的适格请求书登记号,没有则为null"}。不要输出JSON以外的任何文字;金额无法辨认时对应字段填null。

报销表列头与示例行(CSV)

本站合成示例,工作表名与列名需与模板映射节点一致,链接与ID均为虚构占位

报销日期,商家,含税总额(日元),税额(日元),类别,摘要,T号码,税号核验,图片链接,提交人,记录时间
2026-09-20,山田屋,5500,500,餐饮,客户晚餐,T1234567890123,有效,https://drive.example.com/file/abc123,U_test01,2026-09-28 21:05

节点占位配置清单

仅方案示意:逐项在模板对应节点替换;NTA请求URL结构以模板原节点为准,本站未实测

{"line_channel_access_token":"粘贴你的LINE令牌","gemini_api_key":"粘贴你的Gemini密钥","drive_folder_id":"目标文件夹ID","sheets_document_id":"表格文档ID","sheets_sheet_name":"报销记录","nta_app_id":"注册NTA Web-API所得ID","line_webhook_url":"n8n生产webhook地址"}

输入与输出示例

本站虚构演示,未真实调用Gemini或NTA接口,核验结论为示意

输入

向机器人发送一张虚构收据照片:2026-09-20,居酒屋「山田屋」,含税总额5,500日元,消费税500日元,印有T1234567890123。

对应输出

Gemini返回 {"is_receipt":true,"receipt_date":"2026-09-20","vendor":"山田屋","total":5500,"tax":500,"category":"餐饮","description":"客户晚餐","t_number":"T1234567890123"};Sheets新增对应一行;LINE回执:已登记:山田屋 5,500日元(税额500日元,类别:餐饮),税号经国税厅系统核验:有效。

做完检查这些

  • 发送非图片消息时,LINE收到「请发送收据照片」类回复且不写表
  • 发送清晰收据后,Drive目标文件夹出现新图片且Sheets行内链接可打开
  • 含税总额、税额、类别与回执文字一致,T号码为null时不触发核验分支
  • 替换NTA App ID后核验分支能返回结论并写入「税号核验」列

容易卡住的地方

  • 必须用n8n的生产webhook URL填入LINE控制台,测试URL只在编辑器手动执行时有效
  • 模板只对「看似合规」的T号码调API,格式校验通过不代表号码真实有效
  • Gemini与NTA接口都要能从你的n8n实例访问,公司内网代理可能拦截
  • Drive文件夹若共享权限不足,上传会报权限错误;API调用可能产生费用

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Capture LINE receipt expenses with Gemini, Google Drive and Google Sheets
原作者
ryo
原始发布日期
2026-09-28T14:57:31.864Z
来源
https://n8n.io/workflows/20073