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

# Autenticação

> HTTP Basic com api_key/api_secret e resolução de empresa via X-Empresa-CNPJ.

Todas as requisições usam **HTTP Basic Authentication**: a `api_key` da conta é o usuário e a `api_secret` é a senha. As mesmas credenciais valem para as APIs de NF-e e de NFS-e.

```bash theme={null}
curl https://invo.work/api/nfe/v1/notas \
  -u "$INVO_API_KEY:$INVO_API_SECRET"
```

<Warning>
  Requisições sem credenciais válidas retornam `401` com `{ "error": "HTTP Basic: Access denied." }`. Nunca exponha a `api_secret` no cliente (navegador/app) — chame a API a partir do seu backend.
</Warning>

## Selecionar a empresa

Uma conta pode operar várias empresas. O cabeçalho **`X-Empresa-CNPJ`** define qual empresa emite a nota.

| Cabeçalho                 | Comportamento                        |
| ------------------------- | ------------------------------------ |
| Presente e pareado        | Usa a empresa correspondente.        |
| Ausente                   | Usa a **primeira** empresa da conta. |
| Presente, mas não pareado | Retorna `404`.                       |

```bash theme={null}
curl https://invo.work/api/nfe/v1/notas \
  -u "$INVO_API_KEY:$INVO_API_SECRET" \
  -H "X-Empresa-CNPJ: 12345678000190"
```

## Empresa apta a emitir NF-e

Antes de emitir, a empresa precisa estar **apta**: inscrição estadual, regime tributário (do qual deriva o CRT) e um certificado digital ativo. Uma emissão para empresa inapta é barrada com `422` (`Empresa não está apta a emitir NF-e`) — sem queimar numeração.

<Note>
  Todas as respostas e corpos são `application/json` (exceto os downloads de XML e DANFE). Requisições com `Accept` não-JSON recebem `406 Not Acceptable`.
</Note>
