Documentation Index
Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
Use this file to discover all available pages before exploring further.
放棄されたカート回復イベント
以下のWebhookイベントは放棄されたカートの回復ライフサイクルを追跡します:
| Event | Description |
|---|
abandoned_checkout.detected | 放棄されたチェックアウトが検出されました。支払いが放棄された(失敗または不完全)と判断され、回復ワークフローが開始されたときに送信されます。 |
abandoned_checkout.recovered | 顧客が回復リンクを通じて支払いを完了しました。recovered_payment_id フィールドには成功した支払いのIDが含まれています。 |
放棄されたチェックアウトペイロードフィールド
放棄された元の支払いです。これを使用して製品、金額、通貨の詳細を調べてください。
なぜチェックアウトが放棄されたのか。以下のいずれか:
payment_failed — 顧客が支払いを試みたが失敗した
checkout_incomplete — 顧客がチェックアウトを訪れたが支払いを試みなかった
この回復試行の現在のライフサイクル状態。以下のいずれか:
abandoned — 検出済み、まだメールは送信されていません
recovering — 少なくとも1つの回復メールが送信済み
recovered — 顧客が支払いを完了
exhausted — すべてのメールが送信済みまたは新しいチェックアウトが見つかった場合
opted_out — 客が配信停止
放棄されたと検出されたチェックアウトのISO 8601タイムスタンプ。
成功した回復支払いの支払いID。チェックアウトが回復するまでnull。
例: ACR Webhooksの処理
app.post('/webhooks/dodo', async (req, res) => {
const event = req.body;
switch (event.type) {
case 'abandoned_checkout.detected':
console.log(`Checkout abandoned: ${event.data.payment_id}`);
console.log(`Reason: ${event.data.abandonment_reason}`);
// Track abandonment in your analytics
await trackAbandonment(event.data);
break;
case 'abandoned_checkout.recovered':
console.log(`Checkout recovered: ${event.data.payment_id}`);
console.log(`Recovery payment: ${event.data.recovered_payment_id}`);
// Grant access, update records
await handleRecovery(event.data);
break;
}
res.json({ received: true });
});
催促イベント
以下のWebhookイベントはサブスクリプション催促ライフサイクルを追跡します:
| Event | Description |
|---|
dunning.started | サブスクリプションがon_holdに入った、または顧客によってキャンセルされたときに催促試行が作成されました。 |
dunning.recovered | 顧客が支払い方法を更新し、その結果支払いが成功しました。payment_id フィールドには成功した支払いのIDが含まれています。 |
催促試行ペイロードフィールド
催促を引き起こしたサブスクリプションの状態。以下のいずれか:
on_hold — 支払いの失敗によりサブスクリプションが一時停止された
cancelled — 顧客ポータルから顧客がキャンセル
この催促試行の現在のライフサイクル状態。以下のいずれか:
recovering — 催促メールが送信されています
recovered — 顧客が支払い方法を更新し、支払いが成功
exhausted — すべてのメールが送信済みまたはサブスクリプションの状態が変更
催促試行が作成されたときのISO 8601タイムスタンプ。
成功した回復支払いの支払いID。回復している間はnull。
例: 催促Webhooksの処理
app.post('/webhooks/dodo', async (req, res) => {
const event = req.body;
switch (event.type) {
case 'dunning.started':
console.log(`Dunning started for subscription: ${event.data.subscription_id}`);
console.log(`Trigger: ${event.data.trigger_state}`);
// Track dunning in your system
await trackDunning(event.data);
break;
case 'dunning.recovered':
console.log(`Subscription recovered: ${event.data.subscription_id}`);
console.log(`Recovery payment: ${event.data.payment_id}`);
// Reactivate access, update records
await handleDunningRecovery(event.data);
break;
}
res.json({ received: true });
});
完全な催促ライフサイクルを追跡するには、dunning.startedとdunning.recoveredの両方を購読します。 dunning.startedを使用して、猶予期間の一時停止や危険なサブスクリプションをシステムでフラグ付けします。
Abandoned Cart Recovery
ACRメールシーケンスと割引インセンティブを設定します。
Subscription Dunning
期限切れサブスクリプションの催促メールシーケンスを設定します。
Subscription Webhooks
subscription.on_holdやsubscription.cancelledのような関連サブスクリプションライフサイクルイベント。
Webhookペイロードスキーマ
Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered events
利用可能なオプション:
payment_failed,
checkout_incomplete
利用可能なオプション:
abandoned,
recovering,
recovered,
exhausted,
opted_out