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.

Referência da API - Ingestão de Eventos

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

Estrutura do Evento

event_id
string
required
Identificador único. Use UUIDs ou combine ID do cliente + timestamp + ação.
customer_id
string
required
ID do cliente Dodo Payments. Deve ser um cliente existente e válido.
event_name
string
required
Tipo de evento que corresponde ao nome do evento do seu medidor (case-sensitive). Exemplos: api.call, image.generated
timestamp
string
Timestamp ISO 8601. Padrão para o horário do servidor se omitido. Inclua para cobrança precisa com eventos atrasados/lote.
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_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 solicitaçã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}
Tente novamente em erros 5xx com backoff exponencial. Não tente novamente em erros 4xx.
Omitir para eventos em tempo real. Incluir para eventos atrasados/lote para precisão.
Rastreie taxas de sucesso e coloque eventos falhados em fila para retentativa.

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 timestamps são recentes
Verifique se a chave da API está correta e use o formato: Bearer YOUR_API_KEY
Certifique-se de que todos os campos obrigatórios estão presentes: event_id, customer_id, event_name
  • As chaves de metadados devem corresponder exatamente ao “Sobre Propriedade” do medidor
  • Use números, não strings: tokens: 150 não tokens: "150"

Próximos Passos