コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
開発者向けのツール
始める
支払い
財務の自動化
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
概要
Billing
税金
    概要
    始める
    Tax の仕組み
    設定
    Settings API を使用
    テスト
    決済フローによる導入
    Payment Links
    Checkout
    Invoicing
    サブスクリプション
      既存のサブスクリプションを更新する
    レートカードのサブスクリプション
    カスタムの決済システム
    Stripe Connect を実装する
    概要
    ソフトウェアプラットフォームのための Tax
    マーケットプレイスのための Tax
    コンプライアンスの管理
    納税義務の監視
    登録する
    税額計算
    レポート
    サードパーティーの Tax アプリ
    申告と納税
    Tax のリファレンス
    商品の税コード
    対応可能な国
    よくあるご質問
レポート機能
データ
スタートアップの企業設立
ホーム財務の自動化Tax

注

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

継続支払いの税金を徴収する

継続支払いの税金を徴収および申告する方法をご紹介します。

ページをコピー

Stripe Tax では、Stripe Billing の使用時に継続支払いの税額を計算できます。サブスクリプションを作成する前に顧客の所在地の詳細情報を使用して税額のプレビューを行い、顧客の支払い準備ができたら、Stripe Tax を有効にしてサブスクリプションを作成します。Stripe Tax はStripe Billing と連携し、設定された料金モデル、比例配分 (日割り計算)、割引、トライアルなどを使用して税金計算を自動的に処理します。

このガイドでは、初めて Stripe Tax と Billing を設定することを前提としています。既存のサブスクリプションを更新する方法をご覧ください。

Stripe Checkout を使用して新しいサブスクリプションを作成する場合は、Checkout セッションで税金を自動徴収する方法をご確認ください。また、以下の短い動画もご覧いただけます。

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

税額と合計額を推計する
サーバー側

顧客が初めて決済フローを使用する際は、住所情報をまだ取得していない可能性があります。この場合、請求書のプレビューを作成し、customer_details.tax.ip_address を設定して、Stripe が IP アドレスを使用して所在地を確認できるようにします。

注意

ほとんどの場合、Stripe は IP アドレスを物理的なエリアに対して解決できますが、その精度はさまざまで、顧客の実際の所在地を反映できていない場合もあります。初期の見積もり以外で顧客の IP アドレスに頼ってアドレスを判別することはお勧めしません。

Command Line
cURL
curl https://api.stripe.com/v1/invoices/create_preview \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "automatic_tax[enabled]"=true \ -d "customer_details[tax][ip_address]"={{IP_ADDRESS}} \ -d "subscription_details[items][0][price]"=
{{PRICE_ID}}

請求書の automatic_tax.status を確認します。ステータスが requires_location_inputs の場合は、住所の詳細情報が無効であるか、不備があります。この場合、顧客に住所情報の再入力や、正確な住所情報の提供を求めてください。

請求書のtotal (合計) は顧客が支払う金額で、tax (税金) は請求書のすべての税金金額の合計です。税金の内訳については、total_tax_amounts をご覧ください。金額はすべてセント単位です。

税額ゼロ

tax がゼロの場合は、顧客の所在地に税務登録があることを確認してください。売上税、VAT、GST の登録方法と税額ゼロとリバースチャージの詳細をご確認ください。

顧客情報を収集する
クライアント側

税額と合計額の見積もりができたら、配送先住所 (該当する場合)、請求先住所、支払い情報など、顧客情報の収集を開始します。Stripe Tax を使用する場合は、インテントなしで支払い情報を収集します。最初のステップは、インテントのない Elements オブジェクトを作成することです。

checkout.js
const stripe = Stripe(
"pk_test_TYooMQauvdEDq54NiTphI7jx"
); const elements = stripe.elements({ mode: 'subscription', currency: '{{CURRENCY}}', amount:
{{TOTAL}}
, });

次に、Address Element と Payment Element を作成し、その両方をマウントします。

checkout.js
const addressElement = elements.create('address', { mode: 'billing' // or 'shipping', if you are shipping goods }); addressElement.mount('#address-element'); const paymentElementOptions = { layout: 'accordion'}; const paymentElement = elements.create('payment', paymentElementOptions); paymentElement.mount('#payment-element');

その後、Address Element で変更イベントをリッスンできます。住所が変更された場合は、税額と合計額を再見積もりします。

checkout.js
addressElement.on('change', function(event) { // Throttle your requests to avoid overloading your server or hitting // Stripe's rate limits. const { tax, total } = await updateEstimate(event.value.address); elements.update({ amount: total }); // Update your page to display the new tax and total to the user... });

よくある間違い

顧客が住所を入力すると、Address Element はキーストロークごとに change イベントを起動します。サーバーへの過負荷と Stripe のレート制限への到達を回避するには、最後の change イベントの後、しばらく待ってから、税金と合計を推計しなおします。

送信を処理する
クライアント側

顧客がフォームを送信したら、elements.submit() を呼び出してフォームのフィールドを検証し、ウォレットに必要なデータを収集します。この関数の Promise が解決されるのを待たないと、他の操作は実行できません。

checkout.js
document.querySelector("#form").addEventListener("submit", function(event) { // We don't want to let default form submission happen here, // which would refresh the page. event.preventDefault(); const { error: submitError } = await elements.submit(); if (submitError) { // Handle error... return; } const { value: customerDetails } = await addressElement.getValue(); // See the "Save customer details" section below to implement this // server-side. await
saveCustomerDetails
(customerDetails); // See the "Create subscription" section below to implement this server-side. const {
clientSecret
} = await
createSubscription
(); const { error: confirmError } = await stripe.confirmPayment({ elements, clientSecret, confirmParams: { return_url:
{{RETURN_URL}}
, }, }); if (confirmError) { // Handle error... return; } // Upon a successful confirmation, your user will be redirected to the // return_url you provide before the Promise ever resolves. });

顧客の情報を保存する
サーバー側

顧客から収集した詳細情報で Customer オブジェクトを更新して、Stripe Tax で位置を精密に判定し、正確な結果が得られるようにしてください。

地域的な考慮事項
アメリカ

顧客がアメリカに居住している場合は、可能であれば詳細な住所を入力してください。「建物単位の精度」という用語は、顧客の場所を特定の家屋や建物に関連付けることができるという意味で使用されます。これにより、管轄区域の境界が複雑なため、同じ通りに並んでいる 2 つの家で、適用される税率が異なるような場合でも、精度が格段に向上します。

Customer オブジェクトをまだ作成していない場合 (顧客がウェブサイトで初めて登録したときなど) は、ここで作成できます。

Command Line
cURL
curl https://api.stripe.com/v1/customers/
{{CUSTOMER_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "address[line1]"={{LINE1}} \ -d "address[line2]"={{LINE2}} \ -d "address[city]"={{CITY}} \ -d "address[state]"={{STATE}} \ -d "address[postal_code]"={{POSTAL_CODE}} \ -d "address[country]"={{COUNTRY}} \ -d "tax[validate_location]"=immediately

注意

顧客の既存のサブスクリプションで税金の自動計算が有効であるときに、その住所情報を更新すると、以降の請求書の税額と合計金額が変わる場合があります。これは、税率が顧客の所在地によって異なるためです。

tax.validate_location 列挙値によって、この操作の実行後に顧客の納税場所が有効になる (または有効性を維持している) ことを確認できます。有効でないと、Stripe で customer_tax_location_invalid エラーコードによってお客様のリクエストが失敗します。納税場所が無効な顧客に対しては、税金の自動計算が有効に設定されたサブスクリプションを作成できないため、これは重要になります。前述の推奨に従ってプレビュー請求書の automatic_tax.status を確認している場合は、この追加の検証が失敗することはありませんが、Customer オブジェクトの作成または更新時は常に、tax[validate_location]="immediately" を設定しておくことをお勧めします。

サブスクリプションを作成する
サーバー側

税金の自動徴収を有効にしてサブスクリプションを作成します。

Command Line
cURL
curl https://api.stripe.com/v1/subscriptions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "automatic_tax[enabled]"=true \ -d customer=
{{CUSTOMER_ID}}
\ -d "items[0][price]"=
{{PRICE_ID}}
\ -d "payment_settings[save_default_payment_method]"=on_subscription \ -d "expand[0]"="latest_invoice.confirmation_secret"

The latest_invoice.confirmation_secret.client_secret is the client secret of the payment intent of the first (and the latest) invoice of the new subscription. You need to pass the client secret to your front end to be able to confirm the payment intent.

セキュリティのヒント

client secret は保存したり、ログに記録したり、顧客以外に漏洩したりしないでください。client secret が含まれるページはすべて、必ず TLS を有効にしてください。

顧客がデフォルトの支払い方法を使用している場合、サブスクリプションの最初の請求書は自動的に支払われます。これは、サブスクリプションの latest_invoice .statusを使用すると確認できます。決済フローで顧客から収集した新しい支払いの詳細を使用する場合は、最初の請求書が自動的に支払われないようにしてください。サブスクリプションの作成時に payment_behavior に default_incomplete を渡し、表示のように stripe.confirmPayment() を使用して支払いインテントを確定します。詳細は、Billing の回収方法をご覧ください。

オプション商品と価格を更新する

オプション返金を処理する
サーバー側

Webhook を使用する

サブスクリプションアクティビティの大半は非同期で行われるため、Webhook を使用してサブスクリプションイベントをリッスンすることをお勧めします。

Stripe Tax の使用を開始するときは、必ず invoice.finalization_failed イベントをリッスンしてください。請求書の automatic_tax.status が requires_location_inputs の場合は、顧客の住所の詳細が無効であるか、情報に不備があります。この場合、Stripe で税金の計算、請求書の確定、および支払いの回収を行うことはできません。住所情報を入力しなおすか、正確な住所を提供するように顧客に連絡してください。

See Using webhooks with subscriptions to learn more.

参照情報

  • 既存のサブスクリプションを更新する
  • Connect で Stripe Tax を使用する
  • カスタム決済フローで税金を計算する
このページはお役に立ちましたか。
はいいいえ
お困りのことがございましたら 、サポートにお問い合わせください。
早期アクセスプログラムにご参加ください。
変更ログをご覧ください。
ご不明な点がございましたら、お問い合わせください。
LLM ですか?llms.txt を読んでください。
Powered by Markdoc