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

APIリファレンス - イベント取り込み

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

イベント構造

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

イベントの送信

await fetch('https://test.dodopayments.com/events/ingest', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.DODO_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" }
    }]
  })
});
パフォーマンス向上のために、リクエストごとに最大100イベントをバッチ処理してください。

取り込みブループリント

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

ベストプラクティス

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

トラブルシューティング

  • イベント名はメーターと正確に一致する必要があります(大文字と小文字を区別)
  • 顧客IDは存在する必要があります
  • メーターフィルターがイベントを除外していないか確認してください
  • タイムスタンプが最近のものであることを確認してください
APIキーが正しいことを確認し、フォーマットを使用してください: Bearer YOUR_API_KEY
すべての必須フィールドが存在することを確認してください: event_id, customer_id, event_name
  • メタデータキーはメーターの「プロパティを超えて」と正確に一致する必要があります
  • 文字列ではなく数値を使用してください: tokens: 150 ではなく tokens: "150"

次のステップ