コンテンツにスキップ
アカウント作成/サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成サインイン
導入方法
決済管理
売上管理
プラットフォームとマーケットプレイス
資金管理
開発者向けリソース
API & SDKヘルプ
概要
Billing
概要Billing API について
サブスクリプション
Invoicing
従量課金
高度な従量課金型請求
見積もり
顧客管理
Billing と他のプロダクトの連携
売上回収
オートメーション
実装内容をテストする
税金
概要
Stripe tax を使用
    Tax の仕組み
    徴収を設定
    動作を設定
    テスト
    決済タイプを検索
    事業形態を検索
      Connect
      チケット販売
      物品
      カスタム実装
    対応可能な国
法規制の遵守・対応管理
レポート機能
概要
レポートの選択
レポートを設定
複数のアカウントのレポート
Reports API
収益認識
データ
概要
ビジネスデータのクエリ
Sigma
Data Pipeline
外部データをインポート
アメリカ
日本語
ホーム売上管理Use Stripe taxFind your business type

メモ

このページはまだ日本語ではご利用いただけません。より多くの言語で文書が閲覧できるように現在取り組んでいます。準備が整い次第、翻訳版を提供いたしますので、もう少しお待ちください。

税金の徴収

Stripe Tax API を使用して、カスタムのシステムに税額計算を実装します。

Stripe Tax API を使用すると、カスタム決済フローで税金を計算できます。顧客が決済を完了した後で、取引を記録して Stripe Tax のレポートに表示されるようにします。このガイドの例では Stripe の Payment API を使用していますが、任意の決済代行業者や複数の決済代行業者で Tax API を使用することもできます。

ほとんどの統合では、Checkout Sessions API with Stripe Tax を使用することをお勧めします。

あるいは、Stripe Tax を Payment Links、Checkout、Billing、Invoicing に導入することもできます。ノーコードまたはローコードの設定です。

Stripe Tax API を使用すると、カスタム決済フローで税金を計算できます。顧客が決済を完了した後で、取引を記録して Stripe Tax のレポートに表示されるようにします。このガイドの例では Stripe の Payment API を使用していますが、任意の決済代行業者や複数の決済代行業者で Tax API を使用することもできます。

If your custom payment flow uses the Payment Intents API, see Calculate tax in your custom payment flows. This integration offers automatic liability tracking, receipts and Dashboard support.

あるいは、Stripe Tax を Payment Links、Checkout、Billing、Invoicing に導入することもできます。ローコードの設定です。

始める

この短い動画では、Payment Intents API と Payment Element を使用する Stripe Tax API の導入手順を説明しています。

動画コンテンツの読み込み中...

登録を追加する

Stripe Tax は、税金徴収の登録をしている管轄区域でのみ税金を計算します。ダッシュボードで 登録を追加 する必要があります。

オプション顧客住所を収集する
クライアント側

ほとんどの場合、回収する税金は顧客の場所によって決まります。顧客の住所全体を収集することで、税金の計算の正確性を確実に向上させることができます。住所の収集前に、IP アドレス に基づく見積もりを顧客に示すことができます。

メモ

以下の例では単純なカスタム住所フォームを使用していますが、Address Element を使用して、オートコンプリートやローカライゼーションの機能によって顧客から住所を収集することもできます。

以下のフォームにより、詳細な住所が収集されます。

checkout.html
<form> <label for="address_line1">Address Line 1</label> <input type="text" id="address_line1" /> <label for="address_city">City</label> <input type="text" id="address_city" /> <label for="address_state">State</label> <select id="address_state"> <option value="WA">Washington</option> <!-- add more states here --> </select> <label for="address_postal_code">Postal code</label> <input type="text" id="address_postal_code" /> <label for="address_country">Country</label> <select id="address_country"> <option value="US">United States</option> <option value="DE">Germany</option> <option value="IE">Ireland</option> <!-- add more countries here --> </select> </form>

サーバーエンドポイントに住所を渡すには、以下のようにします。

checkout.js
const address = { line1: document.getElementById('address_line1').value, city: document.getElementById('address_city').value, state: document.getElementById('address_state').value, postal_code: document.getElementById('address_postal_code').value, country: document.getElementById('address_country').value, }; var response = fetch('/preview-cart', { method: 'POST', body: JSON.stringify({address: address}), headers: {'Content-Type': 'application/json'}, }).then(function(response) { return response.json(); }).then(function(responseJson) { // Handle errors, or display calculated tax to your customer. });

税金を計算するために必要な住所情報は、顧客の国 によって異なります。

  • アメリカ: 少なくとも顧客の郵便番号が必要です。最も正確な税金の計算結果を得るには、正確な住所を指定することをお勧めします。
  • カナダ: 顧客の郵便番号または州が必要です。
  • その他の国: 顧客の国コードのみが必要です。

税額計算
サーバー側

課税 するタイミングと頻度を選択できます。たとえば、以下を実行できます。

  • 顧客が決済フローに 顧客の IP アドレス に基づく]税金の見積もりを表示する
  • 顧客が請求先住所または配送先住所を入力するときに税金を再計算する
  • 顧客が住所の入力を完了したときに、徴収する最終的な税額を計算する

Stripe は課税する税金計算の API コールごとに手数料を請求します。課税する税金計算の API コールを抑制して、コストを管理できます。

下記の例は、さまざまなシナリオで税金を計算する方法を示しています。Stripe Tax では、税金を徴収するために登録した管轄区域の税金のみを計算し、ダッシュボードで 登録を追加 する必要があります。

この例では、アメリカの配送先住所に課税される税金を計算します。ライン項目の価格は 10 USD で、アカウントの 事前設定の税コード を使用しています。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "customer_details[address][line1]"="920 5th Ave" \ -d "customer_details[address][city]"=Seattle \ -d "customer_details[address][state]"=WA \ -d "customer_details[address][postal_code]"=98104 \ -d "customer_details[address][country]"=US \ -d "customer_details[address_source]"=shipping

計算の応答 には、顧客に表示し、支払いを受けるのに使用できる金額が含まれます。

属性説明
amount_total課税した後の合計。顧客への支払いに PaymentIntent の金額 を設定します。
tax_amount_exclusiveラインアイテムの金額と配送料金に追加される税金の金額。この税額は amount_total を増額します。これを使用して、取引の小計に追加される税額を顧客に示します。
tax_amount_inclusive項目の金額と配送料金に含まれている税金の金額 (内税価格を使用している場合)。この税額は amount_total を増額しません。これを使用して、決済金額の合計に含まれている税金を顧客に示します。
tax_breakdown国や州の税率ごとに分類された税額のリスト。これを使用して、徴収している特定の税金を顧客に示します。

顧客の場所エラーの処理

顧客の住所が無効な場合や、税金の計算に使用できるほど精度が高くない場合は、計算で customer_tax_location_invalid エラーが返されます。

{ "error": { "doc_url": "https://docs.stripe.com/error-codes#customer-tax-location-invalid", "code": "customer_tax_location_invalid", "message": "We could not determine the customer's tax location based on the provided customer address.", "param": "customer_details[address]", "type": "invalid_request_error" } }

このエラーを受け取った場合は、顧客に入力した住所を確認し、入力ミスを修正するように求めます。

別の代行業者で計算を使用する

Stripe 外で取引を処理する場合は、次の手順をスキップして、計算を外部で処理された取引に適用できます。

税取引を作成する
サーバー側

Creating a tax transaction records the tax you’ve collected from your customer, so that later you can download exports and generate reports to help with filing your taxes. You can create a transaction from a calculation until the expires_at timestamp, 90 days after it’s created. Attempting to use it after this time returns an error.

メモ

取引は create_from_calculation が呼び出された日付に有効であると見なされ、税額は再計算されません。

税取引を作成する際は、税取引とラインアイテムごとの一意の reference を指定する必要があります。この参照番号は、税金のエクスポート結果に表示され、徴収した税金をシステムの注文と照合するのに役立ちます。

たとえば、税取引の参照番号が pi_123456789、ラインアイテムの参照番号が L1 と L2、配送料金がある場合、項目別の税金のエクスポートは次のようになります。

IDline_item_idタイプ通貨transaction_date
pi_123456789L1外付けのUSD2023-02-23 17:01:16
pi_123456789L2外付けのUSD2023-02-23 17:01:16
pi_123456789配送外付けのUSD2023-02-23 17:01:16

顧客が決済する際に、計算 ID を使用して徴収した税金を記録します。これを行うには 2 つの方法があります。

  • 顧客が注文を送信するエンドポイントがサーバーにある場合は、注文が正常に送信された後で税取引を作成できます。
  • payment_intent.succeeded Webhook イベントをリッスンします。PaymentIntentメタデータ から計算 ID を取得します。

以下の例では、取引を作成して、PaymentIntent ID を一意の参照番号として使用します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/transactions/create_from_calculation \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d calculation={{TAX_CALCULATION}} \ -d reference=
"{{PAYMENT_INTENT_ID}}"
\ -d "expand[]"=line_items

後で返金を記録するために、tax transaction ID を保存します。取引 ID は、データベースまたは PaymentIntent のメタデータに保存できます。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents/
{{PAYMENT_INTENT_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "metadata[tax_transaction]"={{TAX_TRANSACTION}}

返金を記録する
サーバー側

顧客への売上を記録するために税取引を作成した後で、返金の記録が必要になる場合があります。これらは、type=reversal の税取引としても表されます。差戻し取引は、逆の符合の金額を指定することで前の取引を相殺します。たとえば、50 USD の売上を記録した取引に、後から -50 USD の全額差戻しを指定できます。

返金を発行 (Stripe を使用、または Stripe の外部で) する際には、一意の reference を指定して税の差戻し取引を作成する必要があります。一般的には以下のような方法があります。

  • 元の参照番号にサフィックスを追加します。たとえば、元の取引の参照番号が pi_123456789 の場合は、参照番号 pi_123456789-refund の差戻し取引を作成します。
  • Stripe 返金 する ID、またはご使用のシステムの返金する ID を使用します (re_3MoslRBUZ691iUZ41bsYVkOg や myRefund_456 など)。

顧客の注文を 課税するエクスポート と照合するための最適な方法を選択します。

売上を全額返金する

システムで売上を全額返金するには、mode=full を指定して差戻し取引を作成します。

以下の例の tax_1MEFAAI6rIcR421eB1YOzACZ は、顧客への売上を記録する税金取引です。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/transactions/create_reversal \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=full \ -d original_transaction=tax_1MEFAAI6rIcR421eB1YOzACZ \ -d reference=pi_123456789-cancel \ -d "expand[]"=line_items

これにより、作成された全額差戻し取引が返されます。

{ "id": "tax_1MEFtXI6rIcR421e0KTGXvCK", "object": "tax.transaction", "created": 1670866467, "currency": "eur", "customer": null, "customer_details": { "address": { "city": null, "country": "IE",

Fully reversing a transaction doesn’t affect previous partial reversals. When you record a full reversal, make sure you fully reverse any previous partial reversals for the same transaction to avoid duplicate refunds.

売上を一部返金する

顧客に 返金し たら、mode=partial を指定して税の差戻し課税する取引を作成します。これにより、返金されたラインアイテムの金額を指定して一部返金を記録できます。売上ごとに最大 30 件の一部差戻しを作成できます。徴収した税額より多く差戻すと、エラーが返されます。

以下の例では、元の取引の最初のラインアイテムのみの返金が記録されます。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/transactions/create_reversal \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=partial \ -d original_transaction=tax_1MEFAAI6rIcR421eB1YOzACZ \ -d reference=pi_123456789-refund_1 \ -d "line_items[0][original_line_item]"=tax_li_MyBXPByrSUwm6r \ -d "line_items[0][reference]"=L1 \ -d "line_items[0][amount]"=-4999 \ -d "line_items[0][amount_tax]"=-1150 \ -d "metadata[refund]"=
"{{REFUND_ID}}"
\ --data-urlencode "metadata[refund_reason]"="Refunded line 1 of pi_123456789 (customer was unhappy)" \ -d "expand[0]"=line_items

これにより、作成された一部差戻し取引が返されます。

{ "id": "tax_1MEFACI6rIcR421eHrjXCSmD", "object": "tax.transaction", "created": 1670863656, "currency": "eur", ... "line_items": { "object": "list", "data": [ {

差戻されるライン項目のそれぞれについて、差戻される amount と amount_tax を指定する必要があります。元の計算のライン項目が内税だった場合、amount は内税です。

amount と amount_tax は以下のように状況によって決定されます。

  • 取引のラインアイテムが常に 1 件のみの場合は、代わりに 全額差戻しを 使用します。
  • 常にラインアイテム全体を返金する場合は、マイナス記号を指定して元の取引ラインアイテムの amount と amount_tax を使用します。
  • ライン項目の一部を返金する場合は、返金額を計算する必要があります。たとえば、amount=5000 と amount_tax=500 の販売取引では、ライン項目の半分を返金した後で、amount=-2500 と amount_tax=-250 のライン項目で一部差戻しを作成します。

一部返金で課税するレポート

合計課税する額が小計に比例しなくなるような課税するを返金すると、課税する申告書の信頼性が低下する可能性があります。課税対象の対象額と課税対象外額が自動的に調整されること主張が認められたなく、課税するの差戻しの理由 (商品非課税、顧客非課税、リバースチャージなど) 主張が認められた反映されません。項目の課税するの一部を返金しないことをお勧めします。代わりに、取引を無効にし、正確な課税する計算のために適切な入力で新しい税額を作成します。

売上を定率で一部返金する

また、税額適用後に返金する定率を指定して、mode=partial を設定した差戻しを作成することもできます。金額は、それぞれに対する返金の残額に応じて、各ライン項目と配送料金に比例配分されます。

下記の例の取引には 2 つのラインアイテムがあります。1 つは 10 USD のアイテムで、もう 1 つは 20 USD のアイテムで、いずれも税率 10% で課税されています。取引の合計額は 33.00 USD です。定率の 16.50 USD の返金が記録されています。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/transactions/create_reversal \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=partial \ -d original_transaction=tax_1NVcKqBUZ691iUZ4xMZtcGYt \ -d reference=pi_234567890-refund_1 \ -d flat_amount=-1650 \ -d "metadata[refund]"=
"{{REFUND_ID}}"
\ --data-urlencode "metadata[refund_reason]"="Refunded $16.50 of pi_234567890 (customer was unhappy)" \ -d "expand[]"=line_items

これにより、作成された一部差戻し取引が返されます。

{ "id": "tax_1NVcQYBUZ691iUZ4SBPukGa6", "object": "tax.transaction", "created": 1689780994, "currency": "usd", ... "line_items": { "object": "list", "data": [ {

元の取引の各ライン項目と配送料に対して、返金額と税金が以下のように計算されます。

  1. まず、返金に利用できる取引の残額の合計を計算します。この取引には他に差戻しが記録されていないため、合計金額は 33.00 USD です。
  2. 次に、各アイテムに対する返金額の合計を計算します。この計算は返金に利用できる額と取引の残額合計の比率を基準にします。たとえば、10 USD のアイテムは、返金対象の残額合計が 11.00 USD であり、取引の残額合計の 33.33% に相当するため、返金される合計金額は -16.50 USD * 33.33% = -5.50 USD となります。
  3. 最後に、返金対象の合計金額が amount と amount_tax に分割されます。これについても、ラインアイテムでと返金対象の残額合計を比較して返金に利用できる税額に応じて比例的に計算されます。10 USD のアイテムを例にすると、税金 (1.00 USD) は返金対象の残額合計 (11.00 USD) の 9.09% に相当するので、amount_tax は -5.50 USD * 9.09% = -0.50 USD となります。

最初に記録されていた額ではなく、取引の返金対象の_残額_に応じて一定額が配分されます。たとえば、定額の 16.50 USD の返金を記録するのではなく、まず 10 USD の項目の合計額の部分差戻しを記録する場合を考えてみましょう。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/transactions/create_reversal \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=partial \ -d original_transaction=tax_1NVcKqBUZ691iUZ4xMZtcGYt \ -d reference=pi_234567890-refund_1 \ -d "line_items[0][original_line_item]"=tax_li_OICmRXkFuWr8Df \ -d "line_items[0][reference]"=partial_refund_l1 \ -d "line_items[0][amount]"=-1000 \ -d "line_items[0][amount_tax]"=-100 \ -d "metadata[refund]"=
"{{REFUND_ID}}"
\ --data-urlencode "metadata[refund_reason]"="Refunded line 1 of pi_234567890 (customer was unhappy)" \ -d "expand[0]"=line_items

この後に、16.50 USD の定率の金額の差戻しを記録します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/transactions/create_reversal \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=partial \ -d original_transaction=tax_1NVcKqBUZ691iUZ4xMZtcGYt \ -d reference=pi_234567890-refund_2 \ -d flat_amount=-1650 \ -d "metadata[refund]"=
"{{REFUND_ID}}"
\ --data-urlencode "metadata[refund_reason]"="Refunded $16.50 of pi_234567890 (customer was still unhappy)" \ -d "expand[]"=line_items

これで部分差戻し取引が返されます。

{ "id": "tax_1NVxFIBUZ691iUZ4saOIloxB", "object": "tax.transaction", "created": 1689861020, "currency": "usd", ... "line_items": { "object": "list", "data": [ {

取引で残っている金額の合計が 22.00 USD であり、10 USD のアイテムが全額返金されているため、16.50 USD の全体が 20 USD のアイテムに配分されます。次に、16.50 USD がステップ 3 のロジックを使用して、amount = -15.00 USD と amount_tax = -1.50 USD に配分されます。一方、取引の 10 USD のアイテムには 0 USD の返金が記録されます。

一部返金を取り消す

税金取引は変更できませんが、full reversal を作成することで一部返金をキャンセルできます。

この処理が必要になる状況を以下に示します。

  • 支払いの 返金に失敗 し、顧客に商品やサービスを提供していない場合
  • 誤った注文が返金されたか、誤った金額が返金された場合
  • 元の売上が全額返金され、一部返金が無効になった場合

以下の例の tax_1MEFACI6rIcR421eHrjXCSmD は一部返金を表す取引です。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/transactions/create_reversal \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=full \ -d original_transaction=tax_1MEFACI6rIcR421eHrjXCSmD \ -d reference=pi_123456789-refund_1-cancel \ -d "metadata[refund_reason]"="User called to cancel because they selected the wrong item" \ -d "expand[]"=line_items

これにより、作成された全額差戻し取引が返されます。

{ "id": "tax_1MEFADI6rIcR421e94fNTOCK", "object": "tax.transaction", "created": 1670863657, "currency": "eur", ... "line_items": { "object": "list", "data": [ {

テスト

本番環境と同じ応答構造である サンドボックス を使用して、本番環境へ移行する前に導入が正しく機能することを確認します。

警告

テスト環境では、計算が最新の税金結果を返すことを保証していません。税金計算は 1 日あたり 1,000 件に制限されています。上限を引き上げる必要がある場合は、Stripe サポート にお問い合わせください。テスト環境における自動テストとレート制限を回避するための戦略に関するガイダンスについては、自動テスト を参照してください。

税金取引を表示する

ダッシュボードの税取引ページで、アカウントのすべての税取引を確認できます。個々の取引をクリックすると、計算された税金の詳細な内訳が、管轄区域別および取引に含まれる個々の商品別に表示されます。

メモ

税金取引のページには 取引 のみが表示され、_計算_は表示されません。計算が表示されるはずなのにこのページにない場合は、計算によって正常に 税金取引 が作成されていることを確認してください。

オプション導入の例

決済手段の詳細を収集して PaymentIntent を作成 する前に、顧客の税金を計算できます。たとえば、顧客が郵便番号を指定したときにショッピングカートの合計を表示できます。

以下の例では、クライアント側のフォームから顧客の住所が送信される宛先の /preview-cart エンドポイントをサーバー側で定義しています。サーバーでは、カートのラインアイテムと顧客の住所を組み合わせて税金が計算されます。

server.js
Node.js
Java
Ruby
PHP
Python
Go
.NET
No results
// Set your secret key. Remember to switch to your live secret key in production. // See your keys here: https://dashboard.stripe.com/apikeys const stripe = require('stripe')(
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
); const express = require('express'); const app = express(); // Parse the request body as JSON. app.use(express.json()); app.post('/preview-cart', async (req, res) => {

決済を受ける準備が整ったら、税金の計算結果から PaymentIntent を作成します。PaymentIntent の metadata または独自のデータベースに税金計算 ID を保存することで、顧客が決済を完了したときに税金取引を作成できます。

以下の例は、税金を計算し、PaymentIntent を作成 (または更新) し、クライアントに結果を返すサーバーエンドポイントを示しています。その後、顧客に税金を表示できます。client_secret を使用して支払いを受け ます。

server.js
Node.js
Java
Ruby
PHP
Python
Go
.NET
No results
// Set your secret key. Remember to switch to your live secret key in production. // See your keys here: https://dashboard.stripe.com/apikeys const stripe = require('stripe')(
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
); const express = require('express'); const app = express(); // Parse the request body as JSON. app.use(express.json()); app.post('/calculate-cart', async (req, res) => {

導入で支払い Element を使用している場合は、PaymentIntent の更新後に サーバーから更新 を取得します。

オプション配送料金の税金を計算する
サーバー側

配送料金の税金を計算するには、shipping_cost パラメーターを使用します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "customer_details[address][line1]"="920 5th Ave" \ -d "customer_details[address][city]"=Seattle \ -d "customer_details[address][state]"=WA \ -d "customer_details[address][postal_code]"=98104 \ -d "customer_details[address][country]"=US \ -d "customer_details[address_source]"=shipping \ -d "shipping_cost[amount]"=500 \ -d "shipping_cost[tax_code]"=txcd_92010001

既存の ShippingRate の ID を渡して、その amount、課税する tax_code、課税する tax_behavior を使用します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "customer_details[address][line1]"="920 5th Ave" \ -d "customer_details[address][city]"=Seattle \ -d "customer_details[address][state]"=WA \ -d "customer_details[address][postal_code]"=98104 \ -d "customer_details[address][country]"=US \ -d "customer_details[address_source]"=shipping \ -d "shipping_cost[shipping_rate]"=shr_1Mlh8YI6rIcR421eUr9SJzAD

オプションIP アドレスを使用して税金を見積もる
サーバー側

顧客の IP アドレス を指定すると、Stripe はその地理的な位置を特定し、その場所を顧客の所在地として使用します。これにより、顧客が郵便番号を入力する前に税金の見積もりを表示できます。

注意

IP アドレスの場所は顧客の実際の場所から離れている可能性があるため、徴収する 最終的な 税額を決定するのに IP アドレスを使用することはお勧めしません。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "customer_details[ip_address]"="127.0.0.1"

オプション顧客の Tax ID を収集する
サーバー側

国外へのサービスの提供など、顧客に リバースチャージ に基づく税金の必要が生じる場合があります。税金を回収せず、代わりに「差戻し請求で支払われる税金」という文言を指定して請求書を発行する必要があります。これにより、購入に関連する納税が顧客の責任であることを顧客に伝えることができます。

顧客の納税者番号を指定して、リバースチャージが適用される状況を自動的に判別するには、以下のようにします。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "customer_details[address][country]"=IE \ -d "customer_details[address_source]"=billing \ -d "customer_details[tax_ids][0][type]"=eu_vat \ -d "customer_details[tax_ids][0][value]"=DE123456789

無効な形式の納税者番号を指定すると、計算で tax_id_invalid エラーコードが返されます。

{ "error": { "code": "tax_id_invalid", "doc_url": "https://docs.stripe.com/error-codes#tax-id-invalid", "message": "Invalid value for eu_vat.", "param": "customer_details[tax_ids][0][value]", "type": "invalid_request_error" } }

Tax API では、納税者番号を政府のデータベースで自動的に検証しません。税金の計算前に納税者番号を検証するには、customer tax ID validation を使用する必要があります。

オプション内税価格
サーバー側

デフォルトでは、指定したライン項目と配送料の金額に加算して税金が計算されます。価格に含まれる税金を計算するには、line item または shipping cost の tax_behavior を inclusive に設定します。

以下の例では、顧客は常に 100 EUR を決済します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=eur \ -d "line_items[0][amount]"=10000 \ -d "line_items[0][reference]"=L1 \ -d "line_items[0][tax_behavior]"=inclusive \ -d "line_items[0][tax_code]"=txcd_10103000 \ -d "customer_details[address][country]"=IE \ -d "customer_details[address_source]"=billing

レスポンスでは税込み価格が返されます。

{ ... "amount_total": 10000, ... "tax_amount_exclusive": 0, "tax_amount_inclusive": 1870, "tax_breakdown": [ { "amount": 1870, "inclusive": true, "tax_rate_details": { "country": "IE", "percentage_decimal": "23.0", "state": null, "tax_type": "vat" }, "taxability_reason": "standard_rated", "taxable_amount": 8130 } ], ... }

オプション既存の Product オブジェクトを使用する
サーバー側

各ライン項目に Product オブジェクトを指定できます。商品に tax_code がある場合、まだ入力されていない場合はライン項目の tax_code として使用されます。tax_behavior や price など、他の商品の値は税金計算時に使用されません。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "line_items[0][product]"=
"{{PRODUCT_ID}}"
\ -d "customer_details[address][country]"=IE \ -d "customer_details[address_source]"=billing

オプション既存の Customer オブジェクトを使用する
サーバー側

Customer オブジェクトを指定すると、Stripe は、顧客の住所と納税者番号を自動的にコピーして計算に使用します。

  • 顧客の shipping が存在する場合は、customer_details.address にコピーされます。
  • そうでない場合は、顧客の address が存在していれば、それが customer_details.address にコピーされます。
  • そうでない場合は、顧客の tax.ip_address が存在していれば、それが customer_details.ip_address にコピーされます。
  • そうでない場合は、顧客の tax.tax_exempt が存在していれば、それが customer_details.taxability_override にコピーされます。

顧客の 納税者番号 が customer_details.tax_ids にコピーされます。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d customer=
"{{CUSTOMER_ID}}"

オプション顧客の課税対象を上書きする
サーバー側

顧客が非課税である場合など、特定のケースでは税金を徴収する必要はありません。taxability_override パラメーターを使用して、Stripe Tax に税金免除を指定できます。

顧客の課税対象の上書きを計算に指定するには、以下のようにします。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "customer_details[address][line1]"="920 5th Ave" \ -d "customer_details[address][city]"=Seattle \ -d "customer_details[address][state]"=WA \ -d "customer_details[address][postal_code]"=98104 \ -d "customer_details[address][country]"=US \ -d "customer_details[address_source]"=billing \ -d "customer_details[taxability_override]"=customer_exempt

リバースチャージ

欧州連合などの一部の地域は、顧客がビジネスとして購入する場合に課税対象となる「リバースチャージ」スキームを実装しています。Stripe Tax が正確な税金処理を適用できるように、顧客から Tax IDs を収集することをお勧めします。顧客の納税者番号を収集できない場合や、リバースチャージスキームの適用を別途決定している場合があります。そのような場合は、taxability_override を使用して、Stripe Tax でリバースチャージスキームを強制的に適用できます。

顧客の課税対象の上書きを計算に指定するには、以下のようにします。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=eur \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "customer_details[address][country]"=IE \ -d "customer_details[address_source]"=billing \ -d "customer_details[taxability_override]"=reverse_charge

オプション配送元住所を指定する
サーバー側

主たるビジネス拠点以外の場所から商品を配送する場合、配送元住所を登録して税金計算に使用できます。

発送元の所在地を指定するには、ship_from_details パラメータを使用します。この例では、ユーザーはフロリダ州に拠点を置き、顧客はイリノイ州スプリングフィールドにおり、商品はイリノイ州ネイパービルから発送されています。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "line_items[0][tax_behavior]"=exclusive \ -d "line_items[0][tax_code]"=txcd_99999999 \ -d "customer_details[address][city]"=Springfield \ -d "customer_details[address][state]"=IL \ -d "customer_details[address][postal_code]"=62704 \ -d "customer_details[address][country]"=US \ -d "customer_details[address_source]"=billing \ -d "ship_from_details[address][city]"=Naperville \ -d "ship_from_details[address][state]"=IL \ -d "ship_from_details[address][postal_code]"=60540 \ -d "ship_from_details[address][country]"=US

このレスポンスでは、配送先 (イリノイ州スプリングフィールド) または売り手のビジネス拠点ではなく、注文の配送元 (イリノイ州ネイパービル) に基づいて計算された税金が返されます。

{ ... "amount_total": 1078, ... "tax_amount_exclusive": 78, ... "tax_breakdown": [ { "amount": 78, "inclusive": true, "tax_rate_details": { "country": "US", "percentage_decimal": "7.75", "state": "IL", "tax_type": "sales_tax" }, "taxability_reason": "standard_rated", "taxable_amount": 1000 } ], ... }

これらのシナリオにおける税金の計算方法については、Stripe Tax のドキュメント をご覧ください。

オプション小売業配送手数料の計算
サーバー側

Stripe Tax は、ミネソタ州とコロラド州の小売業配送手数料の計算をサポートしています。

サポートされている州で state_retail_delivery_fee タイプの税務登録を追加すると、小売業の配送手数料が税金計算で計算されます。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/registrations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d country=US \ -d "country_options[us][state]"=CO \ -d "country_options[us][type]"=state_retail_delivery_fee \ -d active_from=now

小売業の配送手数料を計算するには、衣料品と履物を表す txcd_30011000 などの 物品商品税コード を使用して税金計算 API を呼び出します。

すべての物品が小売業の配送手数料の計算をトリガーするわけではありません。税金が適用されるタイミングについては、州のドキュメントをご覧ください。

  • 小売配送手数料 - コロラド州
  • 小売配送手数料 - ミネソタ州
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "line_items[0][tax_behavior]"=exclusive \ -d "line_items[0][tax_code]"=txcd_30011000 \ -d "shipping_cost[amount]"=400 \ -d "customer_details[address][line1]"="1437 Bannock St Room 451" \ -d "customer_details[address][city]"=Springfield \ -d "customer_details[address][state]"=CO \ -d "customer_details[address][postal_code]"=80202 \ -d "customer_details[address][country]"=US \ -d "customer_details[address_source]"=shipping

レスポンスは、コロラド州の小売業配送手数料で計算された税金を返します。これは tax_breakdown オブジェクトの追加エントリーであり、tax_breakdown.tax_rate_details.rate_type は flat_amount に設定されています。

{ ... "amount_total": 2165, ... "tax_amount_exclusive": 165, ... "tax_breakdown": [ { "amount": 88, "inclusive": false, "tax_rate_details": { "percentage_decimal": "8.81", "rate_type": "percentage", "tax_type": "sales_tax", ... }, "taxability_reason": "standard_rated", "taxable_amount": 1000 }, ... { "amount": 29, "inclusive": false, "tax_rate_details": { "flat_amount": { "amount": 29, "currency": "usd" }, "percentage_decimal": "0.0", "rate_type": "flat_amount", "tax_type": "retail_delivery_fee", ... }, "taxability_reason": "standard_rated", "taxable_amount": 1000 } ], ... }

オプションライン項目の詳細な税金の内訳
サーバー側

最上位の tax_breakdown は常に返され、Checkout 時または領収書に税金のリストを表示するのに適したシンプルな内訳が表示されます。

taxability_reason を使用して、導入の構築時に税金が適用されない理由を把握できます。たとえば、not_collecting では、税金を徴収する国または州で税金が徴収されません。アカウント設定に tax registrations を追加すると、Stripe に税金を徴収する場所が示されます。ワシントン州の登録を追加した場合、結果に表示される課税対象の理由は standard_rated になり、これは商品が標準税率で課税されることを示します。

ライン項目の tax_breakdown 属性を展開すると、地方税や各税金の理由を説明する属性など、詳細な内訳が表示されます。

  • 課税する rate_details の tax_type フィールドは、課税する税金の種類を示す上位レベルであり、レポートや取引のエクスポートで返されるタイプとは必ずしも一致しない場合があります。たとえば、アメリカ売上税とアメリカ使用税を区別しません。
  • Checkout フローの tax_rate_details の display_name フィールドを使用して、すべての税金を表示します。税金は、顧客の場所と商品の税金情報に基づいてローカライズされます。例えば、txcd_10103001: Software as a Service (SaaS) for Business Use のように、顧客がドイツに所在して、商品が仕向地で課税されるため、ドイツに VAT が適用される場合、Umsatzsteuer (USt)と表示されます。これは、VAT のドイツ語表記です。txcd_20030000: General - Services のように、本社の住所がフランスに設定され、商品が起点で課税されるため、フランスに VAT が適用される場合、Taxe sur la valeur ajoutée (TVA) と表示されます。これは、VAT のフランス語表記です。
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "customer_details[address][line1]"="920 5th Ave" \ -d "customer_details[address][city]"=Seattle \ -d "customer_details[address][state]"=WA \ -d "customer_details[address][postal_code]"=98104 \ -d "customer_details[address][country]"=US \ -d "customer_details[address_source]"=shipping \ -d "expand[0]"="line_items.data.tax_breakdown"
{ ... "tax_breakdown": [ { "amount": 103, "inclusive": false, "tax_rate_details": { "country": "US", "percentage_decimal": "10.25", "state": "WA", "tax_type": "sales_tax" }, "taxability_reason": "standard_rated", "taxable_amount": 1000 } ],

オプション一般的なエラーのトラブルシューティング
サーバー側

税務インテグレーションのエラーをトラブルシューティングするには、以下のステップに従います。

無効な課税するコードのエラーを解決する

Invalid tax code エラーが表示された場合は、Product tax codes を参照して、利用可能な税コードのリストを確認してください。次に、以下の手順に従って問題を解決します。

  1. 税コードを確認する: 利用可能な税コードのリスト から、有効な税コードを使用していることを確認してください。よくある間違いは次のとおりです。

    • 課税するコードとして空の文字列または null を使用する
    • 課税するコードのスペルミス
    • 存在しない課税するコードを使用する
  2. コードを更新: TaxCalculation を作成する際には、必ず有効な課税コードを渡してください。以下に例を示します。

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/tax/calculations \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "line_items[0][tax_code]"=txcd_10000000 \ -d "customer_details[address][line1]"="354 Oyster Point Blvd" \ -d "customer_details[address][city]"="South San Francisco" \ -d "customer_details[address][state]"=CA \ -d "customer_details[address][postal_code]"=94080 \ -d "customer_details[address][country]"=US \ -d "customer_details[address_source]"=shipping
  3. デフォルトの税コードを使用: Stripe Tax は、商品または税金計算リクエストに特定の税コードが指定されていない場合、計算にデフォルトの税コードを使用します。税金設定でデフォルト値を表示および更新できます。

    API を使用して、デフォルトの税コードを更新します。

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/tax/settings \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d "defaults[tax_code]"=txcd_10000000
  4. 商品カタログのレビュー: Stripe 商品カタログの商品に関連付けられた税コードを使用する場合は、税コードが商品に正しく割り当てられていることを確認してください。

  5. データの不整合の確認: 税コードがデータベースまたはフロントエンドから、Stripe への API コールを行うサーバー側のコードに正しく渡されることを確認します。

課税する税額を正確に計算するには、商品またはサービスに適用される最も具体的な税コードを使用します。課税するコードが不明な場合は、課税する税コードのドキュメント をご覧ください。

問題が続く場合は、課税する API ドキュメント をレビューしてください。

参照情報

  • Connect で Stripe Tax を使用する
このページはお役に立ちましたか。
はいいいえ
  • お困りのことがございましたら 、サポートにお問い合わせください。
  • 変更ログをご覧ください。
  • ご不明な点がございましたら、お問い合わせください。
  • LLM ですか?llms.txt を読んでください。
  • Powered by Markdoc