Stripe

Stripe本番切替—本人確認からlive鍵と本番設定差し替えまで(2026)

テスト通しの次。本番切替、テストデータはコピーしない、liveカタログと鍵、本番アプリが読む設定への差し替え。実カード通しは任意。

SaaSの月額課金を テスト用サンドボックスで通したあと、Stripeの 本番(live) に進む通し手順です。sk_test_ のままliveのPriceやWebhookを作ろうとしたり、手元の .env だけ差し替えて本番アプリが変わったつもりになったり、実カードで通さないと契約できないと思い込んだりすると、手戻りや不要な手数料が発生します。読み終わると、本人確認 → liveカタログ/鍵/Webhook → 本番アプリが読む設定へのlive差し替えまで揃え、実カード通しは任意だと切り分けられる状態になります。

画面ラベルや秘密の置き場(クラウドのシークレット、ホスティングの環境変数など)は環境ごとに違います。迷ったら Stripeドキュメント を優先してください。アカウント名・金額・エンドポイントURL・鍵の値・Price ID・環境固有の秘密名は載せません。

テストモードの通しそのものは サンドボックス編 を参照してください(別手順でも、税→カタログ→鍵→Webhook→テスト決済の型が揃っていれば同じです)。

この記事でわかること

前提・環境

項目内容
執筆時点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有効

アカウントステータスで要対応タスクが無く、PaymentsとPayoutsが有効になっていることを確認してください。

手順5: liveのAPIキーを安全な保管へ置く

開発者向けのAPIキー画面から、本番のPublishable(pk_live_)とSecret(sk_live_)を取得します。Secretは再表示できないことがあるので、表示ダイアログの時点でパスワードマネージャ等へ入れます。チャット・Git・スクショに平文を出さないでください。

liveのAPIキー画面(Secretはマスク)

本番キー表示ダイアログ(値はマスク)

安全な保管に pk_live_/sk_live_ があり、チャット・Git・スクショに鍵の平文が無いことを確認してください。

手順6: liveでProduct/Price/Tax/Portal/Webhookを揃える

テスト時と同じ型で、live側に作り直します。

項目要点
Product/Price表示額・税方針をテスト時と揃える。Price IDはlive用の別ID
Tax Rateinclusiveの税率を用意し、Checkout/Subscriptionに付与
Customer Portal解約タイミング(期間末など)を要件どおり
Webhook本番の公開URL。購読はテスト時と同型(checkout.session.completed ほか)
Signing secretlive用の 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向けサジェストをプロンプトに貼るだけでよい。

まとめ

参考リンク