# Invoicing の仕組み

請求書のライフサイクルのステージについてご紹介します。

請求書には、提供した商品・サービスの詳細が項目別に記載され、価格、数量、税金が含まれます。顧客に請求書を送って支払いを求めることも、請求書作成と同時に保存済みの決済手段で自動課金することも可能です。

*サブスクリプション* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) は、請求書サイクルごとに請求書を自動的に生成します。[サブスクリプションの請求書ライフサイクル](https://docs.stripe.com/billing/invoices/subscription.md#sub-invoice-lifecycle) の詳細をご確認ください。

請求書の作成時は、既存の[顧客](https://docs.stripe.com/invoicing/customer.md)と[商品](https://docs.stripe.com/invoicing/products-prices.md)を選択することも、新しく作成して保存することもできます。現在の請求書にのみ存在する 1 回限りの商品を作成することもできます。

請求書の作成、編集、管理には、[ダッシュボード](https://docs.stripe.com/invoicing/dashboard.md) と [API](https://docs.stripe.com/api/invoices.md) の両方を使用できます。

## 請求書のライフサイクル

手動またはサブスクリプションの一環として作成された請求書は、作成や処理が進むにしたがってステータスが変化します。Stripe はこれを自動回収ワークフローと呼んでいます。

請求書の基本的なライフサイクルは以下のようになります。

1. 新しく作成した請求書のステータスは `draft` になります。
2. 請求書の支払い準備ができると、Stripe はそのステータスを `open` に変更することで、[請求書を確定](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized)します。確定した請求書の詳細のほとんどは、変更できなくなります。
3. Stripe は、顧客による請求書への支払いを待つことも、顧客のデフォルトの支払い方法を使用して、自動的に請求書の支払いを試みることもできます。
   - 支払いが成功すると、Stripe は請求書のステータスを `paid` に更新します。
   - 支払いが失敗した場合、または請求書が全額支払われていない場合、請求書は `open` のまま変わりません。
4. オプションで、未払いの請求書のステータスを `void` または `uncollectible` に変更できます。
5. また、支払われた請求書における[決済の適用を解除](https://docs.stripe.com/invoicing/apply-payments.md)することで、ステータスを未処理に戻すこともできます。

請求書のライフサイクルのさまざまな段階 (請求書が確定されたとき、自動的な支払いが失敗したときなど) で[顧客にメールを送信するように Stripe を設定](https://docs.stripe.com/invoicing/send-email.md)できます。

## 請求書のステータス

請求書のステータスは以下のいずれかになります。請求書に対して実行できるアクションは、そのステータスによって異なります。

| ステータス | 説明 | 想定されるアクション |
| --- | --- | --- |
| [draft](https://docs.stripe.com/invoicing/overview.md#draft) | 請求書は使用する準備ができていません。すべての請求書は、開始時には `draft` ステータスです。 | - 請求書の任意の部分を編集する。
- 請求書を使用する準備ができたら、そのステータスを `open` に変更して確定する。
- 請求書がサブスクリプションに関連付けられていない場合に、[削除](https://docs.stripe.com/invoicing/overview.md#deleted)する。 |
| [open](https://docs.stripe.com/invoicing/overview.md#open) | 請求書が確定され、支払いを待っています。 | - 支払いのために請求書を顧客に送信する。
- [請求書の一部の要素のみ](https://docs.stripe.com/invoicing/invoice-edits.md)を変更する。大幅に変更するには、新しい請求書を作成し、古いものを無効にします。
- 請求書のステータスを `paid`、`void`、または `uncollectible` に変更する。
- 請求書を[編集](https://docs.stripe.com/invoicing/invoice-edits.md)します。 |
| [paid](https://docs.stripe.com/invoicing/overview.md#paid) | この請求書は支払い済みです。 | - インボイスのステータスを `open` に変更します。
- 請求書から決済を切り離します。 |
| [void](https://docs.stripe.com/invoicing/overview.md#void) | この請求書はキャンセル済みです。 | - これ以降のアクションはありません。 |
| [uncollectible](https://docs.stripe.com/invoicing/overview.md#uncollectible) | 請求書への支払いを顧客が行う可能性が低いと思われます。通常、会計処理で回収不能金として処理します。 | - 請求書のステータスを `void` または `paid` に変更する。 |

### 下書き請求書

`draft` の請求書は、ほとんどすべての詳細を更新できます。請求書がサブスクリプションに関連付けられていない場合は、削除することもできます。支払いのために `draft` の請求書を送信する準備ができたら、そのステータスを `open` に変更して確定します。

ステータスが `draft` の請求書は削除できますが、削除された請求書を復元することはできません。

#### ダッシュボード

1. [請求書ページ](https://dashboard.stripe.com/test/invoices)に移動します。

2. 請求書の横にあるオーバーフローメニュー (⋯) をクリックします。

3. **下書きを削除**をクリックします。

#### API

請求書の削除に API を使用し、[Webhook](https://docs.stripe.com/webhooks.md) のエンドポイントを設定している場合、Stripe は `invoice.deleted` イベントを送信します。

```curl
curl -X DELETE https://api.stripe.com/v1/invoices/id \
  -u "<<YOUR_SECRET_KEY>>:"
```

### 未払いの請求書

請求書が確定されても、残高は残ります。請求額が[最小請求額](https://docs.stripe.com/currencies.md#minimum-and-maximum-charge-amounts)より少ない場合、請求書のステータスは自動的に `paid` に移行し、Stripe は[顧客のクレジット残高](https://docs.stripe.com/billing/customer/balance.md)からその金額を引き落とします。

`open` ステータスの請求書には、`Past due`、`Retrying` などの異なるバッジがダッシュボードに表示される可能性があります。場合によっては、バッジにマウスポインターを合わせて説明のツールチップを表示できます。

サブスクリプション以外の未払いの請求書が、開始されたがまだ保留中の支払いを待っている場合、請求書の一覧でその請求書に `Pending` バッジが表示されます。ただし、その詳細ページには、`Open` バッジが表示されます。

未払いの請求書で更新できるのは、メモ、メタデータなどのいくつかの要素のみです。大幅に変更する場合は、新しい請求書に置き換えることで[請求書を改訂](https://docs.stripe.com/invoicing/invoice-edits.md)する必要があります。

確定した請求書は削除できません。キャンセルするには、そのステータスを `void` に変更します。

### 支払い済みの請求書

顧客が請求書に支払い済みです。このステータスは最終的なものであるため、請求書のステータスは変更不可です。

#### ダッシュボード

ダッシュボードから支払いを行うには、[請求書の詳細ページ](https://docs.stripe.com/invoicing/dashboard/manage-invoices.md#invoice-details-page)を開き、**顧客に請求**をクリックします。

#### API

以下の例は、[支払い](https://docs.stripe.com/api/invoices/pay.md) エンドポイントを使用して請求書を `paid` ステータスに移行する方法を示しています。[Webhook](https://docs.stripe.com/webhooks.md) エンドポイントを設定している場合は、支払い実行の結果に応じて、`invoice.payment_failed` イベントまたは `invoice.paid` イベントが送信されます。

```curl
curl -X POST https://api.stripe.com/v1/invoices/id/pay \
  -u "<<YOUR_SECRET_KEY>>:"
```

請求書に関連する PaymentIntent が正常に作成され完了されるときにのみ `invoice.payment_succeeded` イベントを受け取ります。Stripe は、請求書が `paid` に移行するときに `invoice.paid` イベントを送信します。以下の場合は、関連する PaymentIntent が成功しなくても、請求書が `paid` に移行することがあります。

- トライアルや無料サブスクリプションに関連している
- [顧客のクレジット残高](https://docs.stripe.com/billing/customer/balance.md)で対応する `amount_due` があるか、[最小請求金額](https://docs.stripe.com/currencies.md#minimum-and-maximum-charge-amounts)を下回っています
- [paid_out_of_band](https://docs.stripe.com/api/invoices/pay.md#pay_invoice-paid_out_of_band) のマークが付けられます

この場合は `invoice.paid` イベントを受け取りますが、`invoice.payment_succeeded` イベントは受け取りません。

#### Stripe 以外で支払われた請求書

顧客が外部 (Stripe 以外) で請求書を支払った場合は、ダッシュボードまたは API を使用して手動で[ステータス](https://docs.stripe.com/invoicing/overview.md#invoice-statuses)を `paid` に変更できます。

#### ダッシュボード

未払いの請求書は、ダッシュボードで支払済みとしてマークできます。請求書の詳細ページでオーバーフローメニュー (⋯) をクリックし、**請求書ステータスの変更**を選択します。**請求書ステータスの変更**ダイアログで**支払い済み**を選択します。

#### API

手動で未払いの請求書を API で支払い済みとしてマークするには、[支払い](https://docs.stripe.com/api/invoices/pay.md)エンドポイントにリクエストを送信するときに [paid_out_of_band](https://docs.stripe.com/api/invoices/pay.md#pay_invoice-paid_out_of_band) パラメーターを使用します。

### 請求書を無効にする

請求書の無効化は、概念的には請求書の削除やキャンセルと似ています。ただし、請求書の無効化では証跡が保持されるため、番号で請求書を検索できます。無効化された請求書は、レポート上はゼロの値で処理され、支払いの対象外です。このステータスは最終的なものであるため、請求書のステータスは変更不可です。

請求書を無効にした後も、[オンライン請求書ページ](https://docs.stripe.com/invoicing/hosted-invoice-page.md)には引き続きアクセスでき、請求書が無効になったことを示すメッセージが表示されます。請求書を無効にできるのは、ステータスが `open` または `uncollectible` の場合に限られます。

> お客様がビジネスを行っている管轄区域で請求書が修正、キャンセル、無効化されるかどうか、およびその方法を決定する際は、現地の規制をご確認ください。代わりに[別の請求書を発行する](https://docs.stripe.com/invoicing/integration.md#create-invoice-code)か、[クレジットノートを発行する](https://docs.stripe.com/invoicing/integration/programmatic-credit-notes.md)必要がある場合があります。Stripe は、法律顧問に相談して、ビジネスに固有のアドバイスを受けることをお勧めしています。

#### ダッシュボード

ダッシュボードで請求書を無効にするには、次のようにします。

1. **請求書の詳細**ページに移動します。

2. オーバーフローメニュー (⋯) をクリックし、**請求書ステータスの変更**を選択します。

3. 表示されたダイアログで、**無効**を選択します。

#### API

API で請求書を無効にするには、次のようにします。

```curl
curl -X POST https://api.stripe.com/v1/invoices/id/void \
  -u "<<YOUR_SECRET_KEY>>:"
```

[Webhook](https://docs.stripe.com/webhooks.md) のエンドポイントを設定している場合は、請求書が `void` ステータスになると `invoice.voided` イベントが送信されます。

### 回収不能の請求書

顧客が未払いの請求書に対して支払いできない場合があります。たとえば、顧客に 1,000 USD 相当のサービスを提供していて、その後顧客が破産宣言し、請求書に支払う資産がないとします。

その結果、支払いの見込みがないものとして請求書を回収不能と見なします。このシナリオでは、請求書のステータスを `uncollectible` に更新できます。これにより、回収不能金の会計処理の一環として、未収の金額を追跡できます。

#### ダッシュボード

未払いの請求書は、ダッシュボードで回収不能としてマークできます。請求書の詳細ページでオーバーフローメニュー (⋯) をクリックし、**請求書ステータスの変更**を選択します。**請求書ステータスの変更**ダイアログで**回収不能**を選択します。

#### API

API を使用して未払いの請求書を回収不可としてマークするには、以下の例のように [回収不可としてマーク](https://docs.stripe.com/api/invoices/mark_uncollectible.md) エンドポイントを使用します。

```curl
curl -X POST https://api.stripe.com/v1/invoices/id/mark_uncollectible \
  -u "<<YOUR_SECRET_KEY>>:"
```

[Webhook](https://docs.stripe.com/webhooks.md) のエンドポイントを設定している場合は、請求書が `uncollectible` ステータスになると `invoice.marked_uncollectible` イベントが送信されます。

## クレジットノート

クレジットノートを使用すると、確定された請求書を無効にして再発行することなく、その金額を減額できます。`open`、`paid`、または `uncollectible` の請求に対してクレジットノートを発行し、次のような状況に対処できます。

- 過大請求の訂正
- 未配送の商品や未提供のサービスの計上
- 確定後に合意された割引の適用
- 支払い済みの請求書に対する顧客への返金またはクレジット付与

### 請求書のライフサイクルへの影響

**open** の請求書に対してクレジットノートを発行すると、請求金額の残高が減額されます。クレジットノートによって残高がゼロになると、請求書は `paid` ステータスに移行します。

**paid** の請求書に対してクレジットノートを発行した場合、計上された金額は顧客の元の決済手段に返金するか、将来の請求書で使用するために顧客のクレジット残高に適用するか、Stripe 外で処理されたクレジットとして記録することができます。

### クレジットノートを発行

未払いまたは支払い済みの請求書に対するクレジットノートは、ダッシュボードまたは API から発行できます。回収不能な請求書に対するクレジットノートをダッシュボードで作成することはできません。

- [ダッシュボードからクレジットノートを発行](https://docs.stripe.com/invoicing/dashboard/credit-notes.md)
- [API からクレジットノートを発行](https://docs.stripe.com/invoicing/integration/programmatic-credit-notes.md)

## See also

- [ダッシュボードを使用する](https://docs.stripe.com/invoicing/dashboard.md)
- [API を実装する](https://docs.stripe.com/invoicing/integration.md)
- [ステータスの遷移と確定](https://docs.stripe.com/invoicing/integration/workflow-transitions.md)
