Pular para o conteúdo principal
PATCH
curl

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.

Parâmetros de caminho

transaction_id
string<uuid>
obrigatório

UUID estável da transação na Didit à qual a transferência pertence.

Corpo

application/json

Informe exatamente um destes: payment_txn_id (finalizar), action=cancel, action=resend, action=update_compliance_email com compliance_email, action=update_originator_wallet com wallet_address ou action=beneficiary_vasp com beneficiary_vasp.

payment_txn_id
string

O hash da transação on-chain. Exige que a transferência seja uma transferência de saída com status COMPLETED.

action
enum<string>

"cancel" cancela uma transferência que ainda não está em estado final. "resend" executa novamente o roteamento de uma transferência de saída parada em COUNTERPARTY_VASP_NOT_FOUND, COUNTERPARTY_VASP_NOT_REACHABLE ou NOT_ENOUGH_COUNTERPARTY_DATA. "update_compliance_email" substitui o e-mail de conformidade para o qual a requisição é enviada, em uma transferência de saída em um desses três status; envie "resend" em seguida. "update_originator_wallet" registra a carteira da qual os fundos realmente saíram (wallet_address, memo). "beneficiary_vasp" permite que você mesmo indique o VASP da contraparte (exige beneficiary_vasp) para uma transferência de saída em um desses status: ela é roteada para esse VASP e enviada novamente.

Opções disponíveis:
cancel,
resend,
update_compliance_email,
update_originator_wallet,
beneficiary_vasp
compliance_email
string<email>

Obrigatório com action: update_compliance_email. Armazenado como beneficiary_data.counterparty_vasp_email desta transferência: pertence apenas a esta transferência e não é adicionado a nenhuma entrada do diretório nem a nenhuma lista de contatos.

Maximum string length: 254
wallet_address
string

Com action: update_originator_wallet: a carteira de onde os fundos saíram. Quando as entradas UTXO da transferência são conhecidas, ela deve ser uma delas.

Maximum string length: 128
memo
string

Com action: update_originator_wallet: o memo ou tag da carteira em uma rede que usa memo. Opcional.

Maximum string length: 256
beneficiary_vasp
string<uuid>

Obrigatório com action=beneficiary_vasp: o id de um VASP do diretório, obtido em GET /v3/travel-rule/vasps/. Sua escolha tem prioridade sobre todas as etapas de descoberta automática, que nunca a substituem.

Resposta

A transferência atualizada. Após update_compliance_email, o status permanece inalterado e ela mantém reason: email_undeliverable até o próximo resend.

Objeto de transferência completo retornado pelos endpoints de confirmação de propriedade e de finalização/cancelamento. Enquanto a propriedade da carteira de uma transferência recebida não for confirmada, os campos originator_data e beneficiary_data da contraparte são retornados mascarados (a primeira letra de cada palavra é mantida; a carteira, a blockchain e o roteamento do VASP continuam legíveis) e data_masked é true.

uuid
string<uuid>
status
enum<string>
Opções disponíveis:
AWAITING_COUNTERPARTY,
ON_HOLD,
COMPLETED,
FINISHED,
CANCELLED,
EXPIRED,
COUNTERPARTY_MISMATCHED_DATA,
COUNTERPARTY_VASP_NOT_FOUND,
COUNTERPARTY_VASP_NOT_REACHABLE,
UNCONFIRMED_OWNERSHIP,
COUNTERPARTY_VASP_GENERAL_DECLINE,
NOT_ENOUGH_COUNTERPARTY_DATA,
NOT_APPLICABLE
direction
enum<string>
Opções disponíveis:
INBOUND,
OUTBOUND
rail
enum<string> | null

O canal pelo qual a transferência foi roteada, ou null quando nenhum canal foi selecionado (por exemplo, abaixo do limiar, uma carteira autocustodiada da contraparte, um registro após o depósito ou nenhuma contraparte alcançável). INTERNAL significa que ambos os lados são aplicações da Didit; EMAIL significa que a contraparte foi alcançada por um link de retirada enviado por e-mail. TEST_VASP significa que o Didit Test VASP respondeu à transferência no sandbox. Em GTR, VERIFYVASP e SYGNA, a Didit lê a resposta da contraparte a partir da resposta da rede ou consultando-a a cada 5 minutos. TRUST apenas envia, portanto uma transferência TRUST permanece em AWAITING_COUNTERPARTY até expirar. Um canal de rede só é usado quando você conectou sua própria associação a essa rede. Ele é escolhido depois que a criação da transação retorna, por isso é null nessa resposta.

Opções disponíveis:
INTERNAL,
TRP,
GTR,
TRUST,
VERIFYVASP,
SYGNA,
EMAIL,
TEST_VASP,
null
protocol
string | null
ivms_version
string
Exemplo:

"ivms101.2023"

required
boolean
ownership_confirmed
boolean | null
deadline_at
string<date-time> | null
timeline
object[]
counterparty_vasp
object | null
originator_data
object

Parte remetente. Em uma transferência de entrada, os valores da contraparte ficam mascarados até que a propriedade seja confirmada.

beneficiary_data
object

Parte beneficiária. Em uma transferência recebida, os valores da contraparte ficam mascarados até que a propriedade seja confirmada.

name_match
object · null · null

A comparação de nomes que decidiu a transferência, ou nula até que uma seja executada. Enquanto as partes estão mascaradas, e na cópia do outro cliente de uma troca INTERNAL, transfer_name, compared_name, matched_names e mismatched_names ficam ocultos. score e matched podem divergir: matched segue o rigor, enquanto score é a similaridade entre os dois nomes completos.

data_match
object | null

Comparação campo a campo entre os dados das partes da transferência e o que o outro lado sabe sobre o titular da carteira. Ela indica campos e resultados, nunca valores, por isso continua legível enquanto os dados da contraparte estão mascarados. Nulo até que uma comparação seja executada.

mismatched_fields
string[]

Atalho para data_match.mismatched_fields. Vazio quando nada difere.

data_unmasked
object | null

Registro de auditoria do momento em que os dados da contraparte foram desmascarados. É nulo enquanto os dados ainda estão mascarados e em transferências de saída.

data_masked
boolean

True enquanto os dados pessoais da contraparte estão mascarados nesta resposta.

created_at
string<date-time>
delivery
object | null

Situação da mensagem mais recente que esta transferência deve à outra parte. Nulo quando a transferência nunca deveu uma mensagem (por exemplo, abaixo de threshold_amount, em uma carteira autocustodiada declarada ou em um registro de sunrise).

discovery
object[]

Como a Didit procurou a contraparte, com uma entrada por etapa executada. Vazio quando nenhuma descoberta foi executada, por exemplo, em uma transferência de entrada.

reason
string

Motivo pelo qual uma transferência COUNTERPARTY_VASP_NOT_FOUND ou COUNTERPARTY_VASP_NOT_REACHABLE está parada; "" para qualquer outro status. Uma falha de entrega decide primeiro, apenas em COUNTERPARTY_VASP_NOT_REACHABLE: email_undeliverable (o provedor de e-mail recusou o e-mail de conformidade e não resta nenhum endereço para tentar: no envio, em um lembrete ou como uma devolução permanente informada depois) ou delivery_failed (o canal que fazia a entrega falhou definitivamente: um canal de rede recusou a mensagem ou esgotou as novas tentativas, um host de identidade TRP não respondeu ou o host TRP da contraparte não aceitou a consulta). Caso contrário, o rastro de discovery decide: awaiting_end_user (nenhuma etapa indicou uma contraparte que a Didit consiga alcançar), directory_match_no_route (uma etapa indicou um VASP do diretório que não tem rota), picked_member_without_proven_wallet (o usuário final escolheu um cliente da Didit que não comprovou o controle da carteira) ou no_directory_match quando o rastro não indica nenhum outro motivo. Um reenvio faz a transferência avançar, e o motivo é então limpo. Veja Por que uma transferência está parada.

next_actions
object[]

O que faz a transferência avançar; [] para qualquer status que não seja COUNTERPARTY_VASP_NOT_FOUND ou COUNTERPARTY_VASP_NOT_REACHABLE. email_undeliverable oferece update_compliance_email e depois resend. delivery_failed oferece resend. Um motivo de descoberta oferece select_counterparty_vasp, declare_self_hosted, add_vasp_hint e resend.

chain_details
object

Como a blockchain da transferência identifica suas duas carteiras, quando isso vai além de um endereço pagando a outro. Vazio ({}) para uma transferência em blockchain baseada em contas (EVM, Solana, Tron), em que os dois endereços são as próprias carteiras. A correspondência, o roteamento e o catálogo de endereços leem as carteiras primeiro a partir daqui.

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