Stripe
Stripe本番切替—本人確認からlive鍵と本番設定差し替えまで(2026)
テスト通しの次。本番切替、テストデータはコピーしない、liveカタログと鍵、本番アプリが読む設定への差し替え。実カード通しは任意。
SaaSの月額課金を テスト用サンドボックスで通したあと、Stripeの 本番(live) に進む通し手順です。sk_test_ のままliveのPriceやWebhookを作ろうとしたり、手元の .env だけ差し替えて本番アプリが変わったつもりになったり、実カードで通さないと契約できないと思い込んだりすると、手戻りや不要な手数料が発生します。読み終わると、本人確認 → liveカタログ/鍵/Webhook → 本番アプリが読む設定へのlive差し替えまで揃え、実カード通しは任意だと切り分けられる状態になります。
画面ラベルや秘密の置き場(クラウドのシークレット、ホスティングの環境変数など)は環境ごとに違います。迷ったら Stripeドキュメント を優先してください。アカウント名・金額・エンドポイントURL・鍵の値・Price ID・環境固有の秘密名は載せません。
テストモードの通しそのものは サンドボックス編 を参照してください(別手順でも、税→カタログ→鍵→Webhook→テスト決済の型が揃っていれば同じです)。
この記事でわかること
- テストと本番は別世界であること(
sk_test_ではliveを作れない) - 本人確認・口座・2FAは作業者本人が行い、鍵や身分証をチャットや共有メモに出さないこと
- カタログ/Webhookの作成はツールや共同作業者に任せてよいが、秘密の取り扱いは作業者本人が責任を持つこと
- テストデータはコピーせず、liveで税方針どおりのPriceを作り直すこと
- 手元の
.envではなく 本番アプリが実行時に読む設定 の差し替えがlive化であること - 実カード通しは必須ではないこと(返金しても決済手数料が残ることが多い)
- 作業前にAIへ渡す入力(貼り付け文)
前提・環境
| 項目 | 内容 |
|---|---|
| 執筆時点 | 2026-09 |
| 前提 | テストモードでCheckout(または同等)→ webhook → アプリ側で契約が有効になる通しが1回ある |
| モード | 本番(live)。テストの試験用顧客は持ち込まない |
| 到達点(必須) | 本人確認完了、liveのProduct/Price/Webhook/鍵、本番アプリ向け設定のlive差し替え |
| 到達点(任意) | 実カードでのCheckout → webhook → アプリ側で契約が有効 |
本番切替 → Payments 有効化(事業・口座・明細・2FA)
→ 任意オプションはスキップしてよい
→ テストデータはコピーしない
→ 身分証+セキュリティチェックリスト → アカウント有効
→ live API 鍵を安全な保管へ(チャットに出さない)
→ live で Product/Price/Tax Rate/Webhook/Portal
→ 明示確認後に、本番アプリが読む設定を live 差し替え(以降は実カード課金)
→ 実カード通しは手数料が残るため未実施でもよい
旧手順/Webナレッジとの手順差異
| 旧手順/Webナレッジ | 最新(この記事執筆時に確認したこと) |
|---|---|
| テスト用の鍵のままliveリソースを作る | 本番切替 → 有効化 → sk_live_ の順。sk_test_ ではliveを作れない |
| テストのProduct/顧客を本番へコピーする | コピーしない。税方針どおりliveのPriceを作り直す |
手元の .env を直せば本番もlive | 本番アプリが実行時に読む設定の差し替えが正本(置き場は環境による) |
| 実カードで通さないと「契約可能」と言えない | テスト通し+ live揃えで足りる。実カードは任意 |
| Stripe Tax/Climate/公開プロフィールを全部必須 | 多くは任意。税はアプリ側のinclusive Tax Rateで足りることが多い |
| 埋め込みブラウザでStripeログイン | 真っ白や別セッションになりやすい。通常のChrome/Edge |
手順
手順1: サンドボックス帯から本番環境に切り替える
Dashboard上部のサンドボックス帯にある 本番環境に切り替える から進みます。Payments有効化ウィザードで事業形態・ウェブサイト・入金口座・明細書表記・2FA(パスキー等)を揃えます。

本人確認・口座・身分証・バックアップコードの保管は 作業者本人が行ってください。鍵や身分証の画像・番号をチャットや共有ドキュメントに貼らないでください。
AIと一緒に進める場合は、次を AIへのプロンプトに含めてください。
本人確認・口座・身分証の入力とバックアップコードの保管はユーザーが行う。
Dashboard を勝手に遷移するな。鍵・身分証の平文や画像をチャットに出させるな。
マスク済みの画面記録の整理だけせよ。
「本番環境に切り替える」を押したあと、事業形態・ウェブサイト・入金口座・明細書表記・2FAのいずれか(またはその次)の入力画面が表示されていることを確認してください。
手順2: 任意オプションはスキップしてよい
Radarの有料強化、Stripe Tax、Climate、公開プロフィールなどは、要件が無ければスキップして構いません。日本向けの内税表示は、テスト時と同じく 手動Tax Rate(inclusive)+ Priceの税挙動で揃える方針でよいです。
入金スケジュールやRadar Liteなど、ウィザード内の既定で足りるものはそのまま進めます。
Stripe Tax/Climate/公開プロフィールなどの任意画面でスキップ(または後で設定)を選び、次の有効化画面に進んだことを確認してください(要件で有効化した場合は、その選択結果が画面に残っていることを確認してください)。
手順3: テストデータはコピーしない
有効化のあと、「テスト環境からデータをコピーしますか?」と聞かれたら データをコピーしない を選びます。テストの試験用顧客や、税方針が曖昧だったころの旧Priceを本番に持ち込むより、liveでカタログを作り直す方が安全です。

「データをコピーしない」を選び、liveの顧客一覧にテスト用の試験顧客が無いことを確認してください。
手順4: 本人確認とアカウント有効を待つ
身分証の提出とセキュリティチェックリストを済ませ、アカウントステータスで Payments/Payoutsが有効になるまで待ちます。一部の海外決済手段だけ一時停止のまま、という状態はあり得ます。メインのカード決済が有効なら次へ進めます。

アカウントステータスで要対応タスクが無く、PaymentsとPayoutsが有効になっていることを確認してください。
手順5: liveのAPIキーを安全な保管へ置く
開発者向けのAPIキー画面から、本番のPublishable(pk_live_)とSecret(sk_live_)を取得します。Secretは再表示できないことがあるので、表示ダイアログの時点でパスワードマネージャ等へ入れます。チャット・Git・スクショに平文を出さないでください。


安全な保管に pk_live_/sk_live_ があり、チャット・Git・スクショに鍵の平文が無いことを確認してください。
手順6: liveでProduct/Price/Tax/Portal/Webhookを揃える
テスト時と同じ型で、live側に作り直します。
| 項目 | 要点 |
|---|---|
| Product/Price | 表示額・税方針をテスト時と揃える。Price IDはlive用の別ID |
| Tax Rate | inclusiveの税率を用意し、Checkout/Subscriptionに付与 |
| Customer Portal | 解約タイミング(期間末など)を要件どおり |
| Webhook | 本番の公開URL。購読はテスト時と同型(checkout.session.completed ほか) |
| Signing secret | live用の whsec_。チャットに出さない |
エンドポイントURL・Destination ID・Price IDは公開記事やチャットに出さないでください。実行時に秘密を読む構成なら、差し替え後の再デプロイが不要なこともあります(環境による)。
liveの商品カタログ・Customer Portal・Webhookエンドポイントがあり、Signing secretが安全な保管にあることを確認してください。
手順7: 本番アプリが読む設定をliveに差し替える(ここがアプリのlive化)
手元の .env や作業用ファイルに鍵を置いただけでは、公開中のアプリはまだtestのままです。正本は、本番アプリが 実行時に読む 設定です(クラウドのシークレット、ホスティングの環境変数、シークレット同期など。置き場は環境ごとに違います)。
差し替え対象の例:
- Secret/Publishable(
sk_live_/pk_live_) - liveのPrice ID(プランごと)
- Webhook Signing secret
- 必要ならTax Rate ID
人間の明示確認後にだけ差し替えてください。差し替え直後からCheckoutは実カード課金になります。確認なしの差し替えは禁止です。
AIと一緒に差し替える場合は、次を AIへのプロンプトに含めてください。
本番アプリが実行時に読む設定への live 差し替えは、ユーザーが明示確認してからだけ行え。
確認前に sk_live_/Price/Webhook 署名秘密を書き込むな。チャットに鍵の平文を出すな。
本番アプリが実行時に読む設定に sk_live_/pk_live_/liveのPrice ID/Signing secretが入っていることを確認してください(手元の .env だけの差し替えで終わっていないこと)。
手順8: 実カード通し(任意・スキップ可)
返金しても 決済手数料は戻らないことが多いです。必須にはしません。
スキップしてよい目安は次の両方です。
1.テストモードで、Checkout(または同等)→ webhook成功 → アプリ側で契約が有効になる通しが1回ある
2.本番アプリが実行時に読む設定に、liveのAPI鍵・Price・Webhook署名秘密が入っている
通す場合は、Checkout URLをチャットに貼らず、少額で決済してすぐ返金する想定にしてください。
テストモードでの通しと、本番アプリ向け設定へのlive差し替えが済んでいることを確認してください。実カードで通す場合は、少額決済のあとwebhookが成功し、アプリ側で契約が有効になったことを確認してください。
うまくいかないとき
| 症状 | 見ること |
|---|---|
| liveのPrice/Webhookが作れない | まだ sk_test_/テストモードにいないか。本番切替と有効化が先 |
| アプリがtestのまま | 本番アプリが読む設定を差し替えたか。手元の .env だけ見ていないか |
| 埋め込みブラウザでStripeが真っ白 | 通常のChrome/Edgeでやり直す |
| 本人確認中にDashboardの状態がずれる | 本人確認が終わるまで他の操作・自動操作を止め、必要な記録だけ残す |
| 「コピーしない」を選んでカタログが空 | 想定どおり。手順6でliveに作り直す |
| 実カードを通さないと不安 | 手数料が残る点を先に見る。テスト通し+ live揃えで足りるか再確認 |
作業前にAIへ渡す入力
次は、読者が AIへのプロンプト(またはrules)に出す指示のサジェストです。そのままコピーして使えます。長い人間向け手順は書きません。
AI向け:永続ルール(rules / AGENTS.md)
Stripe 本番切替は手順解説型。sk_test_ では live を作るな。本人確認・口座・身分証・sk_live_ 保管はユーザー。
テストデータはコピーするな。鍵・Webhook 秘密・Price ID・エンドポイント URL・環境固有の秘密名をチャットや Git に出すな。
本番アプリが実行時に読む設定の差し替えは人間の明示確認後のみ。手元の .env だけ直して本番 live 化と言うな。
確認一文は別環境の読者が置き換えられる一般語で書け(特定クラウド製品名やリポ専用パスを主役にするな)。
実カード通しは必須にしない。埋め込みブラウザで Stripe にログインするな。
AI向け:この作業の開始時にチャットへ貼る文
Stripe 本番切替を一緒に進める。秘密や Checkout の長い URL・身分証はチャットに貼るな。
前提→旧手順/Webナレッジとの手順差異→番号手順(各末尾の確認まで)で案内し、確認後に次へ。
本人確認・口座・身分証はユーザー。Dashboard を勝手に遷移するな。カタログ/Webhook は案内と ID 記録まで。
本番アプリが読む設定の差し替えはユーザー確認後のみ。実カード通しは勧めるな(手数料の話を先に)。
人間向け
なし。上のAI向けサジェストをプロンプトに貼るだけでよい。
まとめ
- 本番切替 → 有効化 →
sk_live_→ liveカタログ/Webhook → 本番アプリが読む設定の差し替え - テストデータはコピーしない
- 手元の
.envだけでは本番は変わらない - 実カード通しは任意(手数料が残ることが多い)
- 本人確認は人間、鍵はチャットに出さない