关于 e-tax
e-Tax 技能使用浏览器自动化,将 shinkoku 计算出的申报数据录入国税厅的申报网站,面向需要在线申报的纳税人。它涵盖决算书、所得税及适用情况下的消费税申报流程,并要求用户亲自完成 QR 码认证。
主要功能
- 01将申报数据录入国税厅网站
- 02支持决算书与所得税申报流程
- 03涵盖适用情况下的消费税申报
- 04支持多种浏览器自动化方式
- 05记录中断进度并支持恢复
适用场景
- 01在国税厅网站填写营业所得申报数据
- 02录入所得税及各项扣除信息
- 03需要时填写消费税申报
- 04浏览器申报中断后继续处理
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ kazukinagata/ shinkoku --skill e-tax安装后在 Claude Code 中输入/e-tax确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
research/00-screen-flow-summary.md01-CC-AA-010-提出方法の選択.md02-CC-AE-090-作成する申告書等の選択.md03-CC-AE-600-マイナポータル連携の選択.md04-CC-AA-024-e-Tax事前確認.md05-CC-AA-440-QRコード認証.md06-kessan-aa0200-決算書一般用の入力.md07-kessan-aa0201-売上仕入金額の入力.md08-kessan-aa0100-青色申告特別控除の入力.md09-kessan-taisyaku-貸借対照表の入力.md10-kessan-所得金額の確認.md11-kessan-ac0500-住所氏名等の入力.md12-kessan-print-印刷.md13-kessan-ac0600-データ保存等.md14-kessan-expense-detail-pages.md30-shotoku-SS-AA-010a-申告する所得の選択等.md31-shotoku-SS-CA-010-給与所得の源泉徴収票の入力.md32-shotoku-SS-AA-050-収入所得の入力.md33-shotoku-SS-AA-070a-控除の入力1.md34-shotoku-SS-AA-080-控除の入力2.md35-shotoku-SS-AA-090-計算結果の確認.md36-shotoku-SS-AC-010a-納付方法等の入力.md37-shotoku-SS-AC-020a-財産債務住民税.md38-shotoku-SS-AC-030-基本情報の入力.md39-shotoku-SS-AC-040-マイナンバーの入力.md40-shotoku-SS-AE-010-申告書等の印刷.md41-shotoku-SS-AE-110c-印刷後の作業案内.md50-shouhi-ac0100-条件判定等.md51-shouhi-ac0250-所得区分の選択.md52-shouhi-2wari-売上入力.md详细介绍
e-Tax 电子申报 — 通过浏览器自动化填写确定申告书等制作专区
使用 Claude in Chrome 在浏览器中填写并提交由 shinkoku 计算出的确定申告数据至确定申告书等制作专区(https://www.keisan.nta.go.jp/)。
前提条件
- 已通过
/income-tax技能完成所得税计算 - 已通过
/settlement技能完成决算书(PL/BS)的制作 - 已通过
/consumption-tax技能完成消费税计算(仅适用于相关人员) - 已完成
shinkoku.config.yaml配置 - 至少有一种浏览器自动化工具可用(参见下方“浏览器自动化方式的选择”)
浏览器自动化方式的选择
向确定申告书等制作专区填写数据有以下 3 种方式。
方式 A:Claude in Chrome(推荐)
| 项目 | 内容 |
|---|---|
| 适用环境 | Windows / macOS 原生 Chrome |
| 前提 | 已安装 Claude in Chrome 扩展 |
| 优点 | 无 OS 检测问题。无需额外设置 |
方式 B:Antigravity Browser Sub-Agent
| 项目 | 内容 |
|---|---|
| 适用环境 | Windows / macOS / Linux(Antigravity IDE) |
| 前提 | 已安装 Antigravity IDE,且 browser_subagent 工具可用 |
| 优点 | 使用原生 Chrome,无需伪装 OS。也可在 Linux 上运行 |
方式 C:Playwright CLI(回退方案)
| 项目 | 内容 |
|---|---|
| 适用环境 | WSL / Linux,或无法使用 Claude in Chrome、Antigravity 的环境 |
| 前提 | @playwright/cli + Playwright CLI 技能 + etax-stealth.js(OS 伪装脚本) |
| 限制 | 必须使用 headed 模式(QR 码认证需要手动操作) |
判定逻辑
1. Claude in Chrome のツール(browser_navigate 等)が利用可能か?
→ はい: 方式 A を使用
→ いいえ: 次へ
2. Antigravity の browser_subagent ツールが利用可能か?
→ はい: 方式 B を使用
→ いいえ: 次へ
3. Bash ツールで `playwright-cli` コマンドが利用可能か?
→ はい: 方式 C を使用(headed モードで起動)
→ いいえ: エラー表示
エラーメッセージ:
「確定申告書等作成コーナーへの入力には、Claude in Chrome、
Antigravity Browser Sub-Agent、または Playwright CLI が必要です。
セットアップ方法は README.md の『ブラウザ自動化』セクションを参照してください。」
使用方式 B 时的操作方法
Antigravity 的 browser_subagent 通过高级任务描述进行操作。
用自然语言描述每个步骤的输入操作,并委托给 browser_subagent 执行。
示例:
- “打开 https://www.keisan.nta.go.jp/kyoutu/ky/sm/top_web#bsctrl”
- “点击‘您是否持有个人编号卡’中的‘是’单选按钮”
- “在 name='sonekiKeisansyoFromMonth' 输入框中输入 '1'”
※ Antigravity 使用原生 Chrome,因此无需通过 etax-stealth.js 伪装 OS。
使用方式 C 时的会话启动步骤
使用 Playwright CLI 打开浏览器时,按以下步骤操作:
- 设置环境变量:
PLAYWRIGHT_MCP_INIT_SCRIPT=skills/e-tax/scripts/etax-stealth.js - 启动浏览器:
playwright-cli -s=etax open <url> --headed --browser=chrome - 后续命令均使用
-s=etax指定会话
加载配置(首先执行)
- 使用 Read 工具读取
shinkoku.config.yaml - 如果文件不存在,则提示运行
/setup技能并结束 - 确认配置值:
- 纳税人资料(姓名、地址、个人编号等)
- 业务信息(商号、行业等)
- 申报方式(e-Tax/邮寄/窗口)
加载进度信息
- 使用 Read 工具读取
.shinkoku/progress/progress-summary.md(如果存在) - 使用 Read 工具读取以下交接文件(如果存在):
.shinkoku/progress/06-settlement.md— 决算结果(PL/BS 数据).shinkoku/progress/07-income-tax.md— 所得税计算结果.shinkoku/progress/08-consumption-tax.md— 消费税计算结果.shinkoku/progress/02-assess.md— 课税判定结果
- 确认
.shinkoku/progress/10-etax.md中的status:- 如果为
status: interrupted→ 按照下方“中断与恢复协议”的恢复步骤操作 - 如果为
status: completed→ 告知用户已完成,并确认是否有意重新执行
- 如果为
- 如果尚无计算结果,则提示先运行
/income-tax或/settlement
中断与恢复协议
适用于所有步骤的通用规则。用户要求中断时(例如“我想中断”“今天先到这里”“之后继续”等),请按以下步骤操作。
中断步骤
- 确认当前步骤的输入内容 — 检查是否有尚未保存的输入
- 提示下载 .data 文件 — 使用 AskUserQuestion 显示以下内容:
作成コーナーの入力データを .data ファイルとして保存することを推奨します。
画面上部の「入力データの一時保存」ボタン(またはページ下部の「ここまでの入力データを保存する」リンク)
をクリックし、ファイルをダウンロードしてください。
ダウンロードが完了したら「ダウンロード済み」を選択してください。
- 选项:“已下载” / “跳过(不保存)”
- 如果选择“跳过”,则警告用户下次可能需要从头开始
- 记录进度文件 — 使用 Write 工具按以下格式写入
.shinkoku/progress/10-etax.md:
---
step: 10
skill: e-tax
status: interrupted
last_completed_step: "{最後に完了したステップ番号(例: 3)}"
last_url: "{中断時のブラウザURL}"
data_file_saved: {true/false}
interrupted_at: "{当日日付 YYYY-MM-DD}"
fiscal_year: {tax_year}
---
# e-Tax 電子申告(中断)
## 中断時点の状況
- 最後に完了したステップ: ステップ{N}
- 中断時のURL: {URL}
- .data ファイル保存: {済/未}
## 次回の再開方法
1. `/e-tax` スキルを再実行する
2. .data ファイルがある場合は「保存データを利用して作成」から再開する
3. .data ファイルがない場合はステップ0からやり直す
- 向用户报告中断已完成 — 说明下次如何恢复,然后结束
恢复步骤
如果在 .shinkoku/progress/10-etax.md 中检测到 status: interrupted:
- 读取中断时的信息(
last_completed_step,data_file_saved) - 使用 AskUserQuestion 显示以下内容:
前回の e-Tax 入力はステップ{N}で中断されています。
再開方法を選択してください。
- 选项:
- “从 .data 文件恢复”(仅当
data_file_saved: true时显示) - “从头开始”
- “丢弃中断记录并结束”
- “从 .data 文件恢复”(仅当
-
从 .data 文件恢复时:
- 访问确定申告书等制作专区的首页
- 选择“使用保存的数据创建”→“继续创建”
- 提示上传
.data文件 - 加载完成后,从
last_completed_step的下一步继续
-
从头开始时:
- 从步骤 0 开始正常执行
步骤 0:验证必需数据
验证向确定申告书等制作专区填写数据所需的信息是否齐全。
验证项目
[1] 税額計算済み
- .shinkoku/progress/07-income-tax.md が存在し、status: completed であること
[2] プロファイル完備
- 氏名(姓・名)が登録されているか
- 住所が登録されているか
- 所轄税務署名が登録されているか
[3] 決算書データ
- PL/BS の計算結果が取得可能であること
[4] 消費税(該当者のみ)
- .shinkoku/progress/08-consumption-tax.md が存在し、status: completed であること
[5] サニティチェック
- `tax_calc.py sanity-check` を実行する
- error > 0 の場合: 入力を中止し、`/income-tax` スキルで修正を促す
- warning > 0 の場合: ユーザーに確認してから続行する
完整页面跳转流程概览
┌─────────────────────────────────────────────────────┐
│ CC-AA-010 税務署への提出方法の選択 │
│ マイナンバーカード: はい → スマホ: はい │
│ → 「スマートフォンを使用する」 │
└──────────────┬──────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────┐
│ CC-AE-090 作成する申告書等の選択 │
│ 「決算書・収支内訳書(+所得税)」を選択 │
│ → doSubmitCMW0900(2,'25') │
│ │
│ ※ 消費税のみ別途作成する場合: │
│ → doSubmitCMW0900(3,'25') │
└──────────────┬──────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────┐
│ CC-AE-600 マイナポータル連携の選択 │
│ → 「マイナポータル連携を利用しない」 │
└──────────────┬──────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────┐
│ CC-AA-024 e-Taxを行う前の確認 │
│ → 「利用規約に同意して次へ」 │
└──────────────┬──────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────┐
│ CC-AA-440 QRコード認証 │
│ ★ ユーザーの物理的認証が必要 │
│ スマートフォンでQRコード読み取り │
│ → マイナンバーカード認証完了後、自動遷移 │
└──────────────┬──────────────────────────────────────┘
▼
┌───────┴───────┐
▼ ▼
決算書コーナー 所得税コーナー
(事業所得あり) (給与のみ等)
决算书专区流程
/kessan/ac/r7/top → ac0300(種類選択)→ aa0200(P/L入力)
→ aa0100(青色特別控除)→ preAoiroCalc(B/S入力)
→ aa0700(所得確認)→ ac0500(住所氏名)→ 印刷/保存
→ 所得税コーナーへ遷移
所得税专区流程
SS-AA-010a(所得選択)→ SS-AA-050(収入入力ハブ)
→ SS-CA-010(給与入力) / SS-CB-xxx(事業所得) / 雑所得
→ SS-AA-070a(控除1/2)→ SS-AA-080(控除2/2)
→ SS-AA-090(計算結果確認)
→ SS-AC-010a(納付方法)→ SS-AC-020a(住民税等)
→ SS-AC-030(基本情報)→ SS-AC-040(マイナンバー)
→ ステップ5.5(意思決定ゲート)→ ステップ6(電子署名・送信プロトコル)
消费税专区流程(所得税完成后)
所得税完了 → 「消費税の申告書作成はこちら」
2割特例:
ac0100(条件判定) → ac0250(所得区分選択) → 売上入力hub → 売上入力detail
→ 売上入力hub → 中間納付 → ac0300(計算結果) → 納税地等
→ ステップ6.5(電子署名・送信プロトコル)
簡易課税:
ac0100(条件判定) → ac0250(所得区分・事業区分選択) → 売上入力hub → 売上入力detail
→ 売上入力hub → ak2140(仕入税額控除方式選択)※ → 中間納付 → ac0300(計算結果)
→ 納税地等 → ステップ6.5(電子署名・送信プロトコル)
※ 2種以上の事業がある場合のみ
一般課税:
ac0100(条件判定) → ac0250(所得区分選択) → 売上・仕入入力hub → 売上入力detail
→ ai3610(決算額テーブル)※ → 売上・仕入入力hub → 中間納付 → ac0300(計算結果)
→ 納税地等 → ステップ6.5(電子署名・送信プロトコル)
※ 積上げ計算選択時のみ
步骤 1:访问确定申告书等制作专区
起始 URL
https://www.keisan.nta.go.jp/kyoutu/ky/sm/top_web#bsctrl
CC-AA-010:选择向税务署提交的方式
画面编号:CC-AA-010
- 点击“您是否持有个人编号卡”→ “是” 单选按钮
- 点击“您是否持有支持读取个人编号卡的智能手机或 IC 卡读卡器”→ “是”
- 点击 “使用智能手机”
- JS:
doSubmitCSW0100('1','3','/ky/sm/csw0100_myno_qr')
- JS:
CC-AE-090: 选择要创建的申报书等
画面编号: CC-AE-090
选项(令和7年分):
- 所得税 →
doSubmitCMW0900(1,'25') - 决算书・收支内訳书(+所得税) →
doSubmitCMW0900(2,'25')← 有经营所得时 - 消费税 →
doSubmitCMW0900(3,'25') - 赠与税 →
doSubmitCMW0900(4,'25')
判断标准:
- 有经营所得 → 「决算书・收支内訳书(+所得税)」
- 没有经营所得(仅有工资等)→ 「所得税」
- 消费税需在所得税完成后另行创建
CC-AE-600: 选择是否与我的号码门户网站联动
→ 点击 「不使用我的号码门户网站联动」
CC-AA-024: 使用 e-Tax 前的确认
→ 点击 「同意使用条款并继续」
※ 将运行环境检查 termnalInfomationCheckOS_myNumberLinkage()。
使用 Windows/macOS 上的 Chrome/Edge 时没有问题。
CC-AA-440: QR 码认证
★ 等待用户操作 — 暂停浏览器操作
在此画面中,Agent 不得操作浏览器。 使用 AskUserQuestion 工具暂停,在用户报告认证完成之前,绝对不要进入下一步。
在 AskUserQuestion 中显示以下内容:
QRコード認証画面が表示されました。
スマートフォンのマイナポータルアプリでQRコードを読み取り、
マイナンバーカードで認証してください。
認証が完了したら「認証完了」を選択してください。
- 选项: 「认证完成」 / 「未显示 QR 码」
- 如果选择了「未显示 QR 码」,请参阅下方的 ⚠️ 使用 Playwright CLI 时的注意事项并进行处理
- 在用户选择「认证完成」之前,不得进行任何浏览器操作或页面跳转
认证完成后,页面会自动跳转到下一画面。
⚠️ 使用 Playwright CLI 时的注意事项: 通过在 PLAYWRIGHT_MCP_INIT_SCRIPT 环境变量中指定 etax-stealth.js,会自动应用服务器烘焙函数补丁;但如果未显示 QR 码,请在控制台中确认 getClientOS() 的返回值,如果不是 'Windows',请手动执行以下操作:
window.getClientOS = function() { return 'Windows'; };
displayQrcode();
步骤2: 输入蓝色申报决算书(有经营所得时)
⚠️ 原生对话框注意事项: 点击「下一步」后画面未跳转时,可能显示了原生对话框(alert/confirm)。请参阅「技术知识」中的「检测和处理原生对话框」。
/kessan/ac/pre/ac0300: 选择决算书类型
单选按钮:
- 蓝色申报决算书 ← 蓝色申报时
- 收支内訳书(白色申报时)
- 蓝色申报决算书(现金主义用)
/kessan/ac/aa0200: 输入损益表(P/L)
URL: https://www.keisan.nta.go.jp/kessan/ac/aa0200#bsctrl
输入期间
| 字段 | name | 默认值 |
|---|---|---|
| 开始月 | sonekiKeisansyoFromMonth | 1 |
| 开始日 | sonekiKeisansyoFromDay | 1 |
| 结束月 | sonekiKeisansyoToMonth | 12 |
| 结束日 | sonekiKeisansyoToDay | 31 |
销售额(收入)金额
点击「输入」按钮 → 跳转到 /kessan/ac/aa0201 销售与进货月度输入子页面。
aa0201 的字段:
uriageKingaku1〜uriageKingaku12: 月度销售额siireKingaku1〜siireKingaku12: 月度进货额kajisyohi: 家庭消费等zatusyunyu: 杂项收入
合计: uriageKingakuGokei, siireKingakuGokei
费用(第8〜31行)
| 行 | 科目 | name(直接输入) | 备注 |
|---|---|---|---|
| 8 | 税费及公共费用 | sozeiKoka | |
| 9 | 包装运输费 | nidukuriUntin | |
| 10 | 水电燃气费 | suidoKonetuhi | |
| 11 | 差旅交通费 | ryohiKotuhi | |
| 12 | 通信费 | tusinhi | |
| 13 | 广告宣传费 | kokokuSendenhi | |
| 14 | 招待交际费 | settaiKosaihi | |
| 15 | 损害保险费 | songaiHokenryo | |
| 16 | 修缮费 | syuzenhi | |
| 17 | 消耗品费 | syomohinhi | |
| 18 | 折旧费 | — | 「输入」→ /kessan/ac/init/aa0203 |
| 19 | 福利费 | fukuriKoseihi | |
| 20 | 工资薪金 | — | 「输入」→ /kessan/ac/aa0205 |
| 21 | 外包劳务费 | gaichukotin | |
| 22 | 利息折扣费 | — | 「输入」→ /kessan/ac/aa0206 |
| 23 | 地租房租 | — | 「输入」→ /kessan/ac/aa0207 |
| 24 | 坏账 | kasidaorekin | |
| 25 | 税理士等报酬 | keihiNiniKingaku1 | 科目名称: keihiNiniKamoku1 |
| 26 | 地震相关费用 | keihiNiniKingaku2 | 科目名称: keihiNiniKamoku2 |
| 27-30 | 任意科目 | keihiNiniKingaku3〜6 | 科目名称: keihiNiniKamoku3〜6 |
| 31 | 杂费 | zappi |
汇总 hidden 字段: keihiSannyugakuGokei, kyuryoTinginTotalGokei, risiWaribikiryoGokei, tidaiYatinGokei
转回金额等
kurimodosiNiniKamoku1/kurimodosiNiniKingaku1kurimodosiNiniKamoku2/kurimodosiNiniKingaku2
专职人员工资
senjusyaKyuyoTotalGokei(hidden,点击「输入」按钮进入其他画面)kasidaoreKuriireGokei(hidden)
计算结果(自动)
disp_aoiroKojomaeSyotokuKingaku= 销售额 - 销售成本 - 费用 + 转回金额 - 专职人员工资等
/kessan/ac/submit/aa0100: 蓝色申报特别扣除
以问答形式选择扣除额:
| 选项 | value | 条件 |
|---|---|---|
| 10万日元 | 2 | |
| 55万日元 | 3 | |
| 65万日元 | 1 | 必须通过 e-Tax 发送。纸质提交时会报错 KS-E10089 |
字段: aoiroTokubetuKojoSentakugaku
选择65万日元时,必须保存电子账簿或通过 e-Tax 发送。
⚠️ 原生对话框注意事项: 选择65万日元并继续时,纸质提交会显示提示需要通过 e-Tax 发送的原生对话框 KS-E10089。如果画面未跳转,请向用户确认是否存在对话框。
输入资产负债表(B/S)
URL: /kessan/ac/preAoiroCalc
资产部分
数组格式:sisannobuTaisyohyoDetailDataList[N].kisyuKingaku / .kimatuKingaku
| index | 会计科目 |
|---|---|
| 0 | 现金 |
| 1 | 活期存款 |
| 2 | 定期存款 |
| 3 | 其他存款 |
| 4 | 应收票据 |
| 5 | 应收账款 |
| 6 | 有价证券 |
| 7 | 存货 |
| 8 | 预付款 |
| 9 | 贷款 |
| 10 | 建筑物 |
| 11 | 建筑物附属设施 |
| 12 | 机械设备 |
| 13 | 车辆及运输工具 |
| 14 | 工具、器具及设备 |
| 15 | 土地 |
| 16-23 | 自选科目 |
负债・资本部分
数组格式:fusainobuTaisyohyoDetailDataList[N].kisyuKingaku / .kimatuKingaku
| index | 会计科目 |
|---|---|
| 0 | 应付票据 |
| 1 | 应付账款 |
| 2 | 借款 |
| 3 | 应付款 |
| 4 | 预收款 |
| 5 | 暂收款 |
| 6 | 坏账准备 |
| 7-15 | 自选科目 |
| 16 | 投入资本 |
| 17 | 业主借款 |
| 18 | 业主提款 |
| 19 | 蓝色申报特别扣除前的所得金额(从 P/L 自动填入) |
重要:资产期末合计 = 负债期末合计(必须满足,KS-E40003)
⚠️ 原生对话框注意:若资产期末合计与负债期末合计不一致时点击“下一步”,会显示 KS-E40003 原生对话框。如果画面没有跳转,请向用户确认是否存在对话框。
/kessan/ac/ac0500:输入地址、姓名等
| 字段 | name |
|---|---|
| 邮政编码 | jitakuZip |
| 都道府县 | jitakuPrefectureId |
| 市区町村以下地址 | jitakuAddress |
| 事业所地址(适用者) | jimusyoAddress |
| 提交对象税务署 | zeimusyoName |
| 姓名汉字(姓) | nameKanjiSei |
| 姓名汉字(名) | nameKanjiMei |
| 行业名称 | gyosyuName |
| 商号 | yago |
| 提交年月日 | teisyutuYear/teisyutuMonth/teisyutuDay |
决算书完成 → 前往所得税专区
在打印・数据保存画面(/kessan/ac/submit/ac0600)中点击
“在此制作所得税申报表”按钮,即可跳转至所得税专区(继承地址和姓名信息)。
⚠️ 原生对话框注意:点击此按钮后,可能会显示 KS-W10035 原生对话框(确认是否已打印)。如果画面没有跳转,请向用户确认是否存在对话框,并引导用户点击“OK”。
步骤 3:输入所得税申报表
⚠️ 原生对话框注意:点击“下一步”后,如果画面没有跳转,可能是显示了原生对话框(alert/confirm)。请参阅技术知识中的“检测和处理原生对话框”。
SS-AA-010a:选择申报所得等
URL:https://www.keisan.nta.go.jp/r7/syotoku/taM010a40_doInitialDisplay#bbctrl
出生日期
| 字段 | name |
|---|---|
| 年 | inOutDto.shnkkBirthymdYy |
| 月 | inOutDto.shnkkBirthymdMm |
| 日 | inOutDto.shnkkBirthymdDd |
选择所得类型(复选框)
| 所得 | name | 典型选择 |
|---|---|---|
| 工资 | inOutDto.kyuy | 公司职员:checked |
| 事业(营业等) | inOutDto.jgyoEgyoTo | 个体经营者:checked |
| 事业(农业) | inOutDto.jgyoNogyo | |
| 不动产 | inOutDto.fdosn | |
| 杂项(业务・其他) | inOutDto.ztsGyomSnt | 加密资产等:checked |
| 公共养老金等 | inOutDto.kotkNnknKgyoNnknEtc | |
| 退职金 | inOutDto.tasyku | |
| 股票等 | inOutDto.hatoKbshkJyotRsh | |
| 期货交易 | inOutDto.skmnTrhk | |
| 临时所得 | inOutDto.ichj |
shinkoku 的典型申报模式:
- 公司职员+副业(事业所得):
kyuy+jgyoEgyoTo+ztsGyomSnt(有加密资产时) - 仅工资所得:
kyuy
SS-AA-050:收入・所得输入入口
系统会针对所选的所得类型显示输入链接。点击相应链接,跳转至单独的输入画面。
SS-CA-010:输入工资所得的预扣税单
与纸质预扣税单的对应关系:年末调整完成与未完成时,使用不同的表单和标签体系。 年末调整完成 = A〜L(12 个项目),年末调整未完成 = A〜E(5 个项目)。 纸质预扣税单中的“工资所得扣除后的金额”和“所得扣除额合计”栏, 在年末调整完成表单中无需输入,但在年末调整未完成表单中分别对应 B(自动)・C(输入)。
年末调整完成表单
URL:https://www.keisan.nta.go.jp/r7/syotoku/taS510a10_doAdd_nncyzm#bbctrl
主要输入字段
| 标签 | name | 备注 |
|---|---|---|
| A:支付金额 | inOutDto.shhraKngk | 必填 |
| B:预扣税额 | inOutDto.gnsnTyosyuZegk | 分两行填写时填下行 |
| E:社会保险费等金额 | inOutDto.sykaHknryoToKngk | |
| K:支付方地址 | inOutDto.shhrasyJysyKysyOrSyzach | 不超过 28 个字符 |
| L:支付方姓名或名称 | inOutDto.shhrasyNameOrMesyo | 不超过 28 个字符 |
单选按钮(选择是否有记载)
| 字段 | 标签 | name | 值 |
|---|---|---|---|
| 是否记载扣除对象配偶者 | C | inOutDto.kojyTashoHagsyKsaUm | 1(有)/2(无) |
| 是否记载扣除对象扶养亲属 | D | inOutDto.kojyTashoFyoShnzkKsaUm | 1(有)/2(无) |
| 是否记载生命保险费扣除额 | F※ | inOutDto.semeHknryoKojygkKsaUm | 1(有)/2(无) |
| 是否记载地震保险费扣除额 | G※ | inOutDto.jshnHknryoKojygkKsaUm | 1(有)/2(无) |
| 是否记载住房贷款等特别扣除额 | H※ | inOutDto.jyutkKrirknToTkbtsKojyGkKsaUm | 1(有)/0(无) |
| 是否记载所得金额调整扣除额 | I※ | inOutDto.sytkKngkTyoseKojygkKsaUm | 1(有)/0(无) |
| 本人是否为残障者、寡妇等 | J※ | inOutDto.hnninSygsyKfHtriyKnroGkseKsaUm | 1(有)/2(无) |
※ F〜J 标签是根据表单上的排列顺序推测的(尚未确认截图)
条件付きフィールド(ラジオ/チェックで「記載あり」選択時に表示)
| ラベル | name | 表示条件 |
|---|---|---|
| B': 源泉徴収税額(内書き) | inOutDto.gnsnTyosyuZegkUchgk | チェック時 |
| 社会保険料等(内書き) | inOutDto.sykaHknryoToUchgk | チェック時 |
| 生命保険料控除額 | inOutDto.semeHknryoKojygk | F「記載あり」時 |
| 新生命保険料金額 | inOutDto.shnSemeHknryoKngk | F「記載あり」時 |
| 旧生命保険料金額 | inOutDto.kyuSemeHknryoKngk | F「記載あり」時 |
| 介護医療保険料金額 | inOutDto.kagIryoHknryoKngk | F「記載あり」時 |
| 新個人年金保険料金額 | inOutDto.shnKjnNnknHknryoKngk | F「記載あり」時 |
| 旧個人年金保険料金額 | inOutDto.kyuKjnNnknHknryoKngk | F「記載あり」時 |
| 地震保険料控除額 | inOutDto.jshnHknryoKojygk | G「記載あり」時 |
| 旧長期損害保険料金額 | inOutDto.kyuCyokSngaHknryoKngk | G「記載あり」時 |
| H: 住宅借入金等特別控除額 | inOutDto.jyutkKrirknToTkbtsKojyGk | H「記載あり」時 |
| H': 住宅借入金等特別控除可能額 | inOutDto.jyutkKrirknToTkbtsKojyknoGk | H「記載あり」時 |
| H'': 住宅借入金年末残高1回目 | inOutDto.jyutkKrirknToNnmtszndkIkkam | H「記載あり」時 |
| H''': 住宅借入金年末残高2回目 | inOutDto.jyutkKrirknToNnmtszndkNkam | チェック時 |
| 寡婦チェック | inOutDto.ksaArKforkf | J「記載あり」時 |
| 勤労学生チェック | inOutDto.ksaArKnroGkse | J「記載あり」時 |
年末調整未済フォーム
URL: 要確認
入力フィールド
| ラベル | name | 備考 |
|---|---|---|
| A: 支払金額 | inOutDto.shhraKngk | 必須 |
| B: 給与所得控除後の金額 | (自動計算) | 入力不可。A から自動算出 |
| C: 所得控除の額の合計額 | 要確認 | 入力欄あり。源泉徴収票に記載があれば入力 |
| D: 源泉徴収税額 | inOutDto.gnsnTyosyuZegk | |
| E: 住宅借入金等特別控除額 | inOutDto.jyutkKrirknToTkbtsKojyGk |
SS-AA-070a: 控除の入力(1/2)— 支出系控除
入力リンクのハブ画面。各控除をクリックして個別入力画面に遷移。
対応控除:
- 社会保険料控除(源泉徴収票入力済みの場合「入力あり」表示)
- 小規模企業共済等掛金控除(iDeCo等)
- 生命保険料控除
- 地震保険料控除
- 雑損控除・災害減免
- 医療費控除
- 寄附金控除(ふるさと納税含む — ワンストップ特例分も要入力)
SS-AA-080: 控除の入力(2/2)— 人的控除・住宅控除等
対応控除:
- 配偶者(特別)控除
- 扶養控除・特定親族特別控除
- 寡婦・ひとり親控除
- 勤労学生控除
- 障害者控除
- 基礎控除(自動計算表示)
- 住宅借入金等特別控除
- 住宅耐震改修特別控除等
- 予定納税額
- 繰越損失額
SS-AA-090: 計算結果の確認
入力内容から計算された所得税額の確認画面。
表示項目:
- 収入金額・所得金額(所得種類別)
- 所得控除合計
- 課税される所得金額(1,000円未満切捨て)
- 上記に対する税額(速算表適用)
- 差引所得税額
- 復興特別所得税額(基準所得税額の2.1%)
- 所得税及び復興特別所得税の額
- 源泉徴収税額
- 申告納税額(100円未満切捨て)/ 還付される税金
ここで shinkoku の計算結果と照合する(後述「ステップ5: 申告内容の確認」参照)。
各セクションに「訂正する」ボタンがあり、前画面に戻れる。
SS-AC-010a: 納付方法等の入力
納付金額が発生した場合に表示。還付の場合は還付口座入力画面(SS-AB-010a)が表示される。
| フィールド | type | name | 備考 |
|---|---|---|---|
| 延納を届け出る | checkbox | — | 利子税がかかる旨の注意あり |
| 納付方法 | select | inOutDto.nofHoho | 必須 |
納付方法の選択肢:
| value | 方法 |
|---|---|
| 1 | 振替納税(期限内申告の場合に利用可) |
| 2 | 電子納税(ダイレクト納付/インターネットバンキング) |
| 3 | クレジットカード納付 |
| 5 | コンビニ納付 |
| 6 | 金融機関等での窓口納付 |
還付の場合は還付口座情報の入力:
- 金融機関名、支店名、口座番号、口座名義
SS-AC-020a: 財産債務・住民税等
住民税に関する設定(給与からの特別徴収 or 自分で納付 等)。
SS-AC-030: 基本情報の入力
| ラベル | name | 備考 |
|---|---|---|
| 氏名フリガナ(姓) | inOutDto.nameKnSe | 11文字以内 |
| 氏名フリガナ(名) | inOutDto.nameKnMe | |
| 氏名漢字(姓) | inOutDto.nameKnjSe | 10文字以内 |
| 氏名漢字(名) | inOutDto.nameKnjMe | |
| 電話番号(種別) | inOutDto.rnrkSkKbn | 自宅/勤務先/携帯 |
| 電話番号(市外) | inOutDto.shgaKykbn | |
| 電話番号(市内) | inOutDto.shnaKykbn | |
| 電話番号(番号) | inOutDto.knyusyBngo | |
| 納税地区分 | inOutDto.nozeCh | 1=住所地, 2=事業所等 |
| 郵便番号 | inOutDto.yubnBngoGnzaAddress | 7桁 |
| 都道府県 | inOutDto.tdofknGnzaAddress | select |
| 市区町村 | inOutDto.shkcyosnGnzaAddress | 都道府県連動 select |
| 丁目番地等 | inOutDto.cyomBnchToGnzaAddress | 28文字以内 |
| 建物名 | inOutDto.ttmnMeGoshtsGnzaAddress | 28文字以内 |
| 提出先税務署(県) | inOutDto.tesytSkZemsyTdofkn | select |
| 提出先税務署 | inOutDto.tesytSkZemsyZemsy | 県連動 select |
| 職業 | inOutDto.job | 11文字以内 |
| 屋号・雅号 | inOutDto.ygoGgo | 30文字以内 |
| 世帯主の氏名 | inOutDto.stanshNameKnj | |
| 続柄 | inOutDto.stanshKrTsdkgr | select |
| 提出年月日 | inOutDto.tesytYmdYy/Mm/Dd |
SS-AC-040: マイナンバーの入力
マイナンバー(12桁)を入力する画面。チェックディジットアルゴリズムによる検証あり。
ステップ4: 消費税の申告書入力(該当者のみ)
⚠️ ネイティブダイアログ注意: 「次へ」クリック後に画面が遷移しない場合、ネイティブダイアログ(alert/confirm)が表示されている可能性がある。技術的な知見の「ネイティブダイアログの検知と対処」を参照。
所得税申告書の完了後、「他の申告書等を作成する」→ doSubmitCSW0900(3,'25') で消費税コーナーに遷移。
ac0100:条件判定等
URL: https://www.keisan.nta.go.jp/syouhi/ac0100/submit.htmj#bsctrl
| 字段 | name | 备注 |
|---|---|---|
| 基准期间的应税销售额 | kijunKazeiUriage | R5年度 |
| 发票开具经营者 | invoice | true/false |
| 选择简易课税制度 | kani | true/false |
| 会计方式 | zeikomi | 含税/不含税 |
invoice=是时追加显示
| 字段 | name | 备注 |
|---|---|---|
| 是否为新应税经营者 | newKazeiJigyosya | true/false |
| 是否适用 2 成特例 | niwariTokurei | true/false |
一般课税时追加显示
| 字段 | name | 备注 |
|---|---|---|
| 进项税额的计算方法 | siireKeisanHouhou | warimodosi/tumiage |
条件判定画面的显示逻辑(按基准期间分支)
根据 kijunKazeiUriage(基准期间的应税销售额)的值,显示的选项会有所不同:
| 条件 | 新应税经营者? | 2 成特例? | 简易课税? |
|---|---|---|---|
| 基准期间=0,invoice=是 | 显示 | 显示 | 不显示 |
| 基准期间=3,000,000,invoice=是 | 显示 | 显示 | 显示 |
| 基准期间=60,000,000,invoice=是 | 不显示 | 不显示 | 显示 |
仅一般课税:「选择以税额计算方法进行加总计算的人员」按钮(位于折叠区域内)
分支逻辑
| 条件 | 跳转目标路由 |
|---|---|
| 发票=是 & 2 成特例=是 | 2 成特例 |
| 简易课税=是 | 简易课税 |
| 以上皆非 | 一般课税 |
ac0250:选择所得类别
URL: https://www.keisan.nta.go.jp/syouhi/ac0250/submit.htmj#bsctrl
选择所有适用的所得类别。页眉会显示课税方式(一般课税/简易课税)和会计方式(含税/不含税)。
| 标签 | name | 备注 |
|---|---|---|
| 事业所得(营业等) | jigyoSyotokuEigyo | 主要目标 |
| 事业所得(农业) | jigyoSyotokuNogyo | |
| 不动产所得 | fudosanSyotoku | |
| 杂所得(稿酬等) | zatuSyotoku | |
| 业务用固定资产等的转让所得 | jotoSyotoku | 仅一般课税时显示 |
仅简易课税:选择事业类别
简易课税时,每种所得类别都可以子选事业类别(第 1 种~第 6 种):
| 字段 | name | 备注 |
|---|---|---|
| 事业类别(第 1 种) | jigyoSyotokuEigyoJigyoKubun1 | 批发业 |
| 事业类别(第 2 种) | jigyoSyotokuEigyoJigyoKubun2 | 零售业 |
| 事业类别(第 3 种) | jigyoSyotokuEigyoJigyoKubun3 | 制造业等 |
| 事业类别(第 4 种) | jigyoSyotokuEigyoJigyoKubun4 | 其他 |
| 事业类别(第 5 种) | jigyoSyotokuEigyoJigyoKubun5 | 服务业等 |
| 事业类别(第 6 种) | jigyoSyotokuEigyoJigyoKubun6 | 不动产业 |
仅一般课税:业务用固定资产等
| 字段 | name | 备注 |
|---|---|---|
| 是否购买业务用固定资产等 | gyomuyosisanKonyu | checkbox |
销售额输入(所有路由共用表单)
URL 模式:
- 2 成特例:
/syouhi/at3600/inputEigyo.htmj - 简易课税:
/syouhi/ak3600/inputEigyo.htmj - 一般课税:
/syouhi/ai3600/inputEigyo.htmj
| 字段 | name | 备注 |
|---|---|---|
| 销售额(收入)金额 | uriageWari | 必填。含税总额 |
| 免税销售额 | menzeiUriageWari | |
| 非课税销售额 | hikazeiUriageWari | |
| 不征税交易 | jigyoFukazeiUriageWari | |
| 适用减轻税率(6.24%)的部分 | kazeiUriage624PercentWari | |
| 返还等对价(减轻税率) | uriageTaikaKeigen.uriageTaika624Percent | |
| 返还等对价(标准税率) | uriageTaikaKeigen.uriageTaika78Percent | |
| 发生坏账(减轻税率) | kasidaoreKeigen.occurredKasidaore624Percent | 仅限 2 成特例、简易课税 |
| 发生坏账(标准税率) | kasidaoreKeigen.occurredKasidaore78Percent | 仅限 2 成特例、简易课税 |
| 收回坏账(减轻税率) | kasidaoreKeigen.recoveredKasidaore624Percent | 仅限 2 成特例、简易课税 |
| 收回坏账(标准税率) | kasidaoreKeigen.recoveredKasidaore78Percent | 仅限 2 成特例、简易课税 |
| 是否发生坏账 | kasidaore.occurredKasidaoreAns | 仅限 2 成特例、简易课税(radio) |
仅一般课税时的追加字段
| 字段 | name | 备注 |
|---|---|---|
| 非课税返还 | uriageTaikaKeigen.hikazeiHenkan | |
| 非课税资产出口等返还 | uriageTaikaKeigen.hikazeiSisanHenkan |
输入中间预缴税额等(所有路由共用)
| name | 备注 |
|---|---|
chukanNofuZei | 中间预缴消费税额 |
chukanNofuJotoWari | 中间预缴转让税额 |
一般課税(積上げ計算)専用: 決算額テーブル
URL: /syouhi/ai3610/submit.htmj
積上げ計算選択時のみ表示される大規模フォーム(194項目)。 青色申告決算書の各勘定科目に対して、決算額・課税取引金額・軽減税率分・免税事業者等取引分を入力。
フィールド名パターン: {科目略称}{列略称}Wari (割戻し) / {科目略称}{列略称}Tumi (積上げ)
列略称: Kessan(決算額), KazeiIgai(課税取引にならないもの), Keigen624(軽減税率分), MenzeiKeigen(免税事業者等/軽減), Menzei(免税事業者等/標準)
| 科目 | プレフィックス |
|---|---|
| 仕入金額 | siire |
| 租税公課 | sozeiKoka |
| 荷造運賃 | nidukuri |
| 水道光熱費 | suido |
| 旅費交通費 | ryohi |
| 通信費 | tusin |
| 広告宣伝費 | kokoku |
| 接待交際費 | settai |
| 損害保険料 | songai |
| 修繕費 | syuzen |
| 消耗品費 | syomohin |
| 減価償却費 | genkasyokyaku |
| 福利厚生費 | fukurikosei |
| 給料賃金 | kyuryo |
| 外注工賃 | gaichu |
| 利子割引料 | risiWaribiki |
| 地代家賃 | jidai |
| 貸倒金 | kasidaore |
| 任意科目 | niniKamoku25〜30 |
| 雑費 | zappi |
テーブル下の Yes/No 質問(一般課税のみ)
| フィールド | name | 内容 |
|---|---|---|
| 発生した貸倒金 | kasidaoreKeigen.occurredKasidaoreAns | radio |
| 回収した貸倒金 | kasidaoreKeigen.recoveredKasidaoreAns | radio |
| 保税地域からの引取貨物 | hozeiKeigenIppan.hozeiAns | radio |
| 課税仕入れに係る対価の返還等 | siireTaikaKeigenIppan.siireTaikaAns | radio |
| 課税事業者になった方の棚卸高調整 | tanaorosiKeigenIppan.oldMenzeiJigyoshaAns | radio |
| 免税事業者になる方の棚卸高調整 | tanaorosiKeigenIppan.newMenzeiJigyoshaAns | radio |
簡易課税のみ: 仕入税額控除の控除方式の選択
URL: /syouhi/ak2140/submit.htmj
2種以上の事業を営む場合に表示される。以下から選択:
- 原則計算
- 特例計算(2種特例/3種特例/75%特例)
ac0300: 消費税計算結果の確認
全ルート共通の結果画面。ヘッダ部で「2割特例」「簡易課税」「一般課税」を表示。
表示項目:
- 課税標準額
- 消費税額
- 控除税額小計
- 差引税額(100円未満切捨て)
- 中間納付税額
- 納付税額
- 地方消費税 譲渡割額(= 差引税額 × 22/78、100円未満切捨て)
- 中間納付譲渡割額
- 合計納付税額
一般課税のみの追加表示項目
- 「控除過大調整税額」
- 「課税売上割合」セクション(課税資産の譲渡等の対価の額 / 資産の譲渡等の対価の額)
消費税 納税地等の入力
URL パターン(ルートごとに異なる):
- 2割特例:
/syouhi/at1400/submit.htmj - 簡易課税:
/syouhi/ak1400/submit.htmj - 一般課税:
/syouhi/ai1400/submit.htmj
画面は全ルートで同一構造(pageId=ac0400)。
| フィールド | name | type | 備考 |
|---|---|---|---|
| 納付方法 | nofuHohoType | select | |
| 納税地区分 | nozeitiKubun | radio | |
| 郵便番号1 | nozeitiZipCode1 | text | |
| 郵便番号2 | nozeitiZipCode2 | text | |
| 都道府県 | nozeitiPrefectureCode | select | 住所用コード: 13=東京都 |
| 市区町村 | municipalityCode | select | |
| 丁目番地等 | nozeiti1ElaseMunicipal | text | |
| 税務署都道府県 | prefectureCode | select | 税務署用コード: 15=東京都 ← 住所と異なるコード体系! |
| 税務署 | sinkokuZeimusyoCode | select | |
| 氏名カナ(姓) | simeiKanaSei | text | |
| 氏名カナ(名) | simeiKanaMei | text | |
| 氏名漢字(姓) | simeiKanjiSei | text | |
| 氏名漢字(名) | simeiKanjiMei | text | |
| マイナンバー1 | myNumber1 | password | |
| マイナンバー2 | myNumber2 | password | |
| マイナンバー3 | myNumber3 | password | |
| 電話番号1 | telNumber1 | text | |
| 電話番号2 | telNumber2 | text | |
| 電話番号3 | telNumber3 | text |
⚠️ 注意: 住所の都道府県コード(nozeitiPrefectureCode: 13=東京都)と税務署の都道府県コード(prefectureCode: 15=東京都)で異なるコード体系が使用されている。
消費税 計算結果のテストデータ
| 項目 | 2割特例 (売上5M) | 簡易課税 第5種 (売上5M) | 一般課税 (売上66M, 仕入0) |
|---|---|---|---|
| 課税標準額 | 4,545,000円 | 4,545,000円 | 60,000,000円 |
| 消費税額 | 354,510円 | 354,510円 | 4,680,000円 |
| 控除税額 | 283,608円 (×80%) | 177,255円 (×50%) | 0円 |
| 差引税額 | 70,900円 | 177,200円 | 4,680,000円 |
| 地方消費税譲渡割額 | 19,900円 | 49,900円 | 1,320,000円 |
| 合計納付 | 90,800円 | 227,100円 | 6,000,000円 |
3ルートの計算方式の違い
| 項目 | 2割特例 | 簡易課税 | 一般課税 |
|---|---|---|---|
| 控除税額 | 消費税額×80% | みなし仕入率 | 実額(割戻し or 積上げ) |
| 仕入入力 | 不要 | 不要 | 割戻し: 不要 / 積上げ: 決算額テーブル |
| URL prefix | /at**** | /ak**** | /ai**** |
⚠️ ネイティブダイアログ注意: 消費税コーナー終了時は 2段階のネイティブダイアログが表示される —
#otherTax(他の申告書等を作成しますか?)と#end(終了してもよろしいですか?)。画面が遷移しない場合はダイアログの有無をユーザーに確認し、それぞれ適切にクリックするよう案内すること。
ステップ5: 申告内容の確認
作成コーナーの確認画面で、shinkoku の計算結果と一致しているか検証する。
検証項目
□ 合計所得金額が一致するか
□ 所得控除合計が一致するか
□ 課税所得金額が一致するか
□ 算出税額が一致するか
□ 税額控除が一致するか
□ 復興特別所得税が一致するか
□ 申告納税額(または還付額)が一致するか
□ 消費税の納付税額が一致するか(該当者のみ)
不一致がある場合は、差異の原因を調査し、ユーザーに報告する。
ステップ5.5: .data ファイルの保存と次ステップの選択(意思決定ゲート)
★ ユーザー確認待ち — 明示的な指示なくステップ6(電子署名・送信)に進んではならない
2段階ゲート構造: ステップ5.5 は「送信フェーズに進むかどうかの意思決定ゲート」。 ステップ6-3 は「送信ボタン直前の操作ゲート(AI は送信しない、ユーザーが手動で送信する)」。 両方のゲートを通過しない限り、送信は実行されない。
申告内容の確認が完了した時点で、以下の手順を実行する。
.data ファイルのダウンロード案内
ユーザーに .data ファイルの保存を案内する:
申告内容の入力と確認が完了しました。
電子署名・送信に進む前に、入力データを .data ファイルとして保存することを強く推奨します。
画面上部の「入力データの一時保存」ボタン(またはページ下部の「ここまでの入力データを保存する」リンク)
をクリックし、ファイルをダウンロードしてください。
次の操作の選択
AskUserQuestion で以下を表示する:
次の操作を選択してください。
- 選択肢:
- 「電子署名・送信に進む」→ ステップ6 へ
- 「入力内容を見直す」→ 見直したいステップを確認し、該当ステップに戻る
- 「ここで中断する」→ 中断・再開プロトコルの中断手順に従い終了する
重要: ユーザーが「電子署名・送信に進む」を明示的に選択するまで、絶対にステップ6に進まないこと。
ステップ6: 電子署名と送信(所得税)
前提: ステップ5.5 でユーザーが「電子署名・送信に進む」を選択済みであること。この前提が満たされていない場合はステップ5.5 に戻る。
6-1: 電子署名(ユーザーの手動操作)
マイナンバーカードで電子署名する。署名用パスワード(6〜16桁の英数字)が必要。
★ ユーザー操作待ち — ブラウザ操作を一時停止
AskUserQuestion で以下を表示する:
電子署名の画面に進みます。
マイナンバーカードで電子署名を行ってください。
署名が完了したら「署名完了」を選択してください。
- 選択肢: 「署名完了」 / 「署名で問題が発生した」
- ユーザーが「署名完了」を選択するまで、一切のブラウザ操作を行わない
6-2: 送信前確認ページでの一次確認
電子署名完了後、送信前の最終確認ページが表示される。
- ブラウザ上の確認ページの内容を読み取る
- 主要項目をユーザーに報告する(収入・所得・税額・納付/還付額など)
- shinkoku の計算結果との照合結果を報告する
6-3: ブラウザ操作の一時停止(送信はユーザー操作)
★★★ 絶対に AI が送信ボタンをクリックしてはならない ★★★ ★★★ ユーザーが「送信完了」を選択するまで、一切のブラウザ操作を行わない ★★★
★ ユーザー操作待ち — ブラウザ操作を一時停止
AskUserQuestion で以下を表示する:
送信前の申告内容確認ページが表示されています。
上記の内容をご確認ください。
問題がなければ、ご自身の操作で画面上の「送信を実行する」ボタンを
クリックしてください。
送信が完了したら「送信完了」を選択してください。
- 選択肢: 「送信完了」 / 「入力内容を見直したい」
- 「入力内容を見直したい」が選ばれた場合は、見直したい箇所を確認し、該当ステップに戻る
6-4: 送信後の処理(Claude 再開)
ユーザーが「送信完了」を選択したら:
- 受付番号の記録 — 画面から受付番号を読み取って記録する
- 受信通知の確認 — メッセージボックスで受信通知を確認する
- 消費税の申告 — 消費税の申告が必要な場合はステップ6.5 に進む。不要な場合はステップ7 に進む
注意事項
- 送信後の修正は「修正申告」として再提出が必要
- ★★★ 送信操作は必ずユーザーの手動操作で行う — エージェントが送信ボタンを自動クリックすることは絶対に禁止 ★★★
ステップ6.5: 消費税の電子署名と送信(該当者のみ)
消費税の申告が必要な場合、所得税の送信完了後に消費税コーナーで申告書を作成する(ステップ4)。 消費税の入力・確認が完了したら、以下の送信プロトコルに従う。
6.5-1: 消費税の送信フェーズに進む前の確認
消費税の計算結果確認(ac0300)と納税地等の入力が完了した時点で、以下を実行する。
★ ユーザー確認待ち — 明示的な指示なく電子署名・送信に進んではならない
AskUserQuestion で以下を表示する:
消費税の申告内容の入力と確認が完了しました。
電子署名・送信に進む前に、入力データを .data ファイルとして保存することを強く推奨します。
画面上部の「入力データの一時保存」ボタンをクリックし、ファイルをダウンロードしてください。
次の操作を選択してください。
- 選択肢:
- 「電子署名・送信に進む」→ 6.5-2 へ
- 「入力内容を見直す」→ 見直したい箇所を確認し、該当ステップに戻る
- 「ここで中断する」→ 中断・再開プロトコルの中断手順に従い終了する
重要: ユーザーが「電子署名・送信に進む」を明示的に選択するまで、絶対に送信フェーズに進まないこと。
6.5-2: 電子署名(ユーザーの手動操作)
マイナンバーカードで電子署名する。
★ ユーザー操作待ち — ブラウザ操作を一時停止
AskUserQuestion で以下を表示する:
消費税の電子署名の画面に進みます。
マイナンバーカードで電子署名を行ってください。
署名が完了したら「署名完了」を選択してください。
- 選択肢: 「署名完了」 / 「署名で問題が発生した」
- ユーザーが「署名完了」を選択するまで、一切のブラウザ操作を行わない
6.5-3: 送信前確認ページでの一次確認
電子署名完了後、送信前の最終確認ページが表示される。
- ブラウザ上の確認ページの内容を読み取る
- 主要項目をユーザーに報告する(課税標準額・消費税額・差引税額・地方消費税・合計納付税額など)
- shinkoku の計算結果との照合結果を報告する
6.5-4: ブラウザ操作の一時停止(送信はユーザー操作)
★★★ 絶対に AI が送信ボタンをクリックしてはならない ★★★ ★★★ ユーザーが「送信完了」を選択するまで、一切のブラウザ操作を行わない ★★★
★ ユーザー操作待ち — ブラウザ操作を一時停止
AskUserQuestion で以下を表示する:
消費税の送信前確認ページが表示されています。
上記の内容をご確認ください。
問題がなければ、ご自身の操作で画面上の「送信を実行する」ボタンを
クリックしてください。
送信が完了したら「送信完了」を選択してください。
- 選択肢: 「送信完了」 / 「入力内容を見直したい」
- 「入力内容を見直したい」が選ばれた場合は、見直したい箇所を確認し、該当ステップに戻る
6.5-5: 送信後の処理(Claude 再開)
ユーザーが「送信完了」を選択したら:
- 受付番号の記録 — 画面から受付番号を読み取って記録する
- 受信通知の確認 — メッセージボックスで受信通知を確認する
- ステップ7 の .data ファイル保存案内に進む
ステップ7: .data ファイルの保存案内
作成コーナーでは申告データを .data ファイルとして保存できる。
送信後の .data ファイル再保存(推奨)
送信完了後の .data ファイルには受付番号・送信日時等の追加情報が含まれる。
ステップ5.5 で保存済みであっても、送信後に改めて .data ファイルを再保存することを推奨する。
AskUserQuestion で以下を表示する:
送信が完了しました。送信後の .data ファイルには受付番号等の情報が追加されています。
「入力データを保存する」で .data ファイルを再度ダウンロードすることを推奨します。
ダウンロードが完了したら「ダウンロード済み」を選択してください。
- 選択肢: 「ダウンロード済み」 / 「スキップ」
.data ファイルの用途
.dataファイルがあれば、次回は「保存データを利用して作成」から途中再開できる- 控えとしても有用(来年の申告時に前年データとして参照可能)
- 修正申告が必要になった場合、
.dataファイルから入力データを復元できる
技術的な知見
SPA構造
- jQuery 3 + jQuery UI ベース
- ページ遷移はフォーム POST(
document.forms[formName].submit()) - ハッシュ
#bsctrl(決算書コーナー)/#bbctrl(所得税コーナー)はページ管理用 <input type="button">が多用されており、id="input_xxx"で JS.click()操作
URL体系
| コーナー | URL パターン |
|---|---|
| 共通(認証等) | /kyoutu/ky/sm/*** |
| 決算書 | /kessan/ac/*** |
| 所得税 | /r7/syotoku/*** |
| 消費税(共通) | /syouhi/ac**** |
| 消費税(2割特例) | /syouhi/at**** |
| 消費税(一般課税) | /syouhi/ai**** |
| 消費税(簡易課税) | /syouhi/ak**** |
主要ナビゲーション関数
doSubmitCSW0100(qrCodeReadingFlag, reportType, url)— 認証方法選択doSubmitCMW0900(zeimokuType, year)— 申告書種類選択(1=所得税, 2=決算書, 3=消費税, 4=贈与税)
确认对话框
| 代码 | 内容 | 对应处理 |
|---|---|---|
| KS-W90011 | 输入数据将被初始化 | 点击 OK 继续 |
| KS-W90006 | 清除输入数据 | 点击 OK 继续 |
| KS-W10035 | 是否已确认打印 | 点击 OK 继续 |
| KS-E10089 | 需要通过 e-Tax 发送(65 万日元扣除) | 通过 e-Tax 流程重新执行 |
| KS-E10001 | 必填项检查 | 修正遗漏的输入 |
| KS-E40003 | B/S 资产期末合计 ≠ 负债期末合计 | 修正金额 |
结束对话框流程
退出消费税栏目时会显示两阶段对话框:
#otherTax—「是否要制作其他申报书等?」#end—「确定要结束吗?」
※ 选择书面提交时,每次都会显示调查对话框(不会在会话之间记忆)
原生对话框的检测与处理
Claude in Chrome 无法检测通过 alert() / confirm() / prompt() 显示的原生对话框。
对话框显示期间,浏览器的 DOM 操作会被阻止,因此 Agent 的操作会无响应。
检测启发式规则
点击按钮后,如果持续出现以下状态,则可能显示了原生对话框:
- URL 未发生变化
- DOM 内容未发生变化(未跳转到新页面)
- 点击按钮似乎没有任何反应
处理步骤
- 检测到可能存在对话框时,通过 AskUserQuestion 显示以下内容:
ボタンをクリックしましたが、画面が遷移しません。
ブラウザにポップアップ(確認ダイアログ)が表示されていませんか?
表示されている場合は、ダイアログの内容(コード番号がある場合はそれも)を教えてください。
- 选项:「显示了对话框」 / 「未显示对话框」
-
如果显示了对话框:
- 请用户确认对话框的消息内容
- 核对是否对应已知代码(上方「确认对话框」表格中的 KS-W*、KS-E* 等)
- KS-W 系列(警告):提示用户点击「OK」
- KS-E 系列(错误):根据错误内容提示修正方法
- 未知对话框:请用户分享完整消息,再判断如何处理
-
如果未显示对话框:
- 调查是否存在网络错误或页面正在加载
- 尝试重新加载页面
容易触发对话框的操作
| 操作 | 预期对话框 | 步骤 |
|---|---|---|
| 点击「继续下一步」 | KS-E10001(必填项检查) | 2、3、4 |
| 选择 65 万日元扣除 | KS-E10089(必须通过 e-Tax 发送) | 2 |
| 输入 B/S 后点击「下一步」 | KS-E40003(资产≠负债) | 2 |
| 完成决算书→转到所得税 | KS-W10035(打印确认) | 2→3 |
| 退出消费税栏目 | #otherTax + #end(两阶段) | 4 |
| 清除数据、初始化操作 | KS-W90011、KS-W90006 | 全部 |
环境检查(参考)
确定申报书等制作栏目的推荐环境:
- Windows 11 + Chrome / Edge
- macOS + Safari
Linux 不受官方支持。由于 OS 检测分为两层,规避时也需要进行两层伪装:
-
客户端检测:在 CC-AA-024 页面跳转时,
termnalInfomationCheckOS_myNumberLinkage()会 检查navigator.platform/navigator.userAgent,在 Linux 环境中会令isTransition=false, 从而阻止跳转到 QR 码认证页面(CC-AA-440)。 -
服务端 OS 烘焙:服务器会根据 HTTP 请求的
User-Agent/sec-ch-ua-platform标头 判断 OS,并在响应中的getClientOS()函数内硬编码const os = "Linux"之类的值 (服务端渲染)。通过addInitScript伪装 navigator 属性不会改变此烘焙值。 CC-AA-440 中的displayQrcode()也会调用getClientOS(),以确定oStUseType(Win='3',Mac='4')。如果是 Linux,则值为undefined,QR 码不会被绘制。
etax-stealth.js 的两层伪装
可以通过 PLAYWRIGHT_MCP_INIT_SCRIPT 环境变量指定 etax-stealth.js 来规避:
PLAYWRIGHT_MCP_INIT_SCRIPT=skills/e-tax/scripts/etax-stealth.js \
playwright-cli -s=etax open https://www.keisan.nta.go.jp/ --headed --browser=chrome
第 1 层:伪装 navigator 属性(通过 addInitScript 执行,在页面加载前)
| 属性 | 伪装值 |
|---|---|
navigator.platform | 'Win32' |
navigator.userAgent | Windows Chrome 131 UA |
navigator.userAgentData | Windows Chrome 客户端提示 |
navigator.webdriver | false |
navigator.plugins | Chrome 标准插件 |
navigator.languages | ['ja', 'en-US', 'en'] |
第 2 层:修补服务端烘焙函数(在 DOMContentLoaded 时执行,页面脚本执行后)
| 修补对象 | 伪装值 | 目的 |
|---|---|---|
getClientOS() | 'Windows' | 覆盖服务端烘焙值 |
getClientOSVersionAsync() | 'Windows 11' | 规避 OS 版本检测 |
isRecommendedOsAsEtaxAsync() | true | 规避推荐 OS 检测 |
isRecommendedBrowserAsEtaxAsync() | 'OK' | 规避推荐浏览器检测 |
故障排除:未显示 QR 码
如果 CC-AA-440 中未显示 QR 码,可能是 displayQrcode() 内的 getClientOS() 返回了 'Linux' 等值,
导致 oStUseType 为 undefined。
确认方法:在浏览器控制台中确认 getClientOS() 的返回值。如果不是 'Windows',则补丁未生效。
手动处理(Playwright CLI 场景):
playwright-cli -s=etax run-code 'window.getClientOS = function() { return "Windows"; }; displayQrcode();'
已验证的页面跳转流程
CC-AA-010 → CC-AE-090 → CC-AE-600 → CC-AA-024 → CC-AA-440(已确认显示 QR 码)
详情请参阅 docs/wsl-os-detection-workaround.md。
输出交接文档
完成所有步骤后,使用 Write 工具输出以下文件。
输出分步骤文件
按以下格式输出到 .shinkoku/progress/10-etax.md:
---
step: 10
skill: e-tax
status: completed
completed_at: "{当日日付 YYYY-MM-DD}"
fiscal_year: {tax_year}
---
# e-Tax 電子申告の結果
## 提出方法
- 確定申告書等作成コーナー(Claude in Chrome 入力代行)
## 税額サマリー
- 事業所得: {金額}円
- 課税所得: {金額}円
- 所得税額: {金額}円
- 申告納税額: {金額}円({納付/還付})
- 消費税納付額: {金額}円(該当者のみ)
## 送信結果
- 受付番号: {受付番号}
- 送信日時: {日時}
## 次のステップ
/submit で提出後のチェックリストを確認する
更新进度摘要
更新 .shinkoku/progress/progress-summary.md(如果不存在,则新建):
- YAML frontmatter:fiscal_year、last_updated(当天日期)、current_step: e-tax
- 表格:更新所有步骤的状态(将 e-tax 设为 completed)
免责声明
- 确定申报书等制作栏目的页面结构和表单元素可能会因国税厅更新而发生变化
- Claude in Chrome 的代填操作以用户目视确认为前提——不会自动发送
- 操作 My Number 卡(电子签名)需要用户手动操作
- 建议由税务师等专业人士确认最终申报内容
調査資料
詳細なセレクタ情報・スクリーンショットは skills/e-tax/research/ ディレクトリを参照:
00-screen-flow-summary.md— 画面遷移マップ01〜05— 認証フロー画面06〜14— 決算書コーナー画面30〜41— 所得税コーナー画面50〜55— 消費税コーナー画面(初期調査)84〜87— 消費税 2割特例(条件判定、売上入力、計算結果)89〜93— 消費税 簡易課税(条件判定、事業区分、売上入力、控除方式、計算結果)94〜98— 消費税 一般課税(条件判定、所得区分、売上入力、決算額テーブル、計算結果)