# API キー API キーを使用して、API リクエストを認証します。 Stripe は、お客様のアカウントの API キーを使用して API リクエストを認証します。リクエストに有効なキーが含まれていない場合、Stripe は[無効なリクエストエラー](https://docs.stripe.com/error-handling.md#invalid-request-errors)を返します。リクエストに削除済みまたは失効したキーが含まれている場合、Stripe は[認証エラー](https://docs.stripe.com/error-handling.md#authentication-errors)を返します。 [開発者向けダッシュボード](https://dashboard.stripe.com/test/apikeys)を使用して、API キーの作成、表示、削除、ローテーションを行えます。API キーには [API キー](https://dashboard.stripe.com/test/apikeys)タブからアクセスできます。 > #### Stripe を初めて使用する場合 > > - **ビジネスの安全を確保:** キー管理に関する[ベストプラクティス](https://docs.stripe.com/keys-best-practices.md)をご覧ください。 - **構築とテスト**: *サンドボックス (テストモード) キー* を使用します。サンドボックスキーは`pk_test_` (公開可能)、`rk_test_` (制限付き)、`sk_test_` (シークレット) で始まります。これらを使用すると、本番データに影響を与えずにテストできます。 - **実際の決済を受け付ける準備ができたら**: `pk_live_`、`rk_live_`、`sk_live_` で始まる **本番環境キー** に切り替えます。手順については、[本番環境への切り替え](https://docs.stripe.com/keys.md#switch-to-live-mode)をご覧ください。 - **Webhook 署名シークレットを確認する必要がある場合**: Webhook シークレットは API キーとは別です。各 Webhook エンドポイントのダッシュボードの [Webhooks](https://dashboard.stripe.com/webhooks) セクションで確認できます。 ## キーの種類 Stripe アカウントに登録すると、3 種類の API キーが作成されます。 | タイプ | 安全に公開可能 | 説明 | | ------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | 制限付き API キー (RAK)`rk_...` | いいえ | 権限を制御できる API キーです。キーが悪意のある第三者に取得された場合の事業への影響を最小限に抑えられます。必要な数だけ RAK を作成し、アプリケーションの各部分に割り当てることが可能です。RAK の設定と使用方法については、[こちらのガイド](https://docs.stripe.com/keys/restricted-api-keys.md)をご覧ください。 | | 公開可能 API キー | はい | フロントエンドコードや配布するアプリケーションに使用できる API キーです。 | | シークレット API キー `sk_...` | いいえ | すべての Stripe API に対して無制限の権限を持つ API キーです。権限を制限できないため、新しいユースケースでシークレットキーを使用することは推奨しておらず、既存の実装については、シークレットキーの使用を RAK に移行することを推奨しています。 | | 組織 API キー`sk_org_...` | いいえ | 組織レベルで機能する API キー。アカウントレベルの制限付きキーまたはシークレットキーと同様ですが、[組織](https://docs.stripe.com/get-started/account/orgs.md)レベルで動作し、複数の Stripe アカウントを一括管理できます。[こちらのガイド](https://docs.stripe.com/keys/organization-api-keys.md)では、組織 API キーの設定方法と使用方法について説明しています。 | 一部のホスティングプラットフォームが発行する[マネージド API キー](https://docs.stripe.com/keys/managed-api-keys.md)もサポートしています。マネージドキーは、ホスティングプラットフォームがホストされたアプリケーションに直接提供するシークレット API キーです。マネージドキーを直接扱う必要はなく、ホスティングプロバイダーが発行とローテーションを行います。 > #### Webhook 署名シークレット > > Webhook 署名シークレットは API キーではなく、Webhook ごとのシークレットであり、Webhook の受信側がその Webhook が実際に Stripe から送信されたことを認証するために使用します。各 Webhook エンドポイントの署名シークレットは、ダッシュボードの [Webhooks](https://dashboard.stripe.com/webhooks) セクションで確認できます。 2026 年 5 月より前に Stripe アカウントを作成した場合、制限付き API キーがない可能性があります。RAK を作成し、シークレットキーから移行することを推奨します。 API キーを安全に管理する責任は、お客様にあります。[API キーを保護するためのベストプラクティス](https://docs.stripe.com/keys-best-practices.md)に関するガイドをご覧ください。 ### サンドボックスモードと本番環境 Stripe の API リクエストはすべて、*サンドボックス* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes)または*本番環境* (Use this mode when you’re ready to launch your app. Card networks or payment providers process payments)で行われます。サンドボックスでは連携をテストしてテストデータにアクセスでき、本番環境では実際のアカウントデータにアクセスできます。各モードにはそれぞれ専用の API キーのセットがあり、一方のモードのオブジェクトにはもう一方のモードからアクセスできません。たとえば、サンドボックスの[プロダクトオブジェクト](https://docs.stripe.com/api/products/object.md)を本番環境の決済に含めることはできません。 | タイプ | 使用するタイミング | オブジェクト | 使用方法 | 考慮事項 | | ------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | サンドボックス | サンドボックスと関連するテスト API キーを使用してシステムを構築します。サンドボックスでは、カードネットワークとペイメントプロバイダーは決済を処理しません。 | API コールは、シミュレーションされたオブジェクトを返します。たとえば、テストの `account`、`payment`、`customer`、`charge`、`refund`、`transfer`、`balance`、`subscription` オブジェクトを取得して使用することができます。 | [テスト用のクレジットカードとアカウント](https://docs.stripe.com/testing.md#cards)を使用します。実際の支払い方法を受け付けることも、実際のアカウントを処理することもできません。 | [Identity](https://docs.stripe.com/identity.md) による検証チェックは行われません。また、Connect [account (アカウント) オブジェクト](https://docs.stripe.com/api/accounts/object.md)は機密フィールドを返しません。 | | 本番環境 | 実装を立ち上げて実際の支払いを受け付ける準備ができたら、本番環境と関連する本番 API キーを使用します。本番環境では、カードネットワークとペイメントプロバイダーは決済を処理します。 | API コールは、実際のオブジェクトを返します。たとえば、実際の `account`、`payment`、`customer`、`charge`、`refund`、`transfer`、`balance`、`subscription` オブジェクトを取得して使用することができます。 | 実際のクレジットカードを受け付けて、顧客のアカウントを処理します。クレジットカードとアカウントの実際の支払いのオーソリ、支払い、キャプチャーを受け付けることができます。 | 不審請求の申請のフローはより細かく、[テストプロセス](https://docs.stripe.com/testing.md#disputes)はよりシンプルです。また、一部の[支払い方法](https://docs.stripe.com/payments/payment-methods.md)ではフローがさらに細かく、ステップ数が多くなります。 | ## キーを保護する アプリケーションのバックエンドの外部に漏洩しても安全なのは、公開可能 API キーだけです。制限付き API キーを含む、その他の Stripe API キーの保護はお客様の責任で行ってください。キーを保護する方法をいくつかご紹介します。 - 機密性の高いキーは、ホスティングプラットフォームが提供するシークレットの保管庫に保存してください。[このブログ記事](https://stripe.dev/blog/securing-stripe-api-keys-aws-automatic-rotation)に例があります。シークレットの保管庫を使用できない場合は、環境変数を使用してバックエンドアプリケーションにキーを渡してください。 - バージョン管理にチェックインされるソースコードや設定ファイルにキーを記載しないでください。 - [キーを特定の IP アドレスに制限](https://docs.stripe.com/keys.md#limit-api-secret-keys-ip-address)して、自社のサーバーのみが使用できるようにしてください。 - キーにアクセスできるチームメンバーが組織を退職した場合は、[キーをローテーション](https://docs.stripe.com/keys.md#rolling-keys)してください。 - メール、チャット、またはその他の暗号化されていないチャネルでキーを共有しないでください。 包括的なガイドとして、[シークレット API キー管理のベストプラクティス](https://docs.stripe.com/keys-best-practices.md)をご参照ください。また、AI エージェントがこれらのベストプラクティスに従えるよう、[スキルライブラリ](https://github.com/stripe/ai/tree/main/skills)も提供しています。 ## API キーの管理 [ダッシュボード](https://dashboard.stripe.com/apikeys)を使用して、API キーの作成、表示、変更、削除、ローテーションを行います。 #### 制限付きの API キーを作成する ほとんどのユースケースでは、[制限付き API キー](https://docs.stripe.com/keys/restricted-api-keys.md) (RAK) を使用してください。RAK を使用すると、連携に必要な権限だけを正確に割り当てられるため、キーを不正取得された場合に悪意のある第三者が事業へ与える被害を軽減できます。 - [Restricted API Keys](https://docs.stripe.com/keys/restricted-api-keys.md) の手順に従って、RAK を作成し、権限を設定して、シークレットキーから移行してください。 #### シークレット API キーを作成する 連携で、すべての Stripe API とリソースに制限なくアクセスする必要がある場合にのみ、制限のないシークレット API キーを作成してください。シークレットキーを不正取得されると、事業に損害が及ぶおそれがあります。代わりに RAK を使用することをお勧めします。 1. [API キー](https://dashboard.stripe.com/test/apikeys)タブで、 **シークレットキーを作成** をクリックします。 2. ダイアログで、メールまたはショートメッセージで送信された確認コードを入力してください。ダイアログが自動的に進まない場合は、**Continue** をクリックしてください。 3. **キー名** フィールドに名前を入力し、 **作成** をクリックします。 4. キー値をクリックしてコピーします。 5. キーの値を保存します。後で取得することはできません。 6. **メモを追加** フィールドにキーの保存店舗を入力し、 **完了** をクリックします。 ### API キーの表示 本番環境でシークレットキーを作成すると、保存する前に一度だけ表示されます。後から表示することはできないため、保存する前にキーをコピーしてください。 本番環境では、デフォルトのシークレットキーやスケジュールされたローテーションで生成されたキーなど、Stripe が作成した API キーのみ表示できます。サンドボックスでは、制限付き API キーやシークレットキーを含むすべての API キーをいつでも確認できます。 > 機密性の高いキーは、プラットフォームが提供するシークレットの保管庫など、紛失しない場所に保存してください。アプリケーションのコードにキーを記載しないでください。 公開可能 API キーは機密性の高いものではないため、デフォルトで表示され、表示するために追加の操作は必要ありません。 忘れたキーやアクセスできなくなったキーは復元できません。キーを紛失した場合は、ローテーションまたは削除して新しいキーを作成してください。 #### 本番環境で RAK を表示する方法 表示できるのは、Stripe が作成した本番環境の RAK のみです。自身で作成した RAK は、一度表示すると以降は表示できません。 1. 本番環境の [API キー](https://dashboard.stripe.com/apikeys)タブで、**制限付きキー**リストから、表示するキーの **Reveal live key** をクリックします。 2. キー値をクリックしてコピーします。 3. キーの値をプラットフォームの[シークレット保管庫](https://docs.stripe.com/keys-best-practices.md#use-a-secrets-vault)に保存してください。プラットフォームでシークレット保管庫を利用できない場合は、環境変数を使用してください。 4. **Hide live key** をクリックします。 #### 本番環境でシークレット API キーを表示するには 表示できるのは、Stripe が作成した本番環境のシークレットキーのみです。ご自身でシークレットキーを作成した場合、一度表示すると以後は再表示できません。 1. 本番環境の [API キー](https://dashboard.stripe.com/apikeys)タブで、**標準キー**リストから表示したいキーの**本番環境のキーを表示**をクリックします。 2. キー値をクリックしてコピーします。 3. キーの値をプラットフォームの[シークレット保管庫](https://docs.stripe.com/keys-best-practices.md#use-a-secrets-vault)に保存してください。プラットフォームでシークレット保管庫を利用できない場合は、環境変数を使用してください。 4. **Hide live key** をクリックします。 5. メモを追加するキーのオーバーフローメニュー (⋯) をクリックし、 **キーを編集** を選択します。 6. **メモ** フィールドにキーの保存店舗を入力し、 **保存** をクリックします。 ### API キーを特定の IP アドレスに制限する シークレットキーまたは制限付き API キーの使用を、特定の IP アドレスの範囲または 1 つ以上の特定の IP アドレスに制限できます。Stripe は、不正な場所からの使用を防ぐために、すべての本番環境キーで IP 制限を有効にすることを推奨しています。必要に応じて、キーごとに別々の IP 許可リストを使用してください。たとえば、ステージング環境と本番環境を区別できます。 IP アドレスは IPv4 プロトコルを使用する必要があり、有効な任意の CIDR 範囲を指定できます。たとえば、`100.10.38.0 - 100.10.38.255` の範囲は `100.10.38.0/24` と指定できます。範囲内のすべての IP アドレスは `100.10.38` で始まる必要があります。 1. [API キー](https://dashboard.stripe.com/test/apikeys)タブの**制限付きキー**または**標準キー**リストで、表示したいキーのオーバーフローメニュー (⋯) をクリックします。 2. **IP 制限を管理** > **IP アドレスのセットに使用を制限** を選択します。 3. 以下のいずれかを実行します。 - **IP アドレス** フィールドに 1 つ以上の個人 IP アドレスを入力します。 - IP アドレスの範囲を指定するには、Classless Inter-Domain Routing (CIDR) 表記で範囲の最初のアドレスを **IP アドレス** フィールドに入力します。**CIDR** フィールドにはネットワークプレフィックスサイズを入力します。 4. 別の IP アドレスまたは範囲を追加するには、 **+ 追加** をクリックします。 5. **保存**をクリックします。 ### API キーの名前またはメモを変更する 1. [API キー](https://dashboard.stripe.com/test/apikeys)タブで、変更するキーのオーバーフローメニュー (⋯) をクリックします。 2. **キーを編集** を選択します。 3. 次の手順を実行します。 - 名前を変更するには、 **キー名** フィールドに新しい名前を入力します。 - メモのテキストを変更するには、 **メモ** フィールドに新しいメモのテキストを入力します。 4. **保存**をクリックします。 ### API キーを期限切れにする シークレット API キーまたは制限付き API キーを期限切れにする場合は、新しいキーを作成し、期限切れのキーを使用するすべてのコードを更新する必要があります。期限切れのキーを使用するコードは、API コールを実行できなくなります。 > 公開可能キーを期限切れにすることはできません。 1. [API キー](https://dashboard.stripe.com/test/apikeys)タブの**制限付きキー**または**標準キー**リストで、失効させたいキーのオーバーフローメニュー (⋯) をクリックします。 2. **キーを期限切れにする** を選択します。 3. ダイアログで、 **キーを期限切れにする** をクリックします。キーを期限切れにしたくない場合は、 **キャンセル** をクリックします。 ### API キーのローテーション API キーをローテーションすると、そのキーが取り消され、すぐに使用できる代替キーが生成されます。また、一定時間後に API キーをローテーションするようスケジュールすることもできます。代替キーの名前は次のとおりです。 - 置換後の公開可能キー名は常に `Publishable key` です。 - 置換後のシークレットキー名は常に `Secret key` です。 - 置換後の制限付きキー名は、ローテーションされたキーと同じです。 シークレットまたは制限付き API キーは、キーを編集することで名前を変更できます。 次のようなシナリオでは、API キーをローテーションします。 - 本番環境でシークレットまたは制限付き API キーを紛失し、ダッシュボードから復元できない場合。 - シークレットまたは制限付き API キーが侵害された場合、そのキーを使用する可能性のある悪意のある API リクエストをブロックするために、キーを取り消す必要があります。 - キーにアクセスできるチームメンバーが組織を退職するか、役割を変更した場合。 - ポリシーにより、一定間隔でキーのローテーションが必要な場合。 #### API キーをローテーションするには 1. [API キー](https://dashboard.stripe.com/test/apikeys)タブで、ローテーションするキーのオーバーフローメニュー (⋯) をクリックします。 2. **キーをローテーション** を選択します。 3. **有効期限** ドロップダウンから有効期限を選択します。**今すぐ** を選択すると、古いキーは削除されます。時間を指定すると、キーの有効期限が切れるまでの残り時間がキー名の下に表示されます。 4. **API キーのローテーション**をクリックします。 5. キー値をクリックしてコピーします。 6. キーの値を保存します。後で取得することはできません。 7. **メモを追加** フィールドに、キーの保存店舗を入力し、 **保存** または **完了** をクリックします。 ### API キーのアクセスを復元する API キーは、180 日以上にわたって送金、支払いの作成、または支払先の更新に使用されていない場合、アクセスが制限されることがあります。アクセスが制限されたキーでは、支払いや送金の作成、または支払先の作成は行えません。キーを通常通り使用できるように、またはブロックされた操作を実行するために、アクセスを復元できます。 #### API キーのアクセスを復元するには 1. [API キー](https://dashboard.stripe.com/test/apikeys)タブで、復元するキーのオーバーフローメニュー (⋯) をクリックします。 2. **アクセスを復元** を選択します。 3. **復元** をクリックします。 ## キーの API リクエストログを表示 [API リクエストログを開く](https://docs.stripe.com/development/dashboard/request-logs.md)には、任意のキーのオーバーフローメニュー (⋯) をクリックし、 **リクエストログを表示** を選択します。ログを開くと、Stripe ダッシュボードにリダイレクトされます。 ## 本番環境に切り替える 実際の決済を受け付ける準備ができたら、サンドボックス (テスト) キーではなく本番モード API キーを使用します。[API keys](https://dashboard.stripe.com/apikeys) ページで、**sandbox mode** (サンドボックスモード) から **live mode** (本番モード) に切り替えます。ページに本番モード API キーが表示されます。 > #### 本番環境移行チェックリストを完了する > > API キーの切り替えは手順の 1 つにすぎません。インテグレーションが本番運用の準備が整っていることを確認するために、[本番環境移行チェックリスト](https://docs.stripe.com/get-started/checklist/go-live.md)全体を確認してください。 ### 公開可能キー (クライアント側) \**本番環境の公開可能 API キー **(`pk_live_` で始まる) をコピーし、クライアントサイドコード内の `pk_test_` キーに置き換えてください。このキーは、コードやアプリに埋め込んでも安全です。 ### 制限付きまたはシークレットの API キー (サーバー側) サーバーサイド API キーは機密性の高い情報であるため、[シークレット API キーを管理するためのベストプラクティス](https://docs.stripe.com/keys-best-practices.md)を確認してください。API キーが露出したり侵害されたりした場合に事業への被害を抑えられるように、サーバーサイドコード用に[制限付き API キー](https://docs.stripe.com/keys/restricted-api-keys.md)を生成することを推奨しています。 1. バックエンドアプリケーションで本番環境キーを使い始める前に、コードからハードコードされた API キーを削除してください。代わりに[シークレット保管庫](https://docs.stripe.com/keys-best-practices.md#use-a-secrets-vault)を使用してサンドボックスキーを提供し、アプリケーションが引き続き動作することを確認してください。プラットフォームでシークレット保管庫を利用できない場合は、環境変数を使用できます。 2. [表示](https://docs.stripe.com/keys.md#reveal-an-api-key)して**本番環境のキー **(`rk_live_` または `sk_live_` で始まる) をコピーし、サーバー環境に安全に保存してください。 3. サーバー環境を設定すれば、アプリケーションにサンドボックスキーではなく本番環境キーを渡せるようになります。 #### Webhook 署名キー (サーバーサイド) Webhook を使用する場合は、各 Webhook エンドポイントの URL を更新し、ダッシュボードの [Webhook](https://dashboard.stripe.com/webhooks) セクションから新しい **署名シークレット** をコピーします。 ## See also - [シークレット API キーを管理するためのベストプラクティス](https://docs.stripe.com/keys-best-practices.md) - [侵害された API キーからの保護](https://support.stripe.com/questions/protecting-against-compromised-api-keys) - [API キーのアクセスが制限されているのはなぜですか](https://support.stripe.com/questions/why-does-my-api-key-have-limited-access)