# Obtén tu clave de API (https://dev.cosmospay.lat/docs/es/api-keys/)

> Inicia sesión en la plataforma de desarrolladores de Cosmos Pay, elige un entorno y genera una clave de API con los alcances que tu integración necesita.

Cada solicitud a Cosmos Pay se autentica con una **clave de API**. Creas y administras las claves
en el panel de desarrolladores. Una clave lleva dos cosas que importan: el **entorno** al que
pertenece (que elige testnet o mainnet, en todas las redes) y los **alcances** que tiene permitido usar.

## Crear una clave

1. **Inicia sesión** en la plataforma de desarrolladores en [dev.cosmospay.lat](https://dev.cosmospay.lat) y abre el **Panel**.
2. **Elige el entorno** con el interruptor **Test / Production** del panel:
   - **Test** emite claves `dv_…` que corren en **testnet**; úsalas mientras desarrollas.
   - **Production** emite claves `prod_…` que corren en **mainnet**; úsalas para salir a producción.
3. Ve a **API Keys → Create**.
4. Dale a la clave un **nombre** (y una descripción opcional) para que puedas reconocerla más tarde.
5. Elige un **rol**:
   - **User**: con alcances. Elige exactamente los permisos que necesita en la matriz (por recurso: **read** o **write**, o ambos, para pagos, webhooks, productos, clientes y analíticas).
   - **Admin**: acceso completo; omite la matriz de alcances. Úsalo con moderación.
6. **Crea** la clave y luego **cópiala de inmediato**.

> **Se muestra solo una vez**
>
> La clave completa se muestra **una vez**, al crearla (y de nuevo solo si la rotas). Guárdala en
> un gestor de secretos o en las variables de entorno de tu servidor de inmediato, porque no podrás volver a verla.

## Usar la clave

Mantén la clave en tu **servidor** y pásala al SDK (o envíala como token Bearer a la
API REST):

```ts
import { Client } from '@cosmosapp/pay_sdk';

// Reads e.g. COSMOS_PAY_API_KEY from your server environment; never hard-code it.
const client = new Client({ apiKey: process.env.COSMOS_PAY_API_KEY });
```

```http
Authorization: Bearer dv_xxxxxxxxxxxxxxxxxxxxxxxx
```

> **Privilegio mínimo**
>
> Dale a cada clave solo los alcances que necesita. Un servidor que solo crea pagos puede usar una clave con
> `payments:write` y `payments:read` y nada más. Así, una clave filtrada no puede hacer más que su trabajo.

## Buenas prácticas

- **Una clave por entorno / servicio.** No reutilices una clave `prod_` en test, y rota las claves por servicio para que puedas revocar una sin afectar al resto.
- **Nunca envíes una clave al navegador.** El [cliente web](https://dev.cosmospay.lat/docs/sdk/web/web-client/) firma transacciones con la billetera del usuario y no necesita tu clave.
- **Rota ante una exposición.** Si una clave se filtra, rótala en el panel: el valor antiguo deja de funcionar de inmediato.

## Próximos pasos

- [Inicio rápido](https://dev.cosmospay.lat/docs/sdk/server/quickstart/): Crea tu primera intención de pago con la clave que acabas de generar.
- [Autenticación](https://dev.cosmospay.lat/docs/sdk/server/authentication/): Cómo la clave selecciona la red y cómo mantenerla segura.
