顧客の住所を収集
Stripe Tax では、税金を自動的に計算するために顧客の場所が必要とされます。この要件は、税金の徴収に登録しない場合でも適用されます。このガイドでは、顧客から収集する住所情報を決定し、地域による違いに対応する方法について説明します。
サポートされている住所形式
各請求先住所と配送先住所には、line1
、line2
、city
、state
、postal_code
、country
のフィールドがあります。以下の表は、税金を計算する際にサポートされる住所の形式を説明したものです。
上記のいずれかの住所形式を使用し、顧客の住所が一貫して認識されるようにしてください。国のフィールドは常に有効な ISO 国コードである必要があります。
使用される顧客の住所
Stripe Tax は、税金を計算する際に、1 つの住所を顧客の住所として使用します。デジタル商品、サービス、または物理商品のいずれかにかかわらず、同じ住所が選択されます。
以下のリストで最初に実行可能なアイテムを使用して、顧客の場所を判定します。
- 利用できる場合、顧客の配送先住所を使用します。税金を計算するために精度が高くない住所を使用すると、
requires_location_inputs
が返されます。 - 利用できる場合、顧客の請求先住所を使用します。税金を計算するために精度が高くない住所を使用すると、
requires_location_inputs
が返されます。 - 取引が請求書の詳細がすべて設定されている決済手段に関連付けられている場合は、請求先住所を使用します。
- 決済手段に関連付けられている請求書の詳細が不完全であるか、欠落している場合は、提供された情報と決済手段自体の詳細を組み合わせて、請求先住所にします (たとえば、国情報が入力されていない場合はクレジットカード発行会社の国コードから国名を判定)。
- それ以外の場合には、顧客の IP アドレス の場所を探し、その場所を顧客の場所として使用します。Stripe では、この場所情報の結果を保存して、同じ顧客による今後の取引に再利用します。
取引に関連付けられた決済手段は、このリストで最初に設定されるものです。
- 請求書のデフォルトの決済手段
- サブスクリプションのデフォルトの決済手段
- Customer のデフォルトの決済手段
認識されない場所を処理する
顧客の場所が認識されていない場合、インボイスの確定は失敗して、automatic_tax[enabled]=true
が設定されたインボイスに対する支払いは行われません。サブスクリプションの作成またはインボイスの送信などの API リクエスト時に確定が行われる場合、Stripe は customer_tax_location_invalid
エラーを返します。サブスクリプションの更新時など、確定が非同期で行われる場合は、Stripe は invoice.finalization_failed
Webhook を送信し、インボイスは下書き状態のままになります。
確定が失敗したインボイスを確定する
customer_tax_location_invalid
エラーを修正する方法は、認識されている顧客の場所を収集するかどうかによって異なります。収集する場合は、Stripe Tax を有効なままにします。収集しない場合は、影響を受けるインボイスとサブスクリプションで Stripe Tax を無効にします。
認識されている顧客の場所を収集するには、以下のようにします。
- 影響を受ける顧客の住所を更新します。顧客について十分な場所情報の詳細を入力します。たとえば、アメリカの税金を計算するためには、国と州のコードだけでは十分ではありません。
customer.tax.automatic_tax
の値がsupported
またはnot_collecting
であることを確認して、顧客の場所が認識されていることを確認します。- 影響を受けるインボイスを確定します。
あるいは、顧客の場所が認識されていない状態で先に進むには、以下のようにします。
- 影響を受けるインボイスを更新して、
automatic_tax[enabled]=false
に設定します。 - 影響を受けるサブスクリプションを更新して、
automatic_tax[enabled]=false
に設定します。 - 影響を受けるインボイスを確定します。
非同期のインボイス確定の失敗を検出する
顧客の場所が認識されていないためにインボイスを確定できない場合、Stripe は、automatic_tax[status] = 'requires_location_inputs'
が設定された invoice.finalization_failed
Webhook を送信します。サブスクリプションを使用する場合は、大半のアクティビティーが非同期で行われるため、サブスクリプションとインボイスに関連するイベントをリッスンすることをお勧めします。
インボイスの確定の失敗を防止する
顧客の場所が認識されないためにインボイスの確定が失敗しないようにするには、以下のようにします。
- 既存のサブスクリプション を
automatic_tax[enabled]=false
からautomatic_tax[enabled]=true
に更新する前に、顧客の場所が認識されていることを確認します。顧客の場所が認識されていない場合は、顧客の場所を更新して確認してから、サブスクリプションで Stripe Tax を有効にします。 automatic_tax[enabled]=true
が設定されたサブスクリプションの顧客を更新した後、customer.tax.automatic_tax
の値がsupported
またはnot_collecting
であることを確認します。
注
税金を正確に計算するため、および税金を徴収できない頻度を最小限に抑えるために、顧客から完全な住所を収集することをお勧めします。
地域特有の考慮事項
税金の複雑さは地域によって大きく異なります。ほとんどの国では、国全体で 1 つの税金ルールセットが使用されています。アメリカでは、州ごとに税金のルールと税率が異なり、州によっては数百の区域で独自の税率が設定されています。カナダでは、税金の種類と税率は州によって異なります。
アメリカ (US)
郵便番号
Stripe Tax は、アメリカの基本的な 5 桁の郵便番号のみを使用して売上税の計算に対応します。国フィールドには、ISO 国コードの「US」を指定する必要があります。 Stripe は、郵便番号区域の地理的な中心位置を顧客の場所として使用します。これは、郵便番号区域内の住所の平均的な場所に相当します。この地点の税率は、顧客の詳細な住所の税率とは異なる場合があります。郵便番号だけで正しい課税税率を特定できるかどうかは、州によって異なります。
Stripe では、アリゾナ州、コロラド州、オクラホマ州、アラバマ州、ミズーリ州、テキサス州、イリノイ州、ワシントン州、カンザス州、ニューメキシコ州、ルイジアナ州、アーカンソー州、カリフォルニア州、アラスカ州、サウスダコタ州、ノースダコタ州、ユタ州、ネブラスカ州、ウエストヴァージニア州では郵便番号のみに頼らないことをお勧めします。
注
地域の州税を徴収するように登録されている州では、完全な住所を収集することをお勧めします。
IP アドレス
IP アドレスの場所は、顧客の実際の所在地から離れた場所である可能性があるため、徴収する税額を IP アドレスのみで判断しないようにしてください。代わりに、次回のインボイスエンドポイントを使用して、請求先住所または配送先住所を収集する前に、顧客が支払う推定税額を顧客に提示してください。
ヨーロッパと欧州連合 (EU)
除外対象地域
ヨーロッパでは、州や地域の当局ではなく、各国の税務当局が税金を課します。課税対象の国の中に位置していても、国の税率が適用されない地域が少数ながら存在します。たとえば、イタリアの郵便番号である「00120」はバチカン市国を示し、イタリアの VAT は適用されません。
顧客の郵便番号や州を収集し、顧客が適用除外地域に位置する場合に Stripe Tax がそれを判断できるようにします。
Stripe Tax でサポートされている適用除外地域のリストをご覧ください。
カナダ
Stripe Tax が適用税率を判断し、カナダで税金を徴収できるようにするため、顧客の州コードまたは郵便番号を収集する必要があります。