# Certificado Digital (A1 ICP-Brasil)

Para assinar documentos fiscais (NF-e, NFC-e, CT-e, MDF-e, NFS-e), a Brasil NFe usa **certificado digital ICP-Brasil** vinculado à empresa emitente. O certificado é quem garante autenticidade e integridade das notas perante a SEFAZ.

Há **duas formas** de assinar:

- **Certificado A1 no servidor** — você envia o arquivo `.pfx`/`.p12` e a Brasil NFe assina e transmite automaticamente, inclusive em tarefas em segundo plano.
- **Brasil NFe Agente** — um aplicativo que assina na sua própria máquina; a chave privada nunca sai do seu computador. Suporta **A1 e A3** (token/cartão USB).

## Certificado A1 (.pfx / .p12) no servidor

Envie o certificado da empresa para o BrasilNFe assinar e transmitir os documentos automaticamente, inclusive nas tarefas em segundo plano (sem precisar de nenhum aplicativo aberto).

### Requisitos

- **Tipo A1** - arquivo `.pfx` ou `.p12` com chave privada exportável.
- **ICP-Brasil** - emitido por Autoridade Certificadora credenciada (Serasa, Certisign, Valid, etc.).
- **CN (Common Name)** - deve conter o **CNPJ da empresa**.
- **Validade** - normalmente 1 ano. Fique atento ao vencimento.

> **A1 instalado no Windows não serve.** O certificado na loja de certificados do sistema não pode ser exportado pela API - é preciso o arquivo `.pfx`/`.p12` original. Para A3 (token/cartão USB), use o **Brasil NFe Agente** (abaixo).

### Como protegemos seu certificado

Ao carregar o certificado, ele **nunca fica em texto puro no servidor**:

- O arquivo (`.pfx`/`.p12`) é **cifrado em repouso com AES-256** antes de ser gravado em disco, com verificação de integridade (HMAC) e vetor de inicialização aleatório por arquivo.
- A **senha do certificado** também é armazenada cifrada.
- O conteúdo só é **decifrado em memória** no instante de assinar/transmitir um documento, e descartado em seguida.
- **Download e exibição de senha** exigem confirmação com seu **código 2FA** e ficam registrados em log de auditoria.

Se preferir não enviar o certificado ao servidor, use o **Brasil NFe Agente**.

### Configuração

Ao cadastrar a empresa (`/AdicionarEmpresa`) ou alterar o certificado (`/AlterarCertificado`), envie o arquivo em **base64** junto com a senha:

```json
{
  "ArquivoCertificado": "MIIJ...base64...",
  "Senha": "senhaDoCertificado"
}
```

Use `/VerificarCertificado` para checar a validade atual.

## Brasil NFe Agente (A1 e A3 na sua máquina)

Prefere não enviar o certificado ao servidor? O **Brasil NFe Agente** é um aplicativo de computador (**Windows, Linux e macOS**) que assina os documentos na sua própria máquina. A **chave privada do certificado nunca sai do seu computador** e não é enviada ao nosso servidor.

- Funciona com certificado **A1** (arquivo `.pfx`) e com **A3** (token/cartão USB).
- O servidor monta o documento e envia ao Agente; o Agente **assina e transmite à SEFAZ localmente** e devolve o retorno.
- Roda em **segundo plano** (inicia com o sistema e fica na bandeja). Enquanto estiver aberto e conectado, a emissão funciona normalmente, inclusive pelo navegador e pela API.

### Como usar

1. **Baixe e instale** o aplicativo: [Baixar Brasil NFe Agente](https://api.brasilnfe.com.br/Home/BaixarAgente).
2. Gere o **código de pareamento** no painel da empresa (Assinatura remota via Brasil NFe Agente).
3. Informe o código no aplicativo instalado na máquina que tem o certificado.

Pronto - esta empresa passa a assinar **sem certificado no servidor**.

## O que quebra com certificado vencido

- Transmissão de qualquer documento (retorna erro de assinatura antes mesmo de chegar à SEFAZ).
- Eventos (carta de correção, cancelamento, manifestação).
- Consultas que exigem assinatura (menos comum).

## Ver também

- [Contingência](/conceitos-fiscais/contingencia)
