2026-03-18 · 10 min

Taiwan tax forms for indie AI builders: a concrete walkthrough

How to file 行號 income, declare USDC revenue, and keep the right records if you're a one-person AI shop in Taipei. I'm not an accountant; this is what I actually did, in order.

taiwan · tax · indie · legal

This post is not legal or tax advice. I am not an accountant. I am an indie AI builder who filed my first 行號 return in Taipei in January 2026 and survived it. What follows is the sequence I actually followed, the forms I actually filed, and the two things I wish someone had told me. Your situation may differ. Find a 會計師 for anything load-bearing.

What I was trying to report

My first year as a full-time indie builder in Taiwan was a mix of familiar SaaS income and less familiar on-chain payments. The goal was to report everything cleanly under a new sole proprietorship (行號) to keep my business and personal finances separate.

My income streams for 2025 were:

  • USD SaaS Revenue: Monthly payouts from the paid tier of my Buttondown newsletter.
  • USD Referral Revenue: Sporadic partner payments from the Claude Code program for referring new developers.
  • On-chain Revenue: Payments in USDC on Base, received through an x402 payment gateway I built for a small project. This is a protocol that requires a small crypto payment to access a service.
  • NTD Consulting: A couple of one-off invoices for small consulting gigs, paid in New Taiwan Dollars.

The numbers were small, which is typical for a first year. The total revenue was just under NT$120,000, well below the NT$480,000 annual threshold that would require me to register for and charge VAT (營業稅). This simplified things considerably.

Here is the breakdown of my 2025 revenue:

| Source | Type | 2025 Revenue (NTD) | | --------------------- | ---------------- | ------------------ | | Buttondown | SaaS (USD) | ~NT$67,000 | | Claude Code | Referral (USD) | ~NT$22,000 | | x402 Gateway | On-chain (USDC) | ~NT$14,000 | | Local Consulting | Invoice (NTD) | ~NT$15,000 | | Total | | ~NT$118,000 |

The challenge was not the amount, but the variety. I needed a system that could handle USD from Stripe, USDC from a public blockchain, and NTD from a local bank transfer, and consolidate it all correctly for the National Taxation Bureau.

Step 1: Register as 行號 (sole proprietor)

First, I needed a legal business entity. While you can report small amounts of freelance income as personal income (個人所得), I wanted to formally separate my business expenses like server costs and API fees. The simplest structure for this in Taiwan is a 行號, or sole proprietorship.

The process was surprisingly straightforward and done entirely online at the Ministry of Economic Affairs's Commerce Industrial Services Portal.

  • Form: The application is called 商業登記 (Business Registration).
  • Fee: NT$1,000 for the registration. I also had to state a minimum capital amount. I put NT$20,000 on the form. At the time, there was a common shortcut where you didn't need to actually deposit this and show proof for a small 行號, but you should check the current rules as this may have changed.
  • Documents: I needed my Taiwanese ID (or ARC for foreigners), proof of the business address (my home address), and a short description of the business. I used "software and content creation" (資訊軟體服務業).
  • Turnaround: The approval came through in about five business days. I received an official PDF certificate.

This step gave me a legal entity and a unified business number (統一編號), which is essential for the next steps.

Step 2: Register for tax (稅籍登記)

With the business registration certificate in hand, the next step was to register that business with the tax office. This is also done online through the National Taxation Bureau's (NTBC) portal.

This process, called 稅籍登記 (Tax Registration), links your new business entity to the tax system.

  • Portal: The NTBC e-tax portal is entirely in Chinese, but it is logically structured.
  • Business Category: I had to select a formal business category. I chose 資訊服務業 (Information Services), which covers software development and online services. Another option could have been 文化服務業 (Cultural Services) if my work was more focused on writing and content.
  • VAT Election: The form asks about VAT (營業稅). Since my projected income was well below the NT$480,000 annual threshold, I was able to elect to defer VAT registration. This means I don't need to file bi-monthly VAT returns.
  • Approval: This was incredibly fast. The approval was confirmed on the same day.

Now my 行號 was a registered business and a registered taxpayer.

Step 3: Opening a business bank account

I could have used my personal bank account, but that defeats the purpose of separating finances. I wanted a dedicated account for all business income and expenses.

This was the most time-consuming manual step. I went to a Taishin Bank branch near my apartment.

  • Time: It took nearly three hours. The process for opening a business account is much more involved than a personal one.
  • Required Documents: I needed the 商業登記 certificate from Step 1, the 稅籍登記 certificate from Step 2, my personal ID, and an official company stamp, or 印鑑. This is a physical stamp with the business's official name, which is used to authorize documents in Taiwan. I had one made for about NT$300.
  • Why Taishin: I chose Taishin for a simple reason: they offered a business account with a linked USD foreign currency account for free. Other banks I checked had monthly maintenance fees for their foreign currency accounts, which didn't make sense for my low volume of USD transactions.

With a dedicated NTD and USD business account, I could now cleanly receive all my different income streams.

Step 4: Reporting foreign income

My SaaS and referral income arrived in USD. The tax office, of course, wants to see everything in NTD. The rule is to convert the foreign currency income to NTD using the exchange rate on the date of receipt.

The NTBC is specific about which rate to use. They publish an official daily exchange rate (公告匯率) which you can find on the websites of major banks like the Bank of Taiwan.

My process was:

  1. For every payout from Buttondown or Stripe, I saved the PDF confirmation.
  2. I noted the date the money actually hit my account.
  3. I looked up the official Bank of Taiwan USD-to-NTD "selling" rate for that date.
  4. I recorded the original USD amount and the converted NTD amount in a ledger.

I kept this ledger in a simple Notion database, indexed by month. This made it easy to sum up the total foreign-sourced income at the end of the year. This income was reported on my final consolidated income tax return (綜所稅), which combines business and personal income, under the category for foreign-sourced income (境外所得). The tax office can ask for the payout PDFs, so keeping them organized is critical.

Step 5: Reporting on-chain income (the tricky one)

This was the most novel part of the process. How do you report income that never touches a traditional bank, paid in a stablecoin like USDC?

As of my filing in January 2026, the guidance in Taiwan is still evolving. The prevailing interpretation is that converting a crypto asset to fiat (like NTD) is a taxable event, treated as "property transaction income" (財產交易所得). The tax is on the capital gain.

However, my income was received directly in USDC, a stablecoin pegged to the US dollar. There was no crypto-to-crypto transaction or significant capital gain. After some research and reading informal guidance, I took a conservative approach:

  1. Valuation: I treated 1 USDC as equal to 1 USD at the time of receipt.
  2. Conversion: I converted that USD value to NTD using the same official exchange rate method as my other foreign income.
  3. Ledger: I kept a separate, detailed ledger for all on-chain transactions. For each payment received, I recorded:
    • Transaction hash (for proof)
    • Timestamp
    • Amount in USDC
    • Equivalent USD value (1:1)
    • Equivalent NTD value (using daily rate)
    • Counterparty (the sender's public wallet address)

I attached this ledger as a supplementary appendix to my tax filing. This demonstrates a good-faith effort to declare the income transparently, even if the formal reporting categories are not yet perfectly adapted for it.

Step 6: Deductions I took

The main benefit of a 行號 is the ability to deduct legitimate business expenses. I was careful to only deduct expenses that were clearly and directly related to running my AI building business.

My major deductions for 2025 were:

| Expense | Annual Cost (NTD) | Allocation | Deductible Amount (NTD) | | ------------------------- | ----------------- | ---------- | ----------------------- | | Chunghwa Telecom Fiber | NT$16,680 | 100% | NT$16,680 | | Rent (Home Office) | NT$222,000 | 30% | NT$66,600 | | Mac mini (Depreciation) | NT$23,100 (cost) | 30% (5-yr) | NT$4,620 | | Software (APIs, Cloud) | NT$28,800 | 100% | NT$28,800 | | Work-related Coffee | NT$3,000 (est.) | 30% | NT$900 | | Total | | | ~NT$117,600 |

  • Internet: My fiber connection is 100% for work, so I deducted the full annual cost.
  • Rent: I use one room of my three-room apartment as a dedicated office. I allocated 30% of my annual rent as a business expense. This is a common and generally accepted allocation.
  • Hardware: I bought a new Mac mini for development. You cannot deduct the full cost of a major asset in one year. Instead, you depreciate it over its useful life. For computers, this is typically 5 years. I used a straight-line depreciation method and, since I also use the computer for personal tasks, I only allocated 30% of its use to the business.
  • Software: This was a 100% business expense, covering my subscriptions for Claude and Gemini APIs, Cloudflare services, and GitHub Copilot.
  • Coffee: I sometimes work from coffee shops. I kept receipts from sessions where I produced meaningful work and deducted a conservative 30% of the total, acknowledging the personal consumption aspect.

Step 7: Effective tax rate

Now for the final calculation. The net income of the 行號 is simply its gross revenue minus its total deductible expenses.

  • Gross Revenue: ~NT$118,000
  • Total Deductions: ~NT$117,600
  • Taxable Income: ~NT$400

Yes, my taxable business income for the year was only about NT$400. This income is then added to my other personal income sources, but on its own, the tax owed was effectively zero.

This is not tax evasion; it is the expected result for a first-year business that is investing in setup and has low initial revenue. By diligently tracking every legitimate expense, the taxable profit was minimal. Year two, with higher revenue and fewer one-off setup costs, will look very different.

What I wish I had known

The process was manageable, but a few things would have saved me significant time and anxiety.

First, the single biggest time-saver was starting a real double-entry ledger from day one. After a month of trying to track things in a spreadsheet, I felt a sense of dread. I spent about four hours setting up beancount, a plaintext accounting system. It was a pain to learn, but it saved me what I estimate would have been 30+ hours of frantic reconstruction and categorization in January. It forces you to be disciplined.

Second, the National Health Insurance (健保) contribution is calculated on a separate basis. I initially thought that because my 行號 profit was near zero, I would not have to worry about it. This is wrong. Your 健保 premium as a sole proprietor is based on a different income assessment. Do not assume your tax filing covers it. You need to handle it separately with the NHI Administration.

Third, if you file yourself, the online tax portal in Chinese is actually fine once you spend an hour clicking around to understand its structure. I wasted two afternoons convinced I needed to hire an accountant (會計師) just to navigate the website. For a simple case like mine, it was not necessary.

Finally, keep a USD-denominated bank statement for every month. My Taishin account shows everything in NTD by default, but when you are trying to reconcile your foreign income records, the tax office may want to see the original USD amounts as they were received by the bank. Having the original USD statements on hand is crucial proof.

On-chain bookkeeping tips

For anyone dealing with on-chain revenue, do not wait until the end of the year. The volume of micro-transactions can become a nightmare.

My system is simple and automated. I have a 40-line bash script that runs daily via a cron job. It uses the BaseScan API to query my business wallet address and pulls every inbound transfer. It pipes the JSON response through jq to extract the timestamp, transaction hash, and USDC value, then appends it to a CSV file.

At the end of each month, I import this raw CSV into a Google Sheet. In a second tab, "Adjusted", I use a formula to look up the official NTD exchange rate for the transaction date and calculate the NTD value. This 15-minute monthly process saves a massive January scramble.

The unsexy win

All this administrative work feels like a distraction from building things. But it has a real payoff. I spent roughly 20 hours across the full year doing all this setup and bookkeeping. Most of that was a one-time cost. I estimate that filing my 2026 taxes next year will take less than six hours.

There was another, unexpected benefit. I did a small consulting project for a local startup. They were much more comfortable paying a NT$40,000 invoice to a registered 行號 with a unified business number than they would have been paying it to me as an individual. The formal structure, even a simple one, builds trust and professionalism. It created a small piece of optionality that had real value.

The Taiwan tax system is not the obstacle indie builders online make it out to be. It is a paperwork problem, and paperwork problems respond to habits. Start a ledger on day one. Reconcile your foreign income monthly. Do not let the Chinese-language forms scare you. Your first year will be cheap, your second year will be smoother, and by year three you can decide whether to hire an 會計師 because you want to, not because you need to.