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

# Cómo funciona

> Las tres piezas de la integración, y cuál guarda la API key

Una verificación tiene tres tramos. Dos son tuyos y el del medio es de la persona.

```text theme={null}
1. Tu backend       POST /v1/verifications        ← aquí va tu API key
                    recibe { id, url, ... }

2. Tu página        manda a la persona a `url`    ← al navegador solo le das la url

3. Tu backend       recibe verification.decided   ← la decisión, firmada
```

## Dónde va la API key

**En tu servidor, y en ningún otro lugar.** La llamada que crea la verificación es la única que
la usa. Si la key llega al navegador, cualquiera puede leerla y crear verificaciones a tu nombre.

Al navegador le entregas **solo la `url`**. Es de un solo propósito: sirve para esa verificación
y nada más.

## Qué guardas tú

| Campo           | Dónde vive                              | Para qué                                        |
| --------------- | --------------------------------------- | ----------------------------------------------- |
| `id`            | Tu backend                              | Unir la verificación con tu propio registro     |
| `customer_ref`  | Tu backend y tu página                  | Tu identificador de la persona. Mándalo siempre |
| `url`           | Solo el navegador, y solo mientras dura | Es a donde va la persona                        |
| `session_token` | Nada: no lo guardes ni lo registres     | Es una credencial                               |

## Entornos

Eliges el host por entorno, el mismo par que usa el scoring. No hay un path
`/verifications/sandbox`: para identidad cambias de host, no de ruta.

Detalle: [Entornos](/entornos). Resumen:

| Cuándo                   | URL base de la API                    |
| ------------------------ | ------------------------------------- |
| Pre-official-integration | `https://sandbox-api.fraudeg.com/api` |
| Producción               | `https://api.fraudeg.com/api`         |

Una key de un entorno no sirve en el otro, y las verificaciones no se cruzan entre ellos.
La web (`sandbox.fraudeg.com` / `fraudeg.com`) es el dashboard, no la API.

## Las dos formas de presentar el flujo

| Forma       | Cómo se ve                                                                                  | Cuándo                                                |
| ----------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| Redirección | La persona sale de tu página, se verifica y vuelve a la URL que indicaste en `callback_url` | Funciona hoy, sin dependencias                        |
| Integrado   | La verificación se abre dentro de tu propia página, sin que la persona la abandone          | Con nuestro SDK web, que documentaremos al publicarlo |

Ambas usan exactamente la misma `url` y la misma decisión por webhook. Cambiar de una a otra no
toca tu backend.

## Lo que nunca decide el navegador

Cuando la persona termina, tu página sabe que **terminó**, no que fue aprobada. La diferencia
importa: quien cierra la ventana también "termina". La decisión llega por webhook a tu backend,
y es la única fuente que deberías usar para dejar pasar a alguien.

## Siguiente paso

[Tu primera verificación](/identidad/primera-verificacion): el curl contra la API de tu entorno y su respuesta.
