Vai al contenuto principale
Gli eventi sono la base della fatturazione basata sull’uso. Invia eventi quando si verificano azioni fatturabili e i contatori li aggregano in addebiti.

Riferimento API - Ingestione Eventi

Documentazione API completa con esempi e codici di risposta.

Struttura dell’Evento

event_id
string
obbligatorio
Identificatore unico. Usa UUID o combina ID cliente + timestamp + azione.
customer_id
string
obbligatorio
ID cliente di Dodo Payments. Deve essere un cliente esistente valido.
event_name
string
obbligatorio
Tipo di evento che corrisponde al nome dell’evento del tuo contatore (case-sensitive). Esempi: api.call, image.generated
timestamp
string
Timestamp ISO 8601. Predefinito all’ora del server se omesso. Includi per una fatturazione accurata con eventi ritardati/batch.
metadata
object
Proprietà aggiuntive per aggregazione e filtraggio:
  • Valori numerici: bytes, tokens, duration_ms
  • Filtri: endpoint, method, quality
metadata: {
  endpoint: "/v1/orders",
  method: "POST",
  tokens: 1024
}

Invio di Eventi

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 fino a 100 eventi per richiesta per migliori prestazioni.

Modelli di Ingestione

Modelli di eventi pronti all’uso per casi d’uso comuni. Inizia con un modello collaudato invece di costruire da zero.

Migliori Pratiche

Usa ID deterministici per prevenire duplicati: ${customerId}_${action}_${timestamp}
Ritenta in caso di errori 5xx con backoff esponenziale. Non riprovare per errori 4xx.
Ometti per eventi in tempo reale. Includi per eventi ritardati/batch per accuratezza.
Monitora i tassi di successo e metti in coda gli eventi falliti per la ripetizione.

Risoluzione dei Problemi

  • Il nome dell’evento deve corrispondere esattamente al contatore (case-sensitive)
  • L’ID cliente deve esistere
  • Controlla che i filtri del contatore non stiano escludendo eventi
  • Verifica che i timestamp siano recenti
Verifica che la chiave API sia corretta e usa il formato: Bearer YOUR_API_KEY
Assicurati che tutti i campi obbligatori siano presenti: event_id, customer_id, event_name
  • Le chiavi metadata devono corrispondere esattamente a “Over Property” del contatore
  • Usa numeri, non stringhe: tokens: 150 non tokens: "150"

Prossimi Passi