[EC] 消費税の計算方法と総額表示

EC、特にショッピングカートなどBtoCのシステムの、消費税の計算方法と総額表示(消費者へ販売する際の税込価格表示の義務付け)の関係が気になりました。ネタ元はこちら↓

開発者が料金計算ができない。(超致命的!)

  • 複数商品の価格を税別から計算する計算式がなぜか
    [ 端数処理(単価 * 税率) * 数量 ]
    + [ 端数処理(単価 * 税率) * 数量 ]
    + [ 端数処理(単価 * 税率) * 数量 ]
    + [ 端数処理(単価 * 税率) * 数量 ] = 合計
    になっている。
  • 単価に課税処理してから数量で増したら端数処理の差が累積して大変なことに。

引用元: EC-CUBEはここが酷い。 – 残業プログラマの雑記

EC-CUBEのコードの問題はひとまず置いて(1.x系の時はテンプレートがtableレイアウトで途方に暮れたりしていましたが)、今回は引用部分について考察してみます。大本締め、財務省の説明は下記の通りです。

Q5
「総額表示」への移行に伴い、レジシステムを変更する必要はあるのですか?


「総額表示義務」は、値札や広告などにおいて「消費税相当額を含む支払総額」の表示を義務付けるものであってレジシステムの変更を義務付けるもの ではありません。しかし、「総額表示」の下で、「税抜価格」を基に計算するレジシステムを用いている場合には、下の例のような問題が生じ、消費者との間で トラブルが発生する場合があります。したがって、このような場合(税抜価格が20円で割り切れない商品・サービスを扱っている場合)には、 「税込価格」を基に計算するレジシステムに変更するなどの対応が必要になると考えます。

〔値札の表示〕157円(税抜150円)

※157円の商品を2個販売した場合

  • 「税込価格」を基に計算:157円×2個=314円
  • 「税抜価格」を基に計算:150円×2個×1.05=315円

消費者は、1個157円の商品を2個買えば314円のなると思いますが、請求金額が315円になってしまう。

引用元: 平成16年4月から「総額表示」が義務付けられています:財務省

「レジシステム」を「ショッピングカートシステム」に置き換えるとよくわかります。で、実際他はどうしているのだろう、と思って訪れた某モールR内のお店。支払い方法の表示は下記のようになっています。

お支払総額は以下の通りです。
(商品代金×1.05)+(送料600)

(中略)

消費税について

  • 消費税率 5%
  • 消費税計算順序 1商品毎に消費税計算
  • 1円未満消費税端数 切り捨て

では、実際79円(税抜76円)の品物を3つ、カートに入れてみます。結果は以下の通り。

税抜76円の商品に5%掛け、端数を切り捨てて税額を3円と計算。合計して9円を加算している。

税抜76円の商品に5%掛け、端数を切り捨てて税額を3円と計算。合計して9円を加算しているので、財務省の説明に従った計算になっています。ちなみに、税抜商品合計に5%を掛けて切り捨てた金額は11円です。

ネタ元の方も気にされているところですが、事業者から国などへ納付する税額って「課税売上高−課税仕入高×5%を切り捨て」で計算しますよね。徴収額の合計で計算することも可能なのかな。税務に詳しい方のつっこみをお待ちしております。

まとめ

EC-CUBEの消費税計算と総額表示は、今の仕様で正しいです。

ちなみに、総額表示は「消費者に対して商品やサービスを販売する課税事業者が行う価格表示を対象」としているので、個別見積によるBtoB取引などは、総額表示の対象ではありません。

税務など法律関係はややこしくて、エンジニア泣かせですね。本当にお疲れさまです。

(17:09 追記)

これが答えかな。

Q6

一領収単位(レシート)ごとの端数処理の特例(旧消費税法施行規則第22条第1項)は、どうなっていますか?

従前の規則第22条第1項(課税標準額に対する消費税額の計算の特例)は、 事業者が、代金決済のたびに、代金を税抜価格と消費税相当額とに区分して領収し、発行するレシート等にその消費税相当額の1円未満の端数を処理した後の金額を明示している場合に、消費税の納税申告にあたり“売上に対する消費税額”を計算する際、その明示された端数処理後の消費税相当額を基に計算(いわゆる積上げ計算)を行うことができる特例ですが、これは、「税抜価格」の表示を前提に、決済段階で上乗せされる消費税相当額の端数処理に伴う事業者の負担等に 配慮して、少額・大量の取引を行う小売業者等を念頭に設けられた特例制度であったことから、「税込価格」の表示を行う総額表示が義務付けられたことを踏まえ、廃止されました(平成16年4月1日)。

しかし、それまで「税抜価格」を前提とした値付け等を行ってきた事業者が多いこと、また、「税込価格」を基に計算するレジシステム等に変更する必要がある場合でも、レジシステムの変更にはある程度時間を要する方もいると考えられることなどを踏まえ、以下の経過措置が設けられています。

(中略)

2.
「税込価格」を基礎とした代金決済を行う取引(総額表示義務の対象とならない事業者間取引等を含む。)「税込価格」を基礎とした代金決済を行う際に発行される領収書等において、その領収金額に含まれる消費税相当額(その領収 金額に5/105を乗じて算出した金額)の1円未満の端数を処理した後の金額を明示している場合に限り、その明示された端数処理後の消費税相当額を基に消費税額の計算を行うことができる特例が当分の間の措置として設けられています。

引用元: 平成16年4月から「総額表示」が義務付けられています:財務省

なるほど。原則廃止だけど、経過措置として残すということでよろしいですかね。

参考:課税標準額に対する消費税額の計算の特例|消費税|国税庁