A ingestão de eventos é opcional (opt-in). Ative-a em Transactions → Settings → Event monitoring.
Até que você o ative, nada muda: as suas regras de transação existentes continuam sendo acionadas apenas por transações, e uma regra de evento não pode ser criada por acidente, porque uma regra se aplica a transações, a menos que você inclua eventos explicitamente.Enquanto o recurso não estiver ativado, todos os canais de escrita (
POST /v3/events/, POST /v3/events/batch/, POST /v3/events/sdk-token/ e o canal de dispositivo /v1/events/) respondem 403 com {"code": "event_monitoring_disabled"}, e nada é armazenado, enriquecido ou avaliado. As leituras não são afetadas.Endpoints
O canal
/v3/ é o canal de servidor e usa a mesma autenticação x-api-key que o restante da API de transações. O canal /v1/events/ é o canal de dispositivo. Veja envio de eventos pelo SDK.
O envelope
Categorias
Dez categorias nativas, cada uma com validação tipada e campos de regra gerenciados.auth é a categoria ampla de produto; security é o subconjunto voltado à avaliação de risco, com o ciclo de vida ordenado usado pelas regras de tomada de controle de conta (account takeover).
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 armazenar evidências que ninguém consegue relacionar.Exemplo: uma liquidação P2P
Exemplo: um chargeback
dispute, nunca uma edição do primeiro.
Idempotência
event_id é único por aplicação e constitui todo o contrato de idempotência.
- Mesmo
event_id, mesmo conteúdo retorna200com"idempotent_replay": truee o evento armazenado originalmente. Repita a requisição quantas vezes quiser. - Mesmo
event_id, conteúdo diferente retorna409. Você reutilizou um ID por engano.
Lotes
POST /v3/events/batch/ aceita até 500 eventos. Um lote é parcialmente bem-sucedido intencionalmente: uma visualização de página malformada nunca deve derrubar um chargeback no mesmo lote.
207 Multi-Status quando algo foi rejeitado e 201 Created quando todos os eventos foram registrados.
Status
correlation_pending: true significa que uma regra que envolve vários sujeitos ainda precisa ser executada; a pendência é resolvida em poucos minutos, e o status e a pontuação do evento são atualizados no próprio evento. Veja regras assíncronas.
Retenção
Os eventos têm volume muito maior que as transações, por isso cada um é classificado em uma classe de retenção ao chegar.
Duas regras decorrem da tabela:
- Um evento que corresponde a uma regra é evidência, por isso é promovido automaticamente para
risk_relevant. - Eventos de pagamento e de disputa mantêm a retenção de transações. Eles nunca expiram pelo cronograma de eventos, e as substituições por classe não podem encurtá-la.
Enriquecimento de IP
Os eventos contam com o mesmo enriquecimento de IP que as transações (país, ASN, indicadores de VPN/proxy e de data center), e o enriquecimento é resolvido por endereço IP único, nunca por evento. Uma sessão que dispara 200 visualizações de página a partir de um mesmo endereço resolve esse endereço uma única vez. A telemetria de baixo valor vai além: ela só lê o enriquecimento se algum outro evento já tiver resolvido aquele endereço. Ela nunca aciona uma consulta por conta própria.GET /v3/events/enrichment-metrics/ informa o resultado, e o console mostra os mesmos números acima da lista de eventos:
Consultando eventos
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. Filtros com vários valores repetem o parâmetro (?status=A&status=B).
A linha do tempo de um titular
vendor_data só é único dentro de um tipo de entidade: o mesmo id pode identificar um usuário e uma empresa, e a Didit os trata como dois titulares diferentes. entity_type indica qual deles você está consultando: individual (o padrão) ou company. Se você omiti-lo em um id de empresa, a resposta traz a linha do tempo da pessoa física, não as duas. Os mesmos filtros da listagem se aplicam.
GET /v3/events/{event_uuid}/ acrescenta o payload, o contexto do dispositivo, o enriquecimento de IP, os sinais de risco do titular em cache e cada correspondência de regra com sua evidência, indicando inclusive se cada campo correspondente foi derivado pelo servidor, derivado pelo SDK ou fornecido pelo cliente.
DELETE /v3/events/{event_uuid}/delete/ exclui um evento. Ele deixa de ser retornado em todas as consultas, e a exclusão é irreversível.
Próximos passos
Regras sobre eventos
Regras de velocidade, proporção, sequência e correlação sobre os dados de eventos.
Envio de eventos pelo SDK
Capture eventos diretamente do dispositivo com uma credencial com escopo restrito.