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

# Autenticación

> Cómo autenticar llamadas a la API

## API Keys

Para integración backend-to-backend, usa API keys. Se generan desde el dashboard en **Settings → API Keys** o vía API.

Genera tu primera API key desde el dashboard en **Settings → API Keys**. También puedes crearlas vía API si ya tienes una key:

```bash theme={null}
curl -X POST https://api.example.com/api/v1/api-keys \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"name": "produccion-backend"}'
```

Respuesta:

```json theme={null}
{
  "id": "uuid",
  "name": "produccion-backend",
  "keyPrefix": "sk_live_abc1",
  "keyHint": "xy9z",
  "rawKey": "sk_live_abc123...fullkey",
  "createdAt": "2024-01-15T10:00:00Z"
}
```

<Warning>
  `rawKey` se muestra **una sola vez**. Guárdalo en un vault o variable de entorno segura.
</Warning>

## Usar la API key

Pasa la key en el header `Authorization`:

```bash theme={null}
curl https://api.example.com/api/v1/tenants \
  -H "Authorization: Bearer sk_live_abc123...fullkey"
```

El sistema detecta automáticamente que es una API key por el prefijo `sk_`.

## Revocar una key

```bash theme={null}
curl -X DELETE https://api.example.com/api/v1/api-keys/{keyId} \
  -H "Authorization: Bearer sk_live_..."
```

La key deja de funcionar inmediatamente. No se puede deshacer.

## Seguridad

* Las keys se hashean con SHA-256 antes de almacenarse. Nunca guardamos el texto plano.
* Cada key está asociada a una cuenta (`accountId`). Solo puede operar sobre los tenants de esa cuenta.
* Usa keys distintas por entorno (producción, staging, CI/CD) para poder revocar granularmente.
