メインコンテンツへスキップ
イベントは使用量ベースの請求の基盤です。請求可能なアクションが発生したときにイベントを送信し、メーターがそれらを集計して料金にします。

API Reference - Events Ingestion

例とレスポンスコードを含む完全なAPIドキュメント。

イベント構造

event_id
string
必須
一意の識別子。UUIDを使用するか、顧客ID+タイムスタンプ+アクションを組み合わせてください。
customer_id
string
必須
Dodo Paymentsの顧客ID。有効な既存の顧客である必要があります。
event_name
string
必須
メーターのイベント名と一致するイベントタイプ(大文字小文字を区別)。例: api.callimage.generated
timestamp
string
ISO 8601タイムスタンプ。省略するとサーバー時刻がデフォルトになります。遅延/バッチイベントでは正確な課金のために含めてください。
metadata
object
集計やフィルタリング用の追加プロパティ:
  • 数値: bytestokensduration_ms
  • フィルタ: endpointmethodquality
metadata: {
  endpoint: "/v1/orders",
  method: "POST",
  tokens: 1024
}

イベントの送信

await fetch('https://test.dodopayments.com/events/ingest', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.DODO_PAYMENTS_API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    events: [{
      event_id: "api_call_1234",
      customer_id: "cus_abc123",
      event_name: "api.call",
      metadata: { endpoint: "/v1/orders" }
    }]
  })
});
パフォーマンス向上のため、1リクエストあたり最大100件のイベントをバッチ処理できます。

取り込みブループリント

一般的なユースケースのための既製のイベントパターン。ゼロから構築するのではなく、実績のあるブループリントから始めましょう。

ベストプラクティス

重複を防ぐために決定論的なIDを使用してください: ${customerId}_${action}_${timestamp}
5xxエラー時には指数バックオフでリトライしてください。4xxエラーはリトライしないでください。
リアルタイムイベントでは省略してください。遅延/バッチイベントでは正確性のために含めてください。
成功率を追跡し、失敗したイベントを再試行用にキューイングします。

トラブルシューティング

  • イベント名はメーターと完全一致させてください(大文字小文字を区別)
  • 顧客IDが存在することを確認してください
  • メーターのフィルタがイベントを除外していないか確認してください
  • タイムスタンプが最近のものであることを確認してください
APIキーが正しいことを確認し、形式を使用してください: Bearer YOUR_API_KEY
必要なフィールドがすべて含まれていることを確認してください: event_idcustomer_idevent_name
  • メタデータキーはメーターの「Over Property」と完全に一致させてください
  • 文字列ではなく数値を使用してください: tokens: 150tokens: "150"ではありません)

次のステップ