決済の適用非公開プレビュー
未決済の請求書に決済を適用する方法をご紹介します。
未払いの請求書に決済を適用したり、決済適用の消し込みミスを修正したりできます。Stripe Invoicing または Stripe Billing を使用していて銀行振込、小切手、または Stripe 外で決済を受け取る場合、請求書に対して決済を手動で適用または適用解除しなければならないことがあります。請求書を使用せずに決済を徴収し、その決済を請求書に適用することもできます。
請求書への決済の適用または請求書からの決済の適用解除を行う前に、以下の点を考慮します。
- 決済の一部を請求書に適用することはできません。決済全体を請求書にのみ適用できます。つまり、複数の請求書間で決済を適用することはできません。
- Stripe の導入の一部で請求書を再開できないと想定している場合は、支払い済みの請求書を再開する前に導入を更新する必要があるかどうかを評価します。例えば導入に下流の会計システムがある場合は、導入が再開中の請求書を処理する準備ができているかどうかを確認します。
- Stripe Connector for NetSuite は請求書の決済適用をサポートしていません。コネクターを使用して請求書を再度開いた場合、コネクターは NetSuite で請求書を再度開きません。
請求書に決済を適用する
決済金額が請求書の未払い残高以下で請求書が決済と同じ顧客に対するものである場合は、請求書に任意の決済を適用できます。請求書に全額を支払う決済を適用すると、ステータスは paid に移行します。
決済の一部を 1 つの請求書に適用することはできません。例えば 1 回の決済を使用して複数の請求書に支払うことはできません。ただし決済が銀行振込から作成されている場合は 決済を現金残高に返金 してから資金をさまざまな請求書金額に適用できます。
決済を現金残高に返金する前に自動消し込みを無効にして、請求書に対する残高の消し込みを防ぎます。
請求書から決済の適用を解除する
請求書の詳細ビューの決済セクションでは、決済アプリケーションを管理できます。このフローでは、決済の適用を解除して適用しないままにすることも、別の請求書に再適用することもできます。
請求書から決済の適用を解除すると、ステータスは open に戻ります。ダッシュボードでは請求書は Open、Past Due、Partially Paid、または Failed (自動請求の請求書の場合) と表示されます。
自動回収
請求書を再度開くと 自動回収 はデフォルトで無効になります。請求書を再度開くと、次のような動作が予想されます。
| シナリオ | auto-advance がオフの場合の結果 |
|---|---|
| 決済のために送信された 1 回限りの請求書 | リマインドメールが送信されていません |
| 1 回限りの自動請求書 | 再試行なし |
| 決済のために送信されたサブスクリプション請求書 |
|
| サブスクリプション自動請求書 |
|
自動回収を有効にすると、設定に基づいてリマインドメールの送信、失敗した決済の再試行、請求書とサブスクリプションのステータスの変更を再開できます。
自動回収の例
以下の例は、再開された請求書の自動回収を有効にするさまざまなシナリオを示しています。
例 1
- 1 月 1 日に期限が到来する決済の 1 回限りの請求書を送信し、顧客が 1 月 1 日に支払うとします。
- 顧客のメール設定で期日の 3 日後、期日の 5 日後、期日の 14 日後にリマインドメールを送信するように構成します。
- 請求書は 1 月 10 日に再開され、自動回収が有効になります (
auto_)。advance = true - 顧客が請求書をまだ決済していない場合は、14 日目にリマインダーが送信されます。
例 2
- 1 月 1 日に自動的に請求される 1 回限りの請求書は 1 月 1 日に正常に支払われました。
- 再試行スケジュールは通常 14 日間に 8 回の Smart Retries です。
- 請求書は 1 月 7 日に再開され、自動回収が有効になります (
auto_)。advance = true - Smart Retries は 1 月 7 日から 1 月 14 日の間に再試行をスケジュールします。
例 3
- 1 月 1 日に期限が到来する決済のサブスクリプション請求書を送信し、顧客が 1 月 1 日に支払うとします。
- 顧客のメール設定で期日の 3 日後、期日の 5 日後、期日の 14 日後にリマインドメールを送信するように構成します。
- 請求書の期限超過が 30 日の場合、サブスクリプションをキャンセルし請求書を
uncollectibleとしてマークするようにサブスクリプション設定を構成します。 - 請求書は 1 月 7 日に再開され、自動回収が有効になります (
auto_)。advance = true - 顧客が請求書をまだ決済していない場合は、14 日目にリマインダーが送信されます。
- 顧客が請求書をまだ支払っていない場合、30 日目にサブスクリプションはキャンセルされ請求書は
uncollectibleとマークされます。
例 4
- 1 月 1 日に自動的に請求されたサブスクリプション請求書は、1 月 1 日に正常に決済されました。
- 再試行スケジュールは通常 14 日間に 8 回の Smart Retries です。
- すべての再試行回数を使い切った場合、サブスクリプションをキャンセルし請求書を
uncollectibleとしてマークするようにサブスクリプション設定を構成します。 - 請求書は 1 月 7 日に再開され、自動回収が有効になります (
auto_)。advance = true - Smart Retries は 1 月 7 日から 1 月 14 日の間に再試行をスケジュールします。
- 14 日目にサブスクリプションはキャンセルされ、顧客が請求書をまだ支払っていない場合、請求書は
uncollectibleとマークされます。
サブスクリプションのステータス
サブスクリプション請求書の場合、決済の適用を解除してもサブスクリプションのステータスは影響を受けません。ただし 自動回収を有効にする (auto-advance=true) と、請求書の期日超過日を基準にしてリカバリ設定の最終督促アクションが有効になります。
通知
請求書を再度開いても顧客に直接通知は送信されません。ただし、請求書の更新ステータスは オンライン請求書ページ と カスタマーポータル に正しく反映されます。
収益認識の影響 についてご紹介します。
適用されていない決済を見つける
請求書に適用されていない決済はすべて適用されていないと見なされます。以前に決済を関連付け解除していてすべての決済が請求書に正しく適用されていることを確認する場合は、API を使用して適用されていない決済を検索できます。
請求書から決済が切り離されると、invoice_ イベントがトリガーされます。これらのイベントの直近 30 日間を一覧表示できます。
stripe events list --type=invoice_payment.detached
Sigma または Stripe Data Pipeline を使用している場合は、請求書に適用されていない決済を Invoice Payments テーブルまたは Payments テーブルで確認できます。
未適用の決済をトラック
Stripe ダッシュボードを使用せずにすべての未適用の決済をトラックするには、detach イベントをリッスンし、メタデータを使用して未適用の決済にスタンプを押す導入を構築します。
Webhook イベントを設定する
未適用の請求書決済をトラックするには、請求書決済に関連する特定の Webhook イベントをリッスンし、決済にフラグを立てます。
# Handler for webhook events def webhook_handler(event) # Payment was detached if event.type == "invoice_payment.detached" invoice_payment = event.data.object payment_intent = invoice_payment.payment.payment_intent # Update metadata to track this Stripe::PaymentIntents.update(payment_intent, { metadata: { unapplied: true, unapplied_from: invoice_payment.invoice, } }) else # Handle other event types if necessary end end
請求書決済の適用または再適用
請求書決済を適用または再適用するときは、PaymentIntent から未適用のステータスをクリアします。
PaymentIntent を請求書に関連付ける
未適用メタデータフィールドをクリアする
未適用の請求書決済をレンダリングする
Search API を使用して適用されていない請求書の決済を一覧表示し必要に応じて UI に表示します。
def render_unapplied_payments unapplied_payments = Stripe::PaymentIntents.search({ query: "metadata['unapplied']:'true'" }) unapplied_payments.each do |unapplied_payment| render :unapplied_payment, payment_intent: unapplied_payment.payment.payment_intent, unapplied_from: unapplied_payment.metadata.unapplied_from end end