# Llaves y entornos

> Cada llave es de una sola empresa y un solo ambiente: pruebas contra la habilitación de la DIAN (tvl_test_) o producción (tvl_live_), con permisos e IP permitidas.

Fuente: https://platform.trevol.si/docs/llaves

> **Cada llave es de una sola empresa y un solo ambiente:** La empresa sale de la llave, nunca del pedido. Si tienes varias empresas, cada una tiene sus llaves, y una llave nunca puede emitir ni consultar documentos de otra.

## Dos entornos

| Prefijo      | Entorno                    | Qué hace                                                                                                            |
| ------------ | -------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `tvl_test_…` | **Pruebas** (habilitación) | Emite contra la habilitación real de la DIAN. Sin validez legal y sin costo.                                        |
| `tvl_live_…` | **Producción**             | Emite con la resolución de numeración de la empresa. Cada documento validado se descuenta del [saldo](/docs/saldo). |

El entorno se deduce del prefijo de la llave: no hay un parámetro `environment` en el pedido. Los documentos y los webhooks de un entorno no se ven desde el otro.

## Cómo se manda

La llave va en la cabecera `Authorization`:

```http
Authorization: Bearer tvl_test_…
```

Sin la cabecera la API responde [`authentication_required`](/docs/errores#authentication_required); con una llave que no existe o fue revocada, [`invalid_api_key`](/docs/errores#invalid_api_key).

## Permisos e IP

- **Permisos:** «Emitir y consultar» o «Solo consultar». Con una llave de solo lectura, cualquier `POST`, `PUT`, `PATCH` o `DELETE` es [`permission_denied`](/docs/errores#permission_denied).
- **IP permitidas** (opcional): hasta 10 direcciones o redes; la llave solo sirve desde ellas.
- Solo el **titular** de la cuenta crea o revoca llaves, y cada vez le avisamos por correo. Revocar es inmediato. Hay un tope de 10 llaves activas por empresa, sumando Pruebas y Producción.

## Cuídala

- Guarda la llave como un secreto **en tu servidor**: nunca en una página web ni en una app de celular. Si tu aplicación corre en el navegador, llama a tu propio servidor y que él llame a Trevol ([Backend intermediario](/docs/backend-intermediario)).
- Trevol solo guarda su huella (SHA-256): el token completo se muestra una sola vez, al crearla. Si lo pierdes, crea otra y revoca la anterior.
- No la subas a un repositorio. Usa variables de entorno (`TREVOL_API_KEY`) o el gestor de secretos de tu plataforma.
