Stripe 以外で計算した税額を Stripe Billing で使用する
幅広い請求シナリオに対応するために、Stripe はインボイスに税額を直接設定できる機能を用意しています。そのため、他の税金計算システム (Avalara などのサードパーティーの税務ツールやお客様が自社構築した税務エンジンなど) と連携させることができます。このガイドでは、さまざまな請求シナリオを紹介しながら、tax_amounts
フィールドの使用方法を解説します。
手動で設定した税額を使用してインボイスを作成する
このセクションでは、手動で設定した税額をインボイスのラインアイテムに追加する方法について説明します。
インボイスのアイテムを使用してインボイスを作成する
最初のステップは、インボイスを作成することです。顧客はすでに作成しているものとして説明します。まだ作成していない場合は、顧客ガイドをご覧ください。
手動で設定した税額は、インボイスのラインアイテムにのみ追加できます。そのため、インボイスのアイテムをインボイスに追加してください。
インボイスのラインアイテムを tax_amounts
で更新する
インボイスのラインアイテム更新エンドポイントは、tax_amounts
パラメーターを受け付けます。このフィールドを使用すると、加盟店がインボイスのラインアイテムの税額を直接設定できます。また、このフィールドを使用する際は、関連データを顧客に表示できるように税率データも必要になります。tax_amounts
フィールドを使用してインボイスのラインアイテムを更新する例を以下に示します。
tax_amounts
以降のフィールドは、description
、jurisdiction
、country
、state
、tax_type
以外はすべて必須です。インボイスの Line Item (ラインアイテム) オブジェクトは tax_amounts
フィールドを返します。
{ id: "il_0O4tNe589O8KAxCGYD7OyXPP", object: "line_item", amount: 100, amount_excluding_tax: 100, currency: "usd", ... tax_amounts: [ { amount: 10, inclusive: false, tax_rate: "txr_0Ns7kW589O8KAxCGXoi7EAuS", taxability_reason: null, taxable_amount: 100 } ], tax_rates: [], ... }
注
Stripe は tax_rate_data
に基づいて既存の税率を自動的に作成または再利用しますが、インボイスの税額の計算は、amount パラメーターのみに基づいて行います。それ以外の値 (税率など) はインボイスに表示する際のレンダリングにのみ使用します。これらのフィールドと指定された税額に矛盾がないかどうかを確認するための検証は行われません。
インボイスを確定する
税額を使用してインボイスのラインアイテムがすべて更新されたら、インボイスを確定する必要があります。インボイスを確定した後に税額を変更することはできません。確定後にインボイスを変更する必要がある場合は、インボイスの編集ガイドをご覧ください。
Stripe が税率を自動生成する
税額を手動設定する場合、Stripe は対応する税率の情報を要求します。この税率は顧客に情報を表示する目的でのみ使用し、計算には一切使用されません。
Stripe は tax_rate_data
に基づいて、バックグラウンドで税率オブジェクトを自動作成します。同じ税率データが複数回渡された場合は、新たに別のオブジェクトを作成するのではなく、既存の税率オブジェクトを参照します。税率の重複排除を行う際には、percentage
、inclusive
、display_name
、jurisdiction
、country
、state
、tax_type
の各フィールドを使用します。この例では、前のセクションで説明したインボイスの 2 番目のラインアイテムが同じ tax_rate_data
で更新された場合を想定して説明します。
{ id: "il_0P6nbg589O8KAxCGRWBJAdNV", object: "line_item", amount: 100, amount_excluding_tax: 100, currency: "usd", ... tax_amounts: [ { amount: 10, inclusive: false, tax_rate: "txr_0Ny6QR589O8KAxCGo6MKGPxM", taxability_reason: null, taxable_amount: 100 } ], tax_rates: [], ... }
インボイスの両方のラインアイテムには、tax_amount
の下の同じ tax_rate
ID が設定されます。加盟店の負担を最小限に抑えるため、税率の作成と重複排除の処理は Stripe が行います。tax_rate
ID は有効な税率オブジェクトにマッピングされますが、自動作成された税率にマッピングされているこれらの ID を、API の tax_rates
フィールドに渡すことはできません。このルールの唯一の例外は、クレジットノート作成エンドポイントです。
クレジットノートを発行する
クレジットノートを使用すると、インボイスを無効にすることなくインボイスを調整できます。インボイスのラインアイテムを手動で設定した税額に更新するクレジットノートを発行すると、API はクレジットノートを正確に作成するために追加の情報を要求します。
クレジットノートを作成する
クレジットノート作成エンドポイントは、tax_amounts
パラメーターを受け付けます。対応するインボイスのラインアイテムに手動で設定した税額が含まれている場合、このフィールドは必須です。そうすることで、クレジットノートの会計処理が正確に行われ、インボイスとの一貫性が確保されます。
制限事項
手動で設定した税額を使用する際には、次の制約があることに注意してください。
インボイスのアイテムには税額は含まれません
手動で設定した税額は、インボイスのラインアイテムにのみ追加できます。
taxable_amount
と tax_rates
は検証されません
リクエストで渡された課税対象額と税率のデータはレンダリングでのみ使用されます。リクエスト内の税額と照らし合わせた検証は行われません。
tax_amounts
と tax_rates
を組み合わせて使用することはできません
インボイスのラインアイテムに税率もある場合は、手動設定した税額を含めることはできず、その逆に、手動設定した税額がある場合は税率を含めることはできません。また、インボイスにデフォルトの税率がある場合や、インボイスの他のラインアイテムに税率がある場合、ラインアイテムに手動設定した税額を含めることはできません。
他のフィールドを更新すると、tax_amounts
は最新でなくなる可能性があります。
手動で設定された既存の税額は、直接編集しない限りインボイスのラインアイテムに残るため、amount
、discounts
、price
などその金額に関係するフィールドでインボイスアイテムを更新すると、税額が最新でなくなる可能性があります。
自動生成された税率は直接使用できません
Stripe は手動で設定された税額に対する税率オブジェクトを自動生成します。これらの税率をインボイスや決済関連のエンドポイントで直接参照することはできませんが、クレジットノートエンドポイントからは参照できます。また、これらの税率は直接更新することができず、すべての税率エンドポイントに含まれません。ただし、トークンを使用して税率取得エンドポイントを呼び出すと、税率のデータにアクセスすることは可能です。