API キー
API キーを使用して、API リクエストを認証します。
Stripe は、アカウントの API キーを使用して API リクエストを認証します。リクエストに有効なキーが含まれていない場合、Stripe は無効なリクエストエラーを返します。リクエストに削除済みのキーや有効期限切れのキーが含まれている場合、Stripe は認証エラーを返します。
開発者ダッシュボードを使用して、API キーの作成、表示、削除、取り消しを行います。v1 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 オブジェクトを取得して使用することができます。 | 実際のクレジットカードを受け付けて、顧客のアカウントを処理します。クレジットカードとアカウントの実際の支払いのオーソリ、支払い、キャプチャーを受け付けることができます。 | 不審請求の申請のフローはより細かく、テストプロセスはよりシンプルです。また、一部の支払い方法ではフローがさらに細かく、ステップ数が多くなります。 |
シークレットキーと公開可能キー
すべてのアカウントに、デフォルトで、テスト環境用に 2 つ、本番環境用に 2 つの合計 4 つの API キーがあります。
- テスト環境のシークレットキー: テスト環境でサーバー上のリクエストを認証するには、このキーを使用します。デフォルトでは、このキーを使用して、あらゆる API リクエストを制限なく実行できます。
- テスト環境の公開可能キー: ウェブやモバイルアプリのクライアント側コードでテストするには、このキーを使用します。
- 本番環境のシークレットキー: 本番環境でサーバー上のリクエストを認証するには、このキーを使用します。デフォルトでは、このキーを使用して、あらゆる API リクエストを制限なく実行できます。
- 本番環境の公開可能キー: アプリをリリースする準備が整ったら、ウェブやモバイルアプリのクライアント側コードでこのキーを使用します。
テストと開発
テストと開発にはテスト API キーのみを使用してください。こうすれば、誤って本番の顧客や支払いを変更する心配がありません。
シークレットキーおよび公開可能キーは開発者ダッシュボードの API キーで確認できます。ログインしている場合、Stripe のドキュメントにはテスト環境の API キーを使用したコードサンプルが自動的に表示されます (これらの値はお客様にだけ表示されます)。ログインしていない場合、コードサンプルにはランダムに生成された API キーが含まれます。それらをお客様固有のキーに置き換えるか、ログインして、お客様固有のテスト API キーが入力されたコードサンプルを表示できます。API キーが表示されない場合は、Stripe アカウントの所有者に、適切な権限でご自身をチームに追加してもらうよう依頼してください。
次の表は、ランダムに生成されたシークレットキーと公開可能テスト API キーの例です。
制限付き API キー
ダッシュボードでは制限付きの API キーを生成することもでき、API へのカスタマイズ可能な限定アクセスが可能になります。ただし、Stripe はデフォルトでは制限付きのキーを提供していません。
タイプ | 値 | 使用するタイミング |
---|---|---|
シークレット | sk_ | サーバー側: Stripe API を呼び出すウェブやモバイルアプリのサーバー側コード (環境変数や認証情報管理システムなど) でこれを安全に保管し、秘密にする必要があります。このキーをウェブサイトに公開したり、モバイルアプリケーションに埋め込んだりしないでください。 |
公開可能 | pk_ | クライアント側: ウェブやモバイルアプリのクライアント側コード (checkout.js など) でパブリックアクセスが可能であり、Stripe Elements などを使用して決済情報を安全に収集します。デフォルトでは、Stripe Checkout が決済情報を安全に収集します。 |
制限付き | rk_ で始まる文字列 | マイクロサービス: Stripe API を呼び出すマイクロサービスコードでこれを安全に保管し、秘密にする必要があります。このキーをウェブサイトに公開したり、モバイルアプリケーションに埋め込んだりしないでください。 |
キーを安全に保存する
本番環境のシークレット API キーは、誰でも、支払いの作成や返金の実施など、アカウントの代理としてあらゆる API コールの実行に使用できます。シークレット API キーのベストプラクティスに従って、キーを安全に保管してください。
制限付き API キーを使用して API アクセスをカスタマイズする
API への制限付きアクセスを提供するには、制限付き API キーを作成します。制限付き API キーは、特定の API リソースに対する読み取りまたは書き込みのアクセスを許可するように設定できます。お客様の代理で API と対話するマイクロサービスを使用する場合は、それらのマイクロサービスで必要となる最小限のアクセスのみを許可する制限付きキーを定義します。たとえば、不審請求申請モニタリングサービスを使用する場合は、不審請求申請に関連するリソースに対する読み取りアクセスのみを提供する制限付きキーを作成します。このようなキーにより、サービスは必要なデータを取得することはできますが、データを変更したり、その他のデータにアクセスしたりすることはできません。
制限付きのキーは、マイクロサービスを使用または構築する際のリスクを軽減することを目的としているため、Stripe の API の多くの部分とやり取りできません。Stripe システムの開発中にアカウントのシークレットまたは公開可能 API キーの代わりとして制限付きのキーを使用しないでください。
権限エラー
制限付きの API キーをアクセス権のないコールで使用すると、Stripe は権限エラーを返します。
API リクエストを送信できる IP アドレスを制限する
API リクエストの送信に使用できる IP アドレスを制限することにより、シークレットまたは制限付きのキーのセキュリティを強化できます。また、1 つ以上の IP アドレスまたは IP アドレスの範囲にキーを制限することができます。
テスト環境用のシークレット API キーを表示する
テスト環境では、シークレット API キーを何度でも表示できます。
シークレットキーをテスト環境で表示するには、以下の手順を実行します。
- 開発者ダッシュボードで、API キータブを選択します。
- 標準キーリストのシークレットキー行で、テストキーを表示をクリックします。
- キーの値をクリックしてコピーします。
- キーの値を保存します。
- テストキーを非表示をクリックします。
本番環境用のシークレットまたは制限付きの API キーを表示する
セキュリティ上の理由から、本番環境の Stripe では、シークレットまたは制限付きの API キーは 1 回しか表示されません。キーを紛失する可能性のない場所に保存してください。保存場所を記憶しておくために、キーに関するメモをダッシュボードに残すことをお勧めします。キーを紛失した場合には、キーを取り消すか、削除して別のキーを作成してください。
作成した本番環境のシークレットキーは表示できません
本番環境でシークレットまたは制限付きの API キーを作成すると、保存する前にその値が表示されます。この値は、後で表示できないため、保存する前にコピーする必要があります。表示できるのは、デフォルトのシークレットキーと、スケジュール済みの取り消しによって生成されたキーのみです。
本番環境でシークレットまたは制限付きのキーを表示してメモを添付するには、以下の手順を実行します。
注
API keys
リンクが本番環境で開きます。
- 開発者ダッシュボードで、API キータブを選択します。
- 標準キーリストまたは制限付きのキーリストで、表示するキーの行の本番キーを表示をクリックします。
- キーの値をクリックしてコピーします。
- キーの値を保存します。
- テストキーを非表示をクリックします。
- キーの横にあるオーバーフローメニュー () をクリックして、キーの編集… を選択します。
- メモフィールドに、キーの保存場所を入力して、保存をクリックします。
- Stripe がこの機能を導入する前にキーを作成した場合は、本番キーを非表示をクリックします。
注
Stripe がこの機能を導入する前に作成されたキーは、表示されると自動的には非表示になりません。手動で非表示にする必要があります。
API キーを更新する
キーを更新すると、そのキーは取り消され、交換用のキーが生成されます。キーを即時に更新することも、一定時間の後で更新されるようにキーのスケジュールを設定することもできます。以下の例のようなシナリオでキーを更新します。
- 本番環境でシークレットキーまたは制限付きキーを紛失した場合は、ダッシュボードから復元することはできず、交換する必要があります。
- シークレットまたは制限付きのキーが不正にアクセスされた場合は、悪意のある API リクエストで使用される可能性を回避するために、取り消す必要があります。
- ポリシーにより、一定期間ごとにキーのローテーションを行う必要があります。
API キーを更新するには、以下の手順を実行します。
- API キーページを開きます。
- 更新するキーの行で、オーバーフローメニュー () をクリックして、キーを取り消す… を選択します。
- 有効期限ドロップダウンから有効期限を選択します。
- API キーを取り消すをクリックします。
- ダイアログに新しいキーの値が表示されます。クリックしてコピーします。
- キーの値を保存します。後で取得することはできません。
- メモを追加フィールドに、キーの保存場所を入力して、完了または保存をクリックします。
有効期限として現在を選択した場合は、以前のキーは削除されます。別の時刻を選択した場合は、キーの有効期限が切れるまでの残りの時間が名前の下に表示されます。
以前のキーの有効期限に関係なく、新しいキーをすぐに使用できます。
公開可能キーを更新する場合、交換後のキーの名前は常に Publishable key
になります。シークレットキーを更新する場合、交換後のキーの名前は常に Secret key
になります。制限付きキーを更新する場合、交換後のキーの名前は、更新されたキーと同じになります。シークレットまたは制限付きのキーの名前を変更するには、オーバーフローメニューをクリックして、キーの編集… を選択します。
シークレットまたは制限付きの API キーを削除する
キーを削除すると、そのキーを使用するコードは API コールを行えなくなります。使用するには、新しいキーを作成して、コードを更新してください。
注
公開可能キーを削除することはできません。
キーを削除するには、以下の手順に従います。
- 開発者ダッシュボードで、API キータブを選択します。
- 標準キーリストまたは制限付きのキーリストで、削除するキーを見つけます。削除するキーの行のオーバーフローメニューアイコン () をクリックして、キーの削除… を選択します。
- キーを削除しても問題がない場合、「API キーを削除」ダイアログでキーの削除をクリックします。削除しない場合は、キャンセルをクリックします。
シークレット API キーを作成する
シークレット API キーを作成するには、以下の手順を実行します。
- API キーページを開きます。
- シークレットキーを作成をクリックします。
- Stripe は、確認コードをメールアドレスまたはショートメッセージに送信します (他のメールやショートメッセージと同様、すぐには届かない場合があります)。届いたコードをダイアログに入力してください。ダイアログが自動的に先に進まない場合は、続行をクリックします。
- キーの名前フィールドに名前を入力します。
- 作成をクリックします。
- ダイアログに新しいキーの値が表示されます。クリックしてコピーします。
- キーの値を保存します。後で取得することはできません。
- メモを追加フィールドに、キーの保存場所を入力して、完了をクリックします。
制限付きの API キーを作成する
制限付きの API キーは、指定したレベルのアクセスのみを許可します。
制限付きの API キーを作成するには、以下の手順を実行します。
- API キーページを開きます。
- 制限付きキーを最初から作成することも、既存の制限付きキーを複製することもできます。
- 制限付きキーを最初から作成するには、制限付きのキーを作成をクリックします。この場合、すべての権限のデフォルト値はなしです。
- 既存のキーを複製するには、複製するキーの行で、オーバーフローメニュー () をクリックして、キーの複製… を選択します。この場合、各権限のデフォルト値は、複製されたキーの値です。
- キーの名前フィールドに、名前を入力します。既存のキーを複製した場合、デフォルトの名前は、複製されたキーの名前です。
- 新しいキーでアクセスするリソースごとに、このキーに許可する権限を選択します。Connect を使用する場合は、連結アカウントにアクセスする際にこのキーに許可する権限も選択できます。選択できる権限は、なし、読み取り、書き込みです。
- キーを作成をクリックします。
- Stripe は、確認コードをメールアドレスまたはショートメッセージに送信します (他のメールやショートメッセージと同様、すぐには届かない場合があります)。届いたコードをダイアログに入力してください。ダイアログが自動的に先に進まない場合は、続行をクリックします。
- ダイアログに新しいキーの値が表示されます。クリックしてコピーします。
- キーの値を保存します。後で取得することはできません。
- メモを追加フィールドに、キーの保存場所を入力して、完了をクリックします。
シークレットまたは制限付きのキーを IP アドレスのリストまたは範囲に制限する
キーを使用する API リクエストを 1 つ以上の特定の IP アドレスまたは IP アドレスの範囲に制限するには、以下の手順を実行します。
有効な IP アドレスの範囲
有効な任意の CIDR 範囲を指定できます。たとえば、100.
と指定して、有効な範囲を 100.
にすることができます。この場合、範囲内のすべてのアドレスが、100.
で始まる必要があります。
- API キーページを開きます。
- 標準キーリストまたは制限付きのキーリストで、表示するキーの行のオーバーフローメニュー () をクリックして、IP 制限の管理… を選択します。
- 特定の IP アドレスのセットに使用を制限するをクリックします。
- IP アドレスまたは IP アドレスの範囲を入力します。
- 個々の IP アドレスは、IP アドレスフィールドに入力します。
- IP アドレスの範囲は、Classless Inter-Domain Routing (CIDR) 表記で範囲を入力します。IP アドレスフィールドに、範囲の最初のアドレスを入力します。CIDR フィールドに、ネットワークのプレフィックスサイズを入力します。
- 一括管理タブを選択して、個々の IP アドレスと範囲をスペースで区切って入力することもできます。一方のタブで加えた変更は、もう一方のタブに反映されます。
- 別のアドレスまたは範囲を追加するには、+ 追加をクリックします。
- 保存をクリックします。
シークレットまたは制限付きの API キーの名前またはメモを変更する
シークレットまたは制限付きのキーの名前またはメモのテキストを変更するには、以下の手順を実行します。
- API キーページを開きます。
- 変更するキーの行で、オーバーフローメニュー () をクリックして、キーの編集… を選択します。
- 名前を変更する場合、キーの名前に新しい名前を入力します。
- メモのテキストを変更する場合、メモに新しいメモのテキストを入力します。
- 保存をクリックします。
API リクエストログを表示する
API リクエストログを開くには、任意のキーのオーバーフローメニュー () をクリックして、リクエストのログを表示を選択します。ログを開くと、メインの Stripe ダッシュボードにリダイレクトされます。