Saltar para o conteúdo principal
PATCH
curl

O que faz

Uma sessão de verificação é composta por funcionalidades (passos) individuais: ID/OCR, Prova de vida, Correspondência facial, AML, Comprovativo de morada, Telefone, e assim por diante. Este endpoint permite definir o estado de um desses passos como Approved, Declined ou In Review. Use update-status quando quiser aprovar, recusar ou reabrir a sessão inteira. Use este endpoint quando quiser apenas registar uma decisão sobre um único passo, por exemplo para marcar o passo de Correspondência facial como Declined no seu próprio fluxo de revisão. Uma sessão que já tenha uma decisão mantém-na: só o passo muda. Se a sessão ainda não tiver decisão e o fluxo estiver a aguardar precisamente este passo, a substituição conclui o passo, tal como aconteceria se este fosse concluído normalmente. O fluxo avança, os passos seguintes são executados, e um nó de estado pode definir a decisão da sessão e disparar um webhook status.updated.

Direcionar um passo com node_id

Nos fluxos baseados em grafo, cada passo tem um node_id (por exemplo feature_ocr_1, feature_liveness_1, feature_aml_1). Pode encontrá-los na decisão da sessão: cada funcionalidade numa decisão V3 inclui o respetivo node_id. Nos fluxos sem grafo (de passo único), a funcionalidade subjacente não tem ID de nó. Passe o valor literal default como nodeId para a direcionar. Como nenhum passo deste tipo de fluxo tem ID de nó, passe também feature_type (por exemplo LIVENESS, AML ou FACE_MATCH) para indicar o passo pretendido. Um feature_type desconhecido devolve 400.

Aguardar até a pessoa concluir o fluxo

Por defeito, a substituição aplica-se de imediato. Se a pessoa ainda estiver a percorrer o fluxo, isso altera um passo de um fluxo que ainda está em execução; a substituição fica então registada com forced: true. Defina defer_until_flow_finishes: true para aguardar. Enquanto a sessão estiver em Not Started, In Progress ou Resubmitted e a pessoa não tiver concluído o fluxo, a substituição fica guardada como pending_until_flow_finishes. Aplica-se quando a pessoa concluir o fluxo, depois de o fluxo atingir a sua própria decisão. Numa sessão cujo fluxo já terminou, aplica-se de imediato em qualquer dos casos. Uma substituição em espera é cancelada, em vez de aplicada, quando:
  • a pessoa refaz o passo antes de concluir o fluxo (check_changed),
  • uma substituição mais recente no mesmo passo a substitui (replaced),
  • a sessão sai do fluxo sem o concluir: abandonada, expirada ou decidida a meio do fluxo (session_closed),
  • cancela a substituição com Cancelar substituição de funcionalidade (cancelled_by_reviewer).
A override da resposta indica o que aconteceu: state é applied ou pending_until_flow_finishes, e applied_at fica definido quando for aplicada. O new_status de nível superior é o estado guardado do passo, pelo que se mantém inalterado enquanto a substituição aguarda. Use Listar substituições de funcionalidades para ver todas as substituições de uma sessão e se a pessoa ainda está no fluxo.

Suporte a KYC e KYB

Funciona de forma idêntica para sessões de Verificação de utilizadores (KYC) e de Verificação de empresas (KYB): a Didit resolve o sessionId em ambas. Os tipos de passo suportados incluem ID/OCR, Prova de vida, Correspondência facial, NFC, AML, Comprovativo de morada, Telefone, E-mail, Validação de base de dados, Questionário, e as verificações KYB de registo, documentos e pessoas-chave.
As sessões de API autónomas (criadas através das APIs de verificação autónomas, session_type = API) não permitem alterar os estados individuais das funcionalidades: o endpoint devolve 400.

Exemplos

O que acontece após uma atualização

  • Webhook: um evento data.updated é disparado quando a substituição é aplicada, de imediato ou quando o fluxo termina. Nada é enviado enquanto aguarda ou quando é cancelada.
  • Atividade: cada substituição fica registada na atividade da sessão como FEATURE_OVERRIDE_PENDING, FEATURE_OVERRIDE_APPLIED ou FEATURE_OVERRIDE_CANCELLED, com o autor (chave de API, utilizador ou o sistema, quando uma substituição em espera é aplicada). A entrada do pedido inclui o seu comment como motivo. No array reviews da decisão da sessão estas entradas aparecem com new_status: null, e a entrada do pedido tem o seu motivo em comment.
  • Decisão da sessão: uma sessão que já tenha uma decisão mantém-na. Para alterar a decisão final, chame update-status separadamente.

Permissão

Requer o privilégio write:sessions, com uma chave de API de cliente (x-api-key) ou um cabeçalho de autorização de utilizador. Uma chave de API com âmbito limitado precisa de acesso de escrita às decisões.

Relacionados

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.

Parâmetros de caminho

sessionId
string<uuid>
obrigatório

UUID da sessão de verificação. Aceita IDs de sessão de utilizador (KYC) e de empresa (KYB) — o serviço resolve o ID em ambos os tipos de sessão.

Exemplo:

"11111111-2222-3333-4444-555555555555"

nodeId
string
obrigatório

ID do nó do grafo do fluxo da funcionalidade a atualizar (por exemplo, feature_ocr_1). Utilize o valor literal default para fluxos que não utilizem grafos (passo único), onde a funcionalidade não tem ID de nó.

Exemplo:

"feature_ocr_1"

Corpo

application/json
new_status
enum<string>
obrigatório

Estado de destino para esta funcionalidade. Deve diferir do valor atual.

Opções disponíveis:
Approved,
Declined,
In Review
Exemplo:

"Approved"

comment
string

Nota de texto livre opcional registada no histórico de revisão da sessão para esta alteração de funcionalidade.

Exemplo:

"Document manually verified by compliance."

feature_type
enum<string>

Qual o tipo de passo a definir como alvo. Necessário em fluxos sem grafo (nodeId = default), onde nenhum passo partilha nós; caso contrário, é opcional. Um valor desconhecido devolve 400.

Opções disponíveis:
ID_VERIFICATION,
OCR,
OCR_BACK,
NFC,
LIVENESS,
FACE,
AGE_ESTIMATION,
AGE_VERIFICATION,
FACE_SEARCH,
FACE_MATCH,
IP_ANALYSIS,
AML,
PHONE,
PHONE_VERIFICATION,
EMAIL,
EMAIL_VERIFICATION,
POA,
PROOF_OF_ADDRESS,
DATABASE_VALIDATION,
DATA_VALIDATION,
QUESTIONNAIRE,
DOCUMENT_AI,
KYB_REGISTRY,
KYB_DOCUMENTS,
KYB_KEY_PEOPLE,
BANK_VERIFICATION,
GEOLOCATION
Exemplo:

"LIVENESS"

defer_until_flow_finishes
boolean
padrão:false

Enquanto a pessoa ainda estiver no fluxo, armazene a substituição como pending_until_flow_finishes e aplique-a quando o fluxo terminar, em vez de imediatamente. Omitido ou false, a substituição é aplicada imediatamente. Numa sessão cujo fluxo já terminou, aplica-se imediatamente de qualquer forma.

Exemplo:

false

Resposta

A substituição foi registada. new_status é o estado da verificação conforme armazenado: o solicitado assim que a substituição for aplicada, ou o estado inalterado enquanto aguarda a conclusão do fluxo. override indica o que ocorreu.

session_id
string<uuid>
obrigatório
node_id
string | null
obrigatório

O nó de fluxo do passo atualizado, ou null para um passo sem nó (o caminho default num fluxo sem grafo).

Exemplo:

"feature_ocr_1"

feature_type
string
obrigatório

Nome do modelo da funcionalidade atualizada (p. ex., KYC, Face, FaceMatch, AML, POA).

Exemplo:

"KYC"

new_status
string
obrigatório

O estado armazenado da verificação: o solicitado assim que a substituição for aplicada, e o estado inalterado enquanto a substituição aguarda que o fluxo termine.

Exemplo:

"Approved"

override
object
obrigatório

Uma sobreposição do estado de uma verificação (funcionalidade) efetuada com PATCH /v3/session/{sessionId}/features/{nodeId}/update-status/: o que altera, se foi aplicada ou se ainda aguarda que a pessoa conclua o fluxo, quem solicitou e porquê.

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