責務の境界
加盟店のブラウザとサーバー
- 金額の確定・決済作成:加盟店サーバーで、注文を認可したうえで行う
- API キー・Webhook 署名鍵:サーバーにだけ保管する
- 商品提供の判断:検証済みの通知か、サーバー間の照会を根拠にする
- 復帰 URL のクエリ:表示の手掛かりにとどめ、注文の確定には使わない
- 自社注文の閲覧:自社のログインと所有権の検査で認可する
決済 ID は秘密ではありません。ID を知っていれば注文内容を返すエンドポイントを作らないでください。
専用決済ページ
パスキー認証と、支払い操作の組み立て・署名は専用決済ページ(加盟店サイトとは別の origin)の責務です。加盟店サイトは checkoutUrl へトップレベル遷移し、iframe・popup・モーダルで埋め込みません。
API の returnUrl は状態照会にも含まれるため、セッショントークンや秘密のクーポンなどを載せないでください。
ログ
x-stbl-api-key、Webhook 署名鍵、秘密鍵を記録しません。発行体の取引可否判断の理由を加盟店向け failedReason やログへ持ち込まない設計です。調査には決済 ID・注文 ID・時刻など、必要な範囲の識別情報を使ってください。