VAT 計算ツール
100に21%を足すと税21で121になり、121から21%を抜くと100に戻ります。税抜価格への上乗せも税込総額からの抽出もでき、税抜・税額・税込の3つが必ず返ります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 計算モード
- 税を加算
- 量
- 100
- 税率
- 21
- 税抜き金額
- 100
- 税額
- 21
- 税込み金額
- 121
付加価値税または売上税を 2 通りで計算します。正味・税・総額を返します。
加算と抽出
net は amount に等しく、tax は net × r に等しく、gross は net + tax に等しくなりますので、21% での 100 は net 100・tax 21・gross 121 を返します。
net は gross を (1 + r) で割ったものに等しく、tax は gross から net を引いたものに等しくなりますので、21% での 121 は net 100 と tax 21 を復元します。extract は add の逆であり、レシートの合計や総額の請求明細から税の部分を割り出すのに使います。
どの分岐も net・tax・gross の完全な 3 つ組に加え、指定した mode と rate を返します。
各構成要素を独立に丸める
3 つの構成要素は別々に丸められるため、add は丸めた net から tax を計算し、それから gross を丸めますので、丸めていない中間値から導くのではなく、各明細が会計上で自己整合したまま保たれます。これは、隠れた 1 つの端数が net + tax を gross と 1 セント食い違って見せかねない、より高い精度や特殊な税率で重要になります。
それらを必要とする通貨や単価にはより多くの小数を、整数単位の表示には 0 を選んでください。
よくある質問
add と extract の違いは何ですか?
add は額を正味とみなして税を上乗せします(gross = net + tax)。extract は額を税込みの総額とみなし、net = gross / (1 + rate/100) と含まれる税を割り出します。
税率はどのように与えますか?
パーセントの数値としてで、21 は 21% を意味します。有限で負でなければなりません。0 は許され、税 0 を生みます。
額はどのように丸められますか?
net・tax・gross はそれぞれ設定した decimals(0 から 8、既定 2)まで独立に half-up で丸められますので、明細が自己整合したまま保たれます。
価格に21%のVATを上乗せするにはどうしますか?
税の上乗せを選び、税抜価格とパーセントの税率を入力します。21%なら21と入れます。税抜100なら税額21、税込121になります。
税込総額から21%をそのまま引いてはいけないのはなぜですか?
税率は総額ではなく税抜価格にかかるためです。121から21%を引くと、実際に含まれる税21より多く引いてしまいます。121を1.21で割れば、正しい税抜額の100が出ます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev/vat-calculator \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mode":"add","amount":100,"rate":21}'const res = await fetch("https://api.kit.forhosting.com/dev/vat-calculator", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mode": "add",
"amount": 100,
"rate": 21
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/vat-calculator",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mode": "add",
"amount": 100,
"rate": 21
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/vat-calculator", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mode":"add","amount":100,"rate":21}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mode":"add","amount":100,"rate":21}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/vat-calculator", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"mode": "add",
"amount": 100,
"rate": 21
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.vat_calculator",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
mode=add は額を正味とみなしてパーセントの税率を上乗せし、mode=extract は額を税込みの総額とみなして正味とそこに含まれる税を割り出します。
加算と抽出
rate フィールドはパーセント(21 は 21% を意味します)で、内部で r = rate / 100 に変換されます。mode=add では額は正味価格です。mode=extract では額は税込みの総額です。
範囲・検証・型付きエラー
mode はちょうど add または extract でなければなりません。税率 0 は許され、単に税 0 を生みます。decimals は 0..8 以内の整数でなければなりません。mode・amount・rate はいずれも必須です。amount と rate はそれぞれ負でない有限な数でなければならず、その大きさは結果を意味あるものに保つため 1e12 で上限が設けられます。あらゆる違反やオブジェクトでない入力は、型のないクラッシュではなく問題を示す型付きの invalid_input エラーを送出し、extract は 1 + r を 0 にしてしまう -100% の税率から保護します。
連携の活用例
税を上乗せした値付け
mode=add を使い、正味のカタログ価格を地域の VAT や売上税の税率で顧客向けの総額に変えます。
レシートと請求書の照合
mode=extract を使い、税込みの合計を正味と税の部分に分け、帳簿づけや返品に用います。
決済と請求のシステム
API を呼び出し、EC のカートや請求のパイプライン全体で任意の税率で正味・税・総額を一貫して計算します。
技術的な質問
何がエラーを引き起こしますか?
不正な mode、負または非有限の amount や rate、1e12 を超える大きさ、0..8 の外の decimals、extract での -100% の税率では型付きの invalid_input エラーになります。
無料ですか、また API の費用はいくらですか?
ブラウザ widget は無料です。API は前払いの KIT 残高で $0.002 から使い、失敗したタスクは課金されません。