Pular para o conteúdo principal
Eventos são a base da cobrança baseada em uso. Envie eventos quando ações cobradas ocorrerem, e medidores os agregam em cobranças.

API Reference - Events Ingestion

Documentação completa da API com exemplos e códigos de resposta.

Estrutura do Evento

event_id
string
obrigatório
Identificador único. Use UUIDs ou combine ID do cliente + carimbo de data/hora + ação.
customer_id
string
obrigatório
ID do cliente Dodo Payments. Deve ser um cliente existente válido.
event_name
string
obrigatório
Tipo de evento que corresponde ao nome do evento do seu medidor (case-sensitive). Exemplos: api.call, image.generated
timestamp
string
Carimbo de data/hora ISO 8601. Padrão para a hora do servidor se omitido. Inclua para faturamento preciso com eventos em lote/atrasados.
metadata
object
Propriedades adicionais para agregação e filtragem:
  • Valores numéricos: bytes, tokens, duration_ms
  • Filtros: endpoint, method, quality
metadata: {
  endpoint: "/v1/orders",
  method: "POST",
  tokens: 1024
}

Enviando 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" }
    }]
  })
});
Agrupe até 100 eventos por requisição para melhor desempenho.

Modelos de Ingestão

Padrões de eventos prontos para casos de uso comuns. Comece com um modelo comprovado em vez de construir do zero.

Melhores Práticas

Use IDs determinísticos para evitar duplicatas: ${customerId}_${action}_${timestamp}
Reenvie em erros 5xx com backoff exponencial. Não reenvie erros 4xx.
Omitir para eventos em tempo real. Incluir para eventos em lote/atrasados para precisão.
Acompanhe taxas de sucesso e enfileire eventos com falha para reenvio.

Resolução de Problemas

  • O nome do evento deve corresponder exatamente ao medidor (case-sensitive)
  • O ID do cliente deve existir
  • Verifique se os filtros do medidor não estão excluindo eventos
  • Verifique se os carimbos de data/hora são recentes
Verifique se a chave da API está correta e use o formato: Bearer YOUR_API_KEY
Garanta que todos os campos obrigatórios estejam presentes: event_id, customer_id, event_name
  • As chaves de metadados devem corresponder exatamente à “Over Property” do medidor
  • Use números, não strings: tokens: 150 não tokens: "150"

Próximos Passos