> ## Documentation Index
> Fetch the complete documentation index at: https://docs.waffo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 通知受信者エンドポイント

> ストアのマーチャント通知メールの受信者を管理する

マーチャント通知 —— 新規注文、新規サブスクリプション、更新、キャンセル、支払い遅延 —— はストアに設定された受信者へ配信されます。各受信者は独自のアドレスと独自のイベント別購読トグルを持つため、同じストアの 2 人が別々のイベントを購読できます。受信者が 1 件も設定されていない場合、通知はストアオーナーのアカウントメールにフォールバックします。

## イベントカタログ

| トグル                             | 発火タイミング                        |
| ------------------------------- | ------------------------------ |
| `notifyNewOrders`               | 新しい単発注文が発生（初回売上のお祝いメールも含む）     |
| `notifyNewSubscriptions`        | 新しいサブスクリプションが有効化               |
| `notifySubscriptionCanceled`    | サブスクリプションがキャンセルされたが、アクセス期間は継続中 |
| `notifySubscriptionRenewed`     | サブスクリプションの更新課金が成功              |
| `notifySubscriptionEnded`       | サブスクリプションが完全に終了し、アクセス権が失効      |
| `notifySubscriptionPastDue`     | サブスクリプションの更新課金が失敗し、支払い遅延に移行    |
| `notifySubscriptionUncanceled`  | 保留中のキャンセルが取り消された               |
| `notifySubscriptionPlanChanged` | サブスクリプションのプラン変更が適用された          |
| `notifyChargeback`              | 支払いにチャージバックが発生した               |

<Note>
  上記 9 つのトグルはすべて**受信者ごと**です —— `notifySubscriptionPlanChanged` と `notifyChargeback` も含みます。同じストアの 2 人が別々のイベントを購読でき、`update-recipient` は 9 キーのいずれも受け付けます。

  配信先**アドレス**は受信者リストに従います：マーチャント通知は設定された受信者へ送られ（リストが空の場合はストアオーナーのアカウントメールにフォールバック）、`supportEmail` へは送られません。
</Note>

## 制限

各ストアの受信者は最大 **5 件**です。上限を超えると 400 を返します。下限はありません —— ただし空のリストは無音を意味しません：ストアオーナーのアカウントメールにフォールバックします（次節参照）。消費者向けのトランザクションメール（注文レシート、サブスクリプション確認）は別系統であり、影響を受けません。

## フォールバック受信者

明示的な受信者が 1 件もない間、リストには `isPrimary: true` の合成エントリがちょうど 1 件含まれます：アドレスはストアオーナーのアカウントメール、トグルはストアレベルの `notify*` 設定、`createdAt` はストアの作成日時です。その `id` は `OWNER_<storeId>` 形式の安定したセンチネル値です。

これは**保存された行ではありません**。その id に対する `remove-recipient` は 404 を返します —— アカウントメールはフォールバックであり削除できません。置き換えるには実在の受信者を追加してください。その id に対する `update-recipient` は代わりに**その場で実体化**します：アカウントメールが実在の受信者として書き込まれ、パッチがその上に適用され、レスポンスは実際の UUID を返します。

最初の明示的な受信者を追加すると、フォールバックエントリは消えます。これは意図した可視の挙動です。

## 環境

受信者は**環境で分かれません**。リクエストは従来どおり `X-Environment` を付けて構いませんが、受信者の読み書きのフィルタや加工には使われません —— 同じストアは `test` でも `prod` でも同じリストを返します。

## 受信者の一覧取得

`list-recipients` エンドポイントはありません —— 受信者リストの取得は GraphQL のトップレベルクエリ `storeNotificationRecipients` を使います。明示的な受信者が未設定の場合、このクエリはフォールバックエントリも返します：

```graphql theme={"system"}
query GetStoreNotificationRecipients($storeId: String!) {
  storeNotificationRecipients(storeId: $storeId, limit: 10, offset: 0) {
    id
    email
    isPrimary
    createdAt
    preferences {
      notifyNewOrders
      notifyNewSubscriptions
      notifySubscriptionCanceled
      notifySubscriptionRenewed
      notifySubscriptionEnded
      notifySubscriptionPastDue
      notifySubscriptionUncanceled
      notifySubscriptionPlanChanged
      notifyChargeback
    }
  }
}
```

## エンドポイント

<CardGroup cols={3}>
  <Card title="受信者を追加" icon="plus" href="/ja/api-reference/endpoints/notification-recipients/add-recipient">
    マーチャント通知を受け取るアドレスを追加します。
  </Card>

  <Card title="受信者を更新" icon="pen" href="/ja/api-reference/endpoints/notification-recipients/update-recipient">
    受信者が購読するイベントを変更します。
  </Card>

  <Card title="受信者を削除" icon="trash" href="/ja/api-reference/endpoints/notification-recipients/remove-recipient">
    リストから受信者を削除します。
  </Card>
</CardGroup>
