F1ビザでのアメリカの税金

アメリカの税制制度は日本以上に複雑。F1ビザ保有者として、僕がこれまで米国の税に関して行ったことを書いてみた。正確でない可能性も高いが、日本語での情報が極端に少ないので、同じように悩む人のガイドラインとして。

米国内で収入がないときのF1ビザでの税金

2016年度はアメリカに来た年であり、米国国内からの収入もなかったため、僕は①銀行では口座開設時にW8-BENを、②Tax SeasonにIRSへForm 8843を提出した。税金はresident alienであれば全世界ベースの収入に、non-resident alienであれば米国内での収入に税金がかかる。

通常はresidentかどうかはSubstantial Test(過去数年の滞在日数までさかのぼって判定される)で判定されるが、Fビザの留学生の場合はForm 8843を提出することでresident認定を免除できる。つまり、米国国内で収入がない場合は、Form 8843のみの提出だけで済む。

米国内で収入があるときのF1ビザでの税金

しかし、2017年にはCPT (Curricular Practical Training)を行って米国内で収入を得ることと、税と紐付けがされるSocial Security Numberを手に入れたことで、やや複雑になった。

銀行にSocial Security Numberを登録したせいか、銀行からは再度の手続きが必要とW8-BENに加えてW-9 Formというresident alien向けの書類が送られてきた。Form 8843で税法上はnon-resident alienということでW8-BENで済むはずだと調べて、結局W8-BENのみを記載した。

Ruby on Rails Dev 1

ボストンに帰宅してから、暖めていたサービスの開発を進めている。コードのベースは前々職からの友人の有吉が創業者のWOZ Incに依頼して作ってもらい、僕はそのベースから開発を進めている。サービス名はCareLingo。違う国にいて病気になった時にどうしたら良いかわからない移民や海外旅行者を対象に、適切な医療機関や薬を見つけることを助けるサービスだ。

CareLingo

Herokuにアップロードするのはそんなに難しくないかと思っていたのだが、環境整備含めて、想像以上に大変だった。。。

  1. Rubyを2.2.4へアップデートできない
    • rbenvを使っていたのだが、ダウンロードしたのが昨年と遅く、rbenv -versionsでも2.2.4がない。よってrbenvのアップデートが必要
    • MacでHomebrewを使っているのでbrew updateしようとしても、更新されたOSとの相性が悪いようで、Homebrewによる更新できない
    • 解決:最終的にはGitHubの下記のコードで解決
      sudo chown -R $(whoami):admin /usr/local
      cd $(brew --prefix) && git fetch origin && git reset --hard origin/master
  2. HerokuにはGitを使うのだが、Gitの使い方わからない
    • Bitbucketからファイルを手動でダウンロードして、git initして、add、commit、pushして、といじってみる。使い方わからず、自分でコードアップデートしてからこれどうすれば良いの、という感じ。
    • Git初心者用サイトを見て学ぶ。ようやくadd, commit, push, fetch, merge, pullのロジックがわかるようになる。
    • Bitbucketのmasterをcloneして進めた方が良いということに気づき、cloneしてHerokuにアップロードする
  3. Localサーバー上でデータベースの内容が反映されていない。なぜ?
    • 原因:そもそもテーブルが作られておらず、データも流し込まれていなかったから。
    • 解決:rails rake db:migrate、rake db:seedを行いました。
  4. Herokuにつなごうとするとエラーが出る。なぜ?
    • 原因:gemfileのRubyのversionを2.2.4に指定していなかったから。また、DBの本番環境用設定をしていなかったから。
    • 解決:database.ymlファイルでPostgreを入れ、gemfileのRuby versionを修正して、一応サーバー上で見れるように。
  5. Herokuで2ページ目以降に行くとエラーが出る。どうして?
    • 原因:データベースをheroku上で作っていなかったからでした。。
    • 解決:heroku run rake db:migrate、heroku run rake db:seedをすることでデータを入れることに成功
  6. rake db:seedを二回行って、重複するデータを登録してしまう
    • 原因:rake db:seedは重複したものも追加することを知らず、同じseedを二度行ってしまう。roll backもできないことを知りませんでした。。
    • 解決: rails db consoleから、.tablesでテーブルの名前を確かめ、地道に全てのテーブルから重複行を DELETE FROM [tablename] WHERE id >= xで削除。追加すべきデータはrails consoleからmodel.newとmodel.saveで追加しました。

すごく初歩的な話だと思いますが、解決するまでに3日かかってます。特に最初のRubyのHomebrew -> rbenvは今までただ単にダウンロードしていたもので、これらがどんな役割を果たしているのかをあまり理解していなかったため、その理解も含めて相当時間かかりました。中身のわからないものをダウンロードして使うのは、使えているうちは良いのですが、何かトラブルがあった時に修正方法が分からず困る、というのを身を持って痛感。

ともあれ、ようやく自分で開発して、それをアップデートしていく、という環境が整いました。テクノロジー系で経営をするのであれば、自分もエンジニアリングができた方が良いというのもありますが、そもそもゼロからサービスを作っていくのは楽しい。構想から形にするところまでできる経営者になれるよう、卒業までコツコツとやっていきたいと思います。