Skip to main content
O resultado de um processo chega de duas formas:
  • API: GET /onboarding/api/v1/steps/result/{requestId} (ver a API). A rota GET /onboarding/api/v1/steps/result/external-id/{externalId} devolve { "data": [ ... ] }, com um item por processo daquele externalId.
  • Webhook: um POST com JSON na webhookUrl que você enviou ao iniciar o processo (ou na URL padrão das configurações).
Os dois usam o mesmo conteúdo. As diferenças estão na seção “Diferenças entre API e webhook”, abaixo. Cada etapa executada aparece num bloco próprio (livenessResponse, mfaResponse etc.). Uma etapa que não faz parte do processo não aparece.
Os tipos abaixo usam esta notação: string (ISO 8601) é data e hora como texto; ? no fim do nome indica campo que pode não vir.

Campos da raiz

Quando uma etapa falha por erro técnico, o bloco dela pode vir só com status: "FAILED" e error: string (mensagem do erro).

requestData

Dados enviados no início do processo. Só na API.

livenessResponse

Prova de vida por selfie.

livenessResponse.faceDb

Se a consulta falhar, faceDb vem como { "error": true, "message": string, "timestamp": string (ISO 8601) }.

mfaResponse

Autenticação por código enviado por SMS, e-mail ou WhatsApp.

mfaResponse.validation

O código enviado à pessoa não sai na API nem no webhook.

mfaResponse.authenticated

fraudResponse

Documentoscopia, leitura do documento (OCR) e comparação da selfie com o documento (facematch).

fraudResponse.penalties[]

fraudResponse.faceMatch

Se a comparação falhar, faceMatch vem como { "error": true, "message": string, "timestamp": string (ISO 8601) }.

fraudResponse.ocr

fraudResponse.ocr.ocrResult

Os nomes em fields[].name variam conforme o tipo do documento.

uploadResponse

Envio de arquivos.

signerResponse

Assinatura digital de documentos.

signerResponse.files.{fileId}

signer

Estado de execução da etapa de assinatura.

bureauQueryResponse

Consulta ao pacote de datasets no fim do fluxo, quando ligada nas configurações.

doclessResponse

Emissão de documento sem foto do documento (docless). Só na API.

terminatedBy

Vem no webhook quando o fluxo termina antes da última etapa. As etapas que não rodaram vêm com status: "CANCELLED".

Webhook

Como chega

  • Método POST, corpo JSON, na webhookUrl do processo.
  • Se você enviou webhookBasicAuth no início, a chamada leva essa credencial como Basic Auth.
  • Não há campo de tipo de evento. Use resource e status para saber o que aconteceu.

Quando é enviado

O webhook não é enviado nas etapas intermediárias do fluxo nem quando o processo expira (ABORTED). Para esses casos, consulte a API.

Diferenças entre API e webhook

Exemplo

O exemplo ao lado mostra o webhook de um fluxo com MFA, liveness e documentoscopia (dados fictícios; imagens cortadas).
Na API, o mesmo processo vem sem requestId, resource, cpf e externalId na raiz, e com createdAt e requestData.

Status

Regras de consolidação do fluxo

No fim de um fluxo (flow), o status da raiz segue esta ordem:
  1. Alguma etapa em ANALYSIS → ANALYSIS.
  2. Alguma etapa em FAILED → FAILED.
  3. Alguma etapa em REJECTED (agora ou antes) → REJECTED.
  4. Alguma etapa em CANCELLED, EXPIRED ou ABORTED → esse status, nessa ordem.
  5. Todas as etapas em APPROVED ou IGNORED → APPROVED. Upload, assinatura e documentoscopia só OCR com FINISHED contam como APPROVED.
Enquanto o fluxo não termina, o status da raiz é STARTED (alguma etapa espera a pessoa) ou PROCESSING (as etapas seguem em processamento).
Novos campos podem aparecer nos blocos. Ignore os campos que você não usa.