メインコンテンツへスキップ

チェックアウトセッション

チェックアウトセッションは、顧客が支払いを行う際のセッションを表します。これは、一回限りの支払いやサブスクリプションを作成するための支払い情報を収集する主要な仕組みです。セッションを作成すると、顧客は安全なホスト型支払いページにリダイレクトされます。支払いが完了すると、顧客はあなたのアプリケーションにリダイレクトされて戻ります。

関連ガイド: 一回限りの支払いサブスクリプション

チェックアウトセッションオブジェクト

チェックアウトセッションオブジェクトには、ラインアイテム、支払いステータス、顧客情報など、支払いフローに関するすべての詳細が含まれています。

AttributeTypeDescription
idstringオブジェクトの一意の識別子。
urlstring支払いを完了するために顧客をリダイレクトする先の URL。
statusstringチェックアウトセッションのステータス。opencomplete、または expired のいずれかです。
payment_statusstringセッションの支払いステータス。paidunpaid、または no_payment_required のいずれかです。
modestring収集される支払いの種類を決定するチェックアウトセッションのモード。paymentsetup、または subscription のいずれかです。
amount_subtotalstringすべてのラインアイテム価格の合計。
amount_totalstring割引と税金が適用された後の合計金額。
currency_idstring支払いに使用される通貨の ID。
customer_idstringこのセッションの顧客の ID。
line_itemsarray顧客が購入しているアイテムのリスト。
metadataobjectオブジェクトに添付できるキーと値のペアのセット。
success_urlstring支払いが成功した場合にリダイレクトする URL。
cancel_urlstring顧客がセッションをキャンセルした場合にリダイレクトする URL。
expires_atnumberチェックアウトセッションが期限切れになる Unix タイムスタンプ。

チェックアウトセッションの作成

顧客が支払い情報を入力するためのセッションを作成します。

Create a Checkout Session

javascript
const session = await payment.checkoutSessions.create({
  success_url: 'https://example.com/success',
  cancel_url: 'https://example.com/cancel',
  line_items: [
    {
      price_id: 'price_12345',
      quantity: 1,
    },
  ],
  mode: 'payment', // or 'subscription'
});

パラメータ

NameTypeDescription
line_itemsarray必須。 ラインアイテムオブジェクトのリスト。詳細は以下の ラインアイテムのプロパティ テーブルを参照してください。
success_urlstring必須。 支払いが成功した後に顧客がリダイレクトされる URL。
cancel_urlstring必須。 顧客が支払いをキャンセルした場合にリダイレクトされる URL。
allow_promotion_codesbooleanプロモーションコードの使用を有効にします。デフォルトは false です。
billing_address_collectionstring顧客の請求先住所を収集するかどうかを指定します。auto または required を指定できます。デフォルトは auto です。
client_reference_idstringチェックアウトセッションを参照するための一意の文字列。これを使用して、セッションを内部システムと照合できます。
customer_idstringこのセッションに関連付ける既存の顧客の ID。
customer_creationstring顧客の作成をどのように処理するかを決定します。if_required または always を指定できます。デフォルトは always です。
expires_atnumberセッションが期限切れになる Unix タイムスタンプ。デフォルトは作成から 24 時間です。
metadataobjectオブジェクトに関する追加情報を格納するためのキーと値のペアのセット。
payment_intent_dataobject基礎となる PaymentIntent の作成に使用されるデータ。詳細は以下の Payment Intent データプロパティ テーブルを参照してください。
subscription_dataobjectセッションが subscription モードの場合にサブスクリプションの作成に使用されるデータ。詳細は以下の サブスクリプションデータプロパティ テーブルを参照してください。
include_free_trialbooleantrue でセッションが subscription モードの場合、価格で定義された試用期間が含まれます。

ラインアイテムのプロパティ

NameTypeDescription
price_idstring価格オブジェクトの ID。
quantitynumber購入されるラインアイテムの数量。デフォルトは 1 です。
adjustable_quantityobjectチェックアウトページで顧客がこのラインアイテムの数量を調整できるようにします。enabled (boolean)、minimum (number)、maximum (number) のプロパティが含まれます。

サブスクリプションデータプロパティ

NameTypeDescription
descriptionstringサブスクリプションのオプションの説明。
trial_period_daysnumberサブスクリプションの試用日数。
metadataobjectサブスクリプションに保存するキーと値のペアのセット。

戻り値

作成されたチェックアウトセッションオブジェクト。

Response

json
{
  "id": "cs_123456789",
  "object": "checkout.session",
  "url": "https://checkout.example.com/pay/cs_123456789",
  "status": "open",
  "payment_status": "unpaid",
  "mode": "payment",
  "success_url": "https://example.com/success",
  "cancel_url": "https://example.com/cancel",
  "line_items": [
    {
      "price_id": "price_12345",
      "quantity": 1
    }
  ],
  "expires_at": 1678886400,
  // ... other properties
}

チェックアウトセッションの取得

既存のチェックアウトセッションの詳細を取得します。

Retrieve a Checkout Session

javascript
const session = await payment.checkoutSessions.retrieve('cs_123456789');

パラメータ

NameTypeDescription
idstring必須。 取得するチェックアウトセッションの一意の識別子。

戻り値

取得したチェックアウトセッションオブジェクト。

Response

json
{
  "id": "cs_123456789",
  "object": "checkout.session",
  "status": "complete",
  "payment_status": "paid",
  // ... other properties
}

チェックアウトセッションの更新

渡されたパラメータの値を設定して、チェックアウトセッションオブジェクトを更新します。指定されなかったパラメータは変更されません。

Update a Checkout Session

javascript
const session = await payment.checkoutSessions.update('cs_123456789', {
  metadata: {
    order_id: '6735'
  }
});

パラメータ

NameTypeDescription
idstring必須。 更新するセッションの ID。
metadataobjectオブジェクトに保存するキーと値のペアのセット。これが更新できる唯一のフィールドです。

戻り値

更新されたチェックアウトセッションオブジェクト。

すべてのチェックアウトセッションを一覧表示

チェックアウトセッションのリストを返します。セッションは作成日順にソートされ、最新のセッションが最初に表示されます。

List Checkout Sessions

javascript
const sessions = await payment.checkoutSessions.list({
  limit: 5,
  status: 'open'
});

パラメータ

NameTypeDescription
statusstringステータスでセッションをフィルタリングします。opencomplete、または expired を指定できます。
payment_statusstring支払いステータスでセッションをフィルタリングします。paidunpaid、または no_payment_required を指定できます。
customer_idstring指定された顧客 ID のセッションのみを返します。
customer_didstring指定された顧客 DID のセッションのみを返します。
payment_intent_idstring指定された PaymentIntent のセッションのみを返します。
payment_link_idstring指定された支払いリンクから作成されたセッションのみを返します。
subscription_idstring指定されたサブスクリプションのセッションのみを返します。
metadata.{key}stringカスタムメタデータフィールドでフィルタリングします。例: metadata.order_id: '6735'
pagenumberページネーションのページ番号。デフォルトは 1 です。
pageSizenumberページあたりのアイテム数。デフォルトは 20 です。

戻り値

チェックアウトセッションオブジェクトの list を含むページ分割されたオブジェクト。

Response

json
{
  "count": 15,
  "list": [
    {
      "id": "cs_123456789",
      "object": "checkout.session",
      "status": "open",
      // ... other properties
    },
    {
      "id": "cs_987654321",
      "object": "checkout.session",
      "status": "open",
      // ... other properties
    }
  ]
}

チェックアウトセッションを期限切れにする

チェックアウトセッションを手動で期限切れにします。この操作は元に戻せません。

Expire a Checkout Session

javascript
const session = await payment.checkoutSessions.expire('cs_123456789');

パラメータ

NameTypeDescription
idstring必須。 期限切れにするチェックアウトセッションの ID。

戻り値

ステータスが expired の期限切れになったチェックアウトセッションオブジェクト。

Response

json
{
  "id": "cs_123456789",
  "object": "checkout.session",
  "status": "expired",
  // ... other properties
}