ダッシュボードまたは API を使用して、商品と価格の作成と更新を行うことができます。
変動料金の作成 といった高度なユースケースでは、API を使用する必要があります。商品や料金が多数ある場合や、Elements にカスタムの導入を構築 する場合は、API を使用する必要があります。
コードの記述を避けたい場合や、商品と価格が少ない場合は、ダッシュボード を使用して商品と価格を作成・管理します。サンドボックスで料金体系モデル を設定し、商品詳細ページの本番環境にコピー ボタンをクリックします。 商品および価格を作成・管理するには、API または Stripe CLI を使用します。API は本番環境向けの直接的な方法です。一方、Stripe CLI は、端末から直接 Stripe の導入を作成、テスト、管理する開発者向けツールです。 次の API ステップでは、例としてプロジェクト管理ダッシュボードを基本商品とする架空の SaaS コラボレーションツール (Togethere)を使用します。
商品を作成する 商品と価格を作成する 商品を作成する ダッシュボードで商品を作成するには、以下のようにします。
その他 > 商品カタログ に移動します。+商品を追加 をクリックします。商品の名前 を入力します。 「(オプション)」 説明 を追加します。この説明は、商品の購入時に Costomer portal (カスタマーポータル) と Quotes (見積もり) に表示されます。 (Optional) Add an Image of your product. Use a JPEG, PNG, or WEBP file that’s smaller than 2MB. The image appears at checkout.「(オプション)」Stripe Tax を使用している場合は、商品の税コード を選択します。適切な商品カテゴリーについて、詳細は税コード をご覧ください。 (オプション) 明細書表記 を入力します。この表記により継続支払いのアカウント表記が上書きされます。銀行明細書に記載された場合に顧客が内容を把握できるような表記を選んでください。 (オプション) ユニットラベル を入力します。ユニットラベルにより、商品をどのように販売するかを説明できます。たとえば、ユーザー数ベースで請求する場合に「ユーザー数」と入力すると、ラインアイテムには「ユーザー毎」の価格が記載されます。ユニットラベルは購入時や、請求書、領収書、カスタマーポータル に表示されます。 商品の価格を作成する ダッシュボードで商品を保存するには、価格も 1 つ以上追加する必要があります。
商品エディターは、デフォルトで定額の料金体系モデルを表示します。複数の価格を作成することも、高度な料金体系オプション で異なる料金体系モデルを使用することもできます。
料金体系モデル を選択します。継続的な料金体系モデルの詳細は、料金体系モデルのガイド をご覧ください。
定額の料金体系: 各ユニットに対して一律の価格を請求します。このオプションを使用する場合は、1 回限り または継続 を選択します。パッケージ料金体系: 5 ユニットごとに 25 USD を請求するなど、パッケージやグループを単位にして請求します。購入数はデフォルトで切り上げられるので、8 ユニット購入する顧客は 50 USD を支払うことになります。段階的な料金体系: 注文内の一部のユニットに異なる価格が適用される場合がある、段階制料金を使用します。たとえば、最初の 100 ユニットに対してはユニット当たり 10 USD、以降の 50 ユニットについてはユニット当たり 5 USD を請求することができます。このオプションを使用する場合は、価格の通貨を選択して、段階の表に入力してください。数量ベースの料金体系 : 販売する合計ユニット数に対して設定された単価で請求します。たとえば、50 ユニットの場合はユニット当たり 10 USD、100 ユニットの場合はユニット当たり 7 USD を請求します。このオプションを使用する場合は、価格の通貨を選択して、段階の表に入力してください。顧客の選択による価格 : 商品、サービス、活動に対して支払う金額を支払人が決定できるようにします。顧客の選択による価格 は、Checkout および Payment Links でのみ使用できます。使用量ベースの料金体系: 請求サイクルにおけるサービスの利用量に応じて顧客に請求します。「(オプション)」複数の通貨で販売している場合は、別の通貨を追加 をクリックして、通貨ごとの請求額を設定します。
継続価格の請求期間 を選択します。ドロップダウンのオプションに目的のものがない場合は、カスタムの期間を追加できます。
料金に税金を含める かどうかを選択します。詳しくは、サブスクリプションと税金 をご覧ください。
「(オプション)」価格の説明 を入力します。この説明は顧客に表示されません。
「(オプション)」商品に複数の価格を作成する場合は、高度な料金体系オプション をクリックします。 商品を追加 をクリックして、商品と価格を保存します。どちらも後から編集 できます。商品を編集する ダッシュボードで商品を変更するには、以下のようにします。
その他 > 商品カタログ に移動します。変更する商品を見つけて、オーバーフローメニュー ( ) をクリックし、商品を編集 をクリックします。 その商品に変更を加えます。 商品を保存 をクリックします。商品情報ページ内からオーバーフローメニュー ( ) または編集 をクリックすることでも、商品を編集できます。
商品をアーカイブする 商品を無効にして新しい請求書またはサブスクリプションに追加できないようにする場合は、その商品をアーカイブすることができます。商品をアーカイブしても、その商品を使用する既存のサブスクリプションは、キャンセルされるまで有効なままになりますが、その商品を使用する既存の決済フォームへのリンクは無効化されます。価格が関連付けられている商品を削除することはできませんが、アーカイブすることはできます。
商品をアーカイブするには、以下のようにします。
その他 > 商品カタログ に移動します。変更する商品を探して、オーバーフローメニュー ( ) をクリックし、商品をアーカイブ をクリックします。 商品のアーカイブを解除するには、以下のようにします。
商品カタログ > 概要 ページでアーカイブ済み タブに移動します。変更する商品を探して、オーバーフローメニュー ( ) をクリックし、商品のアーカイブを解除 をクリックします。 商品情報ページから商品のアーカイブを解除することもできます。
商品を削除する 価格が関連付けられていない商品のみを削除できます。あるいは、商品をアーカイブ することができます。
商品に価格が関連付けられている場合は、商品を削除する前に価格を削除 またはアーカイブ する必要があります。Stripe は、過去の取引の価格と商品の記録を保持します。
商品を完全に削除するには、以下のようにします。
その他 > 商品カタログ に移動します。変更する商品を探して、オーバーフローメニュー ( ) をクリックし、商品を削除 をクリックします。 料金を作成する 1 つの商品に対して 1 つまたは複数の価格を作成できます。たとえば、Togethere の「スターター」レベルを月額 10 USD、年額 100 USD、または 1 回限りの購入額 9 EUR で提供することができます。
注 価格の作成後は、その metadata
、nickname
、active
フィールドのみを更新できます。
ダッシュボードで価格を作成するには、まず商品を作成 する必要があります。その後、価格を作成できます。
料金体系モデル を選択します。継続的な料金体系モデルの詳細は、料金体系モデルのガイド をご覧ください。
定額の料金体系: 各ユニットに対して一律の価格を請求します。このオプションを使用する場合は、1 回限り または継続 を選択します。パッケージ料金体系: 5 ユニットごとに 25 USD を請求するなど、パッケージやグループを単位にして請求します。購入数はデフォルトで切り上げられるので、8 ユニット購入する顧客は 50 USD を支払うことになります。段階的な料金体系: 注文内の一部のユニットに異なる価格が適用される場合がある、段階制料金を使用します。たとえば、最初の 100 ユニットに対してはユニット当たり 10 USD、以降の 50 ユニットについてはユニット当たり 5 USD を請求することができます。このオプションを使用する場合は、価格の通貨を選択して、段階の表に入力してください。数量ベースの料金体系 : 販売する合計ユニット数に対して設定された単価で請求します。たとえば、50 ユニットの場合はユニット当たり 10 USD、100 ユニットの場合はユニット当たり 7 USD を請求します。このオプションを使用する場合は、価格の通貨を選択して、段階の表に入力してください。顧客の選択による価格 : 商品、サービス、活動に対して支払う金額を支払人が決定できるようにします。顧客の選択による価格 は、Checkout および Payment Links でのみ使用できます。使用量ベースの料金体系: 請求サイクルにおけるサービスの利用量に応じて顧客に請求します。「(オプション)」複数の通貨で販売している場合は、別の通貨を追加 をクリックして、通貨ごとの請求額を設定します。
継続価格の請求期間 を選択します。ドロップダウンのオプションに目的のものがない場合は、カスタムの期間を追加できます。
料金に税金を含める かどうかを選択します。詳しくは、サブスクリプションと税金 をご覧ください。
「(オプション)」価格の説明 を入力します。この説明は顧客に表示されません。
価格を作成する をクリックして、価格を保存します。価格は後から編集 できます。デフォルトの価格を設定する 商品のデフォルトの価格は、顧客に提示する最も標準の価格です。たとえば、1 つの商品にシーズンセールの価格が複数設定される場合がありますが、デフォルトは、通常の (セール用ではない) 価格を表します。商品の価格が 1 つのみである場合は、必然的にその価格がデフォルトの価格と見なされます。デフォルトの価格は、active (有効) な Price である必要があります。
ダッシュボードで商品のデフォルトの価格を変更するには、次のようにします。
その他 > 商品カタログ に移動します。変更する商品を見つけて、オーバーフローメニュー ( ) をクリックし、商品を編集 をクリックします。 料金情報 セクションで、新しいデフォルト価格として設定する価格を見つけ、デフォルト価格として設定 をクリックします。商品を保存 をクリックします。ダッシュボードで新しい価格を作成して新しいデフォルト価格にするには、以下のようにします。
その他 > 商品カタログ に移動します。変更する商品を見つけてクリックし、商品情報ページを開きます。 料金体系 セクションの新しい料金を追加 ボタンをクリックします。料金体系の詳細を入力して、デフォルト価格として設定 を選択します。価格を作成 するときに使用できるフィールドの詳細をご覧ください。 価格を追加 をクリックします。検索キー 企業の多くは、ウェブサイトに価格情報を掲示しています。これらの価格がハードコード化されていて、価格の変更を必要とする場合、その変更プロセスはたいてい手作業であり、新しいコードのデプロイが必要になります。このようなシナリオを管理しやすくするために、Price オブジェクト で lookup_key 属性を使用します。このキーを使用することで以下の処理が可能になります。
フロントエンドでさまざまな価格をレンダリングする。 レンダリングされた価格を使用して顧客に請求する。 価格を作成する際に、lookup_ key
を渡すことができます。
curl https://api.stripe.com/v1/prices \
-u "sk_test_BQokikJOvBiI2HlWgH4olfQ2
:" \
-d product = \
-d unit_amount = 1000 \
-d currency = usd \
-d "recurring[interval]" = month \
-d lookup_key = standard_monthly
料金体系ページで月額 10 USD などのテキストをハードコード化してバックエンドで価格 ID を使用するのではなく、standard_ monthly
キーを使用して料金をクエリし、その結果をフロントエンドに表示できます。
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 セントに切り上げられます。複数のラインアイテムが存在する場合は、請求書の合計金額の計算前に、それぞれのラインアイテムで切り捨て/切り上げが行われます。これにより、小数は料金にのみ適用されることになり、顧客への請求は整数単位の金額で行われます。
外税は、税率に応じて各ラインアイテムの金額に加算されます。税金の自動計算 を有効にしている場合、外税は、請求書ごとの割引を含めた合計額に対して適用され、端数処理されます。ラインアイテムごとまたは請求書ごとのいずれかで税率を手入力する場合、端数処理の適用方法を選ぶことができます。ダッシュボード内の請求書設定 ページで、個々のラインアイテムまたは請求書の小計に対して、税金の適用と端数処理を設定します。
curl https://api.stripe.com/v1/prices \
-u "sk_test_BQokikJOvBiI2HlWgH4olfQ2
:" \
-d product = \
-d unit_amount = 2000 \
-d currency = usd \
-d "recurring[interval]" = month \
-d lookup_key = standard_monthly \
-d transfer_lookup_key = true
料金を編集する ダッシュボードまたは API で、価格に関する複数のプロパティを更新できます。たとえば、価格を有効にしたり解除したり、価格のメタデータを変更することができます。
API では価格の金額を変更できないことに注意してください。代わりに、新たな金額で新しい価格を作成し、その新しい価格の ID に切り替えて、古い価格を更新して無効にすることをお勧めします。
ダッシュボードで価格を変更するには、以下のようにします。
その他 > 商品カタログ に移動します。価格を変更する商品を探してクリックします 変更する価格を探して、オーバーフローメニュー ( ) をクリックし、価格を編集 をクリックします。 価格を変更します。この時点で別の価格を追加することができます。 保存 をクリックします。料金をアーカイブする 価格を無効にして、新しい請求書またはサブスクリプションに追加できないようにする場合は、その価格をアーカイブできます。価格をアーカイブする場合、その価格を使用する既存のサブスクリプションは、キャンセルされるまで有効なままになります。また、その商品を使用する既存の決済フォームへのリンクは無効化されます。
ダッシュボードで価格をアーカイブするには、以下のようにします。
その他 > 商品カタログ に移動します。変更する商品を探して、オーバーフローメニュー ( ) をクリックします。 商品情報ページで、変更する価格を探して、その価格の横にあるオーバーフローメニュー ( ) をクリックし、価格をアーカイブ をクリックします。 価格のアーカイブを解除するには、以下のようにします。
その他 > 商品カタログ に移動します。変更する商品を探して、オーバーフローメニュー ( ) をクリックします。 商品情報ページで、変更する価格を探して、その価格の横にあるオーバーフローメニュー ( ) をクリックし、価格のアーカイブを解除 をクリックします。 料金を削除する 使用されたことがない価格のみを削除できます。あるいは、価格をアーカイブ することができます。
ダッシュボードで価格を完全に削除するには、以下のようにします。
その他 > 商品カタログ に移動します。変更する商品を探して、オーバーフローメニュー ( ) をクリックします。 商品情報ページで、変更する価格を探して、その価格の横にあるオーバーフローメニュー ( ) をクリックし、料金を削除 をクリックします。 料金体系情報を表示する 商品と料金を作成した後、ウェブサイトに料金表 を埋め込み、料金体系の情報を顧客に表示することができます。顧客がサブスクリプションを選択すると、決済フローに直接移動します。コードを記述することなく、ダッシュボード で設定、カスタマイズ、更新を直接行うことが可能です。
商品および価格をインポートする 商品カタログが非常に大きい場合は、Products API を使用して、カタログをプログラムでインポートします。商品カタログを Stripe にインポートする場合、商品管理システムや CSV ファイルなど、任意の開始データソースを使用できます。
Products API を使用して、システム内の各製品に対して Stripe で製品を作成します。システム内の商品を Stripe 内の商品にマッピングするには、インポートする各商品に一意の id を割り当てます。商品ごとに、Prices API を使用して対応する価格を作成します。新しく作成した価格の id
を必ず保存してください。この id
は、実装で商品と価格を使用する ときに渡す必要があります。
ダッシュボード を確認するか、API を使用して List all products (すべての商品をリスト) することで、インポートを確認します。
インポートした価格を削除する 開発中は、テストのためにこのスクリプトを複数回実行する必要がある場合があります。同じ製品 ID を使用すると、その ID の製品が既に存在することを示すエラーが表示されます。製品をまだ使用していない場合は、Stripe ダッシュボードを使用して削除できます。
商品のダッシュボード に移動して、商品を見つけます。
料金体系 セクションで、価格の隣にあるオーバーフローメニュー ( ) をクリックして、料金を削除 を選択します。
ページの上部にあるオーバーフローメニュー ( ) をクリックして、商品を削除 を選択します。
商品と価格を同期する 場合によっては、インポートを複数回実行する必要があります。インポートをテストするスクリプトを作成し、必要に応じて元のデータ ソースを Stripe と同期できます。スクリプトをべき等にしてエラーに対する回復性を持たせるには、まず製品を作成してみるのが安全であり、製品が既に存在する場合は更新しても構いません。
商品カタログと Stripe との同期を維持するには、Webhook またはその他のメカニズムを使用して、Stripe で商品の更新をトリガーします。プログラムで商品を更新 するには、次のパターンを使用します。
最初に、List all prices (すべての価格をリスト) API を使用して、商品に関連付けられている既存の価格を見つけ、価格がデータソースと一致していることを確認します。各商品には有効な価格が 1 つだけ設定されている必要があります。
curl -G https://api.stripe.com/v1/prices \
-u "sk_test_BQokikJOvBiI2HlWgH4olfQ2
:" \
-d product = \
-d active = true
次に、価格の小数点以下の金額が変更されているかどうかを確認します。unit_ amount_ decimal
フィールド には、単価がセント単位で表示されます。
金額が一致しない場合は、新しい価格を作成する必要があります。新しい価格を作成 する際、元の商品の product
ID、currency
、および更新後の unit_ amount
価格を指定します。
curl https://api.stripe.com/v1/prices \
-u "sk_test_BQokikJOvBiI2HlWgH4olfQ2
:" \
-d product = \
-d unit_amount = 2000 \
-d currency = usd
古い価格を更新 して active=false
とマークします。
curl https://api.stripe.com/v1/prices/ \
-u "sk_test_BQokikJOvBiI2HlWgH4olfQ2
:" \
-d active = false
導入で商品と価格を使用する 商品と価格は、複数の異なる Stripe 導入パスで使用できます。
Checkout セッションを作成するときに価格 ID を指定します。
テスト テスト環境から本番環境に商品をコピーすると、再作成する必要がなくなります。商品に関連付けられている価格もコピーされます。ダッシュボードの商品詳細ビューで、右上隅にある 本番環境にコピー をクリックします。
テスト製品を本番環境にコピーできるのは一度だけです。コピー後にテスト製品を更新した場合、本番製品に変更は反映されません。