Pular para o conteúdo principal
POST
curl
A ingestão de eventos é opcional. Ative-a em Transactions > Settings > Event monitoring antes de enviar eventos; até lá, este endpoint responde 403 com "code": "event_monitoring_disabled".
A página Ingestão de eventos aborda o envelope, as dez categorias, as chaves obrigatórias do payload e as classes de retenção. A página Regras sobre eventos explica quais regras são executadas na requisição e quais são executadas de forma assíncrona. Para enviar eventos de um navegador ou aplicativo em vez do seu backend, use o envio de eventos pelo SDK.

Autorizações

x-api-key
string
header
obrigatório

Chave de API da sua aplicação, em Developers -> API keys no Business Console. A chave principal tem acesso total. Uma chave nomeada pode ter escopo restrito: nenhum acesso, leitura ou escrita por recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a uma data de validade. 401 significa que a chave está errada, revogada ou expirada; 403 significa que nenhuma chave foi enviada, que a chave não tem acesso a este recurso ou ação, ou que a requisição veio de um endereço fora da sua lista de IPs; 404 em uma rota de sessão significa que a sessão está fora dos fluxos ou status da chave. Uma chave sem acesso a mídia recebe URLs de imagem, vídeo e PDF como null, e uma chave sem permissão de escrita em sessões recebe links e tokens de sessão como null. Consulte https://docs.didit.me/console/api-keys.

Corpo

application/json

O envelope do evento, igual para todas as categorias. Aliases em camelCase são aceitos: eventId, eventCategory (ou category), actionType, occurredAt, timeZone (ou zoneId), deviceContext (ou device), transactionContext, customValues (ou props); dentro de subject: vendorData, entityType, fullName; dentro de session: sessionId, pageUrl; dentro de transaction_context: paymentReferenceId.

event_id
string
obrigatório

Seu identificador do evento, único por aplicação. Ele é a chave de idempotência: reenviar os mesmos event_category, action_type, occurred_at, subject.vendor_data e payload com ele é uma repetição; qualquer diferença é um conflito.

Maximum string length: 128
Exemplo:

"login-2026-10-17-000001"

event_category
enum<string>
obrigatório

Categoria do evento.

Opções disponíveis:
auth,
session,
gameplay,
bonus,
affiliate,
payment,
dispute,
security,
responsible_gambling,
custom
Exemplo:

"auth"

action_type
string
obrigatório

O que aconteceu dentro da categoria. Vocabulário aberto; as ações gerenciadas listadas em Ingestão de eventos (por exemplo, login, deposit_completed, chargeback_opened) habilitam validação tipada e campos de regra gerenciados. Os espaços em branco no início e no fim são removidos.

Required string length: 1 - 128
Exemplo:

"login"

occurred_at
string<date-time>
obrigatório

Quando o evento ocorreu do seu lado, em ISO 8601 (um valor sem deslocamento de fuso horário é interpretado como UTC). Deve estar no máximo 7 dias no passado e no máximo 5 minutos no futuro.

Exemplo:

"2026-10-17T09:15:02.481Z"

subject
object
obrigatório

O usuário ou a empresa a que o evento pertence. Ele é associado ao usuário (ou à empresa) com este vendor_data na sua aplicação; um novo é criado quando não existe nenhum.

time_zone
string | null

Fuso horário da ocorrência do seu lado, por exemplo Europe/Madrid. Armazenado com o evento; não é retornado pelos endpoints de leitura.

Maximum string length: 64
business
object

A empresa à qual o evento pertence, quando difere do sujeito. Apenas vendor_data é lido.

session
object

O contexto da sua sessão para o evento.

device_context
object

Contexto de dispositivo e rede, armazenado como enviado e retornado por GET /v3/events/{event_uuid}/. Nesta via de servidor, a Didit não vê a conexão do usuário final. Por isso, o IP enriquecido e usado pelas regras é network_context.ip_address, exatamente como você o envia.

transaction_context
object

Contexto monetário. Valores não vazios aqui também atendem às chaves obrigatórias do payload da ação.

payload
object

Os campos de domínio da categoria, com no máximo 16384 bytes após a codificação em JSON. Algumas ações exigem chaves (em payload ou transaction_context): gameplay.p2p_settlement exige game_id, counterparty_vendor_data, stake_amount, net_result_amount, role e um entre hand_id, round_id, match_id; gameplay.bet_placed e gameplay.bet_settled exigem game_id; payment.deposit_initiated, payment.deposit_completed, payment.withdrawal_requested e payment.withdrawal_completed exigem payment_reference_id, amount, currency, payment_method, status; payment.withdrawal_address_changed exige withdrawal_address_hash; dispute.chargeback_opened, dispute.chargeback_won e dispute.chargeback_lost exigem payment_reference_id e um entre dispute_id, chargeback_id; session.bot_signal_observed exige telemetry_schema_version e um entre bot_score, actions_per_minute, timing_variance_ms, pointer_entropy, keystroke_entropy, reaction_time_ms_p50; responsible_gambling.self_exclusion_match exige registry_source, exclusion_status, identity_match_ref. Toda ação security terminada em _changed exige changed_field, além de previous_reference_hash ou new_reference_hash quando o campo é password, mfa_method, mfa, email, phone, withdrawal_address, payout_method ou api_key. Envie hashes e referências, nunca um número de cartão, um endereço de saque completo, um hash de senha ou um segredo de MFA.

custom_values
object

Até 100 chaves próprias, acessíveis nas regras como custom_values.<key>. Os valores devem ser escalares (string, número, booleano ou null); objetos aninhados e arrays são rejeitados.

Resposta

Reprodução idempotente: um evento com este event_id e o mesmo conteúdo já está armazenado. Nada foi armazenado nem avaliado novamente; o corpo descreve o evento armazenado.

Resultado da ingestão de um evento. O mesmo formato é retornado para um evento novo e para uma repetição idempotente.

event_uuid
string<uuid>
obrigatório

Identificador da Didit para o evento armazenado.

event_id
string
obrigatório

Seu event_id.

status
enum<string>
obrigatório

Status após a execução das regras em tempo real. Consulte MonitoringEvent.status.

Opções disponíveis:
ACCEPTED,
APPROVED,
IN_REVIEW,
DECLINED
score
integer
obrigatório

Pontuação após a execução das regras em tempo real.

rules_evaluated_count
integer
obrigatório

Número de regras de evento avaliadas na requisição. 0 em uma aplicação de sandbox, onde nenhuma regra é executada.

Intervalo obrigatório: x >= 0
rules_matched_count
integer
obrigatório

Número de regras que corresponderam, incluindo regras no modo TEST.

Intervalo obrigatório: x >= 0
correlation_pending
boolean
obrigatório

true quando uma regra assíncrona ainda precisa ser executada. Consulte GET /v3/events/{event_uuid}/ alguns minutos depois para obter o status e o score finais.

retention_class
enum<string>
obrigatório

Classe de retenção, após qualquer promoção por uma regra correspondente.

Opções disponíveis:
low_value,
standard,
risk_relevant,
monetary_or_compliance
expires_at
string<date-time> | null
obrigatório

Quando o evento expira conforme sua classe de retenção e é excluído. Nulo para eventos monetary_or_compliance (pagamento e contestação).

idempotent_replay
boolean
obrigatório

true quando um evento com este event_id e o mesmo conteúdo já estava armazenado; os valores são os do evento armazenado e nenhuma regra foi executada novamente.

rule_matches
object[]
obrigatório

Regras que corresponderam ao evento.

Última modificação em 1 de novembro de 2026