---
generated_at: 2026-02-24 10:30:00
metrics:
  claims_total: 145
  claims_with_evidence: 145
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：payment.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧（payment.csv）の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：145 / 145、根拠なし：0
- 優先レビュー（高）
  1. **金額計算関連テスト（UT-PAY-028〜038）**：キャプチャ・返金の金額計算ロジック
  2. **プロバイダー連携テスト（UT-PAY-061〜081）**：外部プロバイダーとの連携処理
  3. **通貨変換テスト（UT-PAY-082〜089）**：getSmallestUnit/getAmountFromSmallestUnitの精度

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `packages/modules/payment/src/services/payment-module.ts`
- E-02: `packages/modules/payment/src/services/payment-provider.ts`
- E-03: `packages/modules/payment/src/models/payment.ts`
- E-04: `packages/modules/payment/src/models/payment-collection.ts`
- E-05: `packages/modules/payment/src/models/payment-session.ts`
- E-06: `packages/modules/payment/src/models/capture.ts`
- E-07: `packages/modules/payment/src/models/refund.ts`
- E-08: `packages/modules/payment/src/models/refund-reason.ts`
- E-09: `packages/modules/payment/src/models/account-holder.ts`
- E-10: `packages/modules/payment/src/models/payment-provider.ts`
- E-11: `packages/modules/payment/src/providers/payment-medusa/utils/get-smallest-unit.ts`
- E-12: `packages/modules/payment/src/providers/payment-medusa/services/medusa-payments.ts`
- E-13: `packages/modules/payment/src/providers/system.ts`
- E-14: `packages/modules/payment/src/loaders/providers.ts`

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | roundToCurrencyPrecision - 既知通貨で正しい精度に丸められること | E-01 (lines 156-173) | ○ |
| C-02 | roundToCurrencyPrecision - 未知の通貨でフル精度が維持されること | E-01 (lines 168-170) | ○ |
| C-03 | roundToCurrencyPrecision - 金額が0の場合 | E-01 (lines 156-173) | ○ |
| C-04 | createPaymentCollections - 単一のPaymentCollectionが作成されること | E-01 (lines 176-204) | ○ |
| C-05 | createPaymentCollections - 複数のPaymentCollectionが作成されること | E-01 (lines 176-204) | ○ |
| C-06 | createPaymentCollections - 必須フィールドが欠けている場合エラー | E-01, E-04 | ○ |
| C-07 | updatePaymentCollections - IDでPaymentCollectionが更新されること | E-01 (lines 214-265) | ○ |
| C-08 | updatePaymentCollections - セレクターでPaymentCollectionが更新されること | E-01 (lines 237-255) | ○ |
| C-09 | updatePaymentCollections - 存在しないIDの場合エラー | E-01 | ○ |
| C-10 | upsertPaymentCollections - IDなしで新規作成されること | E-01 (lines 275-323) | ○ |
| C-11 | upsertPaymentCollections - IDありで更新されること | E-01 (lines 303-307) | ○ |
| C-12 | upsertPaymentCollections - 作成と更新が混在する場合 | E-01 (lines 309-320) | ○ |
| C-13 | completePaymentCollections - 単一のPaymentCollectionが完了されること | E-01 (lines 325-358) | ○ |
| C-14 | completePaymentCollections - 複数のPaymentCollectionが完了されること | E-01 (lines 325-358) | ○ |
| C-15 | createPaymentSession - PaymentSessionが作成されること | E-01 (lines 360-416) | ○ |
| C-16 | createPaymentSession - プロバイダーセッションのデータがマージされること | E-01 (lines 390-396) | ○ |
| C-17 | createPaymentSession - プロバイダーエラー時にセッションがクリーンアップされること | E-01 (lines 398-413) | ○ |
| C-18 | updatePaymentSession - PaymentSessionが更新されること | E-01 (lines 440-476) | ○ |
| C-19 | updatePaymentSession - ステータスが明示的に設定されること | E-01 (lines 468-469) | ○ |
| C-20 | deletePaymentSession - PaymentSessionが削除されること | E-01 (lines 478-495) | ○ |
| C-21 | deletePaymentSession - プロバイダーのセッションも削除されること | E-01 (lines 490-491) | ○ |
| C-22 | authorizePaymentSession - セッションが認可されPaymentが作成されること | E-01 (lines 497-579) | ○ |
| C-23 | authorizePaymentSession - 既に認可済みの場合は冪等性が保たれること | E-01 (lines 522-525) | ○ |
| C-24 | authorizePaymentSession - プロバイダーがCAPTUREDを返す場合自動キャプチャされること | E-01 (lines 588-629) | ○ |
| C-25 | authorizePaymentSession - 認可が拒否された場合エラー | E-01 (lines 535-551) | ○ |
| C-26 | authorizePaymentSession - Payment作成失敗時にプロバイダーがキャンセルされること | E-01 (lines 561-570) | ○ |
| C-27 | updatePayment - Paymentが更新されること | E-01 (lines 634-644) | ○ |
| C-28 | capturePayment - 全額キャプチャされること | E-01 (lines 646-705) | ○ |
| C-29 | capturePayment - 一部金額がキャプチャされること | E-01 (lines 727-729) | ○ |
| C-30 | capturePayment - キャンセル済みPaymentのキャプチャでエラー | E-01 (lines 716-721) | ○ |
| C-31 | capturePayment - 認可額を超えるキャプチャでエラー | E-01 (lines 740-750) | ○ |
| C-32 | capturePayment - 既にキャプチャ済みの場合は冪等性が保たれること | E-01 (lines 723-725) | ○ |
| C-33 | capturePayment - 残りのキャプチャ可能額と同額の場合 | E-01 (lines 753-759) | ○ |
| C-34 | capturePayment - プロバイダーエラー時にCaptureが削除されること | E-01 (lines 692-697) | ○ |
| C-35 | refundPayment - 全額返金されること | E-01 (lines 819-859) | ○ |
| C-36 | refundPayment - 一部金額が返金されること | E-01 (lines 867-869) | ○ |
| C-37 | refundPayment - キャプチャ額を超える返金でエラー | E-01 (lines 881-886) | ○ |
| C-38 | refundPayment - プロバイダーエラー時にRefundが削除されること | E-01 (lines 843-847) | ○ |
| C-39 | cancelPayment - Paymentがキャンセルされること | E-01 (lines 927-952) | ○ |
| C-40 | cancelPayment - プロバイダーのキャンセルが呼び出されること | E-01 (lines 939-944) | ○ |
| C-41 | maybeUpdatePaymentCollection_ - ステータスがNOT_PAIDに更新されること | E-01 (lines 1002-1005) | ○ |
| C-42 | maybeUpdatePaymentCollection_ - ステータスがAWAITINGに更新されること | E-01 (lines 1002-1005) | ○ |
| C-43 | maybeUpdatePaymentCollection_ - ステータスがPARTIALLY_AUTHORIZEDに更新されること | E-01 (lines 1007-1019) | ○ |
| C-44 | maybeUpdatePaymentCollection_ - ステータスがAUTHORIZEDに更新されること | E-01 (lines 1007-1019) | ○ |
| C-45 | maybeUpdatePaymentCollection_ - ステータスがCOMPLETEDに更新されること | E-01 (lines 1022-1036) | ○ |
| C-46 | listPaymentProviders - プロバイダー一覧が取得されること | E-01 (lines 1051-1069) | ○ |
| C-47 | listPaymentProviders - フィルターが適用されること | E-01 (lines 1051-1069) | ○ |
| C-48 | listAndCountPaymentProviders - プロバイダー一覧とカウントが取得されること | E-01 (lines 1071-1089) | ○ |
| C-49 | createAccountHolder - AccountHolderが作成されること | E-01 (lines 1091-1129) | ○ |
| C-50 | createAccountHolder - 既存のAccountHolderがコンテキストにある場合はそれを返すこと | E-01 (lines 1097-1099) | ○ |
| C-51 | createAccountHolder - プロバイダーが空を返す場合はAccountHolderが作成されないこと | E-01 (lines 1115-1127) | ○ |
| C-52 | updateAccountHolder - AccountHolderが更新されること | E-01 (lines 1131-1169) | ○ |
| C-53 | updateAccountHolder - コンテキストにaccount_holderがない場合エラー | E-01 (lines 1137-1143) | ○ |
| C-54 | deleteAccountHolder - AccountHolderが削除されること | E-01 (lines 1171-1191) | ○ |
| C-55 | deleteAccountHolder - プロバイダーの削除も呼び出されること | E-01 (lines 1185-1190) | ○ |
| C-56 | listPaymentMethods - PaymentMethod一覧が取得されること | E-01 (lines 1193-1209) | ○ |
| C-57 | listAndCountPaymentMethods - PaymentMethod一覧とカウントが取得されること | E-01 (lines 1211-1230) | ○ |
| C-58 | createPaymentMethods - 単一のPaymentMethodが作成されること | E-01 (lines 1232-1266) | ○ |
| C-59 | createPaymentMethods - 複数のPaymentMethodが作成されること | E-01 (lines 1248-1255) | ○ |
| C-60 | getWebhookActionAndData - Webhook処理結果が取得されること | E-01 (lines 1268-1279) | ○ |
| C-61 | PaymentProviderService.retrieveProvider - 登録済みプロバイダーが取得されること | E-02 (lines 57-77) | ○ |
| C-62 | PaymentProviderService.retrieveProvider - 未登録プロバイダーでエラー | E-02 (lines 60-76) | ○ |
| C-63 | PaymentProviderService.retrieveProvider - AwilixResolutionErrorが適切にハンドリングされること | E-02 (lines 61-69) | ○ |
| C-64 | PaymentProviderService.createSession - プロバイダーのinitiatePaymentが呼び出されること | E-02 (lines 79-86) | ○ |
| C-65 | PaymentProviderService.updateSession - プロバイダーのupdatePaymentが呼び出されること | E-02 (lines 88-95) | ○ |
| C-66 | PaymentProviderService.deleteSession - プロバイダーのdeletePaymentが呼び出されること | E-02 (lines 97-103) | ○ |
| C-67 | PaymentProviderService.authorizePayment - プロバイダーのauthorizePaymentが呼び出されること | E-02 (lines 105-111) | ○ |
| C-68 | PaymentProviderService.getStatus - プロバイダーのgetPaymentStatusが呼び出されること | E-02 (lines 113-119) | ○ |
| C-69 | PaymentProviderService.capturePayment - プロバイダーのcapturePaymentが呼び出されること | E-02 (lines 121-127) | ○ |
| C-70 | PaymentProviderService.cancelPayment - プロバイダーのcancelPaymentが呼び出されること | E-02 (lines 129-135) | ○ |
| C-71 | PaymentProviderService.refundPayment - プロバイダーのrefundPaymentが呼び出されること | E-02 (lines 137-143) | ○ |
| C-72 | PaymentProviderService.retrieveAccountHolder - プロバイダーのretrieveAccountHolderが呼び出されること | E-02 (lines 145-158) | ○ |
| C-73 | PaymentProviderService.retrieveAccountHolder - 未サポートの場合は空オブジェクトが返却されること | E-02 (lines 150-155) | ○ |
| C-74 | PaymentProviderService.createAccountHolder - プロバイダーのcreateAccountHolderが呼び出されること | E-02 (lines 160-173) | ○ |
| C-75 | PaymentProviderService.createAccountHolder - 未サポートの場合は空オブジェクトが返却されること | E-02 (lines 165-170) | ○ |
| C-76 | PaymentProviderService.updateAccountHolder - プロバイダーのupdateAccountHolderが呼び出されること | E-02 (lines 175-188) | ○ |
| C-77 | PaymentProviderService.deleteAccountHolder - プロバイダーのdeleteAccountHolderが呼び出されること | E-02 (lines 190-203) | ○ |
| C-78 | PaymentProviderService.listPaymentMethods - プロバイダーのlistPaymentMethodsが呼び出されること | E-02 (lines 205-218) | ○ |
| C-79 | PaymentProviderService.listPaymentMethods - 未サポートの場合は空配列が返却されること | E-02 (lines 210-215) | ○ |
| C-80 | PaymentProviderService.savePaymentMethod - プロバイダーのsavePaymentMethodが呼び出されること | E-02 (lines 220-233) | ○ |
| C-81 | PaymentProviderService.getWebhookActionAndData - プロバイダーのgetWebhookActionAndDataが呼び出されること | E-02 (lines 235-242) | ○ |
| C-82 | getSmallestUnit - USD(2桁通貨)で正しく変換されること | E-11 (lines 45-64) | ○ |
| C-83 | getSmallestUnit - JPY(0桁通貨)で正しく変換されること | E-11 (lines 6-16) | ○ |
| C-84 | getSmallestUnit - JOD(3桁通貨)で正しく変換されること | E-11 (lines 24) | ○ |
| C-85 | getSmallestUnit - 金額が0の場合 | E-11 (lines 45-64) | ○ |
| C-86 | getSmallestUnit - 小数点以下が多い場合丸められること | E-11 (lines 51-53) | ○ |
| C-87 | getAmountFromSmallestUnit - USD(2桁通貨)で正しく変換されること | E-11 (lines 72-79) | ○ |
| C-88 | getAmountFromSmallestUnit - JPY(0桁通貨)で正しく変換されること | E-11 (lines 72-79) | ○ |
| C-89 | getAmountFromSmallestUnit - JOD(3桁通貨)で正しく変換されること | E-11 (lines 72-79) | ○ |
| C-90 | SystemPaymentProvider.initiatePayment - UUIDを含むレスポンスが返却されること | E-13 (lines 48-52) | ○ |
| C-91 | SystemPaymentProvider.authorizePayment - AUTHORIZEDステータスが返却されること | E-13 (lines 66-69) | ○ |
| C-92 | SystemPaymentProvider.capturePayment - 空データが返却されること | E-13 (lines 80-84) | ○ |
| C-93 | SystemPaymentProvider.refundPayment - 空データが返却されること | E-13 (lines 104-106) | ○ |
| C-94 | SystemPaymentProvider.cancelPayment - 空データが返却されること | E-13 (lines 108-110) | ○ |
| C-95 | SystemPaymentProvider.getPaymentStatus - 未実装エラーがスローされること | E-13 (lines 54-58) | ○ |
| C-96 | SystemPaymentProvider.getWebhookActionAndData - NOT_SUPPORTEDアクションが返却されること | E-13 (lines 112-116) | ○ |
| C-97 | MedusaPaymentsProvider.validateOptions - endpointが欠けている場合エラー | E-12 (lines 758-763) | ○ |
| C-98 | MedusaPaymentsProvider.validateOptions - api_keyが欠けている場合エラー | E-12 (lines 769-772) | ○ |
| C-99 | MedusaPaymentsProvider.validateOptions - webhook_secretが欠けている場合エラー | E-12 (lines 765-768) | ○ |
| C-100 | MedusaPaymentsProvider.validateOptions - environment_handleとsandbox_handleの両方が欠けている場合エラー | E-12 (lines 775-782) | ○ |
| C-101 | MedusaPaymentsProvider.handleStripeError - MedusaCardErrorでリトライなしとデータ返却 | E-12 (lines 161-174) | ○ |
| C-102 | MedusaPaymentsProvider.handleStripeError - MedusaConnectionErrorでリトライ | E-12 (lines 184-189) | ○ |
| C-103 | MedusaPaymentsProvider.handleStripeError - MedusaRateLimitErrorでリトライ | E-12 (lines 185) | ○ |
| C-104 | MedusaPaymentsProvider.executeWithRetry - 成功時は結果が返却されること | E-12 (lines 206-240) | ○ |
| C-105 | MedusaPaymentsProvider.executeWithRetry - リトライ後に成功した場合結果が返却されること | E-12 (lines 222-235) | ○ |
| C-106 | MedusaPaymentsProvider.executeWithRetry - 最大リトライ回数超過でエラー | E-12 (lines 237-238) | ○ |
| C-107 | MedusaPaymentsProvider.getPaymentStatus - Paymentステータスが取得されること | E-12 (lines 242-258) | ○ |
| C-108 | MedusaPaymentsProvider.getPaymentStatus - IDがない場合エラー | E-12 (lines 245-249) | ○ |
| C-109 | MedusaPaymentsProvider.initiatePayment - Payment intentが作成されること | E-12 (lines 260-294) | ○ |
| C-110 | MedusaPaymentsProvider.capturePayment - Paymentがキャプチャされること | E-12 (lines 331-354) | ○ |
| C-111 | MedusaPaymentsProvider.capturePayment - キャプチャ失敗時にエラー | E-12 (lines 346-351) | ○ |
| C-112 | MedusaPaymentsProvider.cancelPayment - Paymentがキャンセルされること | E-12 (lines 302-329) | ○ |
| C-113 | MedusaPaymentsProvider.cancelPayment - IDがない場合は元データを返却すること | E-12 (lines 307-309) | ○ |
| C-114 | MedusaPaymentsProvider.refundPayment - 返金が処理されること | E-12 (lines 360-383) | ○ |
| C-115 | MedusaPaymentsProvider.refundPayment - IDがない場合エラー | E-12 (lines 365-368) | ○ |
| C-116 | MedusaPaymentsProvider.createAccountHolder - AccountHolderが作成されること | E-12 (lines 450-496) | ○ |
| C-117 | MedusaPaymentsProvider.createAccountHolder - 既存のaccount_holder.data.idがある場合はそれを返すこと | E-12 (lines 455-457) | ○ |
| C-118 | MedusaPaymentsProvider.createAccountHolder - 顧客情報がない場合エラー | E-12 (lines 459-461) | ○ |
| C-119 | MedusaPaymentsProvider.updateAccountHolder - AccountHolderが更新されること | E-12 (lines 498-553) | ○ |
| C-120 | MedusaPaymentsProvider.updateAccountHolder - account_holder.data.idがない場合エラー | E-12 (lines 503-506) | ○ |
| C-121 | MedusaPaymentsProvider.updateAccountHolder - 顧客情報がない場合は空を返すこと | E-12 (lines 509-512) | ○ |
| C-122 | MedusaPaymentsProvider.deleteAccountHolder - AccountHolderが削除されること | E-12 (lines 555-576) | ○ |
| C-123 | MedusaPaymentsProvider.deleteAccountHolder - account_holder.data.idがない場合エラー | E-12 (lines 560-564) | ○ |
| C-124 | MedusaPaymentsProvider.listPaymentMethods - PaymentMethod一覧が取得されること | E-12 (lines 578-601) | ○ |
| C-125 | MedusaPaymentsProvider.listPaymentMethods - account_holder.data.idがない場合は空配列を返すこと | E-12 (lines 584-586) | ○ |
| C-126 | MedusaPaymentsProvider.savePaymentMethod - PaymentMethodが保存されること | E-12 (lines 603-630) | ○ |
| C-127 | MedusaPaymentsProvider.savePaymentMethod - account_holder.data.idがない場合エラー | E-12 (lines 610-612) | ○ |
| C-128 | MedusaPaymentsProvider.getStatus - requires_payment_methodでPENDINGが返却されること | E-12 (lines 636-640) | ○ |
| C-129 | MedusaPaymentsProvider.getStatus - requires_payment_methodでエラーありの場合ERRORが返却されること | E-12 (lines 637-639) | ○ |
| C-130 | MedusaPaymentsProvider.getStatus - requires_actionでREQUIRES_MOREが返却されること | E-12 (lines 644-648) | ○ |
| C-131 | MedusaPaymentsProvider.getStatus - canceledでCANCELEDが返却されること | E-12 (lines 649-650) | ○ |
| C-132 | MedusaPaymentsProvider.getStatus - requires_captureでAUTHORIZEDが返却されること | E-12 (lines 651-652) | ○ |
| C-133 | MedusaPaymentsProvider.getStatus - succeededでCAPTUREDが返却されること | E-12 (lines 653-654) | ○ |
| C-134 | MedusaPaymentsProvider.getWebhookActionAndData - payment_intent.createdでPENDINGが返却されること | E-12 (lines 669-677) | ○ |
| C-135 | MedusaPaymentsProvider.getWebhookActionAndData - payment_intent.canceledでCANCELEDが返却されること | E-12 (lines 678-685) | ○ |
| C-136 | MedusaPaymentsProvider.getWebhookActionAndData - payment_intent.payment_failedでFAILEDが返却されること | E-12 (lines 686-693) | ○ |
| C-137 | MedusaPaymentsProvider.getWebhookActionAndData - payment_intent.amount_capturable_updatedでAUTHORIZEDが返却されること | E-12 (lines 702-712) | ○ |
| C-138 | MedusaPaymentsProvider.getWebhookActionAndData - payment_intent.succeededでSUCCESSFULが返却されること | E-12 (lines 725-733) | ○ |
| C-139 | MedusaPaymentsProvider.getWebhookActionAndData - 未知のイベントタイプでNOT_SUPPORTEDが返却されること | E-12 (lines 735) | ○ |
| C-140 | registrationFn - プロバイダーがコンテナに登録されること | E-14 (lines 16-35) | ○ |
| C-141 | registrationFn - identifierがないプロバイダーでエラー | E-14 (lines 17-22) | ○ |
| C-142 | default loader - SystemPaymentProviderが登録されること | E-14 (lines 55-57) | ○ |
| C-143 | default loader - MedusaPaymentsProviderがcloud設定ありで登録されること | E-14 (lines 68-84) | ○ |
| C-144 | registerProvidersInDb - プロバイダーがDBに登録されること | E-14 (lines 95-121) | ○ |
| C-145 | registerProvidersInDb - 既存プロバイダーが無効化されること | E-14 (lines 110-114) | ○ |

## 4) 不足情報（Unknown / Missing）
- 根拠なしの項目はありません。

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 全てのテストケースがソースコードに基づいて生成されており、根拠が明確です。

以下の観点で追加レビューを推奨：
1. **金額計算ロジック**：キャプチャ・返金の境界値テストが適切にカバーされているか確認
2. **通貨精度**：多様な通貨（0桁、2桁、3桁）での変換精度テスト
3. **エラーハンドリング**：プロバイダー連携時のエラーリカバリーが適切にテストされているか

## 6) レビュアーチェックリスト（最小）
- [ ] 金額計算関連テスト（UT-PAY-028〜038）の境界値条件が適切か確認
- [ ] 通貨変換テスト（UT-PAY-082〜089）で全ての通貨タイプがカバーされているか確認
- [ ] プロバイダー連携テストでエラーリカバリーが適切にテストされているか確認
- [ ] Webhook処理テストで全てのイベントタイプがカバーされているか確認
- [ ] 冪等性保証テスト（UT-PAY-023, UT-PAY-032）の条件が正確か確認
