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

# Autenticación

> Crear una key de la organización y mandarla en cada pedido.

Cada pedido se autentica con una **API key de tu organización**, en el header `Authorization`:

```bash theme={null}
curl https://api.nomenclator.com.ar/v1/balance \
  -H "Authorization: Bearer $NOMENCLATOR_API_KEY"
```

<Warning>
  Nunca mandes la key en la query string ni la pongas en código que corra en el navegador. Guardala como secreto del servidor.
</Warning>

## Crear una key

Las keys las crean el owner y los admins, en la app, desde **Ajustes → API**.

<Steps>
  <Step title="Aceptá la cláusula de uso">
    La primera vez hay que aceptar la cláusula de uso de la API. Queda registrado quién la aceptó y cuándo.
  </Step>

  <Step title="Tocá Crear key">
    Ponele un nombre que la identifique, como «ERP» o «Sitio web», y elegí el alcance.
  </Step>

  <Step title="Copiala">
    La key completa, `nmc_live_…`, **se muestra una sola vez**. Guardala en un lugar seguro antes de cerrar.
  </Step>
</Steps>

Una organización puede tener hasta **10 keys activas**, cada una con un nombre distinto.

## Alcances

| Alcance    | Qué permite                                                                                                             |
| ---------- | ----------------------------------------------------------------------------------------------------------------------- |
| `read`     | Solo lecturas: consultar y listar clasificaciones, descargar el PDF, aranceles, aperturas SIM, países, saldo y medidor. |
| `classify` | Todo lo de `read`, más crear clasificaciones, responder preguntas y subir fichas técnicas.                              |

Una key `read` que intenta clasificar recibe `403` con el tipo `insufficient-scope`.

## Revocar una key

En **Ajustes → API**, tocá **Revocar**. Las integraciones que la usan dejan de funcionar **en menos de un minuto**, y no se puede deshacer.

En la misma pantalla ves, por cada key, quién la creó, cuándo y su último uso.

## Errores de autenticación

| Status | `type`                      | Cuándo                                                             |
| ------ | --------------------------- | ------------------------------------------------------------------ |
| `401`  | `unauthenticated`           | Falta el header, la key no existe o fue revocada.                  |
| `403`  | `insufficient-scope`        | La key es `read` y el pedido necesita `classify`.                  |
| `403`  | `plan-without-api`          | El plan de la organización no incluye la API.                      |
| `403`  | `api-suspended`             | El acceso por API de la organización está suspendido.              |
| `403`  | `subscription-inactive`     | La suscripción de la organización no está activa.                  |
| `403`  | `organization-archived`     | La organización está archivada.                                    |
| `403`  | `terms-acceptance-required` | Hay Términos nuevos sin aceptar. Un admin los acepta desde la app. |

El catálogo completo está en [errores](/api/errores).
