Skip to main content

前提条件

Dodo Payments APIを統合するには、次のものが必要です。
  • Dodo Payments merchant account
  • ダッシュボードから取得した API Credentials(API key と webhook secret key)

ダッシュボードの設定

  1. Dodo Payments Dashboard に移動します
  2. 商品を作成します(1回払いまたはサブスクリプション)。サブスクリプション商品は少なくとも $1(または選択した通貨での相当額)に設定する必要があります。この最低額を下回る金額はサポートされていません。
  3. API key を生成します。
    • Developer > API に移動します
    • 詳細ガイド
    • DODO_PAYMENTS_API_KEY という env に API key をコピーします
  4. Webhooks を設定します。
    • Developer > Webhooks に移動します
    • payment notifications 用の webhook URL を作成します
    • env に webhook secret key をコピーします

統合

ユースケースに合った統合方法を選択してください。
  • Checkout Sessions(推奨):ほとんどの統合に最適です。サーバー上でセッションを作成し、安全なホスティング型チェックアウトに顧客をリダイレクトします。
  • Overlay Checkout:サイト上でチェックアウトをモーダルオーバーレイとして開く、ページ内エクスペリエンスが必要な場合に使用します。
  • Inline Checkout:ページレイアウトにチェックアウトを直接埋め込み、完全に統合されたブランド対応のチェックアウトエクスペリエンスを実現します。
  • Static Payment Links:コード不要で、すぐに共有できるURLです。支払いをすばやく収集できます。
  • Dynamic Payment Links:プログラムで作成するリンクです。ただし、Checkout Sessionsのほうが推奨され、より柔軟性があります。
  • Mobile Checkout SDKs:ネイティブAndroid、iOS、React Native、Flutterアプリ向けです。上記のようにサーバー上でセッションを作成し、その後checkout_urlをSDKに渡します。
Overlay CheckoutとInline Checkoutはブラウザ専用です。チェックアウトをWeb ページに埋め込みます。ネイティブモバイルアプリを構築している場合は、サーバー上で チェックアウトセッションを作成し、代わりに Mobile Checkout SDKsで開いてください。

1. Checkout Sessions

Checkout Sessionsを使用すると、1回払いまたはサブスクリプション向けに、安全なホスティング型チェックアウトエクスペリエンスを作成できます。サーバー上でセッションを作成し、返されたcheckout_urlに顧客をリダイレクトします。
チェックアウトセッションは、デフォルトで24時間有効です。confirm=trueを渡すと、セッションは15分間有効になり、必須フィールドをすべて指定する必要があります。
1

Create a checkout session

希望するSDKを選択するか、REST APIを呼び出します。
2

Redirect customer to checkout

セッションを作成したら、checkout_urlにリダイレクトしてホスティング型フローを開始します。
支払いの受付を最も迅速かつ確実に開始する方法として、Checkout Sessionsを推奨します。高度なカスタマイズについては、完全版のCheckout SessionsガイドAPI Referenceを参照してください。

2. Overlay Checkout

ページを離れることなく顧客が支払いを完了できる、シームレスなページ内チェックアウトエクスペリエンスには、Overlay Checkout統合をご利用ください。

3. Inline Checkout

ページに直接埋め込んだ完全統合型のチェックアウトエクスペリエンスには、Inline Checkout統合をご利用ください。これにより、カスタム注文概要を作成し、チェックアウトレイアウトを完全に制御できます。一方、Dodo Paymentsが支払いの収集を安全に処理します。 Static payment linksを使用すると、シンプルなURLを共有してすばやく支払いを受け付けられます。クエリパラメータを渡すことで、顧客情報の事前入力、フォームフィールドの制御、カスタムメタデータの追加など、チェックアウトエクスペリエンスをカスタマイズできます。
1

Construct your payment link

ベースURLから開始し、商品IDを追加します。
2

Add core parameters

必須のクエリパラメータを含めます。
  • integer
    デフォルト:"1"
    購入する商品の数。
  • string
    必須
    支払い完了後にリダイレクトするURL。
リダイレクトURLには、次の例のようにクエリパラメータとして支払いの詳細が含まれます。
https://example.com/?payment_id=pay_ts2ySpzg07phGeBZqePbH&status=succeeded&email=customer%40example.com

商品でライセンスキーが有効になっている場合は、license_keyパラメータも追加されます(複数のキーの場合はカンマ区切り)。
https://example.com/?payment_id=pay_xxx&status=succeeded&license_key=LK-001&email=customer%40example.com
3

Pre-fill customer information (optional)

顧客情報または請求先フィールドをクエリパラメータとして追加すると、チェックアウトを効率化できます。
  • string
    顧客のフルネーム(firstNameまたはlastNameが指定されている場合は無視されます)。
  • string
    顧客の名。
  • string
    顧客の姓。
  • string
    顧客のメールアドレス。
  • string
    顧客の国。
  • string
    住所。
  • string
    市区町村。
  • string
    州または都道府県。
  • string
    郵便番号。
  • boolean
    trueまたはfalse
4

Control form fields (optional)

特定のフィールドを無効にして、顧客が読み取り専用にすることができます。これは、ログイン済みユーザーなど、顧客の詳細情報をすでに取得している場合に便利です。
フィールドを無効にするには、その値を指定し、対応するdisable…フラグをtrueに設定します。
フィールドを無効にすると、誤った変更を防ぎ、データの一貫性を確保できます。
showDiscounts=falseを設定すると、チェックアウトフォームの割引セクションが無効になり、非表示になります。チェックアウト中に顧客がクーポンコードやプロモーションコードを入力できないようにする場合に使用します。
5

Add advanced controls (optional)

  • string
    支払い通貨を指定します。デフォルトでは請求先国の通貨になります。
  • boolean
    デフォルト:"true"
    通貨セレクターを表示または非表示にします。
  • number
    請求額を主要通貨単位で固定します(例:$12.50 の場合は 12.5)。Pay What You Want products 専用です。値が product の minimum price を下回る場合、その値は無視されます。
  • string
    カスタム metadata fields(例:metadata_orderId=123)。
payment link の paymentAmount は、Checkout Sessions API の amount field と同じ unit ではありません。link parameter は主要通貨単位(12.5 = 12.50)を使用しますが、APIproductcart[].amountは最小denomination1250=12.50)を使用しますが、API の `product_cart[].amount` は最小 denomination(`1250` = 12.50)を使用します。API field については Dynamic Pricing を参照してください。
6

Share the link

完成した payment link を customer に送信します。customer がアクセスすると、すべての query parameters が収集され、session ID とともに保存されます。その後、URL は session parameter のみを含む簡潔な形式に変更されます(例:?session=sess_1a2b3c4d)。保存された情報は page refresh 後も保持され、checkout process 全体を通じてアクセスできます。
customer の checkout experience は、指定した parameters に基づいて、より streamlined かつ personalized になります。
ほとんどの use cases では Checkout Sessions を使用してください。より柔軟で、細かな control が可能です。
API call または customer details を指定した SDK で作成します。例を示します。 dynamic payment links を作成する API は 2 つあります。
どちらの link-creation endpoints も deprecated です。POST /paymentsPOST /subscriptions は既存の integrations では引き続き動作しますが、新しい integrations では代わりに Checkout SessionsPOST /checkouts)を使用してください。
以下の guide では、one-time payment link の作成方法を説明します。 subscriptions の integration 手順について詳しくは、こちらの Subscription Integration Guide を参照してください。
payment link を取得するには payment_link = true を渡していることを確認してください。
payment link の作成後、customer を redirect して支払いを完了してもらいます。

Webhooks の実装

payment notifications を受信する API endpoint を設定します。以下は Next.js を使用した例です。
当社の webhook implementation は Standard Webhooks specification に準拠しています。webhook type definitions については、Webhook Event Guide を参照してください。

Listen する Events

payload.type を有効にし、one-time payment flow に関連する events を処理します。最低限、以下を listen してください。
browser redirect ではなく、webhook の payment.succeeded で必ず fulfill してください。customer が tab を閉じると redirect は失われる可能性がありますが、webhook は acknowledge されるまで retry されます。
license keys 付きの digital products を販売する場合は、license_key.created も処理してください。subscription、entitlement、credit、recovery、dunning events を含む全 events の一覧については、Webhook Event Guide を参照してください。 Next.js と TypeScript を使用した demo implementation の project は、GitHub で参照できます。 live implementation はこちらで確認できます。

Checkout と Currency について知っておくべき主な事項

Dynamic(Pay-What-You-Want)amounts は product の base currency で指定します — 任意の local currency ではありません。また、base currency は USD、INR、GBP、EUR に限定されています。別の currency(例:PHP)で fixed amount を徴収する場合、直接渡すことはできません。Adaptive Pricing(base amount を live FX で変換)または Localized Pricing(currency ごとに fixed price を設定。ただし Pay-What-You-Want には非対応)を使用してください。
currency を明示的に固定してください。 checkout session で billing_currencybilling_address.country を渡します。省略すると、customer の IP から currency と country が検出され(Adaptive Currency)、請求したい内容と一致しない可能性があります。
Checkout sessions は 24 時間で expire しますconfirm: true の場合は 15 分)。また、各 checkout_urlsingle-use です。link を再利用するのではなく、customer ごと、payment attempt ごとに新しい session を生成してください。
ワンクリックで repeat purchase。 保存済みの payment method がある returning customer の場合、payment_method_idconfirm: true とともに渡すと、method selection を完全に省略して即時に請求できます。

関連 API Reference

Create Checkout Session

one-time payments と subscriptions 用の secure な hosted checkout sessions を作成するための API reference

Create Payment Link

dynamic payment links を programmatically に作成するための API reference
最終更新日 2026年8月6日