Skip to main content

Quick Start

Create your first checkout session in under 5 minutes

API Reference

Full API documentation and interactive testing

Preview Endpoint

Calculate pricing and taxes before creating a session
Session Validity: Checkout sessions expire after 24 hours by default, or 15 minutes when confirm: true.
Single-Use Links: The checkout_url is not reusable. Generate a fresh session for each customer and payment attempt rather than sharing or reusing a link.

Prerequisites

You need:
  • An active Dodo Payments merchant account
  • API credentials from Developer → API Keys in the dashboard
  • At least one product created in Products

Creating Your First Checkout Session

API Response

All methods return:
Only session_id is guaranteed to be present. When payment_method_id is provided, the charge processes immediately and checkout_url is null. Use the returned payment_id instead. When confirm: true, the payment is created at session-creation time, and the response also includes payment_id, client_secret, and publishable_key for use with the Dodo Payments checkout SDK.

Redirect Your Customer

1

Extract the checkout URL

Get checkout_url from the API response.
2

Redirect to checkout

Send your customer to the URL:
Alternatively, open in a new window:
3

Handle the return

After payment, customers are redirected to your return_url with query parameters:Example redirect:
Instead of redirecting, you can embed checkout directly in your page using Overlay Checkout (modal), Inline Checkout (embedded), or Mobile SDKs (native apps). All consume the same session URL.

セッションステータスの確認

セッションのステータスを確認するには、Get Checkout Session (GET /checkouts/{id}) を呼び出します。レスポンスには、セッションの id、created_at、customer_email、customer_nameに加えて、payment_idとpayment_statusが含まれます。顧客が詳細を入力中の場合、両方の支払いフィールドはnullです。顧客が支払いを送信すると、payment_statusに、succeeded、failed、processingなどの支払いステータスが格納されます。フルフィルメントの信頼できる情報源としてwebhookを使用してください。

リクエストボディ

必須フィールド

array
必須
チェックアウトセッションに含める商品の配列です。各商品には、ダッシュボードの有効なproduct_idが必要です。同じセッションに、単発決済商品とサブスクリプション商品を組み合わせて含めることができます。
商品IDを確認する: Dodo Paymentsダッシュボードの Products → View Details で商品IDを確認できます。または、List Products APIを使用してください。

オプションフィールド

object
顧客情報です。IDを使用して既存の顧客を関連付けるか、チェックアウト中に新しい顧客レコードを作成できます。
object
正確な税計算、不正利用防止、規制遵守のための請求先住所情報です。confirm: trueの場合、請求先住所のすべてのフィールドが必須になります。
array
チェックアウト中に顧客が利用できる決済手段を制御します。特定の市場やビジネス要件に合わせた最適化に役立ちます。一般的なオプション: credit、debit、upi_collect、apple_pay、google_pay、amazon_pay、klarna、affirm、afterpay_clearpay、cashapp、ach、multibanco、bancontact_card、eps、ideal、blik、gcash、ali_pay_hk、fps、touch_n_go、paypal完全な一覧については、Create Checkout Session API referenceを参照してください。
優先する決済手段を利用できない場合のチェックアウト失敗を防ぐため、フォールバックオプションとして常にcreditとdebitを含めてください。
例:
string
デフォルトの通貨選択を固定の請求通貨で上書きします。ISO 4217通貨コードを使用します。対応通貨: USD、EUR、GBP、CAD、AUD、INRなど例: 米ドルの場合は"USD"、ユーロの場合は"EUR"このフィールドはadaptive pricingが有効な場合のみ有効です。adaptive pricingが無効の場合は、商品のデフォルト通貨が使用されます。
boolean
デフォルト:"false"
再訪顧客に以前保存した決済手段を表示し、チェックアウトの速度とユーザー体験を向上させます。
string
支払い完了後に顧客をリダイレクトするURLです。リダイレクト時、Dodo PaymentsはURLにクエリパラメータを追加します(上記のリダイレクトテーブルを参照)。リダイレクトURLの例:
license_keyとemailのクエリパラメータを使用すると、追加のAPI呼び出しなしで、戻り先ページにライセンスキーを表示したり、確認をすぐに送信したりできます。
string
顧客が戻るボタンをクリックした場合、またはチェックアウトセッションをキャンセルした場合にリダイレクトするURLです。指定しない場合、戻るボタンは表示されません。cancel_urlを設定すると、購入を完了せずに顧客がサイトへ戻れる明確な方法を提供できます。
boolean
デフォルト:"false"
trueの場合、すべてのセッション詳細を直ちに確定します。必須データが不足している場合、APIはエラーをスローします。confirm: trueの場合:
  • 請求先住所のすべてのフィールドが必須になります
  • payment_method_idを指定して、請求を直ちに処理できます
  • セッションの有効期限が24時間ではなく15分になります
  • payment_method_idを指定する場合、既存のcustomer_idが必要です
array
1つ以上の積み重ねた割引コードをチェックアウトセッションに適用します。コードは配列の順序で適用されます(最初のコードが開始価格を引き下げ、2番目のコードが割引後の価格をさらに引き下げます)。1セッションあたり最大20個のコードを指定できます。Purchasing Power Parityが有効な場合、開始価格は基本価格ではなくPPP調整後の金額です。
以下の単数形のdiscount_codeフィールドは非推奨ですが、引き続き完全にサポートされています。同じリクエストでdiscount_codesと組み合わせることはできません。
string
非推奨
非推奨 — 新しい統合ではdiscount_codesを使用してください。後方互換性のため引き続き機能しますが、同じリクエストでdiscount_codesと組み合わせることはできません。
object
セッションに関する追加情報を保存するカスタムのキーと値のペアです。
boolean
このセッションに対するmerchantのデフォルト3DS動作を上書きします。
boolean
デフォルト:"false"
最小限の住所収集モードを有効にします。有効にすると、チェックアウトでは以下のみを収集します:
  • 国: 税額決定のため常に必須
  • ZIP/郵便番号: 売上税、VAT、GSTの計算に必要な地域でのみ必須
不要なフォームフィールドをなくすことで、チェックアウト時の負担を大幅に軽減します。
string
関連付けられた顧客に属する保存済みの決済手段です。confirm: trueと既存のcustomer.customer_idが必要です。決済手段は、支払い通貨に対する利用可否が検証されます。設定すると請求が直ちに処理され、checkout_urlはnullとして返されます。代わりに返されたpayment_idを使用してください。
trueの場合、完全なセッションURLではなく短縮されたチェックアウトURLを返します。
string
コレクションベースのチェックアウトフローで使用する商品コレクションIDです。設定する場合は、空のproduct_cart配列を渡してください。セッション作成時に割引コードを事前適用することはできません。Product Collectionsを参照してください。
string
顧客のTax ID(VAT番号など)です。billing_addressとcountryが必要です。
string
Tax IDに関連付けられた任意の事業名または法的名称です。最大250文字です。有効なtax_idとともに指定すると、顧客の個人名ではなく請求書に表示されます。
integer
インドのカードで使用するINR e-mandateについて、merchantレベルのmandate floor(INR paise単位)を上書きします。プロセッサに送信されるmandate金額はmax(this_floor, actual_billing_amount)です。そのため、請求額が低い場合、これは実質的に顧客向けの認証上限になります。未設定の場合はmerchant設定が適用され、それも未設定の場合はシステムデフォルトの₹15,000が適用されます。
object
チェックアウトインターフェースの外観と動作をカスタマイズします。
object
チェックアウトセッションの特定の機能と動作を設定します。
array
カスタムフォームフィールドを使用して、チェックアウト中に顧客から追加情報を収集します。1つのチェックアウトセッションにつき最大5つのカスタムフィールドを定義できます。顧客の回答はwebhookペイロードに含まれ、APIから利用できます。
カスタムフィールドへの顧客の回答は以下に含まれます:
  • Webhooks: payment.succeeded、subscription.active、その他の関連イベントペイロードにcustom_field_responses配列が含まれます
  • API responses: Paymentおよびsubscriptionオブジェクトにcustom_field_responsesが含まれます
object
サブスクリプション商品を含むチェックアウトセッションの追加設定です。

使用例

単一商品のシンプルなチェックアウト

複数商品のカート

トライアル期間付きサブスクリプション

事前確定済みチェックアウト

通貨を上書きするチェックアウト

再訪顧客向けの保存済み決済手段

Tax ID収集を伴うB2Bチェックアウト

積み重ねた割引コードを使用するダークテーマチェックアウト

地域別の決済手段(インド向けUPI)

UPIの設定とテストの詳細については、India Payment Methodsページを参照してください。

BNPL(Buy Now Pay Later)チェックアウト

BNPLの設定とテストの詳細については、Buy Now Pay Later (BNPL)ページを参照してください。

既存の決済手段を使用したInstant Checkout

わかりやすい支払いURLの短縮リンク

支払い成功ページをスキップしてすぐにリダイレクト

言語の強制指定

カスタムフィールドの収集

チェックアウトセッションのプレビュー

セッションを作成する前に価格、税金、合計を計算するには、Preview Checkout Sessionエンドポイントを使用します。サイトに正確な価格情報を表示する場合に便利です。
プレビューされたcurrent_breakup.subtotalには、商品に適用されるPurchasing Power ParityとCharm Pricingがすでに反映されています。
カートにサブスクリプション商品が含まれる場合、プレビューのレスポンスにはnext_billing_dateも返されます。これは、サブスクリプション作成前に表示できる次回請求日のプレビューです。現在時刻を基準に計算され、トライアルが適用される場合はnow + trial period、それ以外の場合はnow + one payment frequencyになります。単発商品のみのカートでは、このフィールドは省略されます。これはプレビュー時点を基準にした推定値です。正式なnext_billing_dateは、サブスクリプションが有効化された時点で設定されます。
プレビューにはtrial_period_days(無料または有料の実効トライアル期間)と、trial_amount(割引後の単位あたりトライアル料金。価格通貨の最小単位)も含まれます。trial_amountはpaid trialの場合のみ存在し、無料トライアルまたはトライアルなしの場合はnullです。当日に実際に支払う税込み合計にはcurrent_breakupを使用してください。

Dynamic Linksからの移行

Dynamic Linksを使用している場合、Checkout Sessionsではより柔軟に設定できます。Dynamic Linksでは顧客の完全な請求先住所を指定する必要がありました。Checkout Sessionsでは、把握している情報だけを渡し、残りをチェックアウトフローに収集させることができます。 たとえば:
  • 顧客の請求先国だけを指定し、残りの情報をチェックアウトで収集する。
  • またはすべての情報を指定し、confirm: trueを設定して支払いページへ直接進む。
移行は簡単です。統合をCheckout Sessions APIまたはSDKメソッドを使用するように更新し、リクエストペイロードをCheckout Sessions形式に合わせれば完了です。追加の処理は必要ありません。

関連リソース

Overlay Checkout

ページ上でチェックアウトをモーダルオーバーレイとして開く

Inline Checkout

チェックアウトをページに直接埋め込む

Mobile Integration

ネイティブモバイルアプリにチェックアウトを統合する

Webhooks

支払いおよびサブスクリプションイベントをリッスンする

Payment Methods

地域別の対応決済手段

Subscriptions

継続課金とサブスクリプション管理
最終更新日 2026年9月28日