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.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
- Node.js SDK
- Python SDK
- REST API
API Response
All methods return: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:
セッションステータスの確認
セッションのステータスを確認するには、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が必要です。同じセッションに、単発決済商品とサブスクリプション商品を組み合わせて含めることができます。オプションフィールド
Customer Information
Customer Information
Payment Configuration
Payment Configuration
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を参照してください。例:string
デフォルトの通貨選択を固定の請求通貨で上書きします。ISO 4217通貨コードを使用します。対応通貨:
USD、EUR、GBP、CAD、AUD、INRなど例: 米ドルの場合は"USD"、ユーロの場合は"EUR"このフィールドはadaptive pricingが有効な場合のみ有効です。adaptive pricingが無効の場合は、商品のデフォルト通貨が使用されます。boolean
デフォルト:"false"
再訪顧客に以前保存した決済手段を表示し、チェックアウトの速度とユーザー体験を向上させます。
Session Management
Session Management
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を使用してください。boolean
デフォルト:"false"
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が適用されます。UI Customization
UI Customization
object
チェックアウトインターフェースの外観と動作をカスタマイズします。
Feature Flags
Feature Flags
object
チェックアウトセッションの特定の機能と動作を設定します。
Custom Fields
Custom Fields
array
カスタムフォームフィールドを使用して、チェックアウト中に顧客から追加情報を収集します。1つのチェックアウトセッションにつき最大5つのカスタムフィールドを定義できます。顧客の回答はwebhookペイロードに含まれ、APIから利用できます。
- Webhooks:
payment.succeeded、subscription.active、その他の関連イベントペイロードにcustom_field_responses配列が含まれます - API responses: Paymentおよびsubscriptionオブジェクトに
custom_field_responsesが含まれます
Subscription Configuration
Subscription Configuration
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を使用してください。- Node.js SDK
- Python SDK
- REST API
Dynamic Linksからの移行
Dynamic Linksを使用している場合、Checkout Sessionsではより柔軟に設定できます。Dynamic Linksでは顧客の完全な請求先住所を指定する必要がありました。Checkout Sessionsでは、把握している情報だけを渡し、残りをチェックアウトフローに収集させることができます。 たとえば:- 顧客の請求先国だけを指定し、残りの情報をチェックアウトで収集する。
- またはすべての情報を指定し、
confirm: trueを設定して支払いページへ直接進む。
関連リソース
Overlay Checkout
ページ上でチェックアウトをモーダルオーバーレイとして開く
Inline Checkout
チェックアウトをページに直接埋め込む
Mobile Integration
ネイティブモバイルアプリにチェックアウトを統合する
Webhooks
支払いおよびサブスクリプションイベントをリッスンする
Payment Methods
地域別の対応決済手段
Subscriptions
継続課金とサブスクリプション管理