---
title: Obtener Documentos Reutilizables
description: Verifica si un usuario ya tiene un documento reutilizable registrado antes de iniciar un nuevo flujo de captura.
canonical: https://developer.unico.io/es/developers/api-reference/get-document
locale: es
generated_by: markdown-export
---

- [/es/](/es/)
- Referencia de API
- Obtener Documentos Reutilizables

**En esta página# Obtener Documentos Reutilizables

Usa este endpoint para verificar si un usuario ya tiene un documento disponible para reutilizar antes de iniciar un nuevo flujo de captura de Document. Si se encuentra un documento, su `documentId` puede pasarse directamente a `POST /processes/v1` (tipo Document) para omitir el paso de captura.
### Endpoint​

EntornoURL**Producción**`GET https://api.idcloud.unico.app/documents/v1`**Sandbox**`GET https://api.idcloud.uat.unico.app/documents/v1`
### Solicitud​

Headers
HeaderValor`Authorization``Bearer <access_token>` (ver [Autenticación](/es/developers/start/authentication))`APIKEY`API key provisionada con Captura de Documentos y Reutilización habilitada.
Parámetros de consulta
ParámetroTipoObligatorioDescripción`code`stringsíIdentificador del usuario (CPF o CURP, sin formato).`type`stringsíTipo de documento a consultar. Valores aceptados: `BR_RG`, `BR_CNH`, `BR_CIN`, `BR_PASSPORT`.
notaLos valores de `type` anteriores son específicos de este endpoint. No los confundas con:
`subject.duiType` en solicitudes POST — usa el prefijo `DUI_TYPE_*` e identifica a la persona, no el tipo de documento (ej.: `DUI_TYPE_BR_CPF`).
`documentType` en la respuesta — usa la ruta completa del registro (ej.: `unico.moja.dictionary.br.cnh.v2.Cnh`).

### Ejemplo​

cURLNode.js```
curl -X GET "https://api.idcloud.unico.app/documents/v1?code=12345678909&type=BR_CNH" \  -H "Authorization: Bearer $TOKEN" \  -H "APIKEY: $API_KEY"
```

```
import fetch from 'node-fetch';const params = new URLSearchParams({ code: '12345678909', type: 'BR_CNH' });const res = await fetch(  `https://api.idcloud.unico.app/documents/v1?${params}`,  {    headers: {      Authorization: `Bearer ${accessToken}`,      APIKEY: apiKey    }  });const data = await res.json();// data.items[0].documentId → pass to POST /processes/v1 for reuse
```

### Respuestas​

200 OK
```
{  "items": [    {      "documentType": "unico.moja.dictionary.br.cnh.v2.Cnh",      "documentId": "doc-abc-123"    }  ]}
```

CampoTipoDescripción`items`arrayLista de documentos reutilizables encontrados para el usuario. Arreglo vacío si no se encontró ningún documento reutilizable para el `code` y `type` proporcionados.`items[].​documentType`stringIdentificador del tipo de documento. Valores posibles: `unico.​moja.​dictionary.​br.​rg.​v2.​Rg`, `unico.​moja.​dictionary.​br.​cnh.​v2.​Cnh`, `unico.​moja.​dictionary.​br.​cin.​v1.​Cin`, `unico.​moja.​dictionary.​br.​passaporte.​v1.​Passaporte`.`items[].documentId`stringIdentificador del documento. Pasa este valor en `document.documentId` en `POST /processes/v1` para reutilizar el documento.
### Uso del documentId para reutilización​

Una vez que tengas un `documentId`, pásalo en la solicitud del proceso de Document para omitir la captura:
```
{  "subject": {    "code": "12345678909",    "name": "Luke Skywalker"  },  "document": {    "purpose": "onboarding",    "authProcessId": "<biometric-process-id>",    "documentId": "doc-abc-123"  }}
```

CampoDescripción`document.purpose`Propósito de negocio para este proceso de documento. Valores aceptados: `creditprocess`, `carpurchase`, `paybypaycheck`, `onboarding`, `fgts`. Estos valores son específicos de la Document API y difieren del enum `purpose` del SDK biométrico.`document.​authProcessId`ID del proceso biométrico creado previamente para este usuario (a partir de `POST /processes/v1`).`document.documentId`ID del documento obtenido de la respuesta de este endpoint. Cuando se proporciona, `document.files` puede omitirse: la plataforma recupera automáticamente el documento capturado previamente.
### Códigos de Error​

400 Bad Request403 Forbidden404 Not Found429 Too Many Requests500 Internal Server ErrorCódigoMensajeDescripción`20507`O parâmetro subject.code é inválido.Valor de identificador (CPF o CURP) malformado o inexistente.`20002`O parâmetro APIKey não foi informado.Falta el header APIKEY.`20001`O parâmetro authtoken não foi informado.Falta el header del token de autenticación.Falta el token Bearer o el `APIKEY`, o están expirados o son inválidos.CódigoMensajeDescripción`30020`The provided authorization token does not have permission to perform this action.El token no tiene permiso para acceder a la selfie del documento.`30017`User does not have permission to perform this action.JWT malformado o usuario sin permiso para realizar esta operación.`10502`O token informado está expirado.Access token expirado.`10501`O token informado é inválido.Token de autenticación inválido.`10201`O AppKey informado é inválido.APIKEY ausente o inexistente.CódigoMensajeDescripción`99987`Attachment not found.No se encontró el adjunto asociado al documento.`50001`The process is not found.No se encontró ningún documento para los parámetros proporcionados.Se alcanzó el límite de tasa. Cuando su sistema recibe un error HTTP 429, debe implementar mecanismos para prevenir fallos en cascada y evitar empeorar la restricción.
**Mejores prácticas:**

**Período de enfriamiento (backoff):** Detenga o reduzca inmediatamente las solicitudes posteriores de su sistema. No reintente continuamente las solicitudes fallidas en un bucle cerrado.
**Cola y limitación (Queueing & throttling):** Almacene en búfer o ponga en cola las solicitudes salientes de su lado para controlar el flujo de tráfico antes de reenviarlas.
**Backoff exponencial con jitter:** Al reintentar, aumente el tiempo de espera exponencialmente entre intentos (por ejemplo, 1 s, 2 s, 4 s, 8 s) y agregue un pequeño retraso aleatorio ("jitter") para evitar un efecto de manada donde todas las solicitudes en cola reintentan en el mismo milisegundo exacto.

advertenciaEnviar solicitudes continuamente a un endpoint con límite de tasa sin aplicar backoff puede **prolongar el período de restricción** e impactar gravemente el rendimiento operativo de su sistema. Limitar adecuadamente las solicitudes de su lado garantiza una integración más fluida y resiliente.
Para conocer los límites predeterminados, aumentar solicitudes y obtener detalles adicionales, consulte [Límites de tasa](/es/developers/start/rate-limits).CódigoMensajeDescripción`99999`Internal failure! Try again later.Error de procesamiento del lado del servidor.Última actualización el 8 oct 2026**