結論:課金ルールと監査データの変更を別々にreadbackする
2026年9月24日の公式更新を料金と監査へ反映する時は、refusalの課金判定とCompliance APIのActivity Feed変更を別の改修として扱います。出力前の拒否でも、stop_details.categoryがbio、frontier_llm、reasoning_extractionなら課金再開の対象です。一方、その他カテゴリの出力前拒否は引き続き非課金で、途中拒否は既に課金対象でした。拒否だから一律無料、または一律有料という集計にしないでください。
同じ更新で、Compliance APIのActivity Feedはfile name、project document name、artifact titleを返さなくなりました。過去に記録されたactivityも対象です。名前を必要とする業務は、IDと適切なCompliance Access Keyのread:compliance_user_data scopeを使う照会フローへ分け、Activity Feedの空欄をデータ欠損と即断しません。
一次情報はClaude Platform公式リリースノートとstop reason公式ドキュメントです。Complianceの権限とデータ境界はCompliance API公式ドキュメントでも確認します。既存のCompliance API session監査ガイドがsession取得を扱うのに対し、この記事は料金集計と名称データの変更に限定します。
今回の変更を比較する
| 対象 | 公式更新 | 運用で直す箇所 |
|---|---|---|
| 出力前refusal | 3カテゴリは課金再開、他カテゴリは非課金継続 | category、usage、modelを料金台帳へ保存 |
| 途中refusal | 既に課金対象 | 通常のrequest costと合算し、二重計上を防ぐ |
| Activity Feed名称 | filename・titleを空または省略 | ID照会と表示権限を別ジョブにする |
最初に、請求書の合計と自社ログの合計を同じものだと決めないことが重要です。自社側ではcategoryの分類、retry、fallback、streamの中断を記録し、請求側では最終的な料金明細と突合します。公式の料金表や契約条件が変わる可能性もあるため、記事の数値を固定的な見積もりにせず、公開直前の料金readbackと請求書を基準にします。
料金集計を直す8手順
- 現行分類を出す。stop reason、stop_details.category、model、provider、usage、request IDを期間別に集計します。
- 3カテゴリを分ける。
bio、frontier_llm、reasoning_extractionの出力前拒否を独立ラベルにします。 - 非課金条件を残す。その他の出力前拒否を無料扱いとして分け、欠損categoryと同じ箱に入れません。
- 途中拒否を確認する。途中まで出力した拒否は既存の課金処理に二重で入らないか確認します。
- retryを追跡する。同じユーザー操作から再試行されたrequestを親IDで束ね、料金はrequest単位で突合します。
- 公式明細と照合する。小さな期間と固定modelでテストし、請求書、Console、内部cost ledgerの差を記録します。
- 通知基準を更新する。refusal率とcost増加を分け、誤検知で安全機能を止めないアラートにします。
- 変更日を固定する。集計ジョブ、ダッシュボード、予算担当へ適用日とrollback方法を知らせます。
Compliance監査を直すチェックリスト
- Activity Feedの空欄・省略を「削除」や「障害」と誤認していない。
- file、project document、artifactのIDを監査の主キーとして保存している。
- 名称照会をread:compliance_user_data scopeのAccess Keyへ限定している。
- scopeの付いたkeyの保管、期限、利用者、監査ログがある。
- 過去データも名称が戻らない前提でレポートを再計算した。
- 表示に名称が必要な担当者と、IDだけで足りる保管担当を分けた。
- refusal集計とCompliance名称照会を同じジョブにしていない。
名称照会を追加する時は、常に名前をコピーするのではなく、画面表示が必要な時だけ許可されたscopeで取得する方法を選びます。Activity Feedから取得できるイベント情報と、IDを使って別途取得するユーザーデータは、保持期間もアクセス権も別にできるからです。監査の目的が「誰がいつ何をしたか」なら、名称ではなくIDと時刻で足りるケースもあります。
refusalの扱いも、単純なエラー率で評価しないでください。安全機能の拒否を減らすことが目的になると、危険な入力を通す誘因になります。category別の件数、対象業務、再試行、課金額、レビュー結果を並べ、費用の変化と安全上の意味を別の責任者が確認します。
改修の受け入れ条件は、料金と監査で別に作ります。料金側は、指定3カテゴリの出力前拒否、その他の出力前拒否、途中拒否、通常応答を含むfixtureを用意し、request ID単位の集計と請求明細を比較します。監査側は、名称が返る過去データ、空欄になる過去データ、名称照会が許可されるkey、scope不足のkeyを用意し、画面表示とエラーの違いを記録します。
変更を告知する時は、「拒否が増えた」「料金が上がった」「名前が見えない」という利用者の訴えを一つの障害にまとめません。サポート向けにはcategoryとrequest IDを確認する手順、監査担当にはID照会の権限手順、財務担当には公式明細との突合日を渡します。誰がどの公式ページを確認したかも変更票へリンクしておくと、次回の仕様更新で再調査しやすくなります。
特に監査レポートでは、名称がある行とない行を同じ粒度で比較しないようにします。ID、product surface、時刻、actorなど、名称以外の安定した列を中心にレポートを組み替え、名称が必要な画面だけに照会結果を表示します。変更前のレポートを保存する場合も、アクセスできる担当者と保持期限を明示し、Compliance APIの新しい仕様と矛盾する前提を残さないことが重要です。
よくある質問と次の行動
出力前のrefusalは無料ではないのですか?
カテゴリによります。3つの指定カテゴリは課金再開、その他は非課金継続です。stop_details.categoryを保存し、公式明細と突合してください。
Activity Feedのtitleが空ならデータを再取得できますか?
同じFeedから推測せず、公式のID照会とscopeを確認します。過去activityも空または省略になり得るため、再取得の成否を保証しません。
改修範囲が広すぎます。
まず一つのmodel、短い期間、限定tenantで料金と監査を別々にreadbackします。必要なら無料診断で責任境界を整理できます。
料金の基本整理はClaude料金ガイド、APIキーの責任分界はClaude APIキーの種類ガイド、session証跡はCompliance API session監査ガイドも参照してください。Miraigentの無料診断では、課金・安全・監査の変更を一つの運用表にまとめます。
