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.

Referencia de API - Ingesta de Eventos

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

Estructura del Evento

event_id
string
required
Identificador único. Usa UUIDs o combina el ID del cliente + timestamp + acción.
customer_id
string
required
ID del cliente de Dodo Payments. Debe ser un cliente existente y válido.
event_name
string
required
Tipo de evento que coincide con el nombre del evento de tu medidor (sensible a mayúsculas). Ejemplos: api.call, image.generated
timestamp
string
Timestamp en formato ISO 8601. Por defecto, se utiliza la hora del servidor si se omite. Inclúyelo para una facturación precisa con eventos retrasados/lote.
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_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" }
    }]
  })
});
Agrupa hasta 100 eventos por solicitud para un mejor 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

Usa IDs deterministas para prevenir duplicados: ${customerId}_${action}_${timestamp}
Reintenta en errores 5xx con retroceso exponencial. No reintentes errores 4xx.
Omitir para eventos en tiempo real. Incluir para eventos retrasados/lote para precisión.
Rastrea tasas de éxito y coloca eventos fallidos en cola para reintento.

Solución de Problemas

  • El nombre del evento debe coincidir exactamente con el medidor (sensible a mayúsculas)
  • El ID del cliente debe existir
  • Verifica que los filtros del medidor no estén excluyendo eventos
  • Verifica que los timestamps sean recientes
Verifica que la clave de API sea correcta y usa el formato: Bearer YOUR_API_KEY
Asegúrate de que todos los campos requeridos estén presentes: event_id, customer_id, event_name
  • Las claves de metadata deben coincidir exactamente con “Over Property” del medidor
  • Usa números, no cadenas: tokens: 150 no tokens: "150"

Próximos Pasos