Saltar 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 com 403 e "code": "event_monitoring_disabled".
Ingestão de eventos aborda o envelope, as dez categorias, as chaves obrigatórias do payload e as classes de conservação. Regras sobre eventos explica quais as regras executadas no pedido e quais as executadas de forma assíncrona. Para enviar eventos a partir de um navegador ou de uma aplicação, em vez do seu sistema de back-end, use o envio de eventos pelo SDK.

Autorizações

x-api-key
string
header
obrigatório

A chave de API da sua aplicação, a partir de Programadores -> Chaves de API na Business Console. A chave principal tem acesso total. Uma chave nomeada pode ter o âmbito definido: nenhum, 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á incorreta, 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 o pedido veio de um endereço fora da sua lista de IP; 404 numa rota de sessão significa que a sessão está fora dos fluxos ou estados da chave. Uma chave sem acesso a multimédia recebe URLs de imagens, vídeos e PDFs como nulos, e uma chave sem permissão de escrita em sessões recebe ligações de sessão e tokens como nulos. Consulte https://docs.didit.me/console/api-keys.

Corpo

application/json

O envelope do evento, igual para todas as categorias. São aceites aliases em camelCase: 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

O seu identificador para o evento, único por aplicação. É a chave de idempotência: reenviar os mesmos event_category, action_type, occurred_at, subject.vendor_data e payload sob este identificador é uma repetição; qualquer alteração constitui 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 geridas listadas em Ingestão de eventos (por exemplo login, deposit_completed, chargeback_opened) desbloqueiam a validação tipada e campos de regras geridos. Os espaços em branco no início e no final são removidos.

Required string length: 1 - 128
Exemplo:

"login"

occurred_at
string<date-time>
obrigatório

Quando o evento aconteceu do seu lado, ISO 8601 (um valor sem fuso horário é interpretado como UTC). Não deve ter mais de 7 dias no passado nem mais de 5 minutos no futuro.

Exemplo:

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

subject
object
obrigatório

O utilizador ou empresa a quem o evento pertence. É resolvido para o utilizador (ou empresa) com este vendor_data na sua aplicação; é criado um novo registo se não existir nenhum.

time_zone
string | null

Fuso horário da ocorrência do seu lado, por exemplo Europe/Madrid. Armazenado com o evento; não é devolvido 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 seu contexto de sessão para o evento.

device_context
object

Contexto de dispositivo e rede, armazenado tal como enviado e devolvido por GET /v3/events/{event_uuid}/. Nesta camada do servidor, a Didit não vê a ligação do utilizador final, pelo que o IP enriquecido e utilizado pelas regras é network_context.ip_address tal como o enviar.

transaction_context
object

Contexto monetário. Valores não vazios aqui também satisfazem as chaves de payload obrigatórias da ação.

payload
object

Os campos de domínio da categoria, no máximo 16384 bytes após codificação JSON. Algumas ações exigem chaves (em payload ou transaction_context): gameplay.p2p_settlement requer game_id, counterparty_vendor_data, stake_amount, net_result_amount, role e um de hand_id, round_id, match_id; gameplay.bet_placed e gameplay.bet_settled requerem game_id; payment.deposit_initiated, payment.deposit_completed, payment.withdrawal_requested e payment.withdrawal_completed requerem payment_reference_id, amount, currency, payment_method, status; payment.withdrawal_address_changed requer withdrawal_address_hash; dispute.chargeback_opened, dispute.chargeback_won e dispute.chargeback_lost requerem payment_reference_id e um de dispute_id, chargeback_id; session.bot_signal_observed requer telemetry_schema_version e um de bot_score, actions_per_minute, timing_variance_ms, pointer_entropy, keystroke_entropy, reaction_time_ms_p50; responsible_gambling.self_exclusion_match requer registry_source, exclusion_status, identity_match_ref. Todas as ações de security que terminam em _changed requerem changed_field, além de previous_reference_hash ou new_reference_hash quando o campo for 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 levantamento completo, um hash de palavra-passe ou um segredo MFA.

custom_values
object

Até 100 chaves suas, acessíveis a partir de regras como custom_values.<key>. Os valores têm de ser escalares (string, número, booleano ou null); objetos e arrays aninhados são rejeitados.

Resposta

Reexecução idempotente: já se encontra armazenado um evento com este event_id e o mesmo conteúdo. Nada foi armazenado ou avaliado novamente; o corpo descreve o evento armazenado.

Resultado da ingestão de um evento. A mesma estrutura é devolvida para um novo evento e para uma repetição idempotente.

event_uuid
string<uuid>
obrigatório

Identificador Didit do evento armazenado.

event_id
string
obrigatório

O seu event_id.

status
enum<string>
obrigatório

Estado 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 no pedido. 0 numa aplicação de sandbox, onde não são executadas regras.

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

Número de regras correspondentes, incluindo regras em modo TEST.

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

true quando uma regra assíncrona ainda tem de ser executada. Leia GET /v3/events/{event_uuid}/ alguns minutos mais tarde para obter o status e o score finais.

retention_class
enum<string>
obrigatório

Classe de conservação, após qualquer promoção feita 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 de acordo com a sua classe de conservação e é eliminado. Nulo para eventos monetary_or_compliance (pagamento e disputa).

idempotent_replay
boolean
obrigatório

true quando um evento com este event_id e o mesmo conteúdo já tinha sido 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 7 de novembro de 2026