Saltar para o conteúdo principal
Transações são o dinheiro. Os eventos são tudo o resto que a sua plataforma conhece: o início de sessão que antecedeu o levantamento, a mão que moveu fichas entre duas contas, o bónus reclamado duas vezes, o estorno que chegou uma semana depois. Os eventos usam um único envelope para todas as categorias, são idempotentes por conceção e são avaliados pelo mesmo motor de regras que pontua as suas transações.
A ingestão de eventos é opt-in. Ative-a em Transactions → Settings → Event monitoring. Até lá, nada muda: as suas regras de transação existentes continuam a ser acionadas apenas em transações, e não é possível criar uma regra de evento por engano, porque uma regra se aplica a transações, a menos que inclua explicitamente eventos.Enquanto estiver desativada, todas as vias de escrita - POST /v3/events/, POST /v3/events/batch/, POST /v3/events/sdk-token/ e a via de dispositivo /v1/events/ - respondem com 403 e {"code": "event_monitoring_disabled"}, e nada é guardado, enriquecido ou avaliado. As leituras não são afetadas.

Endpoints

A via /v3/ é a via do servidor e usa a mesma autenticação x-api-key do restante da API de transações. A via /v1/events/ é a via do dispositivo - ver Envio de eventos pelo SDK.

O envelope

Categorias

Dez categorias de primeira classe, cada uma com validação tipada e campos de regra geridos. auth é a categoria geral do produto; security é o subconjunto orientado para o risco, com o ciclo de vida ordenado que as regras de tomada de controlo da conta analisam.

Chaves obrigatórias do payload

Algumas ações não podem ser correlacionadas sem chaves específicas, por isso a validação as rejeita em vez de guardar provas que ninguém consegue cruzar.
Envie referências e hashes, nunca segredos em bruto. Os instrumentos de pagamento, os destinos de levantamento e as alterações de controlo de conta são guardados como a referência com hash que envia. Nunca envie um número de cartão, um endereço de levantamento completo, um hash de palavra-passe nem um segredo MFA.

Exemplo: uma liquidação P2P

Exemplo: um estorno

Os ciclos de vida das disputas permitem apenas acrescentos: uma correção é um novo evento dispute, nunca uma edição do primeiro evento.

Idempotência

event_id é único por aplicação e constitui todo o contrato de idempotência.
  • Mesmo event_id, mesmo conteúdo devolve 200 com "idempotent_replay": true e o evento originalmente guardado. Pode repetir tantas vezes quanto quiser.
  • Mesmo event_id, conteúdo diferente devolve 409. Reutilizou um id por engano.

Lotes

POST /v3/events/batch/ aceita até 500 eventos. Um lote tem sucesso parcial por conceção: uma visualização de página mal formatada nunca deve fazer falhar o estorno que está ao lado.
A resposta é 207 Multi-Status quando algum evento foi rejeitado e 201 Created quando todos foram aceites.

Estados

correlation_pending: true significa que ainda tem de ser executada uma regra entre sujeitos; é resolvida em minutos e o estado e a pontuação do evento são atualizados no próprio registo. Veja regras assíncronas.

Retenção

Os eventos têm um volume muito superior ao das transações, por isso cada um é arquivado numa classe de retenção à chegada. Duas regras decorrem da tabela:
  • Um evento que corresponde a uma regra é prova, por isso é promovido automaticamente a risk_relevant.
  • Os eventos de pagamento e de disputa mantêm a retenção de transações. Nunca expiram segundo o calendário de eventos, e as substituições por classe não os podem encurtar.
Substitua as três classes expiráveis por aplicação em Transactions → Settings → Event monitoring (1-730 dias cada).

Enriquecimento de IP

Os eventos trazem o mesmo enriquecimento de IP que as transações (país, ASN, indicadores de VPN/proxy e de centro de dados), e o enriquecimento é resolvido por endereço IP único, nunca por evento. Uma sessão que gera 200 visualizações de página a partir de um endereço resolve esse endereço uma única vez. A telemetria de baixo valor vai mais longe: só lê o enriquecimento se algum outro evento já tiver resolvido esse endereço. Nunca desencadeia uma consulta própria. GET /v3/events/enrichment-metrics/ reporta o resultado, e a consola mostra os mesmos números acima da lista de eventos:

Consultar eventos

Filtros: event_category, action_type, status, retention_class, subject_vendor_data, business_vendor_data, session_id, device_fingerprint, ip_address, game_id, round_id, affiliate_code, payment_reference_id, counterparty_vendor_data, matched_only, occurred_from, occurred_to, search. Os filtros com vários valores repetem o parâmetro (?status=A&status=B).

Cronologia de um sujeito

Um vendor_data só é único dentro de um tipo de entidade: o mesmo identificador pode designar um utilizador e uma empresa, e a Didit trata-os como dois sujeitos diferentes. entity_type indica qual dos dois é pedido: individual (o predefinido) ou company. Se o omitir num identificador de empresa, devolve a cronologia da pessoa singular, e não as duas. Aplicam-se os mesmos filtros à lista. GET /v3/events/{event_uuid}/ acrescenta o payload, o contexto do dispositivo, o enriquecimento de IP, os sinais de risco em cache do sujeito e todas as correspondências de regras com a respetiva evidência, incluindo se cada campo correspondente foi derivado no servidor, derivado do SDK ou fornecido pelo cliente. DELETE /v3/events/{event_uuid}/delete/ elimina um evento. Deixa de ser devolvido por todas as leituras, e a eliminação é irreversível.

Próximos passos

Regras sobre eventos

Regras de velocidade, rácio, sequência e correlação sobre dados de eventos.

Submissão de eventos pelo SDK

Capte eventos diretamente do dispositivo com uma credencial com âmbito limitado.
Última modificação em 7 de novembro de 2026