この記事は2016年時点の調査内容を記載したもので、既に制度が変更されています。
変更の詳細はこちらをご参照ください。
European Commission公式 : The VAT e-commerce package and the MOSS / What changes on 1 January 2019?
解説記事: EU VAT threshold on digital goods changes in January 2019
グッドパッチでサーバーサイドエンジニアをしている、やっはーです。
今日はProttで実装した、Webサービスでの海外課税に対して、1エンジニアとしてどう越境していったかという話です。
「グッドパッチなのにデザインの話じゃないんかーい」というツッコミが聞こえてきますが、「ハートを揺さぶるデザインで世界を前進させる!」をビジョンに掲げているグッドパッチなので、「世界を」の部分で書きたいと思います
背景
AWSでも消費税がかかっている?
いつも使っているAWSやGCPの請求書にも「消費税」の項目があると思います。
それは日本からサービスを利用しているので、日本の税制が適用されているのですね。
もちろん逆も然りで、日本から海外向けにサービスを展開して課金しようとした場合も、利用者の国の税制に合わせる必要があります。
2017年は本格的に広がる
日本は比較的早い方でしたが、他国ではWeb上のサービスに対する消費者側の課税はほとんどなかったように思われます。
しかし近年、SaasなどのWebサービスに対しても、 Electronic services
という括り方で課税対象とする法律が他国でも施行され始めました。
主なものは「消費税(GST)」や「付加価値税(VAT)」として、 Digital Tax
, Global GST/VAT
などと呼ばれています。
EUでは2015年にVATの適用範囲を広げる形で施行されました。
インド、ロシア、台湾では2017年から始まる模様で、アメリカでも強化される動きがある模様です。
今後はますます税制でもグローバルな対応が求められるようになると思います。
エンジニアとしてやったこと
そんな中、ProttでEUのVATに対応した時のことを参考に、エンジニアとして勉強になったことを3つご紹介します。
1. 仕様を知るには公式な原典にあたる
まず、こういった課税の話は日本語での情報ソースがまでほとんどありません。
EU VAT
などで調べても、物流などの話は出てきますが、Webサービスの場合などの情報は皆無と言って良いでしょう。
社内に専門家がいれば別ですが、現地の人に聞いてもほとんどの人は 概要はわかっているけど、実装する上での詳細仕様がわからない という状態でした。
そのため、EUのVATについてはとにかく原典にあたることにしました。
上記はEUの公式サイトで探した結果ですが、後述するような仕様がジャストで書いてあったので非常に助かりました。
ただ、EUの場合はB2BとB2Cでの違いなど、非常に複雑だったので、重要な部分は自分で丁寧に翻訳して社内のQiitaにあげました。
こうして後任やレビューアーにも複雑な仕様を理解してもらうことができました。
2. どうやって「その国の利用者」と断定するのか
EUのVATの定義としては 消費者が所属する国 (the country where the customer belongs)
と規定してあります。
ここの詳細仕様は上述した資料に記載してありますが、 2つ以上の証拠が必要
になります。
証拠となる項目として、IPアドレスや請求先の住所などもありますが、クレジットカード番号の最初6桁でもカードを発行した会社や、携帯電話のSIMから国を割り出すなどの方法があります。
今回はTaxamoを使って各種判定を行い、国を特定しました。
この国判定がとにかく苦労したところですが、様々なタッチポイントから割り出していく感じが実装者としては楽しかった部分でもあります。
3. 課税サポートサービス
Taxamo以外にも、もちろん他のサービスを調査しており、
決済周りはStripeでやろうと考えていたので、Stripeとの連携が可能な製品を簡単にご紹介します。
基本的には
- VATのための国判定
- 請求書の発行
- 納税の際のデータ出力
などの機能はみんな揃ってます
- Taxamo (http://www.taxamo.com/)
- こちらを採用
- 色々とバランスがよく、他の税金の対応も早い
- APIはましだがSDKが本当にひどい
- Quaderno (https://quaderno.io/integrations/stripe/)
- 最後まで悩んだ候補
- 他の国の広がりが感じられなかった
- APIとSDKはまぁまぁ良い。
- Octobat (https://www.octobat.com/)
- EUのVATにのみ対応していたので、今後の展開を考えナシに
- APIはましだがSDKが本当にひどい
- Avalara (http://www.info.avalara.com/Stripe)
- 老舗っぽい雰囲気で信頼感ありそうだったが・・・
- 問い合わせしても返答がよくわからなかった
- スタートアップ向けではないかも。
まとめ
最終的に理解できたEUのVATに対応した課金システムを作成するのに必要なことは
- 消費者の国を特定する
- B2BかB2Cかを特定する
- 国ごとの税率を取得する
- 課金時に税額を国ごとに保持する
- 納税時に国ごとの徴収した税の総額を申請する
でした。
当初は思いもよらない壁につまづいた気分でしたが、一度その壁を超えてしまえば税金でさえも面白ゾーンとして考えることができました。
エンジニアでもいろんなことに越境してみるものですね
参考記事
Taxamo • Digital tax trends: Ten international plans to tax the digital economy blog
Digital Taxes Around The World: What To Know About New Tax Rules - Inside Quaderno
補足
実際にサービスに導入する場合はちゃんとした税理士の方などにご相談くださいね!