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-taxIncome tax calculation must be completed with the skill/settlementPreparation of financial statements (PL/BS) must be completed with the skill/consumption-taxConsumption tax calculation must be completed with the skill (only for those applicable)shinkoku.config.yamlmust 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:
- 「https://www.keisan.nta.go.jp/kyoutu/ky/sm/top_web#bsctrl open"
- "Click the 'Yes' radio button for 'Do you have a My Number Card?'"
- "Enter '1' in the input field with name='sonekiKeisansyoFromMonth'"
* 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:
- Set environment variables:
PLAYWRIGHT_MCP_INIT_SCRIPT=skills/e-tax/scripts/etax-stealth.js - Launch browser:
playwright-cli -s=etax open <url> --headed --browser=chrome - Subsequent commands are executed with the
-s=etaxsession specified
Loading settings (execute first)
shinkoku.config.yamlRead with the Read tool- If the file does not exist,
/setupguide the user to execute the skill and exit - 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
.shinkoku/progress/progress-summary.mdRead with the Read tool (if it exists)- 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
.shinkoku/progress/10-etax.mdのstatusCheck:status: interruptedIf resume procedure of the "Interruption/Resumption Protocol" belowstatus: completedIf so → inform the user that it has already been completed and confirm their intention to re-execute
- If the calculation results do not yet exist, first
/income-taxや/settlementguide 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
- Check the input contents of the current step — Check whether there is any unsaved input
- 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
- Record the progress file —
.shinkoku/progress/10-etax.mdOutput 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からやり直す
- 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:
- Read the information at the time of interruption (
last_completed_step,data_file_saved) - Display the following with AskUserQuestion:
前回の e-Tax 入力はステップ{N}で中断されています。
再開方法を選択してください。
- Options:
- "Resume from the .data file" (
data_file_saved: trueshown only if - "Start over from the beginning"
- "Discard the interruption record and exit"
- "Resume from the .data file" (
-
When resuming from the .data file:
- Access the top page of the Income Tax Return Preparation Corner
- Select "Create using saved data" → "Resume creation"
.dataGuide the user to upload the file- After loading is complete,
last_completed_stepresume from the next step
-
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
- "Do you have a My Number Card" → "Yes" Click the radio button
- "Do you have a smartphone or IC card reader/writer compatible with My Number Card reading" → "Yes" Click
- "Use a smartphone" Click
- JS:
doSubmitCSW0100('1','3','/ky/sm/csw0100_myno_qr')
- JS:
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 salessiireKingaku1〜siireKingaku12: Monthly purchaseskajisyohi: 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/kurimodosiNiniKingaku1kurimodosiNiniKamoku2/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.
- Read the contents of the confirmation page in the browser
- Report the main items to the user (income, earnings, tax amount, payment/refund amount, etc.)
- 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":
- Record the reception number — Read the reception number from the screen and record it
- Check the receipt notification — Check the receipt notification in the message box
- 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.
- Read the contents of the confirmation page in the browser
- Report the main items to the user (tax base amount, consumption tax amount, net tax amount, local consumption tax, total tax payment amount, etc.)
- 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":
- Record the receipt number — Read the receipt number from the screen and record it
- Check the receipt notification — Check the receipt notification in the message box
- 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
.dataIf 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,
.datathe 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 selectiondoSubmitCMW0900(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:
#otherTax— "Do you want to create another return, etc.?"#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
- If a possible dialog is detected, display the following with AskUserQuestion:
ボタンをクリックしましたが、画面が遷移しません。
ブラウザにポップアップ(確認ダイアログ)が表示されていませんか?
表示されている場合は、ダイアログの内容(コード番号がある場合はそれも)を教えてください。
- Options: "A dialog is displayed" / "No dialog is displayed"
-
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
-
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:
-
Client-side detection: During the screen transition of CC-AA-024,
termnalInfomationCheckOS_myNumberLinkage()がnavigator.platform/navigator.userAgentis checked, and in a Linux environment it becomesisTransition=false, and the transition to the QR code authentication screen (CC-AA-440) is blocked. -
Server-side OS baking: The server determines the OS from the
User-Agent/sec-ch-ua-platformheader of the HTTP request, and hardcodes it into thegetClientOS()function in the response asconst os = "Linux"(server-side rendering).addInitScriptSpoofing navigator properties via does not change this baked value. In CC-AA-440'sdisplayQrcode()as well,getClientOS()is called, andoStUseTypeis determined (Win='3', Mac='4'). On Linux it becomesundefinedand 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 map01〜05— Authentication flow screens06〜14— Financial statements corner screens30〜41— Income tax corner screens50〜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)