コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
売上
プラットフォームおよびマーケットプレイス
資金管理
開発者向けリソース
概要すべての商品を確認する
構築を開始する
開発の開始
API について
    API ツアー
    Payment Intents API
    Setup Intents API
    PaymentIntents と SetupIntents の仕組み
    決済手段
    商品と価格
      商品および価格の仕組み
      商品および価格を管理する
    以前の API
    リリースフェーズ
LLM を活用して構築
ノーコードで Stripe を使用する
Stripe を設定する
アカウントを作成する
ウェブダッシュボード
モバイルダッシュボード
Stripe に移行
ホーム始めるAbout the APIsProducts and prices

注

このページはまだ日本語ではご利用いただけません。より多くの言語で文書が閲覧できるように現在取り組んでいます。準備が整い次第、翻訳版を提供いたしますので、もう少しお待ちください。

商品および価格を管理する

商品と価格を管理する方法をご紹介します。

ダッシュボードまたは API を使用して、商品と価格の作成と更新を行うことができます。

変動料金の作成といった高度なユースケースでは、API を使用する必要があります。商品や料金が多数ある場合や、Elements でカスタムの導入を構築する場合は、API を使用します。

  • コードの記述を避けたい場合や、商品と価格が少ない場合は、ダッシュボードを使用して商品と価格を作成・管理します。サンドボックスで料金体系モデルを設定し、商品詳細ページの本番環境にコピーボタンをクリックします。
  • 商品および価格を作成・管理するには、API または Stripe CLI を使用します。API は本番環境向けの直接的な方法です。一方、Stripe CLI は、端末から直接 Stripe の導入を作成、テスト、管理する開発者向けツールです。

次の API ステップでは、例としてプロジェクト管理ダッシュボードを基本商品とする架空の SaaS コラボレーションツール (Togethere)を使用します。

商品を作成する

単一の商品と価格を作成するには、次のようにします。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/products \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d name="Basic Dashboard" \ -d "default_price_data[unit_amount]"=1000 \ -d "default_price_data[currency]"=usd \ -d "default_price_data[recurring][interval]"=month \ -d "expand[]"=default_price

顧客が初めて Togethere に登録する際には、設定手数料も請求されます。

手数料を商品と価格として作成するには、異なる商品名と価格データを使用して同じリクエストを行います。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/products \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d name="Starter Setup" \ -d "default_price_data[unit_amount]"=2000 \ -d "default_price_data[currency]"=usd \ -d "expand[]"=default_price

商品を編集する

API で商品を変更するには、以下のようにします。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/products/id \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d name="Updated Product"

商品をアーカイブする

商品を無効にして新しい請求書またはサブスクリプションに追加できないようにする場合は、その商品をアーカイブすることができます。商品をアーカイブしても、その商品を使用する既存のサブスクリプションは、キャンセルされるまで有効なままになりますが、その商品を使用する既存の決済フォームへのリンクは無効化されます。価格が関連付けられている商品を削除することはできませんが、アーカイブすることはできます。

API を使用して、商品をアーカイブ (商品が購入不可であることを表示) するには、active パラメーターを false に変更します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/products \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d active=false \ -d name="My product"

API を使用して、商品のアーカイブを解除 (商品が購入可能であることを表示) するには、active パラメーターを true に変更します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/products/id \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d active=true

商品を削除する

価格が関連付けられていない商品のみを削除できます。あるいは、商品をアーカイブすることができます。

API を使用して商品を完全に削除するには、商品の削除を使用します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl -X DELETE https://api.stripe.com/v1/products/
{{PRODUCT_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

料金を作成する

1 つの商品に対して 1 つまたは複数の価格を作成できます。たとえば、Togethere の「スターター」レベルを月額 10 USD、年額 100 USD、または 1 回限りの購入額 9 EUR で提供することができます。

注

価格の作成後は、その metadata、nickname、active フィールドのみを更新できます。

API で価格を作成するには、価格の作成を使用します。

Togethere は「スターター」サービスレベルに対して、月額 10 USD を請求します。

unit_amount パラメーターは価格に指定された通貨の最小単位を使用します。Togethere のケースでは、最小単価はセントです。10 USD は 1,000 セントなので、価格の unit_amount は 1000 になります。

価格を作成してそれを商品に割り当てるには、商品 ID、単価、通貨、および期間を渡します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/prices \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d product=
{{PRODUCT_ID}}
\ -d unit_amount=1000 \ -d currency=usd \ -d "recurring[interval]"=month

新規顧客に対する設定手数料は 20 USD です。この請求はサブスクリプションとは別に 1 回のみ請求されるため、interval を渡す必要はありません。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/prices \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d product=
{{PRODUCT_ID}}
\ -d unit_amount=2000 \ -d currency=usd

デフォルトの価格を設定する

商品のデフォルトの価格は、顧客に提示する最も標準の価格です。たとえば、1 つの商品にシーズンセールの価格が複数設定される場合がありますが、デフォルトは、通常の (セール用ではない) 価格を表します。商品の価格が 1 つのみである場合は、必然的にその価格がデフォルトの価格と見なされます。デフォルトの価格は、active (有効) な Price である必要があります。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/products/
{{PRODUCT_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d default_price=
{{PRICE_ID}}

インライン価格を作成する

インライン価格を作成するには、1 回限りの支払いまたはサブスクリプションを作成するときに price.id ではなく price_data を渡します。たとえば、顧客をインライン価格の月次サブスクリプションに登録するには、次の手順に従います。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/subscriptions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=
{{CUSTOMER_ID}}
\ -d "items[0][price_data][unit_amount]"=5000 \ -d "items[0][price_data][currency]"=usd \ -d "items[0][price_data][product]"=
{{PRODUCT_ID}}
\ -d "items[0][price_data][recurring][interval]"=month

これにより基本サービスの月額 $50 継続価格が設定されます。インライン価格は作成後の更新・再利用ができません。price_data で作成された価格は標準で非活性化されます (active=false)。price_data は、Checkout Sessions、インボイスアイテム、および サブスクリプションスケジュール でも使用できます。

多通貨価格を作成する

多通貨の価格は、API またはダッシュボードで作成できます。

currency パラメーターは、Price のデフォルトの通貨を設定します。すべての価格に同じデフォルト通貨が設定されている必要があります。currency_options パラメーターは、Price がサポートする他の通貨を設定します。

このコードスニペットは、デフォルト通貨として usd (米ドル)、eur (ユーロ)、jpy (日本円) をサポートする Price を作成する方法を示しています。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/prices \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d unit_amount=1000 \ -d currency=usd \ -d product={{PRODUCT_ID}} \ -d "currency_options[eur][unit_amount]"=9000 \ -d "currency_options[jpy][unit_amount]"=12000

クーポン、プロモーションコード、配送料も価格と同様に多通貨に対応しています。

多通貨価格を表示する

顧客に現地通貨で価格を表示するには、多通貨の Price を取得して、その currency_options.<currency>.unit_amount フィールドを確認します。デフォルトでは、API の応答に currency_options は含まれません。レスポンスにこのフィールドを含めるには、currency_options フィールドを拡張します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl -G https://api.stripe.com/v1/prices/{{PRICE_ID}} \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "expand[]"=currency_options

注

遅延を改善してレート制限に伴う問題を避けるには、顧客がサイトを訪れるたびに価格を再取得するのではなく、キャッシュするようにします。

多通貨価格を使用する

各購入では、システムでの価格の適用方法に応じて、他通貨価格がサポートする通貨のいずれかが使用されます。

価格が対応している通貨であれば、Checkout が顧客の IP アドレスから顧客の現地通貨を判断します。顧客の現地通貨に対応していない場合、Checkout は価格にデフォルトの通貨を使用します。

Checkout セッションで複数の価格、クーポン、プロモーションコード、または配送料金が使用されている場合、そのすべてが顧客の現地通貨に対応している必要があります。対応していない場合、Checkout はデフォルトの通貨を使用します。すべてに同じデフォルト通貨が設定されている必要があります。異なっていると、Checkout Session を作成するときに Stripe がエラーを返します。

また、currency パラメーターを使用して、Checkout で使用する通貨を明示的に指定することもできます。

Checkout での手動通貨の価格の定義についてご紹介します。

単一通貨価格から多通貨価格に移行する

単一通貨の価格が既存の場合、ダッシュボードで、後からその価格に複数の通貨を追加できます。

Checkout または Payment Links を使用している場合、多通貨の Price が自動的に有効になります。価格が顧客の現地通貨をサポートしていることを Stripe が検出すると、その通貨が自動的に使用されます。1 回の購入で複数の価格、クーポン、プロモーションコード、または配送料金が使用されている場合、そのすべてが顧客の現地通貨に対応していて、そのデフォルト通貨がすべて同じである必要があります。

サブスクリプションを直接作成した場合、多通貨の Price は currency パラメーターを渡すまで有効になりません。currency パラメーターを渡さない場合、サブスクリプションは常に価格にデフォルト通貨を使用します。

検索キー

企業の多くは、ウェブサイトに価格情報を掲示しています。これらの価格がハードコード化されていて、価格の変更を必要とする場合、その変更プロセスはたいてい手作業であり、新しいコードのデプロイが必要になります。このようなシナリオを管理しやすくするために、Price オブジェクトで lookup_key 属性を使用します。このキーを使用することで以下の処理が可能になります。

  • フロントエンドでさまざまな価格をレンダリングする。
  • レンダリングされた価格を使用して顧客に請求する。

価格を作成する際に、lookup_key を渡すことができます。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/prices \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d product=
{{PRODUCT_ID}}
\ -d unit_amount=1000 \ -d currency=usd \ -d "recurring[interval]"=month \ -d lookup_key=standard_monthly

料金体系ページで月額 10 USD などのテキストをハードコード化してバックエンドで価格 ID を使用するのではなく、standard_monthly キーを使用して料金をクエリし、その結果をフロントエンドに表示できます。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl -G https://api.stripe.com/v1/prices \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "lookup_keys[]"=standard_monthly

注

パフォーマンスを改善するため、キャッシングレイヤーを追加して、価格の再読み込みは必要な場合のみ行うことをお勧めします。

顧客が登録や支払いのボタンをクリックしたら、上記の GET リクエストからの価格を Subscriptions API に渡します。

これにより、複数の料金を表示できるようになります。新規ユーザーに対する請求を毎月 10 USD ではなく 20 USD に変更した場合、新しい料金を作成し、transfer_lookup_key=true を使用して検索キーをその新しい料金に転送するだけで済みます。

切り捨て/切り上げ

切り捨て/切り上げは、請求書のラインアイテムレベルで行われます。たとえば、unit_amount_decimal = 0.05 で料金を作成し、その[料金]で quantity = 30 として月次サブスクリプションを作成した場合、数量に小数の金額を乗じた後に切り捨て/切り上げが適用されます。この例の場合、ラインアイテムで算出される金額は、0.05 * 30 = 1.5 となり、2 セントに切り上げられます。複数のラインアイテムが存在する場合は、請求書の合計金額の計算前に、それぞれのラインアイテムで切り捨て/切り上げが行われます。これにより、小数は料金にのみ適用されることになり、顧客への請求は整数単位の金額で行われます。

外税は、税率に応じて各ラインアイテムの金額に加算されます。税金の自動計算を有効にしている場合、外税は、請求書ごとの割引を含めた合計額に対して適用され、端数処理されます。ラインアイテムごとまたは請求書ごとのいずれかで税率を手入力する場合、端数処理の適用方法を選ぶことができます。ダッシュボード内の請求書設定ページで、個々のラインアイテムまたは請求書の小計に対して、税金の適用と端数処理を設定します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/prices \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d product=
{{PRODUCT_ID}}
\ -d unit_amount=2000 \ -d currency=usd \ -d "recurring[interval]"=month \ -d lookup_key=standard_monthly \ -d transfer_lookup_key=true

料金を編集する

ダッシュボードまたは API で、価格に関する複数のプロパティを更新できます。たとえば、価格を有効にしたり解除したり、価格のメタデータを変更することができます。

API では価格の金額を変更できないことに注意してください。代わりに、新たな金額で新しい価格を作成し、その新しい価格の ID に切り替えて、古い価格を更新して無効にすることをお勧めします。

API を使用して価格を編集するには、価格の更新を使用して、変更するパラメーターを指定します。パラメーターを指定しない場合は変更されません。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/prices/id \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d lookup_key=MY_LOOKUP_KEY

料金をアーカイブする

価格を無効にして、新しい請求書またはサブスクリプションに追加できないようにする場合は、その価格をアーカイブできます。価格をアーカイブする場合、その価格を使用する既存のサブスクリプションは、キャンセルされるまで有効なままになります。また、その商品を使用する既存の決済フォームへのリンクは無効化されます。

API を使用して、価格をアーカイブ (新たな購入に利用できないことを表示) するには、active パラメーターを false に変更します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/prices/id \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d lookup_key=MY_LOOKUP_KEY \ -d active=false

API を使用して、価格のアーカイブを解除 (新たな購入に利用できることを表示) するには、active パラメーターを true に変更します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/prices/id \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d lookup_key=MY_LOOKUP_KEY \ -d active=true

料金を削除する

使用されたことがない価格のみを削除できます。あるいは、価格をアーカイブすることができます。

API を使用して価格を削除することはできません。価格をアーカイブして、active=false としてマークすることで、購入に使用できないことを示すことができます。

料金体系情報を表示する

商品と料金を作成した後、ウェブサイトに料金表を埋め込み、料金体系の情報を顧客に表示することができます。顧客がサブスクリプションを選択すると、決済フローに直接移動します。コードを記述することなく、ダッシュボードで設定、カスタマイズ、更新を直接行うことが可能です。

商品および価格をインポートする

商品カタログが非常に大きい場合は、Products API を使用して、カタログをプログラムでインポートします。商品カタログを Stripe にインポートする場合、商品管理システムや CSV ファイルなど、任意の開始データソースを使用できます。

Products API を使用して、システム内の各製品に対して Stripe で製品を作成します。システム内の商品を Stripe 内の商品にマッピングするには、インポートする各商品に一意の id を割り当てます。商品ごとに、Prices API を使用して対応する価格を作成します。新しく作成した価格の id を必ず保存してください。この id は、実装で商品と価格を使用するときに渡す必要があります。

ダッシュボードを確認するか、API を使用して List all products (すべての商品をリスト) することで、インポートを確認します。

インポートした価格を削除する

開発中は、テストのためにこのスクリプトを複数回実行する必要がある場合があります。同じ製品 ID を使用すると、その ID の製品が既に存在することを示すエラーが表示されます。製品をまだ使用していない場合は、Stripe ダッシュボードを使用して削除できます。

  1. 商品のダッシュボードに移動して、商品を見つけます。

  2. 料金体系セクションで、価格の隣にあるオーバーフローメニュー () をクリックして、料金を削除を選択します。

  3. ページの上部にあるオーバーフローメニュー () をクリックして、商品を削除を選択します。

商品と価格を同期する

場合によっては、インポートを複数回実行する必要があります。インポートをテストするスクリプトを作成し、必要に応じて元のデータ ソースを Stripe と同期できます。スクリプトをべき等にしてエラーに対する回復性を持たせるには、まず製品を作成してみるのが安全であり、製品が既に存在する場合は更新しても構いません。

商品カタログと Stripe との同期を維持するには、Webhook またはその他のメカニズムを使用して、Stripe で商品の更新をトリガーします。プログラムで商品を更新するには、次のパターンを使用します。

最初に、List all prices (すべての価格をリスト) API を使用して、商品に関連付けられている既存の価格を見つけ、価格がデータソースと一致していることを確認します。各商品には有効な価格が 1 つだけ設定されている必要があります。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl -G https://api.stripe.com/v1/prices \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d product=
{{PRODUCT_ID}}
\ -d active=true

次に、価格の小数点以下の金額が変更されているかどうかを確認します。unit_amount_decimal フィールドには、単価がセント単位で表示されます。

金額が一致しない場合は、新しい価格を作成する必要があります。新しい価格を作成する際、元の商品の product ID、currency、および更新後の unit_amount 価格を指定します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/prices \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d product=
{{PRODUCT_ID}}
\ -d unit_amount=2000 \ -d currency=usd

古い価格を更新して active=false とマークします。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/prices/
{{PRICE_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d active=false

導入で商品と価格を使用する

商品と価格は、複数の異なる Stripe 導入パスで使用できます。

Checkout セッションを作成するときに価格 ID を指定します。

  • 1 回限りの価格を使用する場合は、決済を受け付けるときに Checkout セッションを作成する方法をご覧ください。

  • Subscription を作成している場合は、サブスクリプションの導入を構築する際に Checkout セッションの作成方法をご覧ください。

テスト

テスト環境から本番環境に商品をコピーすると、再作成する必要がなくなります。商品に関連付けられている価格もコピーされます。ダッシュボードの商品詳細ページで、右上隅にある 本番環境にコピー をクリックします。

テスト製品を本番環境にコピーできるのは一度だけです。コピー後にテスト製品を更新した場合、本番製品に変更は反映されません。

このページはお役に立ちましたか。
はいいいえ
  • お困りのことがございましたら 、サポートにお問い合わせください。
  • 早期アクセスプログラムにご参加ください。
  • 変更ログをご覧ください。
  • ご不明な点がございましたら、お問い合わせください。
  • LLM ですか?llms.txt を読んでください。
  • Powered by Markdoc