# 既存のサブスクリプションを更新する 既存のサブスクリプションを Stripe Tax に更新する方法をご紹介します。 [Stripe Tax](https://docs.stripe.com/tax.md) を使用すると、取引で徴収する税金を計算できます。税額は商品および顧客の所在地に基づいて、自動的に計算され、支払いに追加されます。 Stripe Tax を導入する際は、それ以降税金が自動的に計算されるようにするため、既存のサブスクリプションを更新する必要があります。Stripe は、サブスクリプションの更新に役立つツールを提供しています。また、特定のオプションをより詳細に制御したい場合、サブスクリプションを手動で更新することもできます。 ## 自動化ツールを使用して既存のサブスクリプションを更新する まず、Stripe Tax を有効にする必要があります。方法については、[設定ガイド](https://docs.stripe.com/tax/set-up.md)をご覧ください。 このツールを使用するには、次の手順に従います。 1. [ダッシュボード](https://dashboard.stripe.com/tax/migrations)に移動します。 1. 更新が必要なサブスクリプションを確認します。 1. 推奨される対応を確認します。 1. 必要に応じて手動で更新します。 Stripe は手動の[税率](https://docs.stripe.com/billing/taxes/tax-rates.md)をサブスクリプションから削除します。これには最大 5 営業日かかる場合があります。手続きが完了すると、メールでお知らせします。 > 税額変更の比例配分は行われません。更新は、次の請求サイクルの開始時に有効になります。 このツールを使用して、次の条件を満たすサブスクリプションを更新できます。 - アクティブである - 税金を自動的に徴収しない - 税金を計算できる詳細な[住所情報](https://docs.stripe.com/tax/customer-locations.md#address-hierarchy-other)がある - 価格に[税務処理](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md#set-tax-behavior-on-price)を設定 以下のタイプのサブスクリプションを更新する必要があります。 - スケジュールが設定されたサブスクリプション。詳細については、[サブスクリプションスケジュールを使用してサブスクリプションを更新する](https://docs.stripe.com/tax/subscriptions/update.md#existing-subscription-schedules)セクションをご覧ください。 - デスティネーション支払いまたは支払いと送金別方式の[支払いタイプ](https://docs.stripe.com/connect/charges.md#types)を使用するサブスクリプション。 自動化ツールでは、一部のサブスクリプションを更新できない場合があります。これは通常、[顧客の有効な住所](https://docs.stripe.com/tax/customer-locations.md#other)がないことが原因です。 > 自動化ツールは、Test Subscriptions では機能しません。 自動化ツールを使用すると、再度実行できるようになるまで数日待つ必要があります。その間に、最初の試行で失敗したサブスクリプションを確認して修正します。 ## 既存のサブスクリプションを手動で更新する - [顧客の居住地を確認する](https://docs.stripe.com/tax/subscriptions/update.md#customer-locations)をクリックし、必要な更新を行います。 - 税コードと税金処理を指定して[商品と価格を更新します](https://docs.stripe.com/tax/subscriptions/update.md#products_prices)。 - [サブスクリプションを更新](https://docs.stripe.com/tax/subscriptions/update.md#subs)し、以降のインボイスで税金を自動的に計算します。 - サブスクリプションを適切に更新したことを[確認](https://docs.stripe.com/tax/subscriptions/update.md#confirm)します。 ## 顧客の地域を確認する 税金を正しく計算するには、顧客の納税場所ステータスを把握する必要があります。ダッシュボードまたはエクスポートされたデータで確認するか、API を使用して情報を取得できます。 #### ダッシュボード ダッシュボードを使用して顧客の納税場所ステータスを確認するには、[顧客ページ](https://dashboard.stripe.com/customers)に移動して顧客を選択し、詳細を展開します。納税場所ステータス (`automatic_tax`) には、次の 4 つの値があります。 | ステータス | 説明 | 想定されるアクション | | ------------------------------------ | ------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 有効 (`supported`) | 税金の自動計算が完全にサポートされています。 | これ以上のアクションは必要ありません。 | | 認識されていない場所 (`unrecognized_location`) | この住所は納税場所の判断には有効ではありません。 | 顧客に住所の更新を依頼し、[customer.address](https://docs.stripe.com/api/customers/update.md#update_customer-address) に新しい値を設定します。顧客の詳細を編集することで、API またはダッシュボードから値を更新できます。 | | 未登録 (`not_collecting`) | 住所が認識され、場所が判別されましたが、徴収場所として設定されていない場所でした。 | 必要なアクションは、お客様の[納税義務](https://docs.stripe.com/tax/monitoring.md)によって異なります。続行しても、Stripe Tax は税金を評価しません。Stripe Tax で税金を評価するには、顧客が在住する管轄区域の[有効な登録を追加](https://docs.stripe.com/tax/registering.md)してください。 | | `failed` | Stripe のサーバーで[エラー](https://docs.stripe.com/error-codes.md)が発生しました。これはまれなケースです。 | 再度リクエストをお試しください。問題が解決しない場合は、Stripe サポートにご連絡ください。 | `status=unrecognized_location` の場合は、[Stripe Taxが使用できる住所](https://docs.stripe.com/tax/customer-locations.md) を使用して顧客の所在地を更新する必要があります。ダッシュボードで[顧客](https://dashboard.stripe.com/customers)に移動し、顧客を選択し、詳細で請求先住所や配送先住所を変更できます。 ### エクスポートで納税場所のステータスを確認する ダッシュボードのエクスポートを使用して顧客の納税場所のステータスを確認するには、[顧客のページ](https://dashboard.stripe.com/customers)に移動して**エクスポート**をクリックし、**すべての列**を選択します。 CSV ファイルには、**Tax Location Recognized**という名前のブール列が含まれています。これを使用して、顧客に[有効な](https://docs.stripe.com/tax/customer-locations.md#supported-formats)住所があるかどうかを判別できます。 #### API API を使用して顧客の納税場所のステータスを確認するには、[Customer (顧客) オブジェクト](https://docs.stripe.com/api/customers/object.md)を取得し、リクエストに `expand: ['tax']` を追加してレスポンスを[拡張](https://docs.stripe.com/api/expanding_objects.md)します。デフォルトのレスポンスには [tax](https://docs.stripe.com/api/customers/object.md#customer_object-tax) フィールドが含まれていないため、`expand` を使用する必要があります。 ```curl curl -G https://api.stripe.com/v1/customers/{{CUSTOMER_ID}} \ -u "<>:" \ -d "expand[]=tax" ``` 応答には、税金が計算された場所を示す拡張税金フィールドや、特定の顧客に自動税金計算を使用できるかどうかなどが含まれます。 ```json {"tax": { "automatic_tax": "supported", "ip_address": null, "location": {"country": "US", "state": "CA", "source": "billing_address"} }, "id": "cus_JvecILHjNPGKSI", "object": "customer", "address": null, "balance": 0, "created": 1627380831, "currency": null, "default_source": "src_0JHnP4507O8KAxCGgDurDgoS", "delinquent": false, "description": "1st Deposit", "discount": null, "email": "jenny.rosen@example.com", "invoice_prefix": "66CD4DB9", "invoice_settings": { "custom_fields": null, "default_payment_method": null, "footer": null }, "livemode": false, "metadata": { }, "name": "Jenny Rosen", "next_invoice_sequence": 1, "phone": null, "preferred_locales": [ ], "shipping": null, "tax_exempt": "none" } ``` `automatic_tax` (ダッシュボードの**納税場所のステータス** ) の値として使用可能な値は、次の 4 つです。 | ステータス | 説明 | 想定されるアクション | | ------------------------------------ | ------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 有効 (`supported`) | 税金の自動計算が完全にサポートされています。 | これ以上のアクションは必要ありません。 | | 認識されていない場所 (`unrecognized_location`) | この住所は納税場所の判断には有効ではありません。 | 顧客に住所の更新を依頼し、[customer.address](https://docs.stripe.com/api/customers/update.md#update_customer-address) に新しい値を設定します。顧客の詳細を編集することで、API またはダッシュボードから値を更新できます。 | | 未登録 (`not_collecting`) | 住所が認識され、場所が判別されましたが、徴収場所として設定されていない場所でした。 | 必要なアクションは、お客様の[納税義務](https://docs.stripe.com/tax/monitoring.md)によって異なります。続行しても、Stripe Tax は税金を評価しません。Stripe Tax で税金を評価するには、顧客が在住する管轄区域の[有効な登録を追加](https://docs.stripe.com/tax/registering.md)してください。 | | `failed` | Stripe のサーバーで[エラー](https://docs.stripe.com/error-codes.md)が発生しました。これはまれなケースです。 | 再度リクエストをお試しください。問題が解決しない場合は、Stripe サポートにご連絡ください。 | `status=unrecognized_location` の場合は、[Stripe Taxが税額計算に使用できる住所](https://docs.stripe.com/tax/customer-locations.md)を使用して顧客の所在地を更新する必要があります。API を使用して[顧客を更新](https://docs.stripe.com/api/customers/update.md#update_customer-address)できます。 ```curl curl https://api.stripe.com/v1/customers/{{CUSTOMER_ID}} \ -u "<>:" \ -d "address[line1]=27 Fredrick Ave" \ -d "address[city]=Brothers" \ -d "address[postal_code]=97712" \ -d "address[state]=OR" \ -d "address[country]=US" \ -d "expand[]=tax" ``` 有効な顧客の住所、その使用方法、エラーの対処方法については、[顧客の住所を収集する](https://docs.stripe.com/tax/customer-locations.md)で詳細をご覧ください。 ## 商品と価格を更新する 商品と価格には、Stripe Tax を有効化する際に割り当てたデフォルトの課税動作が使用されます。アクティブな商品と価格を更新して個別に税金を計算したい場合は、tax_code と tax_behavior を設定してください。詳細については、[利用可能なタックスコードの全リスト](https://docs.stripe.com/tax/tax-codes.md)と、[タックスコードとタックスビヘイビアを設定するためのガイド](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md)を参照してください。 ### 商品を更新する まず、`tax_code` で既存の商品を更新します。商品の `tax_code` が明示的に定義されていない場合、Stripe Tax は、設定されている事前設定の商品税コードを使用します。 #### ダッシュボード ダッシュボードで `tax_code` を指定して Product を更新するには、[商品ページ](https://dashboard.stripe.com/products?active=true)に移動して、編集する商品を選択し、商品情報ページでドロップダウンメニューから税コードを選択します。 #### API API を使用し、`tax_code` を設定して商品を更新する方法は次のとおりです。 ```curl curl https://api.stripe.com/v1/products/{{PRODUCT_ID}} \ -u "<>:" \ -d "tax_code={{TAXCODE_ID}}" ``` ### 価格を更新する 次に、価格の税金処理を更新します。 > `tax_behavior` は、一度 `exclusive` または `inclusive` のいずれかに設定すると、後から変更することはできません。価格の税金処理を変更するには、必要な税金処理で新しい価格を作成し、古い価格をアーカイブする必要があります。 #### ダッシュボード ダッシュボードを使用して価格を更新する: 1. [商品ページ](https://dashboard.stripe.com/products)に移動します。 1. 価格を更新する商品を選択します。 1. 価格情報セクションで追加オプションを選択します。 1. **価格に税金を含める**ドロップダウンメニューで、価格に関連付ける処理を選択します。 #### API 以下は、API を使用して価格を更新する方法です。 ```curl curl https://api.stripe.com/v1/prices/{{PRICE_ID}} \ -u "<>:" \ -d tax_behavior=exclusive ``` ## サブスクリプションを更新する 顧客、商品、価格を更新すると、既存のサブスクリプションを更新する準備が整います。 [ダッシュボードのサブスクリプションページ](https://dashboard.stripe.com/subscriptions)から、更新が必要なサブスクリプションのリストを取得します。税金の自動計算が有効化されていないサブスクリプションのみを表示するには、**フィルター**をクリックし、**税金の自動計算**にチェックマークを付け、**無効**を選択します。または、フィルターで絞り込まれたすべてのサブスクリプションをエクスポートして、CSV ファイルとして表示することもできます。これを行うには、**エクスポート**をクリックして、**日付範囲**として**すべて**を選択します。 ステータスに応じてサブスクリプションを更新する方法: - サブスクリプションに[既存の税率](https://docs.stripe.com/tax/subscriptions/update.md#no-tax-rates)がない場合は、税金の自動計算を有効にするだけで済みます。 - サブスクリプションのサブスクリプションまたはラインアイテムのレベルに[既存の税率](https://docs.stripe.com/tax/subscriptions/update.md#existing-tax-rates)がある場合は、既存の税率を消去し、税金の自動計算を有効化する必要があります。比例配分が適用されたアイテムの作成を避けるには、この更新のスケジュールを作成することができます。 - サブスクリプションに[サブスクリプションスケジュール](https://docs.stripe.com/tax/subscriptions/update.md#existing-subscription-schedules)がある場合、サブスクリプションスケジュールプランで `automatic_tax[enabled]=false` のインスタンスを削除する必要があります。 ### 既存の税率がないサブスクリプションを更新する #### ダッシュボード ダッシュボードで既存の税率のないサブスクリプションを更新するには、サブスクリプションを更新して**税金を自動計算**オプションをオンにします。 #### API [税率](https://docs.stripe.com/billing/taxes/tax-rates.md)を設定していないサブスクリプションを[更新](https://docs.stripe.com/api/subscriptions/update.md)するには、[automatic_tax .enabled](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-automatic_tax) を `true` に設定します。 ```curl curl https://api.stripe.com/v1/subscriptions/{{SUBSCRIPTION_ID}} \ -u "<>:" \ -d "automatic_tax[enabled]=true" ``` `automatic_tax.enabled=true` に設定すると、そのサブスクリプションで作成されたその後のすべての請求書の自動税金計算が有効になります。 ### 既存の税率でサブスクリプションを更新する #### ダッシュボード ダッシュボードからサブスクリプションの[税率](https://docs.stripe.com/billing/taxes/tax-rates.md)を更新するには、サブスクリプションを編集し、そこで**税金の自動計算**オプションを有効にします。ダッシュボードは既存の税率を消去し、以降は税金を自動的に計算します。価格を更新して `tax_behavior` を設定していない場合、サブスクリプションを更新する前に不足している詳細を更新するように求める通知がダッシュボードに表示されます。 #### API [サブスクリプションレベル](https://docs.stripe.com/billing/taxes/collect-taxes.md?tax-calculation=tax-rates#static-configuration)で[税率](https://docs.stripe.com/billing/taxes/tax-rates.md)が設定されたサブスクリプションを更新するには、`automatic_tax` を有効にする前に税率を削除する必要があります。更新する際には、以下を行います。 - 各サブスクリプションの [item](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-items) の [default_tax_rates](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-default_tax_rates) と [tax_rates](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-items-data-tax_rates) のフィールドに空の文字列を渡します。これにより、サブスクリプション (`default_tax_rates`) レベルとラインアイテム (`tax_rates`) レベルの両方で設定された税率がクリアされます。 - [automatic_tax.enabled](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-automatic_tax) を `true` に設定します。 - [proration_behavior](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-proration_behavior) を `none` に設定します。 #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. Stripe.api_key = '<>' subscription = Stripe::Subscription.retrieve('{{SUBSCRIPTION_ID}}') Stripe::Subscription.update( subscription.id, { automatic_tax: { enabled: true }, # Removes existing tax_rates for each item in the subscription items: subscription.items.data.map {|item| {id: item.id, tax_rates: ''}}, default_tax_rates: '', proration_behavior: 'none' } ) ``` ### サブスクリプションのスケジュールを使用してサブスクリプションを更新する 税金を徴収する必要があり、サブスクリプションに `automatic_tax[enabled]=false` を設定するサブスクリプションスケジュールが含まれている場合は、そのパラメーターを削除する必要があります。これを行うには、`automatic_tax[enabled]=false` を削除し、`default_settings[automatic_tax][enabled]=true` を設定して、サブスクリプションスケジュールの全フェーズを更新します。 サブスクリプションのスケジュールを更新する際には、現在および以降のフェーズをすべて渡す必要があります。このためには、設定されているパラメーターを確認してから、サブスクリプションのスケジュールで Stripe Tax を有効にします。 ```curl curl https://api.stripe.com/v1/subscription_schedules/{{SUBSCRIPTIONSCHEDULE_ID}} \ -u "<>:" ``` サブスクリプションのスケジュールを取得後に更新するには、`automatic_tax[enabled]=false`パラメーターを削除し、他のフェーズとパラメーターを渡します。 ```curl curl https://api.stripe.com/v1/subscription_schedules/{{SUBSCRIPTIONSCHEDULE_ID}} \ -u "<>:" \ -d "phases[0][items][0][price]=price_1GqNdGAJVYItwOKqEHb" \ -d "phases[0][items][0][quantity]=1" \ -d "phases[0][start_date]=1577865600" \ -d "phases[0][end_date]=1578038400" \ -d "phases[1][items][0][price]=price_1GqNdGAJVYItwOKqEHb" \ -d "phases[1][items][0][quantity]=2" \ -d "phases[1][start_date]=1578038400" \ -d "phases[1][end_date]=1580544000" \ -d "default_settings[automatic_tax][enabled]=true" ``` #### 更新をスケジュールする 比例配分アイテムが作成されないようにするには、次のサイクルの開始時に更新するようにスケジュールできます。 現在、サブスクリプションの更新をスケジュールするには、API を使用する必要があります。 #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. Stripe.api_key = '<>' subscription = Stripe::Subscription.retrieve( '{{SUBSCRIPTION_ID}}', ) schedule = Stripe::SubscriptionSchedule.create({ from_subscription: subscription.id }) Stripe::SubscriptionSchedule.update( schedule.id, { end_behavior: 'release', phases: [ # The first phase contains items for the # latest subscription invoice { items: [ # Prices and tax_rates for each item { price: '{{PRICE_ID}}', tax_rates: [ '{{TAX_RATE_ID}}' ] } ], default_tax_rates: ['{{TAX_RATE_ID}}'], start_date: subscription.items.data[0].current_period_start, end_date: subscription.items.data[0].current_period_end }, # The second phase removes manual tax rates and enables # automatic tax calculation { items: [ # Prices for each item with tax_rates: [] { price: '{{PRICE_ID}}', tax_rates: [] } ], default_tax_rates: [], automatic_tax: {enabled: true}, iterations: 1 } ] } ) ``` ## 更新を確認する サブスクリプションが適切に更新されたことを確認するには、各サブスクリプションの[請求書のプレビュー](https://docs.stripe.com/api/invoices/create_preview.md)を作成し、税額計算の結果を確認します。 プレビュー請求書の [tax](https://docs.stripe.com/api/invoices/object.md#invoice_object-tax) フィールドと [total_tax_amounts](https://docs.stripe.com/api/invoices/object.md#invoice_object-total_tax_amounts) フィールド、およびライン項目ごとの [tax_amounts](https://docs.stripe.com/api/invoice-line-item/object.md#invoice_line_item_object-tax_amounts) フィールドから税額を取得できます。請求書には計算のステータスを示す [automatic_tax](https://docs.stripe.com/api/invoices/object.md#invoice_object-automatic_tax) フィールドがあり、3 つのステータスのいずれかが表示されます。 | ステータス | 説明 | 想定されるアクション | | -------------------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `complete` | Stripe Tax は支払いに対する税金の評価を完了しました。 | 税額は、最新の請求書の tax および `total_tax_amounts` フィールドから、または各ラインアイテムの `tax_amounts` フィールドから取得できます。 | | `requires_location_inputs` | Stripe Tax に顧客の居住地を特定するための情報が不足していたため、税金を評価できませんでした。 | 顧客から完全な番地などの追加情報を収集し、v1 の顧客の場合は、[customer.address](https://docs.stripe.com/api/customers/update.md#update_customer-address)フィールドを更新します。v2 アカウントの場合は、アカウントのアイデンティティ、または顧客の設定にある[住所](https://docs.stripe.com/api/v2/core/accounts/update.md)を更新します。 | | `failed` | Stripe の内部エラー。 | 再度リクエストをお試しください。問題が解決しない場合は、Stripe サポートにご連絡ください。 | ## See also - [Stripe Tax で新しいサブスクリプションを作成する](https://docs.stripe.com/tax/subscriptions.md) - [税コード、商品、価格を設定する](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md)