SuperAPI AI Directory

e-tax

Agents & models

View repository

Updated 10-15 16:16

About this skill

e-Tax electronic filing — Inputting into the NTA Tax Return Preparation Corner via browser automation

The final tax return data calculated with shinkoku is entered on the 確定申告書等作成コーナー (https://www.keisan.nta.go.jp/)に A skill for inputting and submitting on the browser using Claude in Chrome.

Prerequisites

  • /income-tax Income tax calculation must be completed with the skill
  • /settlement Preparation of financial statements (PL/BS) must be completed with the skill
  • /consumption-tax Consumption tax calculation must be completed with the skill (only for those applicable)
  • shinkoku.config.yaml must be configured
  • Browser automation toolmust be available (see "Selection of browser automation method" below)

Selection of browser automation method

There are the following three methods for inputting into the 確定申告書等作成コーナー.

Method A: Claude in Chrome (recommended)

Item Details
Target environment Windows / macOS native Chrome
Prerequisite Claude in Chrome extension is installed
Advantages No OS detection problems. No additional configuration required

Method B: Antigravity Browser Sub-Agent

Item Details
Target environment Windows / macOS / Linux(Antigravity IDE)
Prerequisite Antigravity IDE is installed and browser_subagent tool is available
Advantages Since native Chrome is used, no OS spoofing is required. Works on Linux as well

Method C: Playwright CLI (fallback)

Item Details
Target environment WSL / Linux, or an environment where Claude in Chrome / Antigravity is unavailable
Prerequisite @playwright/cli + Playwright CLI skill + etax-stealth.js(OS spoofing script)
Limitations headed mode required (physical operation is required for QR code authentication)

Decision logic

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 の『ブラウザ自動化』セクションを参照してください。」

How to operate when using Method B

Antigravity の browser_subagent operates with high-level task descriptions. Describe the input operations for each step in natural language, andbrowser_subagent delegate to.

Example:

* Since Antigravity uses native Chrome,etax-stealth.js OS spoofing by is not required.

Session start procedure when using Method C

Procedure when opening the browser with Playwright CLI:

  1. Set environment variables: PLAYWRIGHT_MCP_INIT_SCRIPT=skills/e-tax/scripts/etax-stealth.js
  2. Launch browser: playwright-cli -s=etax open <url> --headed --browser=chrome
  3. Subsequent commands are executed with the -s=etax session specified

Loading settings (execute first)

  1. shinkoku.config.yaml Read with the Read tool
  2. If the file does not exist, /setup guide the user to execute the skill and exit
  3. Understand the configuration values:
    • Taxpayer profile (name, address, My Number, etc.)
    • Business information (trade name, business type, etc.)
    • Filing method (e-Tax/mail/counter)

Loading progress information

  1. .shinkoku/progress/progress-summary.md Read with the Read tool (if it exists)
  2. Read the following handover documents with the Read tool (if they exist):
    • .shinkoku/progress/06-settlement.md — Financial results (PL/BS data)
    • .shinkoku/progress/07-income-tax.md — Income tax calculation results
    • .shinkoku/progress/08-consumption-tax.md — Consumption tax calculation results
    • .shinkoku/progress/02-assess.md — Taxability determination results
  3. .shinkoku/progress/10-etax.md の status Check:
    • status: interrupted If resume procedure of the "Interruption/Resumption Protocol" below
    • status: completed If so → inform the user that it has already been completed and confirm their intention to re-execute
  4. If the calculation results do not yet exist, first /income-tax や /settlement guide the user to execute

Interruption/Resumption Protocol

Rules common to all steps. If the user requests an interruption (e.g., "I want to interrupt", "That's it for today", "Continue from where we left off"), follow the procedure below.

Interruption procedure

  1. Check the input contents of the current step — Check whether there is any unsaved input
  2. Guide the user to download the .data file — Display the following with AskUserQuestion:
作成コーナーの入力データを .data ファイルとして保存することを推奨します。
画面上部の「入力データの一時保存」ボタン(またはページ下部の「ここまでの入力データを保存する」リンク)
をクリックし、ファイルをダウンロードしてください。

ダウンロードが完了したら「ダウンロード済み」を選択してください。
  • Options: "Already downloaded" / "Skip (do not save)"
  • If "Skip" is selected, warn that next time they may have to start over from the beginning
  1. Record the progress file — .shinkoku/progress/10-etax.md Output in the following format with the Write tool:
---
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からやり直す
  1. Report the completion of the interruption to the user — Guide them on how to resume next time and exit

Resumption procedure

.shinkoku/progress/10-etax.md で status: interrupted If detected:

  1. Read the information at the time of interruption (last_completed_step, data_file_saved)
  2. Display the following with AskUserQuestion:
前回の e-Tax 入力はステップ{N}で中断されています。

再開方法を選択してください。
  • Options:
    • "Resume from the .data file" (data_file_saved: true shown only if
    • "Start over from the beginning"
    • "Discard the interruption record and exit"
  1. When resuming from the .data file:

    • Access the top page of the Income Tax Return Preparation Corner
    • Select "Create using saved data" → "Resume creation"
    • .data Guide the user to upload the file
    • After loading is complete,last_completed_step resume from the next step
  2. When starting over from the beginning:

    • Start normally from Step 0

Step 0: Verification of required data

Verify that the data required for input into the Corner for Preparing Tax Returns, etc. is complete.

Verification Items

[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 の場合: ユーザーに確認してから続行する

Overall Picture of the Screen Transition Flow

┌─────────────────────────────────────────────────────┐
│ 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コード読み取り                      │
│   → マイナンバーカード認証完了後、自動遷移              │
└──────────────┬──────────────────────────────────────┘
               ▼
       ┌───────┴───────┐
       ▼               ▼
  決算書コーナー    所得税コーナー
  (事業所得あり)    (給与のみ等)

Flow of the Financial Statements Corner

/kessan/ac/r7/top → ac0300(種類選択)→ aa0200(P/L入力)
  → aa0100(青色特別控除)→ preAoiroCalc(B/S入力)
  → aa0700(所得確認)→ ac0500(住所氏名)→ 印刷/保存
  → 所得税コーナーへ遷移

Flow of the Income Tax Corner

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(電子署名・送信プロトコル)

Flow of the Consumption Tax Corner (After Income Tax Completion)

所得税完了 → 「消費税の申告書作成はこちら」

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(電子署名・送信プロトコル)
  ※ 積上げ計算選択時のみ

Step 1: Accessing the Corner for Preparing Tax Returns, etc.

Start URL

https://www.keisan.nta.go.jp/kyoutu/ky/sm/top_web#bsctrl

CC-AA-010: Selection of Submission Method to the Tax Office

Screen Number: CC-AA-010

  1. "Do you have a My Number Card" → "Yes" Click the radio button
  2. "Do you have a smartphone or IC card reader/writer compatible with My Number Card reading" → "Yes" Click
  3. "Use a smartphone" Click
    • JS: doSubmitCSW0100('1','3','/ky/sm/csw0100_myno_qr')

CC-AE-090: Selection of Tax Returns, etc. to Prepare

Screen Number: CC-AE-090

Options (for Reiwa 7):

  • Income Tax → doSubmitCMW0900(1,'25')
  • Financial Statements / Income and Expenditure Statement (+ Income Tax) → doSubmitCMW0900(2,'25') ← If there is business income
  • Consumption Tax → doSubmitCMW0900(3,'25')
  • Gift Tax → doSubmitCMW0900(4,'25')

Judgment Criteria:

  • With business income → "Financial Statements / Income and Expenditure Statement (+ Income Tax)"
  • Without business income (salary only, etc.) → "Income Tax"
  • Consumption tax is prepared separately after income tax is completed

CC-AE-600: Selection of My Portal Linkage

→ "Do not use My Portal linkage" Click

CC-AA-024: Confirmation Before Performing e-Tax

→ "Agree to the Terms of Use and Proceed" Click

* Environment check termnalInfomationCheckOS_myNumberLinkage() is executed. No problem with Chrome/Edge on Windows/macOS.

CC-AA-440: QR Code Authentication

★ Waiting for user operation — Pause browser operation

On this screen, the agent must not operate the browser. Pause with the AskUserQuestion tool, and until the user reports that authentication is complete,absolutely do not proceed to the next stepthat.

Display the following with AskUserQuestion:

QRコード認証画面が表示されました。
スマートフォンのマイナポータルアプリでQRコードを読み取り、
マイナンバーカードで認証してください。

認証が完了したら「認証完了」を選択してください。
  • Options: "Authentication complete" / "QR code is not displayed"
  • If "QR code is not displayed" is selected, refer to the ⚠️ Notes When Using Playwright CLI below and take action
  • Until the user selects "Authentication complete", do not perform any browser operations or screen transitions

After authentication is complete, automatically transition to the next screen.

⚠️ Notes When Using Playwright CLI: PLAYWRIGHT_MCP_INIT_SCRIPT By specifying etax-stealth.js in the environment variable, the server bake function patch is automatically applied, but if the QR code is not displayed, check the return value of getClientOS() in the console, and if it is not'Windows' , manually execute the following:

window.getClientOS = function() { return 'Windows'; };
displayQrcode();

Step 2: Input of Blue Return Financial Statements (If There Is Business Income)

⚠️ Native Dialog Caution: If the screen does not transition after clicking "Next", a native dialog (alert/confirm) may be displayed. See "Detecting and Handling Native Dialogs" in the technical notes.

/kessan/ac/pre/ac0300: Selection of financial statement type

Radio button:

  • Blue Return Financial Statement ← For blue return
  • Statement of Income and Expenses (for white return)
  • Blue Return Financial Statement (for cash-basis accounting)

/kessan/ac/aa0200: Input of Profit and Loss Statement (P/L)

URL: https://www.keisan.nta.go.jp/kessan/ac/aa0200#bsctrl

Period input

Field name Default
Start month sonekiKeisansyoFromMonth 1
Start day sonekiKeisansyoFromDay 1
End month sonekiKeisansyoToMonth 12
End day sonekiKeisansyoToDay 31

Sales (income) amount

"Input" button → /kessan/ac/aa0201 Transition to the monthly sales and purchases input subpage.

Fields for aa0201:

  • uriageKingaku1〜uriageKingaku12: Monthly sales
  • siireKingaku1〜siireKingaku12: Monthly purchases
  • kajisyohi: Household consumption, etc.
  • zatusyunyu: Miscellaneous income

Total: uriageKingakuGokei, siireKingakuGokei

Expenses (lines 8-31)

Line Account name (direct input) Remarks
8 Taxes and public dues sozeiKoka
9 Packing and freight charges nidukuriUntin
10 Water, light, and heating expenses suidoKonetuhi
11 Travel and transportation expenses ryohiKotuhi
12 Communication expenses tusinhi
13 Advertising expenses kokokuSendenhi
14 Entertainment expenses settaiKosaihi
15 Non-life insurance premiums songaiHokenryo
16 Repair expenses syuzenhi
17 Supplies expenses syomohinhi
18 Depreciation expenses — "Input" → /kessan/ac/init/aa0203
19 Welfare expenses fukuriKoseihi
20 Salaries and wages — "Input" → /kessan/ac/aa0205
21 Subcontracting wages gaichukotin
22 Interest and discount charges — "Input" → /kessan/ac/aa0206
23 Land and house rent — "Input" → /kessan/ac/aa0207
24 Bad debt losses kasidaorekin
25 Remuneration to tax accountants, etc. keihiNiniKingaku1 Account name: keihiNiniKamoku1
26 Earthquake disaster-related expenses keihiNiniKingaku2 Account name: keihiNiniKamoku2
27-30 Optional account keihiNiniKingaku3〜6 Account name: keihiNiniKamoku3〜6
31 Miscellaneous expenses zappi

Aggregation hidden field: keihiSannyugakuGokei, kyuryoTinginTotalGokei, risiWaribikiryoGokei, tidaiYatinGokei

Carryback amount, etc.

  • kurimodosiNiniKamoku1/kurimodosiNiniKingaku1
  • kurimodosiNiniKamoku2/kurimodosiNiniKingaku2

Deduction for spouse and dependents

  • senjusyaKyuyoTotalGokei (hidden, separate screen via "Input" button)
  • kasidaoreKuriireGokei (hidden)

Calculation result (automatic)

  • disp_aoiroKojomaeSyotokuKingaku = Sales - Cost of sales - Expenses + Carryback amount - Deduction for spouse and dependents, etc.

/kessan/ac/submit/aa0100: Blue Return Special Deduction

Select the deduction amount in Q&A format:

Option value Condition
100,000 yen 2
550,000 yen 3
650,000 yen 1 e-Tax transmission is required. For paper submission, error KS-E10089

Field: aoiroTokubetuKojoSentakugaku

When selecting 650,000 yen, electronic bookkeeping preservation or e-Tax transmission is required.

⚠️ Native dialog caution: If you select 650,000 yen and proceed to the next step, in the case of paper submission KS-E10089A native dialog saying (e-Tax submission required) is displayed. If the screen does not transition, check with the user whether a dialog is present.

Balance Sheet (B/S) Input

URL: /kessan/ac/preAoiroCalc

Assets Section

Array format: sisannobuTaisyohyoDetailDataList[N].kisyuKingaku / .kimatuKingaku

index Account Title
0 Cash
1 Current Deposits
2 Time Deposits
3 Other Deposits
4 Notes Receivable
5 Accounts Receivable
6 Marketable Securities
7 Inventory Assets
8 Prepaid Expenses
9 Loans Receivable
10 Buildings
11 Building Fixtures and Equipment
12 Machinery and Equipment
13 Vehicles and Transportation Equipment
14 Tools, Equipment, and Fixtures
15 Land
16-23 Optional Account

Liabilities and Equity Section

Array format: fusainobuTaisyohyoDetailDataList[N].kisyuKingaku / .kimatuKingaku

index Account Title
0 Notes Payable
1 Accounts Payable
2 Borrowings
3 Accrued Liabilities
4 Advances Received
5 Deposits Received
6 Allowance for Doubtful Accounts
7-15 Optional Account
16 Capital
17 Owner's Drawings
18 Owner's Withdrawals
19 Income Amount Before Blue Return Special Deduction (automatic from P/L)

Important: Total Assets at End of Period = Total Liabilities at End of Period is required (KS-E40003)

⚠️ Native Dialog Caution: If you press "Next" while the total assets at end of period and total liabilities at end of period do not match,KS-E40003 native dialog is displayed. If the screen does not transition, check with the user whether a dialog is present.

/kessan/ac/ac0500: Input of Address, Name, etc.

Field name
Postal Code jitakuZip
Prefecture jitakuPrefectureId
City/Ward/Town/Village and Below jitakuAddress
Business Office Address (if applicable) jimusyoAddress
Tax Office to Submit To zeimusyoName
Name in Kanji (Surname) nameKanjiSei
Name in Kanji (Given Name) nameKanjiMei
Industry Name gyosyuName
Trade Name yago
Submission Date teisyutuYear/teisyutuMonth/teisyutuDay

Financial Statements Complete → Go to Income Tax Corner

Print/Data Save Screen (/kessan/ac/submit/ac0600) with the "Click here to create an income tax return" button to transition to the income tax corner (address and name carried over).

⚠️ Native Dialog Caution: Clicking this button KS-W10035(whether printing was confirmed) native dialog may be displayed. If the screen does not transition, check with the user whether a dialog is present and instruct them to click "OK".


Step 3: Income Tax Return Input

⚠️ Native Dialog Caution: If the screen does not transition after clicking "Next", a native dialog (alert/confirm) may be displayed. Refer to "Detection and Handling of Native Dialogs" in the technical knowledge.

SS-AA-010a: Selection of income to be declared, etc.

URL: https://www.keisan.nta.go.jp/r7/syotoku/taM010a40_doInitialDisplay#bbctrl

Date of birth

Field name
Year inOutDto.shnkkBirthymdYy
Month inOutDto.shnkkBirthymdMm
Day inOutDto.shnkkBirthymdDd

Selection of income type (checkboxes)

Income name Typical selection
Salary inOutDto.kyuy Company employee: checked
Business (sales, etc.) inOutDto.jgyoEgyoTo Sole proprietor: checked
Business (agriculture) inOutDto.jgyoNogyo
Real estate inOutDto.fdosn
Miscellaneous (business/other) inOutDto.ztsGyomSnt Crypto assets, etc.: checked
Public pensions, etc. inOutDto.kotkNnknKgyoNnknEtc
Retirement allowance inOutDto.tasyku
Stocks, etc. inOutDto.hatoKbshkJyotRsh
Futures transactions inOutDto.skmnTrhk
Temporary inOutDto.ichj

Typical patterns subject to shinkoku:

  • Company employee + side business (business income): kyuy + jgyoEgyoTo + ztsGyomSnt(if there are crypto assets)
  • Salary income only: kyuy

SS-AA-050: Income/earnings input hub

Input links are displayed for each selected income type. Click each link to navigate to the individual input screen.

SS-CA-010: Input of withholding tax slip for salary income

Correspondence with the physical withholding tax slip: For year-end adjustment completed and year-end adjustment not completed,separate forms and separate label systems. Year-end adjustment completed = A to L (12 items), year-end adjustment not completed = A to E (5 items). The "Amount after salary income deduction" and "Total amount of income deductions" fields on the physical withholding tax slip are not required on the year-end adjustment completed form, but exist as B (automatic) and C (input) on the year-end adjustment not completed form.

Year-end adjustment completed form

URL: https://www.keisan.nta.go.jp/r7/syotoku/taS510a10_doAdd_nncyzm#bbctrl

Main input fields
Label name Remarks
A: Payment amount inOutDto.shhraKngk Required
B: Withholding tax amount inOutDto.gnsnTyosyuZegk Lower row when written in two rows
E: Amount of social insurance premiums, etc. inOutDto.sykaHknryoToKngk
K: Payer's address inOutDto.shhrasyJysyKysyOrSyzach Within 28 characters
L: Payer's name or title inOutDto.shhrasyNameOrMesyo Within 28 characters
Radio buttons (selection of whether stated)
Field Label name Value
Statement of spouse subject to deduction C inOutDto.kojyTashoHagsyKsaUm 1 (present)/2 (absent)
Statement of dependent relatives subject to deduction D inOutDto.kojyTashoFyoShnzkKsaUm 1 (present)/2 (absent)
Statement of life insurance premium deduction amount F※ inOutDto.semeHknryoKojygkKsaUm 1 (present)/2 (absent)
Statement of earthquake insurance premium deduction amount G※ inOutDto.jshnHknryoKojygkKsaUm 1 (present)/2 (absent)
Statement of special deduction for housing loan, etc. H※ inOutDto.jyutkKrirknToTkbtsKojyGkKsaUm 1 (present)/0 (absent)
Statement of income amount adjustment deduction I※ inOutDto.sytkKngkTyoseKojygkKsaUm 1 (present)/0 (absent)
The person is a disabled person, widow, etc. J※ inOutDto.hnninSygsyKfHtriyKnroGkseKsaUm 1 (present)/2 (absent)

* Labels F to J are inferred from the order on the form (screenshots unconfirmed)

Conditional fields (displayed when "stated" is selected with radio/check)
Label name Display condition
B': Withholding tax amount (inner amount) inOutDto.gnsnTyosyuZegkUchgk When checked
Social insurance premiums, etc. (inner amount) inOutDto.sykaHknryoToUchgk When checked
Life insurance premium deduction amount inOutDto.semeHknryoKojygk When F is "stated"
New life insurance premium amount inOutDto.shnSemeHknryoKngk When F is "stated"
Old life insurance premium amount inOutDto.kyuSemeHknryoKngk When F is "stated"
Long-term care medical insurance premium amount inOutDto.kagIryoHknryoKngk When F is "stated"
New individual annuity insurance premium amount inOutDto.shnKjnNnknHknryoKngk When F is "stated"
Old individual annuity insurance premium amount inOutDto.kyuKjnNnknHknryoKngk When F is "stated"
Earthquake insurance premium deduction amount inOutDto.jshnHknryoKojygk When G is "stated"
Old long-term casualty insurance premium amount inOutDto.kyuCyokSngaHknryoKngk When G is "stated"
H: Special deduction for housing loan, etc. inOutDto.jyutkKrirknToTkbtsKojyGk When H is "stated"
H': Deductible amount for special deduction for housing loan, etc. inOutDto.jyutkKrirknToTkbtsKojyknoGk When H is "stated"
H'': Housing loan year-end balance, 1st time inOutDto.jyutkKrirknToNnmtszndkIkkam When H is "stated"
H''': Housing loan year-end balance, 2nd time inOutDto.jyutkKrirknToNnmtszndkNkam When checked
Widow check inOutDto.ksaArKforkf When J is "stated"
Working student check inOutDto.ksaArKnroGkse When J is "stated"

Year-end adjustment pending form

URL: Needs confirmation

Input field
Label name Notes
A: Payment amount inOutDto.shhraKngk Required
B: Amount after employment income deduction (auto-calculated) Not enterable. Automatically calculated from A
C: Total amount of income deductions Needs confirmation Input field present. Enter if stated on the withholding tax slip
D: Withholding tax amount inOutDto.gnsnTyosyuZegk
E: Special deduction for housing loan, etc. inOutDto.jyutkKrirknToTkbtsKojyGk

SS-AA-070a: Deduction input (1/2) — Expense-related deductions

Input link hub screen. Click each deduction to go to its individual input screen.

Supported deductions:

  • Social insurance premium deduction (displayed as "Entered" if a withholding tax statement has been entered)
  • Small business mutual aid等 installment premium deduction (iDeCo, etc.)
  • Life insurance premium deduction
  • Earthquake insurance premium deduction
  • Deduction for casualty losses / disaster reduction or exemption
  • Medical expense deduction
  • Donation deduction (including furusato nozei — one-stop special exception portion also requires entry)

SS-AA-080: Entry of deductions (2/2) — Personal deductions, housing deductions, etc.

Supported deductions:

  • Spouse (special) deduction
  • Dependent deduction / special deduction for specified relatives
  • Widow / single parent deduction
  • Working student deduction
  • Disability deduction
  • Basic deduction (displayed as auto-calculated)
  • Special deduction for housing loan, etc.
  • Special deduction for earthquake-resistant home renovation, etc.
  • Prepaid tax amount
  • Carryover loss amount

SS-AA-090: Confirmation of calculation results

Screen for confirming the income tax amount calculated from the entered content.

Display items:

  • Income amount / income amount (by income category)
  • Total income deductions
  • Taxable income amount (rounded down to the nearest 1,000 yen)
  • Tax amount on the above (quick calculation table applied)
  • Income tax amount after deductions
  • Special reconstruction income tax amount (2.1% of the base income tax amount)
  • Amount of income tax and special reconstruction income tax
  • Withholding tax amount
  • Tax amount to be paid (rounded down to the nearest 100 yen) / Tax to be refunded

Here, reconcile with the calculation results of shinkoku(See "Step 5: Confirmation of filing content" below).

Each section has a "Correct" button, allowing you to return to the previous screen.

SS-AC-010a: Entry of payment method, etc.

Displayed when a payment amount arises. In the case of a refund, the refund account entry screen (SS-AB-010a) is displayed.

Field type name Remarks
File for extension of payment checkbox — Note that interest tax will be charged
Payment method select inOutDto.nofHoho Required

Payment method options:

value Method
1 Direct debit (available for filing within the deadline)
2 Electronic payment (direct payment / internet banking)
3 Credit card payment
5 Convenience store payment
6 Over-the-counter payment at financial institutions, etc.

In the case of a refund, entry of refund account information:

  • Financial institution name, branch name, account number, account holder name

SS-AC-020a: Assets and liabilities / resident tax, etc.

Settings related to resident tax (special collection from salary or self-payment, etc.).

SS-AC-030: Entry of basic information

Label name Remarks
Name phonetic reading (surname) inOutDto.nameKnSe Within 11 characters
Name phonetic reading (given name) inOutDto.nameKnMe
Name in kanji (surname) inOutDto.nameKnjSe Within 10 characters
Name in kanji (given name) inOutDto.nameKnjMe
Phone number (type) inOutDto.rnrkSkKbn Home/Work/Mobile
Phone number (area code) inOutDto.shgaKykbn
Phone number (local number) inOutDto.shnaKykbn
Phone number (number) inOutDto.knyusyBngo
Tax payment district classification inOutDto.nozeCh 1=Place of residence, 2=Business office, etc.
Postal code inOutDto.yubnBngoGnzaAddress 7 digits
Prefecture inOutDto.tdofknGnzaAddress select
City/Ward/Town/Village inOutDto.shkcyosnGnzaAddress Prefecture-linked select
Chome/Banchi, etc. inOutDto.cyomBnchToGnzaAddress Within 28 characters
Building name inOutDto.ttmnMeGoshtsGnzaAddress Within 28 characters
Submission destination tax office (prefecture) inOutDto.tesytSkZemsyTdofkn select
Submission destination tax office inOutDto.tesytSkZemsyZemsy Prefecture-linked select
Occupation inOutDto.job Within 11 characters
Trade name / pen name inOutDto.ygoGgo Within 30 characters
Name of household head inOutDto.stanshNameKnj
Relationship inOutDto.stanshKrTsdkgr select
Date of submission inOutDto.tesytYmdYy/Mm/Dd

SS-AC-040: Entering My Number

Screen for entering My Number (12 digits). Verified using a check digit algorithm.


Step 4: Entering the consumption tax return (only for applicable persons)

⚠️ Note on native dialogs: If the screen does not transition after clicking "Next", a native dialog (alert/confirm) may be displayed. Refer to "Detection and handling of native dialogs" in the technical knowledge.

After completing the income tax return, go to "Create other returns, etc." → doSubmitCSW0900(3,'25') to transition to the consumption tax corner.

ac0100: Condition determination, etc.

URL: https://www.keisan.nta.go.jp/syouhi/ac0100/submit.htmj#bsctrl

Field name Remarks
Taxable sales for the base period kijunKazeiUriage Reiwa 5
Invoice-issuing business operator invoice true/false
Simplified taxation system election kani true/false
Accounting method zeikomi Tax-included/Tax-excluded

Displayed additionally when Invoice = Yes

Field name Remarks
Whether newly a taxable business operator newKazeiJigyosya true/false
Whether to apply the 20% special provision niwariTokurei true/false

Displayed additionally in the case of general taxation

Field name Remarks
Method of calculating purchase tax amount siireKeisanHouhou warimodosi/tumiage

Display logic of the condition determination screen (branching based on the base period)

kijunKazeiUriageThe displayed options change depending on the value of (Taxable sales for the base period):

Condition New taxable business operator? 20% special provision? Simplified taxation?
Base period=0, invoice=Yes Display Display Hide
Base period=3,000,000, invoice=Yes Display Display Display
Base period=60,000,000, invoice=Yes Hide Hide Display

General taxation only: "Those who select the accumulation method as the tax amount calculation method" button (inside the collapsible section)

Branch logic

Condition Transition destination route
Invoice=Yes & 20% special exception=Yes 20% special exception
Simplified taxation=Yes Simplified taxation
Other than the above General taxation

ac0250: Selection of income category

URL: https://www.keisan.nta.go.jp/syouhi/ac0250/submit.htmj#bsctrl

Select all applicable income categories. The taxation method (general taxation/simplified taxation) and accounting method (tax-included/tax-excluded) are displayed in the header.

Label name Remarks
Business income (sales, etc.) jigyoSyotokuEigyo Main target
Business income (agriculture) jigyoSyotokuNogyo
Real estate income fudosanSyotoku
Miscellaneous income (manuscript fees, etc.) zatuSyotoku
Transfer income from business-use fixed assets, etc. jotoSyotoku Displayed only for general taxation

Simplified taxation only: Selection of business category

In the case of simplified taxation, there is a sub-selection of business category (Type 1 to Type 6) for each income category:

Field name Remarks
Business category (Type 1) jigyoSyotokuEigyoJigyoKubun1 Wholesale business
Business category (Type 2) jigyoSyotokuEigyoJigyoKubun2 Retail business
Business category (Type 3) jigyoSyotokuEigyoJigyoKubun3 Manufacturing, etc.
Business category (Type 4) jigyoSyotokuEigyoJigyoKubun4 Other
Business category (Type 5) jigyoSyotokuEigyoJigyoKubun5 Service business, etc.
Business category (Type 6) jigyoSyotokuEigyoJigyoKubun6 Real estate business

General taxation only: Business-use fixed assets, etc.

Field name Remarks
There is a purchase of business-use fixed assets, etc. gyomuyosisanKonyu checkbox

Sales input (common form for all routes)

URL pattern:

  • 20% special exception: /syouhi/at3600/inputEigyo.htmj
  • Simplified taxation: /syouhi/ak3600/inputEigyo.htmj
  • General taxation: /syouhi/ai3600/inputEigyo.htmj
Field name Remarks
Sales (income) amount uriageWari Required. Tax-included total amount
Tax-exempt sales menzeiUriageWari
Non-taxable sales hikazeiUriageWari
Out-of-scope transactions jigyoFukazeiUriageWari
Reduced tax rate (6.24%) applicable portion kazeiUriage624PercentWari
Refund, etc. consideration (reduced) uriageTaikaKeigen.uriageTaika624Percent
Refund, etc. consideration (standard) uriageTaikaKeigen.uriageTaika78Percent
Bad debt occurrence (reduced) kasidaoreKeigen.occurredKasidaore624Percent 20% special exception/simplified taxation only
Bad debt occurrence (standard) kasidaoreKeigen.occurredKasidaore78Percent 20% special exception/simplified taxation only
Bad debt recovery (reduced) kasidaoreKeigen.recoveredKasidaore624Percent 20% special exception/simplified taxation only
Bad debt recovery (standard) kasidaoreKeigen.recoveredKasidaore78Percent 20% special exception/simplified taxation only
Presence or absence of bad debt occurrence kasidaore.occurredKasidaoreAns 20% special exception/simplified taxation only (radio)

Additional field only for general taxation

Field name Remarks
Non-taxable refund uriageTaikaKeigen.hikazeiHenkan
Refund for export etc. of non-taxable assets uriageTaikaKeigen.hikazeiSisanHenkan

Input of interim payment tax amount etc. (common to all routes)

name Remarks
chukanNofuZei Interim payment consumption tax amount
chukanNofuJotoWari Interim payment transfer levy amount

General taxation (accumulation calculation) exclusive: settlement amount table

URL: /syouhi/ai3610/submit.htmj

Large-scale form (194 items) displayed only when accumulation calculation is selected. For each account item in the blue return settlement statement, enter the settlement amount, taxable transaction amount, reduced tax rate portion, and tax-exempt business operator etc. transaction portion.

Field name pattern: {科目略称}{列略称}Wari (rebate) / {科目略称}{列略称}Tumi (accumulation)

Column abbreviation: Kessan(settlement amount), KazeiIgai(items not constituting taxable transactions), Keigen624(reduced tax rate portion), MenzeiKeigen(tax-exempt business operator etc./reduced), Menzei(tax-exempt business operator etc./standard)

Account Prefix
Purchase amount siire
Taxes and public charges sozeiKoka
Packing and freight nidukuri
Utilities suido
Travel and transportation expenses ryohi
Communication expenses tusin
Advertising expenses kokoku
Entertainment expenses settai
Non-life insurance premiums songai
Repair expenses syuzen
Consumable expenses syomohin
Depreciation expenses genkasyokyaku
Welfare expenses fukurikosei
Salaries and wages kyuryo
Subcontracting wages gaichu
Interest and discount charges risiWaribiki
Land and house rent jidai
Bad debt losses kasidaore
Optional account niniKamoku25〜30
Miscellaneous expenses zappi

Yes/No questions below the table (general taxation only)

Field name Content
Bad debt losses incurred kasidaoreKeigen.occurredKasidaoreAns radio
Bad debt losses recovered kasidaoreKeigen.recoveredKasidaoreAns radio
Goods taken from bonded areas hozeiKeigenIppan.hozeiAns radio
Return etc. of consideration pertaining to taxable purchases siireTaikaKeigenIppan.siireTaikaAns radio
Inventory amount adjustment for those who became taxable business operators tanaorosiKeigenIppan.oldMenzeiJigyoshaAns radio
Inventory amount adjustment for those who become tax-exempt business operators tanaorosiKeigenIppan.newMenzeiJigyoshaAns radio

Simplified taxation only: selection of deduction method for purchase tax credit

URL: /syouhi/ak2140/submit.htmj

Displayed when operating two or more types of business. Select from the following:

  • Principle calculation
  • Special calculation (2-type special/3-type special/75% special)

ac0300: Confirmation of consumption tax calculation results

Result screen common to all routes. The header displays "20% special", "simplified taxation", and "general taxation".

Display items:

  • Tax base amount
  • Consumption tax amount
  • Deduction tax amount subtotal
  • Balance of tax amount(rounded down to less than 100 yen)
  • Interim payment tax amount
  • Tax amount to be paid
  • Local consumption tax transfer levy amount(= balance of tax amount × 22/78, rounded down to less than 100 yen)
  • Interim payment transfer levy amount
  • Total tax amount to be paid

Additional display items for general taxation only

  • "Excessive deduction adjustment tax amount"
  • "Taxable Sales Ratio" section (Amount of consideration for transfer of taxable assets, etc. / Amount of consideration for transfer of assets, etc.)

Consumption tax: Entry of tax payment place, etc.

URL pattern (differs by route):

  • 20% special exception: /syouhi/at1400/submit.htmj
  • Simplified taxation: /syouhi/ak1400/submit.htmj
  • General taxation: /syouhi/ai1400/submit.htmj

The screen has the same structure across all routes (pageId=ac0400).

Field name type Remarks
Payment method nofuHohoType select
Tax payment place classification nozeitiKubun radio
Postal code 1 nozeitiZipCode1 text
Postal code 2 nozeitiZipCode2 text
Prefecture nozeitiPrefectureCode select Address code: 13=Tokyo
Municipality municipalityCode select
Street address, etc. nozeiti1ElaseMunicipal text
Tax office prefecture prefectureCode select Tax office code: 15=Tokyo ← Different code system from the address!
Tax office sinkokuZeimusyoCode select
Name kana (surname) simeiKanaSei text
Name kana (given name) simeiKanaMei text
Name kanji (surname) simeiKanjiSei text
Name kanji (given name) simeiKanjiMei text
My Number 1 myNumber1 password
My Number 2 myNumber2 password
My Number 3 myNumber3 password
Phone number 1 telNumber1 text
Phone number 2 telNumber2 text
Phone number 3 telNumber3 text

⚠️ Note: The address prefecture code (nozeitiPrefectureCode: 13=Tokyo) and the tax office prefecture code (prefectureCode: 15=Tokyo) usedifferent code systems.

Consumption tax calculation result test data

Item 20% special exception (sales 5M) Simplified taxation Category 5 (sales 5M) General taxation (sales 66M, purchases 0)
Tax base amount 4,545,000 yen 4,545,000 yen 60,000,000 yen
Consumption tax amount 354,510 yen 354,510 yen 4,680,000 yen
Deductible tax amount 283,608 yen (×80%) 177,255 yen (×50%) 0 yen
Balance of tax amount 70,900 yen 177,200 yen 4,680,000 yen
Local consumption tax transfer amount 19,900 yen 49,900 yen 1,320,000 yen
Total payment 90,800 yen 227,100 yen 6,000,000 yen

Differences in calculation methods among the 3 routes

Item 20% special exception Simplified taxation General taxation
Deductible tax amount Consumption tax amount × 80% Deemed purchase rate Actual amount (reduction or accumulation)
Purchase entry Not required Not required Reduction: Not required / Accumulation: Settlement amount table
URL prefix /at**** /ak**** /ai****

⚠️ Native dialog caution: When the consumption tax corner ends, two-stage native dialogis displayed — #otherTax(Create other tax returns, etc.?) and #end(Is it OK to finish?). If the screen does not transition, check with the user whether a dialog is present, and guide them to click each one appropriately.


Step 5: Confirmation of declaration contents

On the confirmation screen of the creation corner, verify that it matches the calculation results of shinkoku.

Verification items

□ 合計所得金額が一致するか
□ 所得控除合計が一致するか
□ 課税所得金額が一致するか
□ 算出税額が一致するか
□ 税額控除が一致するか
□ 復興特別所得税が一致するか
□ 申告納税額(または還付額)が一致するか
□ 消費税の納付税額が一致するか(該当者のみ)

If there is a discrepancy, investigate the cause of the difference and report it to the user.


Step 5.5: Saving the .data file and selecting the next step (decision gate)

★ Waiting for user confirmation — Do not proceed to Step 6 (electronic signature and submission) without explicit instructions

Two-stage gate structure: Step 5.5 is the "decision gate for whether to proceed to the submission phase." Step 6-3 is the "operation gate immediately before the submit button (the AI does not submit; the user submits manually)." Unless both gates are passed, submission will not be executed.

Once confirmation of the declaration contents is complete, perform the following procedure.

Guidance for downloading the .data file

Guide the user to save the .data file:

申告内容の入力と確認が完了しました。

電子署名・送信に進む前に、入力データを .data ファイルとして保存することを強く推奨します。
画面上部の「入力データの一時保存」ボタン(またはページ下部の「ここまでの入力データを保存する」リンク)
をクリックし、ファイルをダウンロードしてください。

Selection of the next operation

Display the following with AskUserQuestion:

次の操作を選択してください。
  • Options:
    • "Proceed to electronic signature and submission" → Go to Step 6
    • "Review the entered contents" → Confirm the step you want to review, and return to the corresponding step
    • "Abort here" → Follow the abort procedure of the abort/resume protocol and finish

Important: Do not absolutely proceed to Step 6 until the user explicitly selects "Proceed to electronic signature and submission."


Step 6: Electronic signature and submission (income tax)

Precondition: The user has already selected "Proceed to electronic signature and submission" in Step 5.5. If this precondition is not met, return to Step 5.5.

6-1: Electronic signature (user's manual operation)

Sign electronically with a My Number Card. A signature password (6 to 16 alphanumeric characters) is required.

★ Waiting for user operation — Pause browser operation

Display the following with AskUserQuestion:

電子署名の画面に進みます。
マイナンバーカードで電子署名を行ってください。

署名が完了したら「署名完了」を選択してください。
  • Options: "Signature complete" / "A problem occurred with the signature"
  • Do not perform any browser operation until the user selects "Signature complete"

6-2: Primary confirmation on the pre-submission confirmation page

After the electronic signature is complete, the final confirmation page before submission is displayed.

  1. Read the contents of the confirmation page in the browser
  2. Report the main items to the user (income, earnings, tax amount, payment/refund amount, etc.)
  3. Report the results of the reconciliation with shinkoku's calculation results

6-3: Pause browser operations (sending is a user action)

★★★ The AI must absolutely never click the send button ★★★ ★★★ Do not perform any browser operations until the user selects "Sending complete" ★★★

★ Waiting for user action — pause browser operations

Display the following with AskUserQuestion:

送信前の申告内容確認ページが表示されています。
上記の内容をご確認ください。

問題がなければ、ご自身の操作で画面上の「送信を実行する」ボタンを
クリックしてください。

送信が完了したら「送信完了」を選択してください。
  • Options: "Sending complete" / "I want to review the entered content"
  • If "I want to review the entered content" is selected, confirm the parts to review and return to the corresponding step

6-4: Processing after sending (Claude resumes)

When the user selects "Sending complete":

  1. Record the reception number — Read the reception number from the screen and record it
  2. Check the receipt notification — Check the receipt notification in the message box
  3. Consumption tax filing — If consumption tax filing is required, proceed to step 6.5. If not required, proceed to step 7

Notes

  • Corrections after sending require resubmission as a "corrected filing"
  • ★★★ The sending operation must always be performed manually by the user — the agent is absolutely prohibited from automatically clicking the send button ★★★

Step 6.5: Electronic signature and sending of consumption tax (only for applicable persons)

If consumption tax filing is required, create the filing form in the consumption tax section after completing the sending of income tax (step 4). Once the input and confirmation of consumption tax are complete, follow the sending protocol below.

6.5-1: Confirmation before proceeding to the consumption tax sending phase

When the confirmation of the consumption tax calculation results (ac0300) and the input of the tax office, etc. are complete, execute the following.

★ Waiting for user confirmation — Do not proceed to electronic signature/sending without explicit instructions

Display the following with AskUserQuestion:

消費税の申告内容の入力と確認が完了しました。

電子署名・送信に進む前に、入力データを .data ファイルとして保存することを強く推奨します。
画面上部の「入力データの一時保存」ボタンをクリックし、ファイルをダウンロードしてください。

次の操作を選択してください。
  • Options:
    • "Proceed to electronic signature/sending" → Go to 6.5-2
    • "Review the entered content" → Confirm the parts to review and return to the corresponding step
    • "Abort here" → Follow the abort procedure of the abort/resume protocol and terminate

Important: Do not proceed to the sending phase until the user explicitly selects "Proceed to electronic signature/sending".

6.5-2: Electronic signature (user's manual operation)

Sign electronically with the My Number Card.

★ Waiting for user action — pause browser operations

Display the following with AskUserQuestion:

消費税の電子署名の画面に進みます。
マイナンバーカードで電子署名を行ってください。

署名が完了したら「署名完了」を選択してください。
  • Options: "Signing complete" / "A problem occurred with signing"
  • Do not perform any browser operations until the user selects "Signing complete"

6.5-3: Primary confirmation on the pre-submission confirmation page

After the electronic signature is complete, the final confirmation page before submission is displayed.

  1. Read the contents of the confirmation page in the browser
  2. Report the main items to the user (tax base amount, consumption tax amount, net tax amount, local consumption tax, total tax payment amount, etc.)
  3. Report the result of the cross-check with shinkoku's calculation results

6.5-4: Pause browser operations (submission is a user action)

★★★ The AI must absolutely never click the submit button ★★★ ★★★ Do not perform any browser operations until the user selects "Submission complete" ★★★

★ Waiting for user action — pause browser operations

Display the following with AskUserQuestion:

消費税の送信前確認ページが表示されています。
上記の内容をご確認ください。

問題がなければ、ご自身の操作で画面上の「送信を実行する」ボタンを
クリックしてください。

送信が完了したら「送信完了」を選択してください。
  • Options: "Submission complete" / "I want to review the entered content"
  • If "I want to review the entered content" is selected, check the parts to review and return to the relevant step

6.5-5: Post-submission processing (Claude resumes)

Once the user selects "Submission complete":

  1. Record the receipt number — Read the receipt number from the screen and record it
  2. Check the receipt notification — Check the receipt notification in the message box
  3. Proceed to the .data file saving guidance in Step 7

Step 7: Guidance for saving the .data file

In the creation corner, the filing data can be saved as a .data file.

Re-saving the .data file after submission (recommended)

After submission is complete, the .data file contains additional information such as the receipt number and submission date and time. Even if it was already saved in Step 5.5,re-save the .data file again after submissionis recommended.

Display the following with AskUserQuestion:

送信が完了しました。送信後の .data ファイルには受付番号等の情報が追加されています。
「入力データを保存する」で .data ファイルを再度ダウンロードすることを推奨します。

ダウンロードが完了したら「ダウンロード済み」を選択してください。
  • Options: "Already downloaded" / "Skip"

Uses of the .data file

  • .data If the file is available, you can resume from "Create using saved data" next time
  • Also useful as a copy (can be referenced as previous year's data when filing next year)
  • If an amended return becomes necessary,.data the input data can be restored from the file

Technical knowledge

SPA structure

  • jQuery 3 + jQuery UI based
  • Page transitions are form POST (document.forms[formName].submit())
  • hash #bsctrl(financial statements corner) / #bbctrl(income tax corner) is used for page management
  • <input type="button"> is used heavily, andid="input_xxx" で JS .click() operation

URL structure

Corner URL pattern
Common (authentication, etc.) /kyoutu/ky/sm/***
Financial statements /kessan/ac/***
Income tax /r7/syotoku/***
Consumption tax (common) /syouhi/ac****
Consumption tax (20% special exception) /syouhi/at****
Consumption tax (general taxation) /syouhi/ai****
Consumption tax (simplified taxation) /syouhi/ak****

Main navigation functions

  • doSubmitCSW0100(qrCodeReadingFlag, reportType, url) — Authentication method selection
  • doSubmitCMW0900(zeimokuType, year) — Return type selection (1=income tax, 2=financial statements, 3=consumption tax, 4=gift tax)

Confirmation dialog

Code Content Action
KS-W90011 Input data is initialized Continue with OK
KS-W90006 Clear input data Continue with OK
KS-W10035 Whether printing was confirmed Continue with OK
KS-E10089 e-Tax submission required (650,000 yen deduction) Re-run via e-Tax route
KS-E10001 Required input check Correct missing input
KS-E40003 B/S total assets at end of period ≠ total liabilities at end of period Correct the amount

Exit dialog flow

When exiting the consumption tax corner, a two-stage dialog is displayed:

  1. #otherTax — "Do you want to create another return, etc.?"
  2. #end — "Are you sure you want to exit?"

* When paper submission is selected, a survey dialog is displayed every time (not remembered between sessions)

Detection and handling of native dialogs

Claude in Chrome は alert() / confirm() / prompt() Native dialog bycannot be detected. While the dialog is displayed, browser DOM operations are blocked, so the agent's operations become unresponsive.

Detection heuristics

If the following states continue after clicking a button, a native dialog may be displayed:

  • URL does not change
  • DOM content does not change (does not transition to a new screen)
  • Clicking the button appears to do nothing

Handling procedure

  1. If a possible dialog is detected, display the following with AskUserQuestion:
ボタンをクリックしましたが、画面が遷移しません。
ブラウザにポップアップ(確認ダイアログ)が表示されていませんか?

表示されている場合は、ダイアログの内容(コード番号がある場合はそれも)を教えてください。
  • Options: "A dialog is displayed" / "No dialog is displayed"
  1. If a dialog is displayed:

    • Ask the user to check the dialog message content
    • Check whether it matches a known code (KS-W*, KS-E*, etc. in the "Confirmation dialog" table above)
    • KS-W series (warning): Guide the user to click "OK"
    • KS-E series (error): Guide corrections according to the error content
    • Unknown dialog: Have the user share the full message and determine the handling
  2. If no dialog is displayed:

    • Investigate the possibility of a network error or page loading
    • Try reloading the page

Operations prone to triggering dialogs

Operation Expected dialog Step
General "Proceed to Next" clicks KS-E10001 (required input check) 2, 3, 4
Selection of the 650,000 yen deduction KS-E10089 (e-Tax submission required) 2
"Next" after B/S entry KS-E40003 (assets ≠ liabilities) 2
Financial statements complete → transition to income tax KS-W10035 (print confirmation) 2→3
End of consumption tax section #otherTax + #end(two-stage) 4
Data clear/initialization operations KS-W90011, KS-W90006 General

Environment check (reference)

Recommended environment for the Income Tax Return Preparation Corner:

  • Windows 11 + Chrome / Edge
  • macOS + Safari

Linux is not officially supported. OS detection is two-layer , so bypassing it also requires two layers of spoofing:

  1. Client-side detection: During the screen transition of CC-AA-024, termnalInfomationCheckOS_myNumberLinkage() が navigator.platform / navigator.userAgent is checked, and in a Linux environment it becomes isTransition=false , and the transition to the QR code authentication screen (CC-AA-440) is blocked.

  2. Server-side OS baking: The server determines the OS from the User-Agent / sec-ch-ua-platform header of the HTTP request, and hardcodes it into the getClientOS() function in the response as const os = "Linux" (server-side rendering).addInitScript Spoofing navigator properties via does not change this baked value. In CC-AA-440's displayQrcode() as well, getClientOS() is called, andoStUseType is determined (Win='3', Mac='4'). On Linux it becomes undefined and the QR code is not rendered.

etax-stealth.js two-layer spoofing

PLAYWRIGHT_MCP_INIT_SCRIPT It can be bypassed by specifying etax-stealth.js in the environment variable:

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

Layer 1: navigator property spoofing(addInitScript runs with , before page load)

Property Spoofed value
navigator.platform 'Win32'
navigator.userAgent Windows Chrome 131 UA
navigator.userAgentData Windows Chrome Client Hints
navigator.webdriver false
navigator.plugins Chrome standard plugins
navigator.languages ['ja', 'en-US', 'en']

Layer 2: patching the server-baked function(DOMContentLoaded runs with , after the page script)

Patch target Spoofed value Purpose
getClientOS() 'Windows' Overwriting the server-baked value
getClientOSVersionAsync() 'Windows 11' Bypassing OS version detection
isRecommendedOsAsEtaxAsync() true Bypassing recommended OS detection
isRecommendedBrowserAsEtaxAsync() 'OK' Bypassing recommended browser detection

Troubleshooting: QR code is not displayed

If the QR code is not displayed on CC-AA-440,displayQrcode() within , getClientOS() が 'Linux' etc. may be returned, and oStUseType が undefined may have become .

How to check: Check the return value of getClientOS() in the browser console.'Windows' If it is not , the patch has not been applied.

Manual workaround(for Playwright CLI):

playwright-cli -s=etax run-code 'window.getClientOS = function() { return "Windows"; }; displayQrcode();'

Verified screen transition flow

CC-AA-010 → CC-AE-090 → CC-AE-600 → CC-AA-024 → CC-AA-440 (QR display confirmed)

For details, refer to docs/wsl-os-detection-workaround.md See


Handover document output

After all steps are complete, output the following files using the Write tool.

Output of per-step files

.shinkoku/progress/10-etax.md Output in the following format to:

---
step: 10
skill: e-tax
status: completed
completed_at: "{当日日付 YYYY-MM-DD}"
fiscal_year: {tax_year}
---

# e-Tax 電子申告の結果

## 提出方法

- 確定申告書等作成コーナー(Claude in Chrome 入力代行)

## 税額サマリー

- 事業所得: {金額}円
- 課税所得: {金額}円
- 所得税額: {金額}円
- 申告納税額: {金額}円({納付/還付})
- 消費税納付額: {金額}円(該当者のみ)

## 送信結果

- 受付番号: {受付番号}
- 送信日時: {日時}

## 次のステップ

/submit で提出後のチェックリストを確認する

Updating the progress summary

.shinkoku/progress/progress-summary.md Update (create new if it does not exist):

  • YAML frontmatter: fiscal_year, last_updated (current date), current_step: e-tax
  • Table: Update the status of all steps (set e-tax to completed)

Disclaimer

  • The screen layout and form elements of the Tax Return Preparation Corner may change due to updates by the National Tax Agency
  • Claude in Chrome's input assistance assumes visual confirmation by the user — it does not perform automatic submission
  • Operations involving the My Number Card (electronic signature) require manual operation by the user
  • It is recommended that the final return contents be confirmed with a specialist such as a tax accountant

Research materials

For detailed selector information and screenshots, refer to the skills/e-tax/research/ directory:

  • 00-screen-flow-summary.md — Screen transition map
  • 01〜05 — Authentication flow screens
  • 06〜14 — Financial statements corner screens
  • 30〜41 — Income tax corner screens
  • 50〜55 — Consumption tax corner screens (initial research)
  • 84〜87 — Consumption tax 20% special exception (condition determination, sales input, calculation results)
  • 89〜93 — Consumption tax simplified taxation (condition determination, business category, sales input, deduction method, calculation results)
  • 94〜98 — Consumption tax general taxation (condition determination, income category, sales input, financial statement amount table, calculation results)