Langsung ke konten utama
Acara adalah dasar dari penagihan berbasis penggunaan. Kirim acara saat tindakan yang dapat ditagih terjadi, dan meter mengagregasi mereka menjadi biaya.

Referensi API - Penerimaan Acara

Dokumentasi API lengkap dengan contoh dan kode respons.

Struktur Acara

event_id
string
required
Pengidentifikasi unik. Gunakan UUID atau gabungkan ID pelanggan + timestamp + tindakan.
customer_id
string
required
ID pelanggan Dodo Payments. Harus merupakan pelanggan yang valid dan ada.
event_name
string
required
Tipe acara yang sesuai dengan nama acara meter Anda (case-sensitive). Contoh: api.call, image.generated
timestamp
string
Timestamp ISO 8601. Secara default menggunakan waktu server jika diabaikan. Sertakan untuk penagihan yang akurat dengan acara yang tertunda/batch.
metadata
object
Properti tambahan untuk agregasi dan penyaringan:
  • Nilai numerik: bytes, tokens, duration_ms
  • Penyaring: endpoint, method, quality
metadata: {
  endpoint: "/v1/orders",
  method: "POST",
  tokens: 1024
}

Mengirim Acara

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" }
    }]
  })
});
Batch hingga 100 acara per permintaan untuk kinerja yang lebih baik.

Cetak Biru Penerimaan

Pola acara siap pakai untuk kasus penggunaan umum. Mulailah dengan cetak biru yang terbukti daripada membangun dari awal.

Praktik Terbaik

Gunakan ID deterministik untuk mencegah duplikasi: ${customerId}_${action}_${timestamp}
Coba ulang pada kesalahan 5xx dengan backoff eksponensial. Jangan coba ulang kesalahan 4xx.
Hapus untuk acara waktu nyata. Sertakan untuk acara tertunda/batch untuk akurasi.
Lacak tingkat keberhasilan dan antre acara yang gagal untuk dicoba ulang.

Pemecahan Masalah

  • Nama acara harus cocok persis dengan meter (case-sensitive)
  • ID pelanggan harus ada
  • Periksa apakah filter meter tidak mengecualikan acara
  • Verifikasi timestamp terbaru
Verifikasi kunci API benar dan gunakan format: Bearer YOUR_API_KEY
Pastikan semua bidang yang diperlukan ada: event_id, customer_id, event_name
  • Kunci metadata harus cocok persis dengan “Over Property” meter
  • Gunakan angka, bukan string: tokens: 150 bukan tokens: "150"

Langkah Selanjutnya