Checkout Sessions
一回限りの決済とサブスクリプションに対応した、安全なホスト型checkoutを作成します。
Payment Links
コードを書かずに決済を受け付けるためのURLを共有します。
Webhooks
決済イベントを受け取り、注文を処理します。
API Reference
すべてのendpointのドキュメントとライブテストを利用できます。
前提条件
開始する前に、次のものが必要です。- Dodo Payments アカウント。
- 少なくとも 1 つの製品。ダッシュボードの Products で作成します。0 以外の価格を設定したサブスクリプション製品では、顧客が支払う通貨の subscription minimum を満たす必要があります。USD の場合は $1.00 です。USD、EUR、GBP 以外の通貨も、少なくとも $1.00 相当である必要があります。$0 のサブスクリプションにも対応しています。
- API key。ダッシュボードの Developer → API Keys で作成し、
DODO_PAYMENTS_API_KEY環境変数に保存します。構築中は test mode でキーを作成してください。このページの例は test mode を使用しており、test mode のキーは test mode に対してのみ機能します。Authentication を参照してください。 - 使用する言語の SDK。Node.js SDK には Node.js 20 以降、Python SDK には Python 3.9 以降、Go SDK には Go 1.22 以降が必要です。cURL の例では SDK は必要ありません。
standardwebhooks パッケージも使用します。npm install standardwebhooks でインストールしてください。
Integration Path を選択する
Overlay checkout と inline checkout は Web ページでのみ実行されます。ネイティブモバイルアプリでは、サーバー上で checkout session を作成し、mobile checkout SDK でその
checkout_url を開いてください。
この integration の構築を coding agent に依頼するには、Agent Plugin をインストールしてください。
Checkout Sessions
安全なホスト型 checkout experience を作成します。サーバー上で session を作成し、返されたcheckout_url に顧客を redirect します。
Checkout Session を作成する
- Node.js SDK
- Python SDK
- cURL
Checkout に redirect する
session の作成後、顧客をcheckout_url に redirect します。
エラーを処理する
リクエストが失敗すると、API は HTTP status code と、code および message を含む JSON body を返します。エラー処理の分岐には message ではなく code を使用してください。各 code、その原因、解決方法については Error Codes を参照してください。支払いの失敗は別途報告されます。支払いの status は failed となり、error_code に理由が示され、payment.failed webhook が届きます。retry するかどうかを判断するには、Handle Payment Failures を参照してください。
Payment Links
payment link は、製品の checkout を開く URL です。コードを記述せずに支払いを回収できます。query parameters により顧客情報を事前入力し、checkout form を制御できます。顧客が link を開くと、checkout は parameters を session に保存し、URL をsession parameter に短縮するため、ページを refresh しても情報が保持されます。
Static Payment Links
static payment link は、1 回作成して複数回共有する URL です。base URL は次のとおりです。integer
デフォルト:"1"
購入するアイテム数。
string
必須
Payment Links は
redirect_url を使用します。Checkout Sessions API は同じ用途に return_url を使用します。支払い後の redirect 先 URL。Dodo Payments は支払いの詳細を query parameters として追加します。例: https://example.com/?payment_id=pay_ts2ySpzg07phGeBZqePbH&status=succeeded&email=customer%40example.com。製品が license keys を発行する場合は、license_key parameter も追加され、複数の key はカンマで区切られます。string
支払い通貨を指定します。デフォルトは billing country の通貨です。
boolean
デフォルト:"true"
通貨 selector を表示または非表示にします。
boolean
デフォルト:"true"
discounts section を表示または非表示にします。顧客が coupon codes を入力できないようにするには、
false に設定します。number
請求額を major currency units で固定します。例: $12.50 の場合は
12.5。Pay What You Want products でのみ機能し、製品の minimum price 未満の場合は無視されます。string
カスタム metadata fields。例:
metadata_orderId=123。顧客情報を事前入力する
checkout をスムーズにするには、顧客 fields を query parameters として追加します。string
顧客のフルネーム(firstName または lastName が指定されている場合は無視されます)。
string
顧客の first name。
string
顧客の last name。
string
顧客の email address。
string
顧客の国(ISO 3166-1 alpha-2 code)。
string
Street address。
string
City。
string
State または province。
string
Postal または ZIP code。
Form fields を無効にする
顧客が事前入力された情報を変更できないようにするには、値を指定し、対応するdisable... flag を true に設定して field を無効にします。
Static Payment Link の例
Dynamic Payment Links(非推奨)
dynamic payment links を使用する既存の integration では、payment_link: true を Create One-Time Payment または Create Subscription に渡して link を作成します。以下の例では one-time payment link を作成します。サブスクリプションについては、Subscription Integration Guide を参照してください。
- Node.js SDK
- Python SDK
- Go SDK
Webhooks
Webhooks は、支払いが成功または失敗したときにサーバーへ通知するため、注文を fulfill できます。Webhook Endpoint を作成する
ダッシュボードで Developer → Webhooks に移動し、endpoint URL を追加します。endpoint の signing secret をDODO_PAYMENTS_WEBHOOK_KEY 環境変数にコピーします。
Next.js を使用した例を示します。
app/api/webhooks/dodo/route.ts
Listen する Events
少なくとも、one-time payment flow では次の events を listen してください。
license keys を販売する場合は、
license_key.created も処理してください。subscription、entitlement、credit、recovery、dunning events を含む完全な events の一覧については、Webhook Event Guide を参照してください。
完全な Next.js および TypeScript の例については、demo repository とその live deployment を参照してください。
Currency と Billing Address
特定の通貨で請求するには、checkout session の作成時にbilling_currency と billing_address.country を渡します。省略すると、Adaptive Currency が顧客の IP address から通貨と国を選択します。これは意図した請求通貨と異なる場合があります。
Pay What You Want の金額は製品の base currency で指定し、USD、GBP、または EUR である必要があります。別の通貨で固定額を回収するには、live exchange rates で base price を変換する Adaptive Currency、または通貨ごとに固定価格を設定する Localized Pricing を使用します。Localized Pricing は Pay What You Want には対応していません。
One-Click Repeat Purchase
保存済みの payment method を使用して returning customer に請求するには、そのpayment_method_id と confirm: true を渡します。payment_method_id は confirm が true の場合にのみ受け付けられ、既存の顧客の customer_id も渡す必要があります。confirm が true であるため、完全な billing_address、または minimal_address が true の場合に限り country と zipcode のみを渡す必要があります。session は保存済みの payment method に直接請求するため、checkout_url を返しません。支払いが成功したかどうかは webhooks で確認してください。
関連ページ
Checkout Sessions
高度なカスタマイズ options を含む完全な guide。
Overlay Checkout
checkout を modal overlay としてページに埋め込みます。
Inline Checkout
checkout をページレイアウトに直接埋め込みます。
Subscription Integration
定期 billing を設定します。
Webhook Event Guide
すべての webhook events の完全な一覧。
API Reference
Checkout Sessions API documentation。