---
title: "Validação de Senha - Verifica se uma senha é comum ou foi exposta em vazamentos de dados"
method: POST
path: "/exato/password-validation"
tags: ["Exato - Utils"]
---

# Validação de Senha - Verifica se uma senha é comum ou foi exposta em vazamentos de dados

`POST /exato/password-validation`

Validação de Senha - Verifica se uma senha é comum ou foi exposta em vazamentos de dados

## Query parameters

- `test_mode` boolean
- `lightweight` boolean

## Response `200`

Success

- ExatoPasswordValidationResponse — ExatoPasswordValidationResponse
  - `ApiResultType` 'Success' | 'SuccessWithRemarks' | 'InvalidInput' | 'DataUnavailable' | 'NotFound' | 'InvalidParameters' | 'UnsupportedCombination' | 'RemoteUnavailable' | 'Timeout' | 'RetryLimitReached' | 'RemoteError' | 'InProgress' | 'InsufficientCredits' | 'ConcurrentLimitReached' | 'TransactionUnavailable' | 'AccessDenied' | 'TransactionCancelled' | 'Created' | 'Updated' | 'Deleted' | 'InternalError' | 'ValidationFailed' | 'Conflict' | 'ResourceLocked' | 'PendingApproval' | 'Approved' | 'Rejected' | 'Cancelled' | 'Paused' | 'Resumed' — Novo tipo de resultado unificado para queries e operações administrativas. Substitui TransactionResultType com melhor semântica.
  - `BalanceInBrl` number, double — Saldo atual em BRL.
  - `BalanceInCredits` integer — Saldo atual em créditos.
  - `DataSourceCategory` string — Categoria da fonte de dados
  - `Date` string, date-time — Data da transação.
  - `ElapsedTimeInMilliseconds` integer — Tempo de execução (em milisegundos).
  - `HasPdf` boolean — Indica que existe PDF de comprovante do resultado.
  - `Message` string — Mensagem.
  - `OriginalFilesUrl` string — Url para download dos arquivos originais da transação (quando disponíveis).
  - `OutdatedResult` boolean — Indica que o resultado é datado.
  - `PdfUrl` string — Url para download do arquivo de comprovante em PDF da transação (quando disponível).
  - `ResultSubtype` string — Subtipo específico do resultado para fornecer contexto adicional (ex: 'duplicate_name', 'invalid_cpf').
  - `ResultTypeCode` integer — Código numérico do resultado (compatível com TransactionResultTypeCode mas extensível).
  - `TotalCost` number, double — Internal use only.
  - `TotalCostInCredits` integer — Custo total da transação em créditos.
  - `TransactionResultType` 'Success' | 'SuccessWithRemarks' | 'InvalidInputData' | 'UnavailableData' | 'EntityNotFound' | 'InvalidParameters' | 'ParametersNotSupported' | 'RemoteSystemUnavailable' | 'Timeout' | 'AttemptsLimitReached' | 'RemoteSystemError' | 'AsyncExecutionInProgress' | 'AwaitingExecution' | 'BirthDateRequired' | 'InsufficientBalance' | 'SimultaneousTransactionsLimitReached' | 'TransactionUnavailable' | 'AccessDenied' | 'TransactionCancelled' | 'InternalError' — <table class="transaction"><thead><tr><th>TransactionResultType Code</th><th>TransactionResultType</th><th>Definitivo</th><th>Faturavel</th><th>Erro</th></tr></thead><tbody><tr><td>1</td><td>Sucesso</td><td>Verdadeiro</td><td>Verdadeiro</td><td>Falso</td></tr><tr><td>2</td><td>Sucesso parcial ou com observações</td><td>Verdadeiro</td><td>Verdadeiro</td><td>Falso</td></tr><tr><td>3</td><td>Entrada ou documento inválido</td><td>Verdadeiro</td><td>Falso</td><td>Verdadeiro</td></tr><tr><td>4</td><td>Dados não disponíveis</td><td>Verdadeiro (no dia)</td><td>Falso</td><td>Falso</td></tr><tr><td>5</td><td>Entidade ou documento inexistente/não encontrado</td><td>Verdadeiro</td><td>Verdadeiro</td><td>Falso</td></tr><tr><td>6</td><td>Parâmetros de entrada inválidos</td><td>Verdadeiro</td><td>Falso</td><td>Verdadeiro</td></tr><tr><td>7</td><td>Combinação de parâmetros não suportados</td><td>Verdadeiro</td><td>Falso</td><td>Verdadeiro</td></tr><tr><td>8</td><td>Fonte de dados ou sistema remoto indisponível</td><td>Falso</td><td>Falso</td><td>Verdadeiro</td></tr><tr><td>9</td><td>Limite de tempo esgotado</td><td>Falso</td><td>Falso</td><td>Verdadeiro</td></tr><tr><td>10</td><td>Limite de tentativas atingido</td><td>Falso</td><td>Falso</td><td>Verdadeiro</td></tr><tr><td>11</td><td>Erro na fonte de dados ou sistema remoto</td><td>Falso</td><td>Falso</td><td>Verdadeiro</td></tr><tr><td>12</td><td>Transação em execução</td><td>Falso</td><td>Falso</td><td>Falso</td></tr><tr><td>101</td><td>Saldo em créditos insuficiente, entre em contato</td><td>Falso</td><td>Falso</td><td>Verdadeiro</td></tr><tr><td>102</td><td>Limite de transações simultâneas atingido, entre em contato</td><td>Falso</td><td>Falso</td><td>Verdadeiro</td></tr><tr><td>103</td><td>Transação não disponível, entre em contato</td><td>Falso</td><td>Falso</td><td>Verdadeiro</td></tr><tr><td>104</td><td>Credenciais inválidas ou acesso negado, entre em contato</td><td>Falso</td><td>Falso</td><td>Verdadeiro</td></tr><tr><td>105</td><td>Transação cancelada, entre em contato</td><td>Falso</td><td>Falso</td><td>Verdadeiro</td></tr><tr><td>255*</td><td>Erro interno não esperado, entre em contato</td><td>Verdadeiro (no dia)</td><td>Falso</td><td>Verdadeiro</td></tr><tr><td>* Consulta em manutenção, tente refazer mais tarde ou entre em contato com a Direct Digital para notificação do problema</td></tr></tbody></table>
  - `TransactionResultTypeCode` integer — Código do tipo de resultado da transação.
  - `UniqueIdentifier` string — Identificador único da transação. Recomendado armazenar para controle e depuração.
  - `Result` ExatoPasswordValidationResult — ExatoPasswordValidationResult
    - `Occurrences` PasswordValidationOccurrence[] — Lista de ocorrências encontradas nas bases de senhas comuns e vazadas
      - `HashSuffix` string — Sufixo do hash SHA1 (35 chars). Para verificar, concatene o prefixo (5 chars) + sufixo e compare com SHA1 da senha
      - `Common` boolean — true se a senha é comum/fraca (ex: 123456, password, admin). Senhas comuns são facilmente adivinhadas
      - `Exposed` boolean — true se a senha foi encontrada em vazamentos de dados (data breaches). Não use senhas vazadas
      - `ExposedCount` integer — Quantidade de vezes que a senha apareceu em vazamentos. Ex: '123456' aparece milhões de vezes
    - `OccurrencesTotal` integer — Total de ocorrências encontradas. Se > 0, a senha é comum ou foi vazada
    - `PlainTextPasswordHasNonASCII` string — Indica se a senha contém caracteres não-ASCII (apenas quando password_plain_text é informado)
    - `PlainTextPasswordHasNonPrintable` string — Indica se a senha contém caracteres não imprimíveis (apenas quando password_plain_text é informado)
    - `PlainTextPasswordStrength` string — Força da senha: Blank(0), VeryWeak(1), Weak(2), Medium(3), Strong(4), VeryStrong(5)
    - `PlainTextPasswordStrengthId` integer — ID numérico da força da senha (0=Blank, 1=VeryWeak, 2=Weak, 3=Medium, 4=Strong, 5=VeryStrong)
    - `PlainTextPasswordStrengthCode` string — Código da força da senha em uppercase (ex: STRONG, VERYWEAK)
    - `PlainTextPasswordStrengthDescription` string — Descrição detalhada da força da senha com critérios atendidos

## Other responses

- `0` — Retorno com lista de ocorrências encontradas e análise de força da senha

---

[API](https://skmtc.dev/directdigital/apis/backend-apis.md) · [All operations](https://skmtc.dev/directdigital/apis/backend-apis/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/directdigital/backend-apis/revisions/a3305895eccd/schema)
