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

# Obtener medios de la validación KYC

> Descargar imágenes del documento, retrato, video de liveness y otros archivos de una validación KYC por sesión. Consulta el esquema del request, códigos.

## Resumen

Cuando una validación KYC por sesión termina (p. ej. **approved**), las referencias a medios aparecen dentro de **`decision`** en `GET /api/kyc/validations/:id` (imágenes del documento, retrato, video de liveness, etc.).

**Formato habitual:** cada referencia es una **clave `kyc/...`** (cadena de ruta). Para descargar los bytes usá el endpoint de medios de abajo con tu API key.

**Forma de `decision`:** los resultados aparecen como **objeto singular y array de un elemento** (p. ej. `id_verification` e `id_verifications[0]`). Gu1 los mantiene sincronizados. Ver [Eventos webhook KYC](/es/webhooks/events/kyc-events#objeto-decision-payloaddecision) para un ejemplo completo.

**Validaciones antiguas:** algunas filas siguen teniendo **URLs `https://...`** en `decision` (enlaces temporales del flujo de verificación). Usá esas URLs directamente (por ejemplo en un `<img>` o un fetch) **mientras sigan vigentes**. **No** van en `GET .../media?key=` — ese parámetro es solo para claves `kyc/...`.

Esta guía es para el KYC **completo** por sesión (`global_gueno_validation_kyc`). Face Match e ID Verification usan **otros** endpoints (barra lateral).

## Validaciones antiguas (enlaces HTTPS vs claves `kyc/...`)

* **No se borran datos:** el JSON sigue siendo válido; lo que cambia es si cada campo es una URL o una clave `kyc/...`.
* **Claves `kyc/...`:** usá [`GET /api/kyc/validations/:id/media`](#solicitud) con `key` codificada en la URL. El acceso queda acotado a tu organización y a esa validación.
* **Cadenas `https://`:** tratálas como URLs temporales de archivo hasta que expiren. La API puede reemplazarlas por claves `kyc/...` en una **sincronización posterior** con el proveedor de verificación (webhook o sync), si el enlace aún se puede descargar.
* **Si el enlace ya expiró** antes de migrar, el campo puede quedar como URL inválida hasta que una nueva sync traiga enlaces nuevos o soporte Gu1 ejecute una reparación interna de medios para tu organización.

## Solicitud

### Endpoint

```
GET https://api.gu1.ai/api/kyc/validations/{validationId}/media
```

### Headers

* **`Authorization`**: `Bearer TU_API_KEY` (obligatorio)

### Query parameters

| Parámetro | Obligatorio | Descripción                                                                                                                   |
| --------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `key`     | Sí          | La cadena de clave que viene en `decision`. **Codificá** el valor en la URL (`encodeURIComponent`; las barras pasan a `%2F`). |

### Permisos

La API key debe poder **leer KYC** (`kyc:read` si la clave usa permisos granulares; si no, se aplica el rol del usuario dueño de la clave, con compatibilidad heredada donde corresponda—igual que `GET /api/kyc/validations/:id`).

### Respuesta

Cuerpo del archivo en bruto. El **`Content-Type`** corresponde al tipo de recurso (p. ej. `image/jpeg`, `video/webm`).

## Ejemplo

```bash theme={null}
curl -sS -o portrait.jpg \
  -H "Authorization: Bearer TU_API_KEY" \
  "https://api.gu1.ai/api/kyc/validations/UUID_VALIDACION/media?key=kyc%2Fglobal_gueno_validation_kyc%2F..."
```

En tu aplicación, construí la query con `encodeURIComponent(key)` para codificar cada `/` de la clave.

<Warning>
  El parámetro `key` **no** es un secreto y **no** sustituye la autenticación. Siempre enviá **`Authorization: Bearer`** válido; la API comprueba que la clave de objeto pertenezca a esa validación y a tu organización.
</Warning>

## Relacionado

* [Crear validación KYC](/es/use-cases/kyc/create-validation) — iniciar el flujo y obtener `validationId`
* [Consultar estado de la validación](/es/use-cases/kyc/check-status) — hacer polling hasta que `decision` esté completo
