Saltar al contenido principal
Los eventos son la base de la facturación basada en el uso. Envía eventos cuando ocurren acciones facturables, y los medidores los agregan en cargos.

API Reference - Events Ingestion

Documentación completa de la API con ejemplos y códigos de respuesta.

Estructura del Evento

event_id
string
requerido
Identificador único. Use UUIDs o combine ID de cliente + marca temporal + acción.
customer_id
string
requerido
ID de cliente de Dodo Payments. Debe ser un cliente válido existente.
event_name
string
requerido
Tipo de evento que coincide con el nombre del evento de su medidor (sensible a mayúsculas). Ejemplos: api.call, image.generated
timestamp
string
Marca temporal ISO 8601. Por defecto se usa la hora del servidor si se omite. Inclúyala para facturación precisa con eventos retrasados o por lotes.
metadata
object
Propiedades adicionales para agregación y filtrado:
  • Valores numéricos: bytes, tokens, duration_ms
  • Filtros: endpoint, method, quality
metadata: {
  endpoint: "/v1/orders",
  method: "POST",
  tokens: 1024
}

Envío de Eventos

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" }
    }]
  })
});
Envía en lotes hasta 100 eventos por solicitud para mejorar el rendimiento.

Plantillas de Ingesta

Patrones de eventos listos para casos de uso comunes. Comienza con una plantilla probada en lugar de construir desde cero.

Mejores Prácticas

Use IDs deterministas para evitar duplicados: ${customerId}_${action}_${timestamp}
Reintente ante errores 5xx con retroceso exponencial. No reintente errores 4xx.
Omita en eventos en tiempo real. Inclúyalo en eventos retrasados o por lotes para mayor precisión.
Monitoree las tasas de éxito y encole eventos fallidos para reintentos.

Solución de Problemas

  • El nombre del evento debe coincidir exactamente con el medidor (sensible a mayúsculas)
  • El ID del cliente debe existir
  • Verifique que los filtros del medidor no estén excluyendo eventos
  • Verifique que las marcas temporales sean recientes
Verifique que la clave de la API sea correcta y use el formato: Bearer YOUR_API_KEY
Asegúrese de que todos los campos obligatorios estén presentes: event_id, customer_id, event_name
  • Las claves de metadatos deben coincidir exactamente con la “Over Property” del medidor
  • Use números, no cadenas: tokens: 150 no tokens: "150"

Próximos Pasos