> ## Documentation Index
> Fetch the complete documentation index at: https://documentacao.legitimuz.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Consultar uma verificação

> GET /public/validations-persons/{public_id}: uma verificação pelo public_id, com os dados do titular e o resultado de cada etapa.

Devolve uma verificação pelo `public_id`, com os mesmos campos de cada item de
[listar verificações](/api/list-verifications).

<RequestExample>
  ```bash title="Consultar uma verificação" theme={null}
  curl https://api-core.legitimuz.com/public/validations-persons/019f0000-0000-7000-8000-000000000001 \
    -H "X-API-Key: $LEGITIMUZ_API_KEY"
  ```
</RequestExample>

## Requisitos

| Requisito | Detalhe |
| - | - |
| Autenticação | Header `X-API-Key` com a chave da integração (`lz_...`). Veja [autenticação](/start/authentication) |
| Permissão | **Ver verificações**. Baixar imagens exige também **Ver mídia da verificação**. Nascem desmarcadas: veja [como conceder](/platform/tokens#permissões-de-leitura) |
| IP liberado | Só IPs liberados pela Legitimuz. De outro IP, a chamada é barrada antes de chegar à API, com `403`, mesmo com chave e permissão corretas. Para liberar, fale com o [suporte](https://painel.legitimuz.com/support) e informe o IP fixo ou a faixa CIDR |
| Alcance | Só as verificações da integração da chave, no ambiente dela. As de outra integração da conta não aparecem |

## Parâmetros

| Parâmetro | Onde | Formato | Descrição |
| - | - | - | - |
| `public_id` | Caminho | UUID, obrigatório | `public_id` da verificação, devolvido na [criação](/api/create-verification), nos [webhooks](/webhooks/events) e na [listagem](/api/list-verifications) |

A rota não aceita query string: qualquer parâmetro responde `400 E_VALIDATION_FAILURE`.

## Resposta

`200` com a verificação, sem envelope. Header `Cache-Control: no-store`.

Os campos são os de cada item de [listar verificações](/api/list-verifications#verificação), menos
`verifications_count` e `last_verification_at`, que só existem na listagem por titular:

* [Verificação](/api/list-verifications#verificação): status, jornada, fluxo, integração, scores,
  datas e decisão manual.
* [Titular](/api/list-verifications#titular): os dados cadastrais e a [máscara](/api/list-verifications#máscara).
* [Listas restritivas](/api/list-verifications#listas-restritivas) da sua conta em que o documento
  aparece.
* [Etapas](/api/list-verifications#etapas) e [avisos](/api/list-verifications#avisos).

<ResponseExample>
  ```json title="Resposta 200 (em análise, titular PEP)" theme={null}
  {
    "public_id": "019f0000-0000-7000-8000-000000000001",
    "ref_id": "pedido-4471",
    "person_name": "M**** O*******",
    "document": "***.000.000-**",
    "document_type": "cpf",
    "flow": { "public_id": "019f0000-0000-7000-8000-0000000000f1", "name": "Onboarding" },
    "integration": { "public_id": "019f0000-0000-7000-8000-0000000000a1", "name": "Loja online" },
    "identity_score": 100,
    "risk_score": 0,
    "status": "review",
    "journey": "onboarding",
    "created_at": "2026-09-14T17:30:12.000Z",
    "updated_at": "2026-09-14T17:31:03.000Z",
    "decided_at": "2026-09-14T17:30:58.000Z",
    "manual_decision": null,
    "person": {
      "name": "M**** O*******",
      "birthdate": "1990-**-**",
      "mother_name": "A** O*******",
      "gender": null,
      "situation": null,
      "pep": true,
      "pep_origin": "holder",
      "deceased": false
    },
    "restrictive_lists": [
      { "public_id": "019f0000-0000-7000-8000-0000000000c1", "name": "Fraude confirmada" }
    ],
    "steps": {
      "ocr": {
        "state": "approved",
        "name_match": true,
        "document_match": true,
        "birthdate_match": true,
        "document_type": "rg",
        "notices": [
          { "code": "name_found", "severity": "info", "label": "Nome encontrado no documento" }
        ]
      },
      "liveness": { "state": "approved", "score": 98, "notices": [] },
      "facematch": { "state": "approved", "similarity": 97, "notices": [] },
      "documentoscopy": { "state": "pending", "result": null, "score": null, "notices": [] },
      "biometric": { "state": "pending", "score": null, "notices": [] }
    },
    "attempts": { "document": 1, "liveness": 1 },
    "notices": [
      { "code": "pep_manual_review", "severity": "alerta", "label": "Titular é pessoa exposta politicamente" }
    ]
  }
  ```
</ResponseExample>

## Códigos de resposta

| HTTP | Código | Quando |
| - | - | - |
| `200` | — | Verificação devolvida |
| `400` | `E_VALIDATION_FAILURE` | `public_id` fora do formato UUID, ou qualquer parâmetro na query string |
| `401` | `E_UNAUTHORIZED_ACCESS` | Chave ausente, inválida, expirada ou revogada |
| `403` | `E_FORBIDDEN` | Chave sem a permissão **Ver verificações**. IP não liberado também recebe `403`, mas antes de chegar à API: veja [requisitos](#requisitos) |
| `404` | `E_NOT_FOUND` | Verificação inexistente, de outra integração, de outra conta ou do outro ambiente. Mesma resposta em todos os casos |
| `429` | `E_RATE_LIMITED` | Teto de chamadas por minuto na mesma chave, hoje de 500. Respeite `Retry-After`. Veja [limites](/api/errors#limites-de-uso) |
| `500` | `E_INTERNAL_SERVER_ERROR` | Falha inesperada |

Corpo de erro: [erros da API](/api/errors).

## Próximo passo

<Columns cols={2}>
  <Card title="Baixar imagens" icon="photo" href="/api/verification-files">
    A selfie e o documento desta verificação, por URL assinada.
  </Card>

  <Card title="Listar verificações" icon="list-search" href="/api/list-verifications">
    A verificação mais recente de cada titular, com filtros e paginação.
  </Card>
</Columns>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.