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

# Códigos de resultado da validação de banco de dados

> Códigos de resultado da Validação de Banco de Dados da Didit: correspondência, falecido, menor, documento não encontrado. A partir de $0.05/consulta.

A API de [Validação de banco de dados](https://docs.didit.me/pt-br/core-technology/database-validation/overview.md) da Didit consulta o registro civil oficial de cada país: RENAPER (Argentina, \$0.20/consulta com correspondência facial biométrica), Receita Federal (Brasil, \$0.20), Tribunal Electoral SIB (Panamá, \$0.75 biométrica), Junta Central Electoral (República Dominicana, \$0.05) e outros 14. A cobrança é feita por consulta bem-sucedida, sem mínimos mensais.

Ao executar uma Validação de banco de dados, você recebe duas camadas de resultado:

1. Um **código de resultado padrão**, que funciona da mesma forma em todos os países compatíveis. Assim, você escreve uma única lógica de tratamento que cobre todos eles.
2. Um **código de detalhe específico do país**, opcional, que informa exatamente qual condição o registro governamental retornou. Ele é útil para suporte, análises e para decidir se o usuário deve ser orientado a tentar novamente.

Esta página lista todos os valores que você pode receber e explica como reagir a cada um deles.

## Códigos de resultado padrão

Estes códigos são idênticos em todos os países. Construa sua lógica de revisão, recusa e nova tentativa com base neles, e não nos códigos de detalhe de cada país.

| Código de resultado | Significado | Pode tentar novamente? | Tratamento recomendado |
| :- | :- | :-: | :- |
| `MATCH` | O registro confirmou a identidade e todos os campos verificados corresponderam. | — | Aprovar. |
| `PARTIAL_MATCH` | O registro encontrou um cadastro, mas um ou mais dos campos comparados pelo serviço não corresponderam totalmente (geralmente o nome ou a data de nascimento). Os campos que determinam o resultado variam conforme o serviço. Consulte [Métodos de correspondência](https://docs.didit.me/pt-br/core-technology/database-validation/database-validation-matching-methods.md). | — | Enviar para revisão ou configurar uma [Partial Match Action](https://docs.didit.me/pt-br/core-technology/database-validation/database-validation-warnings.md) para recusar automaticamente. |
| `NO_MATCH` | O registro não retornou nenhuma correspondência para os dados enviados. | Não | Recusar ou enviar para revisão, conforme sua política. |
| `DOCUMENT_SUPERSEDED` | O registro confirmou a identidade da pessoa, mas a **edição do documento** apresentada não é a que consta em seus arquivos: uma edição mais recente já foi emitida, portanto a credencial apresentada está desatualizada. A letra de *ejemplar* do DNI argentino é o caso típico. Este código é diferente de `NO_MATCH` (a pessoa não correspondeu) e de `DOCUMENT_NOT_FOUND` (não existe nenhum cadastro): apenas a credencial física está desatualizada. | Não | Enviar para revisão e solicitar a edição atual do documento. Segue a sua **No Match Action** e gera [`DATABASE_VALIDATION_DOCUMENT_SUPERSEDED`](https://docs.didit.me/pt-br/core-technology/database-validation/database-validation-warnings). |
| `DOCUMENT_NOT_FOUND` | O número de identificação é sintaticamente válido, mas não existe no registro governamental. | Não | Recusar. |
| `INVALID_DOCUMENT_FORMAT` | O número de identificação enviado está malformado (comprimento incorreto, caracteres não numéricos, dígito verificador inválido). | Não | Pedir ao usuário que digite novamente o número do documento. |
| `INVALID_INPUT` | Um campo de entrada obrigatório (selfie, gênero, data de nascimento etc.) estava ausente ou malformado. | Não | Pedir ao usuário que reenvie o campo ausente. A sessão será reprocessada automaticamente assim que os dados forem fornecidos. Consulte [`COULD_NOT_PERFORM_DATABASE_VALIDATION`](https://docs.didit.me/pt-br/core-technology/database-validation/database-validation-warnings). |
| `MINOR_BLOCKED` | O registro reteve o cadastro porque o titular é menor de idade. Aplica-se em jurisdições com leis de proteção de dados de menores (LGPD no Brasil, Argentina). | Não | Recusar. Respeite o marco legal local e não tente novamente. |
| `DECEASED` | O registro informa que o titular é falecido. | Não | Recusar. |
| `BIOMETRIC_NO_MATCH` | Em validações biométricas (Argentina, Panamá), a pontuação de correspondência facial ficou abaixo do limiar de aceitação. | Não | Recusar ou enviar para revisão. |
| `BIOMETRIC_IMAGE_UNUSABLE` | Não foi possível processar a selfie: a imagem estava vazia, não continha um rosto, tinha baixa qualidade ou o registro não conseguiu lê-la. | Sim | Pedir ao usuário que tire a selfie novamente. |
| `INCONCLUSIVE` | O registro não conseguiu determinar se a pessoa corresponde: o resultado é realmente incerto (ela pode ou não constar no registro). Este código é diferente de `NO_MATCH` (ausência definitiva) e de `BIOMETRIC_IMAGE_UNUSABLE` (um problema técnico na imagem): nada foi confirmado em nenhum sentido, por isso `match_type` é `null`. | Talvez | Enviar para revisão. Uma nova tentativa com uma selfie mais nítida ou com dados adicionais pode resolver. |
| `REGISTRY_UNAVAILABLE` | O registro governamental está temporariamente inacessível (tempo limite esgotado, erro de conectividade, erro 5xx na origem). | Sim | Tentar novamente após um breve intervalo. A Didit já tenta novamente automaticamente em caso de erros transitórios, então ver este código no relatório final significa que as tentativas se esgotaram. Quando um registro continua falhando, sua organização recebe um e-mail assim que a interrupção se prolonga e outro quando o acesso é restabelecido. Consulte [Notificações de disponibilidade](https://docs.didit.me/pt-br/core-technology/database-validation/overview.md#notificações-de-disponibilidade). |
| `REGISTRY_ERROR` | O registro retornou uma falha inesperada que não se encaixa em nenhuma das categorias acima. | Talvez | Encaminhar ao suporte com o código de detalhe. |

> [!NOTE]
>
> O `outcome_code` fica dentro de cada entrada do array `validations` no relatório de validação. Consulte [Relatório de Validação de banco de dados](https://docs.didit.me/pt-br/core-technology/database-validation/database-validation-report.md) para ver onde ele se encaixa na resposta.

> [!NOTE]
>
> `REGISTRY_UNAVAILABLE` e `REGISTRY_ERROR` significam que o registro de origem nunca respondeu à consulta, por isso esses dois resultados **não são cobrados**. Consulte os [preços](https://docs.didit.me/pt-br/core-technology/database-validation/overview.md). Todos os demais códigos de resultado são respostas reais e pagas do registro, mesmo as que não confirmam nada (`INCONCLUSIVE`, `BIOMETRIC_IMAGE_UNUSABLE`) e mesmo as que rejeitam o que você enviou (`INVALID_DOCUMENT_FORMAT`, `INVALID_INPUT`: como códigos de resultado, eles significam que o próprio registro recusou os dados depois que a consulta foi enviada).
>
> Dados que nunca chegam a um registro não geram nenhum código de resultado: `POST /v3/database-validation/` responde `400` quando um valor não atende às regras de formato do país, e um serviço do fluxo de trabalho com campos ausentes ou malformados é ignorado com [`COULD_NOT_PERFORM_DATABASE_VALIDATION`](https://docs.didit.me/pt-br/core-technology/database-validation/database-validation-warnings). Nenhum dos dois casos é cobrado. O detalhamento completo está na [página de preços da Validação de banco de dados](https://docs.didit.me/pt-br/getting-started/database-validation-pricing.md).

## Códigos de detalhe por país

O código de detalhe é retornado como `outcome_detail` junto com `outcome_code`. Somente os países listados abaixo produzem códigos de detalhe além do resultado padrão; todos os demais países compatíveis retornam apenas os códigos padrão.

### Argentina (RENAPER)

A Argentina usa uma validação biométrica 1×1 contra o registro nacional de identidade RENAPER, combinando o DNI, uma selfie e o gênero declarado.

| Código de detalhe | Resultado padrão | O que significa |
| :- | :- | :- |
| `300` | `INVALID_DOCUMENT_FORMAT` | O campo DNI deve ser um número de 7 a 8 dígitos. |
| `301` | `DOCUMENT_NOT_FOUND` | O DNI enviado não corresponde a um registro válido. |
| `303` | `INVALID_INPUT` | O campo da selfie estava vazio. |
| `304` | `INVALID_INPUT` | O campo de gênero estava vazio ou não correspondia a `M`, `F`, `X`. |
| `305` | `NO_MATCH` | A combinação de DNI e gênero não foi encontrada. |
| `306` | `REGISTRY_UNAVAILABLE` | A consulta não pode ser realizada neste momento. |
| `307` | `REGISTRY_UNAVAILABLE` | Erro ao conectar ao sistema público de validação de identidade. |
| `311` | `REGISTRY_ERROR` | A integração não tem acesso a este produto. |
| `313` | `MINOR_BLOCKED` | O registro pertence a uma pessoa menor de idade. |
| `400` | `REGISTRY_UNAVAILABLE` | Erro de conexão. |
| `401` | `NO_MATCH` | Nenhum resultado encontrado para os dados fornecidos. |
| `405` | `BIOMETRIC_IMAGE_UNUSABLE` | Conflito com a imagem; ela não pode ser processada. |
| `406` | `BIOMETRIC_IMAGE_UNUSABLE` | Erro no processamento da imagem. |
| `NO.HIT` | `BIOMETRIC_NO_MATCH` | A pontuação de correspondência facial ficou abaixo do limiar de aceitação (\< 50). |
| `INTERNAL_ERROR` | `REGISTRY_UNAVAILABLE` | Tempo limite excedido. |

### Brasil (Receita Federal, Consulta CPF)

O Brasil valida o CPF no serviço oficial de CPF da Receita Federal, com tratamento explícito para menores de idade conforme a LGPD (Lei Geral de Proteção de Dados) e o Estatuto Digital da Criança e do Adolescente.

| Código de detalhe | Resultado padrão | O que significa |
| :- | :- | :- |
| `200` | `MATCH` | CPF encontrado e dados retornados com sucesso. |
| `206` | `MATCH` | CPF encontrado, mas alguns campos não essenciais não foram retornados. |
| `400` | `INVALID_DOCUMENT_FORMAT` | O número do CPF não é válido. |
| `404` | `DOCUMENT_NOT_FOUND` | Não existe CPF com o número enviado. |
| `422` | `MINOR_BLOCKED` | Os dados de um menor de 18 anos são retidos conforme a LGPD (Lei 13.709/2018). A resposta inclui `minor_under_18: true`. |
| `451` | `MINOR_BLOCKED` | Os dados de um menor de 16 anos são retidos conforme a LGPD e o Estatuto Digital da Criança e do Adolescente (Lei 15.211/2025). A resposta inclui `minor_under_18: true` e `minor_under_16: true`. |
| `500` | `REGISTRY_UNAVAILABLE` | Erro no servidor de origem. |
| `504` | `REGISTRY_UNAVAILABLE` | Tempo limite do gateway: a requisição não chegou à API da Consulta CPF. |

> [!NOTE]
>
> Para resultados `MINOR_BLOCKED` no Brasil, `source_data` ainda retorna os indicadores `lgpd_minor`, `minor_under_18` e `minor_under_16`, para que você possa aplicar fluxos adequados à idade sem tentar novamente.

### Panamá (SIB, Tribunal Electoral)

O Panamá usa validação biométrica contra o registro SIB (Servicio de Identificación Biométrica), operado pelo Tribunal Electoral. Se ocorrer um erro técnico no SIB, a sessão recorre automaticamente a uma consulta 1×1.

| Código de detalhe | Resultado padrão | O que significa |
| :- | :- | :- |
| `601` | `REGISTRY_UNAVAILABLE` | O operador não existe no banco de dados. |
| `602` | `MINOR_BLOCKED` | O cidadão tem menos de 12 anos. |
| `603` | `DECEASED` | O cidadão é falecido. |
| `604` | `NO_MATCH` | O cidadão tem um registro inválido. |
| `605` | `NO_MATCH` | Cidadão não reconhecido. |
| `606` | `INVALID_INPUT` | O campo Cédula está vazio. |
| `607` | `DOCUMENT_NOT_FOUND` | Cidadão não encontrado. |
| `608` | `REGISTRY_ERROR` | Este cliente não tem acesso ao SIB. |
| `610` | `BIOMETRIC_IMAGE_UNUSABLE` | Erro geral de validação facial. |
| `611` | `BIOMETRIC_IMAGE_UNUSABLE` | A imagem para comparação não foi enviada. |
| `612` | `BIOMETRIC_IMAGE_UNUSABLE` | A imagem não tem conteúdo. |
| `613` | `BIOMETRIC_IMAGE_UNUSABLE` | Formato de imagem inválido. |
| `614` | `BIOMETRIC_IMAGE_UNUSABLE` | Nenhum rosto detectado na imagem. |
| `615` | `BIOMETRIC_NO_MATCH` | Limiar de similaridade não atingido. |

### Outros países compatíveis

Os países abaixo retornam apenas os códigos de resultado padrão; não há códigos de detalhe específicos por país a tratar.

* **Bolívia, Colômbia, Costa Rica, El Salvador, Guatemala, Honduras, Paraguai, Espanha, Uruguai, Venezuela**: consulta 1×1 no registro civil correspondente. Os resultados correspondem diretamente a `MATCH`, `NO_MATCH`, `DOCUMENT_NOT_FOUND`, `INVALID_DOCUMENT_FORMAT` ou `REGISTRY_UNAVAILABLE`.
* **Chile (Registro Civil)**: consulta de RUT. Corresponde aos resultados padrão, além de `MINOR_BLOCKED` quando o registro sinaliza que a pessoa é menor de idade.
* **República Dominicana (JCE)**: consulta de Cédula que retorna um valor booleano de validade; corresponde a `MATCH` ou `NO_MATCH`.
* **Equador (Registro Civil)**: consulta de Cédula.
* **México (RENAPO, mais INE para 2×2)**: consulta de CURP via RENAPO. Quando `validation_type` é `two_by_two`, é executada uma verificação cruzada adicional no INE; ambas são mapeadas para os mesmos códigos de resultado padrão.
* **Peru (RENIEC)**: consulta de DNI.

## Padrão de tratamento

O tratamento robusto mais simples é assim:

```typescript theme={null}
switch (result.outcome_code) {
  case "MATCH":
    return approve();
  case "PARTIAL_MATCH":
    return review();
  case "NO_MATCH":
  case "DOCUMENT_NOT_FOUND":
  case "DECEASED":
  case "MINOR_BLOCKED":
  case "BIOMETRIC_NO_MATCH":
    return decline();
  case "INVALID_DOCUMENT_FORMAT":
  case "INVALID_INPUT":
    return askUserToFixInput(result.outcome_detail);
  case "BIOMETRIC_IMAGE_UNUSABLE":
    return askUserToRetakeSelfie();
  case "REGISTRY_UNAVAILABLE":
  case "REGISTRY_ERROR":
    return review();  // Didit already retried; a human can decide.
  default:
    return review();
}
```

> [!NOTE]
>
> Você não precisa ramificar a lógica de negócio com base em `outcome_detail`: use-o para análises, depuração e chamados de suporte. O `outcome_code` padrão tem garantia de permanecer estável entre países e ao longo do tempo.

## Veja também

* [Avisos da Validação de banco de dados](https://docs.didit.me/pt-br/core-technology/database-validation/database-validation-warnings.md): as tags de aviso no nível da sessão (`COULD_NOT_PERFORM_DATABASE_VALIDATION`, `DATABASE_VALIDATION_PARTIAL_MATCH`, `DATABASE_VALIDATION_NO_MATCH`) e como configurar as ações de revisão/recusa da sua aplicação.
* [Relatório da Validação de banco de dados](https://docs.didit.me/pt-br/core-technology/database-validation/database-validation-report.md): a estrutura completa da resposta e onde `outcome_code` / `outcome_detail` aparecem.
* [Países compatíveis com a Validação de banco de dados](https://docs.didit.me/pt-br/core-technology/database-validation/database-validation-supported-countries.md): a lista completa de países e métodos de correspondência.


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