恒久的施設 PE認定の話

どのような時に恒久的施設(PE)があると認定されるか

その昔の話ですが、PEが日本にあるのではないかと税務当局より指摘があったことがありました。

私のそのお客様は日本とヨーロッパの両方に会社(それぞれJ社とE社)を持っていて、日本で機械を仕入れて、ヨーロッパのお客様に販売していました。私は当時知らなかったのですが、お客様は日本の会社の社長であるばかりでなく、ヨーロッパの会社の社長も兼ねていました。

ビジネスの仕組みはいたって簡単で、日本で購入した特殊な機械を、ヨーロッパで販売すると言うものでした。まずJ社がE社に商品を販売し、E社はそれなりのマージンを抜いて、E社のお客様に売ると言う仕組みです。

緑の線が形式上の取引の流れで、赤線が実際の物の流れです。

ここに税務調査が入りました。そこで問題になったのが、E社が何者かと言うことでした。J社とE社は名前が似ていたので、関係があるらしいことは伺い知れました。税務調査では、この会社がどんな会社であるのかが調べられました。どこに所在するのか、社員は何人くらい居るか、資本規模はどれくらいか、売り上げはどれくらいで、つまり実体はあるのか。また、E社ではどれくらいのマージンが形状されて、その先のヨーロッパのお客様に売られているのかが調べられました。

その過程で、E社は社長が保有して居る会社で、他にあまり(もしくはほどんど)ビジネスはしていないこと、従業員はいないこと、J社の社長はE社の社長でもあること、本社はとある会計事務所に登録されて居ることがわかりました。

一連の取引は仮装ではないかとの主張も当局からされましたが、E社が金融機関からJ社のための資金調達をして居ることや、J社のウェブサイトを運用して居ることから、ファナンスとマーケティングの機能は少なくともやって居るとの納税者側からの主張はなんとか認めていただく事ができました。

ただ、J社の社長がE社の恒久的施設(PE)になるのではないかとの指摘があり、これは受け入れざるを得ませんでした。

PEは、租税条約によって異なるので、外国会社の日本の拠点がPEに該当するかは、相手国によって異なる可能性があります。ただ大枠は国際的にコンセンサスが取れていて、情報収集を目的とする駐在事務所や、外国にある本社のために仕入れをするための商品倉庫などは該当しないことになっています。他方、登記の有無関わらず支店はもちろん、自社の製品やサービスを契約できる代理人もほとんどの租税条約でPEに該当することになっています。

国税局などの実際の税務調査での確認事項を見ると、実務上では、契約を締結できる権限があるかどうかの判定として、見積もりは誰が作成して居るか、契約の受注は誰が受けて居るかが重要視されて居るように思います。つまり、本社が日本に人(本社の社員ではなく、業務委託料をもらって居る場合で)が置くのは、最終的には本社の製品を日本人のお客様に売るためですが、その人が実際に見積もりを本国に依頼して作ってもらって、日本のお客様に渡して居るのか、それとも実はその人が作ってしまって居るのか、メールなどの証拠の提出を求められる事がほとんどです。

メールなどで、日本の担当者が見積もりや契約を締結していて、本社にはその報告して居るだけのようなメールが出てきてしまうと、PE認定一直線になってしまうので注意が必要です。

その他に、外国会社がインターネットを通して日本に物品を販売する場合に、日本にインターネット・サービス・プロバイダーのサーバーにホストされてイるウェブサイトを通じて、物品を販売しても、日本にPEがあるとは通常認定されません。日本で自前で場所を借りてサーバーを設置して居るような場合は、恒久的サービスがあることになります。

PEと認定された場合にどのように所得を計算するか

この話は、本社のPEが日本にあるかどうかの話なので、PEの所得をどのように計算するかと言う話とは別なので注意が必要です。 PEで課税される所得は通常、そのPEに帰属する帰属主義に基づいて計算されます。つまり、外国の本社が直接にやって居る取引は、日本のPEに帰属しないので、日本での所得ではありますが、PEに納税義務は発生しないと言う事です。さっきの例でいうと、日本のPEとは別に本社が直接にインターネットサイトかなんかで販売している商品の利益はPEに帰属しないので、日本で法人税の納付は必要がないことになります。

ただし消費税については、PEの有無に関係なく納税義務が発生するので注意が必要です。

HerokuとAWS(Amazon Web Service)でサービスを組み合わせる。

Herokuを使ってサービスを作ると、どうしてもストーレッジの問題にぶつかります。Herokuはいいと思うのですが、ストーレッジがないのです。実は知られているようで、結構な数の人が知らなかった落とし穴でもあるようなのですが、Herokuでは画像が保存できません。OSとPythonやRubyなどの言語とデータベースは提供してくれるのですが、画像は保存できないのです。私はこれを知らなかったので、かなりびっくりしてしまいました。。

そこで仕方がなくAWSを始めることにしたのですが、このAWSのs3というサービスがかなり良いので、かえってよかったと思っているところです。

ご存知の方も多いと思いますが、HerokuはPaaSと呼ばれるWebサービスの一種で、ハードディスクのサーバーと、UbuntuなどのOS、それにデータベースやPythonなdの言語、各種のライブラリをまとめて提供してくれます。

私は開発環境がMacなので、自分のところのサーバーもMacでやれば、本番と開発環境が一緒なのでやりやすいのではないかと、色々迷っていました。パーミッションなどの扱いやすさは、手元で実際にいじれる実機のサーバーの方がわかりやすいですし、コストも実際にサーバー機を買ってしまってもそれほどのものではありません。ですが、Herokuなどのクラウドを使うと、12factor.netなどに書いてある設計上のデザインパターンに自動的に従うことになると言うのに惹かれてHerokuでやってみることにしました。やはりサービスが段々大きくなっていった時にメンテナンスが楽な方がいいですものね。それとやっぱり自己流でやるよりは、信頼性と実績の面からもで世の中で通用しているものでやってみる方が良いのかなと思いました。

s3の良いところは、まず、値段です。1GBあたりの料金は一月で約3円。データが100GBでも月300円です。私の事務所では領収書の画像データを仕訳データに翻訳して、画像と仕訳を一緒に整理して保存するサービスを提供しようと思っていますが、iPhoneで撮影した写真だとデータのサイズは約3MBです。ですので300枚保存してこれでやっと1GBで、これで、3円です。100GB使おうと思ったら、30,000枚の写真データを保存することが出来ますが、これで小さい会社なら20社分は行けるのではないでしょうか?

次に、信頼性。これは、Amazonの説明によると99.999999999%の信頼性があるのだそうです。 小数点以下に、9が9個つくので、データが消失する可能性は、1000万分の1と言うことでしょうか。自分のところでサーバーを持ってデータを保存するより、よほど高い信頼性です。使わない手はないですね。

その他、Pythonのboto3をはじめ、RubyやJava、.NETなどの他、おそらく、ほとんどの言語でファイルや閲覧権限等を簡単に操作できるモジュールが用意されています。プログラムの側から簡単にファイルをアップしたりダウンロードできたりするのです。ここだけ見ても、自分でファイルの保存や権限の設定をプログラム的に作るよりよほど簡単で確実です。ソフトウェアの世界に限りませんが、「巨人の肩に乗る」と言う言葉があります

こう言う新しいもの(全然新しくないけど)はお金を出してもどんどんやってみる方がいいですね。

PyCharmは買う価値があるか?それともAtomで十分か?

PyCharmは買う価値があるでしょうか。

使って1ヶ月くらいが経ちますが、私は買ってよかったです。多分、この1ヶ月でも十分に元は取れています。その前は、3−4ヶ月はAtomを使っていたのでよくわかります。やっぱり効率性が劇的に上昇しています。もう、PythonをやるのにAtomには戻れません。どうせプログラミングをするなら、良いツールを使うほうがいいです。効率性が素晴らしい。

Atomとは色々違うのですが、まず、デバッグが出来るようになるのが大きいです。Atomで作った場合は、Atomはエディタですから、直接実行することは出来ません。ターミナルから実行して、エラーが出たら、エラーのログをみて何が悪かったかを解析しなくてはいけません。

PyCharmならブレークポイントを設定できます。エラーが出る場所で、ブレークポイントで実行を停止して、各変数にどのような値が入っているかを確認できます。私が知っている範囲では、Atomのプラグインでは逆立ちしてもそんなことは出来ません。

PythonやRubyなどのスクリプト言語は静的型付け言語に比べて、文法チェックが事前にないところが弱点だと思っているのですが、PyCharmはインスタンスが割り当てられていない変数などに赤の波線を引いてくれます。これで実行する前にある程度のバグの元は潰してくれるんですね。

名前をまとめて変えてくれるリファクタリングの機能もあります。個人的に気に入っているのは、ある変数にマウスのポインタをあてると、同じスペルの変数が全部ハイライトされます。これが、コードの流れを追う時にとても楽になるので助かります。

この他にもテストなど、まだわかっていない機能が色々ある様です。

確かに、最初は有料のツールは躊躇すると思います。なので、最初の数ヶ月をAtomでやって、PythonやらDjangoなどのフレームワークをやっぱり自分ががちゃんと使うと言うことがわかってから買うのでも遅くはないと思います。それに、Atomなどのエディタで開発すると、その手作り感で、どの様に動くのかわかリます。それからPyCharmなどのIDEに移行するのでも遅くはないと思います。

ちなみに私は、もう、Atomに戻ることはなさそうです。

HerokuとAWSのS3を使ってWebサービスを作るには

Herokuを使ってWebサービスを作るのは手軽にできると宣伝されていますが、実はかなり高度な知識が必要です。Herokuのアカウント自体は簡単に開けられるかもしれないけど、実際にサービスを公開するには、Linuxやデータベース、RubyやPythoなどの言語で一通りのコードがかけること、HTMLやCSS,JavaScripなど、広範囲の知識が必要です。これをさらに、iPhoneやAndroidなどの端末で使えるようにしようとすると、SwiftやAndroidなどの端末側のプログラミング言語の知識も必要になります。

さらに、Herokuの場合は、解説がほとんど英語なので、英語が結構得意でないと、解説を読むこと自体が億劫になってしまいます。もしくは、それを上回る熱意とか根性が必要でしょう。

最近、Herokuでは画像ファイルが保存できないことを発見したと書きましたが、Herokuでやることで、ソフトウェアが他の環境にデプロイしやすくなるなど、設計上のメリットがあることがわかったので、最近の定番っぽいAWSのS3(Amazon Web Serviceの中のストーレッジの機能)ではどうやるのかを調べてみました。

ジャジャーン。

A file is selected for upload by the user in their web browser;
JavaScript is then responsible for making a request to your web application on Heroku, which produces a temporary signature with which to sign the upload request;
The temporary signed request is returned to the browser in JSON format;
JavaScript then uploads the file directly to Amazon S3 using the signed request supplied by your Python application.

これはHerokuの中の、解説記事から拾ってきたものです。結構、レベルの高いことが書いてあって、気が遠くなります。
基本的には、(1)ブラウザーなどでアップロードする画像を洗濯した後、(2)JavaScriptでHerokuにログインして、(3)Heroku側から認証情報をJSONで取得し、(4)JavaScriptでその認証情報を使って、S3に画像をアップする、手順のようです。

これで、ソフトウェアのロジックと画像の保存をするストーレッジが疎結合になるので、ソフトウェアとしては設計がよくなるのでしょう。また、S3は普通のFTPとは違い、オブジェクト・ストーレッジという形式のようです。最近の雑誌でその単語自体は載っていたのですが、未知のものなので、これを機会に触ってみようかと思いました。

*************
S3を触ってみました。管理用のページがすごくよくできているので、とてもわかりやすかったです。

HerokuからAWS s3にファイルをアップロードするのは、さらに色々な知識が必要になります。
結構苦労することになると思いますが、とても勉強になります。とにかく色んなエラーが出るのでくじけそうになりますが、一つずつエラーを潰していけば、いつかたどり着けます。私も、6−7時間は使ったと思いますが、最終的にはブラウザーから、JavaScript経由でs3にアップロードが出来るようになりました。