Saltar para o conteúdo principal
Envie transações para a Didit através da API Criar transação. Cada transação inclui dados estruturados sobre as partes, o pagamento e o contexto, que o motor de regras avalia em tempo real.
Quando a transação tem origem no dispositivo de um utilizador final, por exemplo um levantamento de criptoativos ou um pagamento na aplicação, considere a submissão de transações pelo SDK. Um token com âmbito limitado substitui a chave de API, a inteligência de dispositivo é recolhida automaticamente e as ações obrigatórias do utilizador (prova de titularidade da carteira, verificação adicional) são iniciadas no momento.

Categorias de transação

Cada transação tem um transaction_category que determina a forma como as regras e as análises a tratam:

Detalhes da transação

O objeto transaction_details contém os dados financeiros:

Sujeito e contraparte

Cada transação tem um sujeito (obrigatório) e uma contraparte (opcional). Ambos utilizam o mesmo modelo de parte: A Didit deriva o country_code da parte a partir de address.country quando address é um objeto. Quando address é uma string, o country_code dessa parte é devolvido como null. Quando o vendor_data corresponde a um utilizador ou a uma empresa existente, a Didit liga automaticamente a transação ao perfil dessa entidade, o que permite a avaliação de regras entre sessões e as verificações de frequência e volume. Na resposta, ambas as partes são devolvidas no array parties, com as funções APPLICANT e COUNTERPARTY.

Métodos de pagamento

Associe um payment_method a cada parte para descrever o instrumento utilizado por essa parte: Nas transações travelRule, um método de pagamento da contraparte com method_type: "unhosted_wallet" (alias type) declara a carteira da contraparte como autocustodiada. Quando a Travel Rule está ativada e o montante, na moeda predefinida da sua aplicação, não é inferior a threshold_amount, a transferência passa diretamente para UNCONFIRMED_OWNERSHIP e para o fluxo de prova de titularidade. Consulte Carteiras autocustodiadas declaradas. Nas transações de criptoativos, inclua os endereços em account_id e defina currency_kind como crypto, para que a triagem na blockchain seja executada automaticamente. A direção determina a carteira que é analisada: a triagem pré-transferência de entrada utiliza a carteira do remetente em counterparty.payment_method.account_id; a triagem de saída utiliza a carteira de destino em counterparty.payment_method.account_id. Se enviar um hash da blockchain em transaction_details.payment_reference_id, a triagem de transações de entrada exige o endereço de depósito do seu serviço em subject.payment_method.account_id, enquanto a triagem de transações de saída exige a carteira de destino em counterparty.payment_method.account_id.

Substituição da predefinição da triagem de criptoativos

Utilize include_crypto_screening no nível superior do pedido para substituir a predefinição configurada em Transações > Definições na Consola:

Contexto do dispositivo

Inclua informações do dispositivo na parte sujeita (e, opcionalmente, na contraparte) para alimentar as regras de inteligência de dispositivo. O campo do pedido é device_context em cada parte; o alias em camelCase device também é aceite e é o que o formato de transmissão do SDK utiliza. A resposta devolve-o como device em cada parte no array parties.
browser_family e platform não são derivados de user_agent. Têm de ser enviados como chaves explícitas de primeiro nível dentro de device_context para que as regras de inteligência de dispositivo sejam acionadas. Se utilizar o SDK da Didit, estes campos são recolhidos automaticamente.
São aceites aliases em camelCase para todos os campos: userAgent, browserFamily, browserVersion, osFamily, osVersion, acceptLang, sessionId, sessionAgeMs. O subobjeto network_context aceita os aliases ip / countryCode3 / lat / lon, e um bloco ipInfo de primeiro nível também é integrado em network_context. O contexto do dispositivo permite regras como a deteção de multicontas (mesma impressão digital em sujeitos diferentes), a deteção da combinação de novo browser com novo IP, transferências de valor elevado com idade de sessão baixa e a pontuação de risco baseada na localização.

Propriedades personalizadas

Adicione quaisquer pares chave-valor adicionais no objeto custom_properties. As regras podem referenciar estes campos nas respetivas condições, o que é útil para transmitir contexto específico do negócio, como a categoria do produto, o ID do comerciante ou o canal.
Nas condições das regras, referencie cada chave com o caminho do campo custom_values.<key>. Por exemplo, o payload acima corresponde a custom_values.product_category eq "electronics". No criador de regras da Consola, as chaves vistas em transações recentemente recebidas aparecem no seletor de campos de condição em Propriedades personalizadas, e Introduzir propriedade personalizada no mesmo grupo permite introduzir manualmente qualquer chave (sensível a maiúsculas e minúsculas). Consulte Regras e pontuação para mais detalhes.

Exemplo de pedido

Resposta

A API devolve a transação criada com os resultados da avaliação inicial: Consulte a Referência da API para o esquema completo do pedido e da resposta, e a referência do esquema de resposta para uma explicação anotada de um payload.

Atribuir uma transação a um revisor

Atribua uma transação retida a um membro da sua aplicação, ou desatribua-a, com uma chave de API que tenha o privilégio write:transactions. Cada alteração é registada na linha temporal da transação como TRANSACTION_ASSIGNED. Ambas as chamadas recebem assignee_email, o e-mail de um membro da aplicação que tenha iniciado sessão no Didit. Envie null ou uma cadeia de caracteres vazia para desatribuir. A chamada em massa recebe também transaction_ids, uma lista de 1 a 500 UUIDs de transações.
A chamada individual devolve uuid, transaction_number, assignee e changed (false quando a transação já tinha este responsável atribuído), ou 404 quando a transação não existe na aplicação. A chamada em massa devolve transactions (uma entrada como a acima), updated_count e not_found_transaction_ids. Filtre a lista de transações com assignee, uma lista separada por vírgulas em que qualquer valor corresponde a um destes valores: me, unassigned, rules (decidida apenas pelas regras, sem intervenção de revisor) ou o e-mail de um membro.

Idempotência

O txn_id (o transaction_id que envia) é único por aplicação. Reenviar um transaction_id que já existe devolve 400 com A transaction with this transaction_id already exists. no campo transaction_id, e dois pedidos idênticos enviados em simultâneo devolvem 409 ao segundo. Nenhuma das respostas devolve a transação existente. Para repetir o envio com segurança, trate um 400 ou 409 para um transaction_id duplicado como “já criada” e consulte a transação existente em vez de a reenviar: leia-a com GET /v3/transactions/{uuid}/ usando o uuid da primeira resposta, ou use o transaction_id (o uuid da Didit) que o webhook transaction.created traz junto do seu txn_id. Gere sempre o txn_id do seu lado (por exemplo, o ID da sua base de dados de transações, um UUID ou um hash determinístico).

Carregamento histórico

Envie um txn_date anterior à data atual para importar transações históricas. Por predefinição, as regras continuam a ser avaliadas. Se quiser ignorar a avaliação de regras durante carregamentos históricos em massa, use a importação CSV da consola com o modo dry-ingest. Consulte o guia de integração.

Próximos passos

Regras e pontuação

Como as transações enviadas são avaliadas em função das regras.

Esquema da resposta

Payload completo da resposta, com anotações.

Triagem de criptoativos

Triagem automática de carteiras e transações para transações cripto.

Travel Rule

Anexar dados de conformidade da Travel Rule às transferências de ativos virtuais.

Enriquecimento de IP

Contexto derivado do IP disponível para as regras.

Referência da API

Esquema completo do pedido para o endpoint de criação de transação.
Última modificação em 7 de novembro de 2026