API キー
API キーを使用して、API リクエストを認証します。
Stripe は、アカウントの API キーを使用して API リクエストを認証します。リクエストに有効なキーが含まれていない場合、Stripe は無効なリクエストエラーを返します。リクエストに削除済みのキーや有効期限切れのキーが含まれている場合、Stripe は認証エラーを返します。
開発者ダッシュボードを使用して、API キーを作成、表示、削除、ローテーションします。v1 API キーには API キータブでアクセスできます。
キーの種類
デフォルトでは、すべてのアカウントに合計 4 つの API キーがあります。
| タイプ | 説明 |
|---|---|
| サンドボックスのシークレットキー | サンドボックスでテストするときにサーバー上のリクエストを認証します。デフォルトでは、このキーを使用して、制限なくあらゆる API リクエストを実行できます。本番環境の顧客や支払いを誤って変更しないように、このキーはテストおよび開発用に予約してください。 |
| サンドボックスの公開可能キー | Web またはモバイルアプリのクライアント側コードでリクエストをテストします。本番環境の顧客や支払いを誤って変更しないように、このキーはテストおよび開発用に予約してください。 |
| 本番環境のシークレットキー | 本番環境でサーバー上のリクエストを認証します。デフォルトでは、このキーを使用して、あらゆる API リクエストを制限なく実行できます。 |
| 本番環境の公開可能キー | アプリをリリースする準備が整ったら、Web やモバイルアプリのクライアント側コードでこのキーを使用します。 |
シークレットキーと公開可能キーは、ダッシュボードの API キータブにあります。API キーが表示されない場合は、Stripe アカウントの所有者に、適切な権限でチームに追加するよう依頼してください。
制限付き API キー
ダッシュボードで制限付き API キーを生成し、その API へのカスタマイズ可能なアクセスと制限付きアクセスを有効にできます。ただし、デフォルトでは Stripe は制限付きキーを提供していません。
Stripe にログインしている場合、ドキュメントではコード例にテスト API キーが入力されます。これらの値はお客様のみが確認できます。ログインしていない場合、コード例にはランダムに生成された API キーが含まれ、これをテストキーに置き換えることができます。または、 ログイン して、テスト API キーが入力されたコード例を確認することもできます。
API キーの例
次の表は、ランダムに生成されたシークレットキーと公開可能キーの例です。
| タイプ | 値 | 使用するタイミング |
|---|---|---|
| シークレット | sk_ | サーバー側: Stripe API を呼び出すウェブやモバイルアプリのサーバー側コード (環境変数や認証情報管理システムなど) でこれを安全に保管し、秘密にする必要があります。このキーをウェブサイトに公開したり、モバイルアプリケーションに埋め込んだりしないでください。 |
| 公開可能 | pk_ | クライアント側: Web やモバイルアプリのクライアント側コード (checkout.js など) でパブリックアクセスが可能であり、決済情報を安全に収集します (Stripe Elements など)。デフォルトでは、Stripe Checkout が決済情報を安全に収集します。 |
| 制限付き | rk_ で始まる文字列 | マイクロサービス: Stripe API を呼び出すマイクロサービスコードでこれを安全に保管し、秘密にする必要があります。このキーをウェブサイトに公開したり、モバイルアプリケーションに埋め込んだりしないでください。 |
キーを保護する
本番環境のシークレットキーは、誰でもアカウントの代理として支払いの作成や返金の実施などの API コールを実行できます。シークレット API キーを安全に保管するため、以下のベストプラクティスに従ってください。
サンドボックスモードと本番環境
Stripe API リクエストはすべて、 サンドボックス または 本番環境 のいずれかで発生します。サンドボックスを使用してテストデータにアクセスし、本番環境を使用して実際のアカウントデータにアクセスします。各環境には固有の API キーがあり、一方の環境のオブジェクトにはもう一方の環境からアクセスできません。たとえば、サンドボックスの Product オブジェクトを本番環境の決済の一部にすることはできません。
本番環境のキーへのアクセス
本番環境のシークレットまたは制限付き API キーは 1 回のみ表示できます。キーを紛失した場合、ダッシュボードから取得することはできません。その場合は、キーをローテーションまたは削除して、新しいキーを作成してください。
| タイプ | 使用するタイミング | オブジェクト | 使用方法 | 考慮事項 |
|---|---|---|---|---|
| サンドボックス | サンドボックスと関連するテスト API キーを使用してシステムを構築します。サンドボックスでは、カードネットワークとペイメントプロバイダーは決済を処理しません。 | API コールは、シミュレーションされたオブジェクトを返します。たとえば、テストの account、payment、customer、charge、refund、transfer、balance、subscription オブジェクトを取得して使用することができます。 | テスト用のクレジットカードとアカウントを使用します。実際の支払い方法を受け付けることも、実際のアカウントを処理することもできません。 | Identity による検証チェックは行われません。また、Connect account (アカウント) オブジェクトは機密フィールドを返しません。 |
| 本番環境 | 実装を立ち上げて実際の支払いを受け付ける準備ができたら、本番環境と関連する本番 API キーを使用します。本番環境では、カードネットワークとペイメントプロバイダーは決済を処理します。 | API コールは、実際のオブジェクトを返します。たとえば、実際の account、payment、customer、charge、refund、transfer、balance、subscription オブジェクトを取得して使用することができます。 | 実際のクレジットカードを受け付けて、顧客のアカウントを処理します。クレジットカードとアカウントの実際の支払いのオーソリ、支払い、キャプチャーを受け付けることができます。 | 不審請求の申請のフローはより細かく、テストプロセスはよりシンプルです。また、一部の支払い方法ではフローがさらに細かく、ステップ数が多くなります。 |
組織の API キー
1 つの組織に複数の Stripe ビジネスアカウントを作成している場合は、組織レベルの API キーを設定できます。組織レベルの API キーでは次のことが可能です。
- 任意のアカウントにアクセス: Organization API キーを使用して、組織内の任意のアカウントのリソースにアクセスします。
- 詳細な権限: Organization API キーを制限して、特定のリソースにのみ読み取りまたは書き込みの権限を付与します。
- 一元管理: 組織のダッシュボードの API キータブで Organization API キーを作成・管理します。
動作
組織の API キーは、アカウントの API キーと比べて次の点で動作が異なります。
- 公開キーはありません。組織の API キーはすべて秘密キーとして扱われます。
- アクセス許可レベルに関係なく、すべて同じ
sk_プレフィックスが付けられます。org - 組織の API キーを使用して行われるすべての API リクエストには、影響を受けるアカウントを識別するために
Stripe-Contextヘッダーを含める必要があります。 - 組織の API キーを使用して行われるすべての API リクエストには、組織の実装全体の一貫性と予測可能性を確保するため、
Stripe-Versionヘッダーを含める必要があります。
組織の API キーを使用する
組織の API キーを使用する場合は、次のことも行う必要があります。
Stripe-Versionヘッダーを含めて API バージョンを指定します。Stripe SDK を使用する場合、SDK は自動的に API バージョンを設定します。Stripe-Contextヘッダーを含めて、API リクエストの影響を受けるアカウントを特定します。
たとえば、次のような組織構造があるとします。
Organization (org_6SD3oI0eSQemPzdmaGLJ5j6) ├── Platform account (acct_1R3fqDP6919yCiFv) | └── Connected account (acct_1032D82eZvKYlo2C) └── Standalone account (acct_1aTnTtAAB0hHJ26p)
組織の API キーを使用して、スタンドアロンアカウントの残高にアクセスできます。また、同じキーを使用して、プラットフォームの連結アカウントに対して同じ呼び出しを行うことも可能です。
上記のコード例では、{{CONTEXT}} を該当する値に置き換えます。
- スタンドアロンアカウントの場合は、
acct_を使用します。1aTnTtAAB0hHJ26p - 連結アカウントには、プラットフォームと連結アカウントの両方を識別するパスを
acct_の形式で使用します。1R3fqDP6919yCiFv/acct_ 1032D82eZvKYlo2C
コンテキストを使用して関連アカウントを指定し、組織キーを使用して API リクエストで API バージョンを指定する必要があります。
Organization は決済を受け付けることができないため、公開可能 API キーを持っていません。Organization API キーを使用して組織内の任意のアカウントの PaymentIntent を作成できますが、クライアント側の操作には既存のアカウント固有の公開可能キーを使用する必要があります。
シークレットキーと制限付きキー
ダッシュボードを使用して、シークレットキーと制限付きキーを作成、表示、変更、削除、ローテーションします。
API キーを作成する
シークレット API キーまたは制限付き API キーを作成できます。制限付き API キーは、指定したレベルのアクセスのみを許可します。
シークレット API キーを作成するには
- API キータブで、 シークレットキーを作成 をクリックします。
- ダイアログで、Stripe がメールまたは SMS で送信する確認コードを入力します。ダイアログが自動的に続行されない場合は、 続行 をクリックします。
- キー名 フィールドに名前を入力し、 作成 をクリックします。
- キー値をクリックしてコピーします。
- キーの値を保存します。後で取得することはできません。
- メモを追加 フィールドにキーの保存場所を入力し、 完了 をクリックします。
制限付き API キーを作成するには
- API キータブで、次のいずれかを実行します。
- 制限付きキーを新規作成するには、 制限付きキーを作成 をクリックします。すべての権限のデフォルト値は なし です。
- 既存のキーを複製するには、複製するキーのオーバーフローメニュー () をクリックし、 キーを複製 を選択します。各権限のデフォルト値は、複製元キーの値です。
- キー名 フィールドに名前を入力します。既存のキーを複製した場合、デフォルト名は複製元キーの名前です。
- 新しいキーでアクセスするリソースごとに、 なし 、 読み取り 、 書き込み のいずれかの適切な権限を選択します。Connect を使用している場合は、連結アカウントにアクセスする際にこのキーに許可する権限も選択できます。
- キーを作成をクリックします。
- ダイアログで、Stripe がメールまたは SMS で送信する確認コードを入力します。ダイアログが自動的に続行されない場合は、 続行 をクリックします。
- キー値をクリックしてコピーします。
- キーの値を保存します。後で取得することはできません。
- メモを追加 フィールドにキーの保存場所を入力し、 完了 をクリックします。
API キーの表示
サンドボックスまたは本番環境では、シークレット API キーまたは制限付き API キーを表示できます。
本番環境では、Stripe は (セキュリティ上の理由から) API キーを 1 回しか表示しません。キーを紛失しない場所に保存してください。保管場所を忘れないように、ダッシュボードでキーにメモを追加できます。キーを紛失した場合は、キーをローテーションまたは削除して、新しいキーを作成してください。
本番環境のシークレットキーを表示
本番環境で秘密キーまたは制限付き API キーを作成すると、保存する前にキーが表示されます。後で表示することはできないため、保存する前にキーをコピーしてください。公開できるのは、デフォルトの秘密キー、またはローテーションによって生成されたキーのみです。
サンドボックスでシークレット API キーを表示するには
- API キータブの Standard keys リストで、 Secret key 行の Reveal test key をクリックします。シークレット API キーは何度でも表示できます。
- キー値をクリックしてコピーします。
- キーの値を保存します。
- テストキーを非表示をクリックします。
本番環境でシークレットまたは制限付き API キーを表示するには
- 本番環境の API キータブの Standard keys または Restricted keys リストで、表示するキーの Reveal live key をクリックします。
- キー値をクリックしてコピーします。
- キーの値を保存します。
- テストキーを非表示をクリックします。
- メモを追加するキーのオーバーフローメニュー () をクリックし、 キーを編集 を選択します。
- メモ フィールドにキーの保存場所を入力し、 保存 をクリックします。
メモ
Stripe がこの機能を導入する前に作成されたキーは、表示しても自動的に非表示になりません。本番キーを非表示 をクリックして手動で非表示にする必要があります。
API キーを特定の IP アドレスに制限する
シークレット API キーまたは制限付き API キーを、IP アドレスの範囲、または 1 つ以上の特定の IP アドレスに制限できます。
IP アドレスは IPv4 プロトコルを使用する必要があり、有効な任意の CIDR 範囲を指定できます。たとえば、100. の範囲は 100. と指定できます。範囲内のすべての IP アドレスは 100. で始まる必要があります。
API キータブの Standard keys リストまたは Restricted keys リストで、表示するキーのオーバーフローメニュー () をクリックします。
IP 制限を管理 > IP アドレスのセットに使用を制限 を選択します。
以下のいずれかを実行します。
- IP アドレス フィールドに個別の IP アドレスを入力します。
- IP アドレスの範囲を指定するには、Classless Inter-Domain Routing (CIDR) 表記で範囲の最初のアドレスを IP アドレス フィールドに入力します。CIDR フィールドにはネットワークプレフィックスサイズを入力します。
一括管理 タブで、個々の IP アドレスと範囲をスペースで区切って入力することもできます。一方のタブで加えた変更は、もう一方のタブに反映されます。
別の IP アドレスまたは範囲を追加するには、 + 追加 をクリックします。
保存をクリックします。
API キーの名前またはメモを変更する
- API キータブで、変更するキーのオーバーフローメニュー () をクリックします。
- キーを編集 を選択します。
- 次の手順を実行します。
- 名前を変更するには、 キー名 フィールドに新しい名前を入力します。
- メモのテキストを変更するには、 メモ フィールドに新しいメモのテキストを入力します。
- 保存をクリックします。
API キーを削除
シークレット API キーまたは制限付き API キーを削除する場合は、新しいキーを作成し、削除したキーを使用するコードを更新する必要があります。削除したキーを使用するコードは、API コールを実行できなくなります。
メモ
公開可能キーを削除することはできません。
- API キータブの Standard keys リストまたは Restricted keys リストで、削除するキーのオーバーフローメニュー () をクリックします。
- キーを削除 を選択します。
- ダイアログで、 キーを削除 をクリックします。キーを削除しない場合は、 キャンセル をクリックします。
API キーのローテーション
API キーをローテーションすると、そのキーが取り消され、すぐに使用できる代替キーが生成されます。また、一定時間後に API キーをローテーションするようスケジュールすることもできます。代替キーの名前は次のとおりです。
- 置換後の公開可能キー名は常に
Publishable keyです。 - 置換後のシークレットキー名は常に
Secret keyです。 - 置換後の制限付きキー名は、ローテーションされたキーと同じです。
シークレットまたは制限付き API キーは、キーを編集することで名前を変更できます。
次のようなシナリオでは、API キーをローテーションします。
- 本番環境でシークレットまたは制限付き API キーを紛失し、ダッシュボードから復元できない場合。
- シークレットまたは制限付き API キーが侵害された場合、そのキーを使用する可能性のある悪意のある API リクエストをブロックするために、キーを取り消す必要があります。
- ポリシーにより、一定間隔でキーのローテーションが必要な場合。
API キーをローテーションするには
- API キータブで、ローテーションするキーのオーバーフローメニュー () をクリックします。
- キーをローテーション を選択します。
- 有効期限 ドロップダウンから有効期限を選択します。今すぐ を選択すると、古いキーは削除されます。時間を指定すると、キーの有効期限が切れるまでの残り時間がキー名の下に表示されます。
- API キーのローテーションをクリックします。
- キー値をクリックしてコピーします。
- キーの値を保存します。後で取得することはできません。
- メモを追加 フィールドに、キーの保存場所を入力し、 保存 または 完了 をクリックします。
API リクエストログを表示
API リクエストログを開くには、任意のキーのオーバーフローメニュー () をクリックし、 リクエストログを表示 を選択します。ログを開くと、Stripe ダッシュボードにリダイレクトされます。