Chuyển đến nội dung chính
Các sự kiện là nền tảng của lập hóa đơn dựa trên mức sử dụng. Gửi sự kiện khi các hành động có thể tính phí xảy ra, và các công tơ sẽ tổng hợp chúng thành các khoản phí.

Tài liệu API - Tiếp Nhận Sự Kiện

Tài liệu API đầy đủ với ví dụ và mã phản hồi.

Cấu Trúc Sự Kiện

event_id
string
required
Định danh duy nhất. Sử dụng UUID hoặc kết hợp ID khách hàng + dấu thời gian + hành động.
customer_id
string
required
ID khách hàng Dodo Payments. Phải là một khách hàng hợp lệ đã tồn tại.
event_name
string
required
Loại sự kiện phải khớp với tên sự kiện của công tơ của bạn (phân biệt chữ hoa chữ thường). Ví dụ: api.call, image.generated
timestamp
string
Dấu thời gian ISO 8601. Mặc định là thời gian máy chủ nếu không có. Bao gồm để lập hóa đơn chính xác với các sự kiện bị trì hoãn/được nhóm lại.
metadata
object
Các thuộc tính bổ sung cho việc tổng hợp và lọc:
  • Giá trị số: bytes, tokens, duration_ms
  • Bộ lọc: endpoint, method, quality
metadata: {
  endpoint: "/v1/orders",
  method: "POST",
  tokens: 1024
}

Gửi Sự Kiện

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" }
    }]
  })
});
Nhóm tối đa 100 sự kiện mỗi yêu cầu để có hiệu suất tốt hơn.

Mẫu Tiếp Nhận

Các mẫu sự kiện đã được chuẩn bị sẵn cho các trường hợp sử dụng phổ biến. Bắt đầu với một mẫu đã được chứng minh thay vì xây dựng từ đầu.

Thực Hành Tốt Nhất

Sử dụng ID xác định để ngăn chặn các bản sao: ${customerId}_${action}_${timestamp}
Thử lại khi gặp lỗi 5xx với thời gian chờ tăng dần. Không thử lại các lỗi 4xx.
Bỏ qua cho các sự kiện thời gian thực. Bao gồm cho các sự kiện bị trì hoãn/được nhóm lại để đảm bảo độ chính xác.
Theo dõi tỷ lệ thành công và xếp hàng các sự kiện thất bại để thử lại.

Khắc Phục Sự Cố

  • Tên sự kiện phải khớp chính xác với công tơ (phân biệt chữ hoa chữ thường)
  • ID khách hàng phải tồn tại
  • Kiểm tra xem bộ lọc công tơ có đang loại trừ sự kiện không
  • Xác minh rằng các dấu thời gian là gần đây
Xác minh rằng khóa API là chính xác và sử dụng định dạng: Bearer YOUR_API_KEY
Đảm bảo tất cả các trường bắt buộc đều có mặt: event_id, customer_id, event_name
  • Các khóa metadata phải khớp chính xác với “Over Property” của công tơ
  • Sử dụng số, không phải chuỗi: tokens: 150 không tokens: "150"

Các Bước Tiếp Theo