> ## 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.

# Validación en bases de datos: advertencias y omisiones

> Advertencias de Didit en validación de bases de datos: COULD_NOT_PERFORM_DATABASE_VALIDATION, coincidencia parcial o nula y registro caído.

La función de [Validación de base de datos](https://docs.didit.me/es/core-technology/database-validation/overview.md) de Didit verifica los datos de identidad con registros civiles oficiales, como RENAPER (Argentina), Receita Federal (Brasil), Tribunal Electoral (Panamá, biométrico), Junta Central Electoral (República Dominicana) y otros, y se factura por consulta exitosa, sin mínimos mensuales.

Cuando no se puede ejecutar ningún servicio (faltan campos obligatorios o tienen un formato incorrecto, o el registro no está disponible), cuando el propio documento no se puede comprobar (no contiene el identificador que necesitan los servicios configurados, por ejemplo, un pasaporte sin número de documento nacional de identidad) o cuando el resultado agregado no es concluyente (coincidencia parcial o sin coincidencia), la función emite una **advertencia** en la sesión. Si el estado emisor no está habilitado en absoluto en el flujo de verificación (workflow), el paso se omite de forma silenciosa, sin advertencia ni cargo. Esta página documenta cada código de advertencia, qué lo activa y cómo configurar la respuesta del flujo.

## Descripción general

Las advertencias se generan tanto en las sesiones de un flujo como en la API independiente (`POST /v3/database-validation/`). Los cinco riesgos se etiquetan con la función `DATABASE_VALIDATION`, aparecen en el informe en `database_validations[].warnings[]` y siguen la estructura estándar del [objeto de advertencia](https://docs.didit.me/es/reference/data-models.md#objeto-de-advertencia) (`feature`, `risk`, `additional_data`, `log_type`, `short_description`, `long_description`, `node_id`).

La Validación de base de datos no tiene disparadores de rechazo automático fijos. Los dos riesgos de resultado de coincidencia, el riesgo de documento reemplazado y el riesgo de no aplicabilidad se asocian a una **acción configurable** (`DECLINE`, `REVIEW` o `NO_ACTION`); `COULD_NOT_PERFORM_DATABASE_VALIDATION` es el único comportamiento fijo: siempre envía la función a **In Review**.

## Riesgos configurables

| Configuración | Código de riesgo | Comportamiento |
| - | - | - |
| No Match Action | `DATABASE_VALIDATION_NO_MATCH` | `REVIEW` (valor predeterminado del flujo) pone la función en **In Review**; `DECLINE` la rechaza; `NO_ACTION` registra la advertencia sin afectar al estado. En la API independiente, el parámetro `no_match_action` tiene `DECLINE` como valor predeterminado. |
| Partial Match Action | `DATABASE_VALIDATION_PARTIAL_MATCH` | `NO_ACTION` (predeterminado) registra la advertencia sin afectar al estado; `REVIEW` pone la función en **En Revisión**; `DECLINE` la rechaza. |
| No Match Action | `DATABASE_VALIDATION_DOCUMENT_SUPERSEDED` | Comparte la configuración **No Match Action**: no hay un ajuste independiente. El registro contradijo lo que se envió, así que una organización que rechaza cuando no hay coincidencia también rechaza una credencial desactualizada. |
| Not Applicable Action | `DATABASE_VALIDATION_NOT_APPLICABLE` | `NO_ACTION` (predeterminado) registra la advertencia sin afectar al estado; `REVIEW` pone la función en **In Review**; `DECLINE` la rechaza. Se activa cuando el documento no se puede comprobar en absoluto: no contiene el identificador por el que consultan los servicios configurados (por ejemplo, un pasaporte sin número de documento nacional de identidad). |

La acción configurada también determina el `log_type` de la advertencia: `DECLINE` → `error`, `REVIEW` → `warning`, `NO_ACTION` → `information`.

El resultado de coincidencia se obtiene agregando las entradas `validation` de cada servicio (cualquier coincidencia completa → `full_match`; si no, cualquier coincidencia parcial → `partial_match`; si no, `no_match`). Consulta [Métodos de coincidencia](https://docs.didit.me/es/core-technology/database-validation/database-validation-matching-methods.md) para ver la lógica de decisión completa con la que se obtienen los resultados 1×1 / 2×2.

## Advertencias generadas

| Etiqueta | Descripción breve | Descripción |
| - | - | - |
| `COULD_NOT_PERFORM_DATABASE_VALIDATION` | No se pudo realizar la validación de base de datos | Ningún servicio devolvió un resultado utilizable (`match_type` sigue siendo `null`), normalmente porque faltan campos obligatorios o tienen un formato incorrecto, o porque el registro devolvió un error. `additional_data` contiene el resumen de omisiones por servicio (`reason`, `database_validation_errors`, `missing_required_fields_by_service`, `invalid_format_fields_by_service`, `field_reasons_by_service`); la API independiente usa `{ "validation_errors": [...] }` en su lugar. **No se te cobra** cuando se genera esta advertencia; la función pasa a **In Review** hasta que se corrijan los datos. |
| `DATABASE_VALIDATION_NOT_APPLICABLE` | Validación de base de datos no aplicable a este documento | El documento proporcionado no incluye el identificador que requieren los servicios de base de datos configurados (`match_type` sigue siendo `null`); por ejemplo, un pasaporte brasileño no incluye CPF, por lo que no se puede consultar el registro de CPF. Esto es lo esperado para ese tipo de documento y no indica ningún problema con el documento. `additional_data` contiene el resumen de omisiones por servicio. **No se te cobra** cuando se genera esta advertencia. Acción configurable (por defecto, `NO_ACTION`). |
| `DATABASE_VALIDATION_PARTIAL_MATCH` | Coincidencia parcial en la validación de base de datos | El `match_type` agregado es `partial_match`: algunos de los campos analizados coincidieron con el registro, pero no todos. Acción configurable (por defecto, `NO_ACTION`). |
| `DATABASE_VALIDATION_NO_MATCH` | Sin coincidencia en la validación de base de datos | El `match_type` agregado es `no_match`: el registro no pudo confirmar la identidad analizada. Acción configurable (por defecto, `REVIEW` en los flujos y `DECLINE` en la API independiente). |
| `DATABASE_VALIDATION_DOCUMENT_SUPERSEDED` | Edición del documento sustituida | Un servicio devolvió `DOCUMENT_SUPERSEDED`: el registro confirmó a la persona, pero la edición del documento presentado no es la que consta en el registro, porque desde entonces se ha emitido una edición más reciente. Se genera con independencia de `match_type`, que sigue siendo `full_match` porque todos los campos personales coincidieron, de modo que, de otro modo, este hallazgo pasaría desapercibido. `additional_data` indica los servicios que lo notificaron. Sigue la configuración de **No Match Action**. |

> [!NOTE]
>
> `COULD_NOT_PERFORM_DATABASE_VALIDATION` abarca dos situaciones distintas, y el `long_description` de la advertencia (y, en caso de fallo de un servicio concreto, `database_validation_errors[].message`) ahora indica cuál de ellas se produjo, en lugar de una única frase genérica: o bien los datos analizados faltaban o tenían un formato incorrecto antes de poder consultar ningún servicio, o bien se consultó un servicio y no devolvió un resultado utilizable. En el segundo caso, cuando el registro proporcionó su propio detalle de diagnóstico para ese intento, ese detalle se incluye en el mensaje para que no tengas que contactar con soporte para saber el motivo. El servicio de origen nunca se nombra en la respuesta.

> [!NOTE]
>
> Cuando se genera `COULD_NOT_PERFORM_DATABASE_VALIDATION` o `DATABASE_VALIDATION_NOT_APPLICABLE` en una sesión de un flujo, la comprobación se vuelve a ejecutar automáticamente en cuanto se completan los datos que faltan en la página de detalle de la sesión en la Console: al guardar el campo se vuelve a ejecutar la validación y, si tiene éxito, se elimina la advertencia. Esto también funciona cuando la acción de no aplicable rechazó la sesión, de modo que una sesión rechazada puede subsanarse corrigiendo los datos. En el caso de `DATABASE_VALIDATION_NOT_APPLICABLE`, la nueva ejecución sirve cuando el documento puede incluir el identificador pero no se leyó (por ejemplo, una tarjeta de residencia cuyo número de identificación nacional no se extrajo); los tipos de documento que nunca incluyen el identificador (por ejemplo, pasaportes sin número de identificación nacional) conservan la advertencia. **No se aplica ningún cargo** por los servicios omitidos; solo pagas cuando un servicio devuelve un resultado facturable.

## Ejemplo

```json theme={null}
{
  "warnings": [
    {
      "feature": "DATABASE_VALIDATION",
      "risk": "DATABASE_VALIDATION_NO_MATCH",
      "additional_data": null,
      "log_type": "warning",
      "short_description": "Database validation no match",
      "long_description": "The system identified a no match in the database validation, requiring further investigation.",
      "node_id": "feature_db_validation_1"
    }
  ]
}
```

## Tipos de advertencia

A cada riesgo se le asigna una gravedad según la configuración de tu aplicación. Las gravedades se dividen en tres categorías:

## Relacionado

* [Visión general de la validación de base de datos](https://docs.didit.me/es/core-technology/database-validation/overview.md): cómo funciona la función de principio a fin y qué registros se admiten.
* [Informe de validación de base de datos](https://docs.didit.me/es/core-technology/database-validation/database-validation-report.md): estructura completa de la respuesta, incluido `validations[]` por servicio.
* [Métodos de coincidencia](https://docs.didit.me/es/core-technology/database-validation/database-validation-matching-methods.md): cómo se obtienen los resultados 1×1 / 2×2 (`validation_type: one_by_one` / `two_by_two`) a partir de las coincidencias por servicio.
* [Códigos de resultado](https://docs.didit.me/es/core-technology/database-validation/database-validation-outcome-codes.md): taxonomía completa por resultado con códigos de detalle específicos de cada país.
* [Países y servicios admitidos](https://docs.didit.me/es/core-technology/database-validation/database-validation-supported-countries.md): todos los registros activos, los campos obligatorios y el precio por llamada.
* [Modelos de datos: validación de base de datos](https://docs.didit.me/es/reference/data-models.md#validación-de-base-de-datos): esquema canónico campo por campo.


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