# Limites e cotas

> 429 com Retry-After, cabeçalhos RateLimit-Policy e RateLimit, cota do dia em GET /v1/conta/uso e tamanhos máximos.

## 429: limite por minuto e cota do dia

Acima do limite, a resposta é `429` com o cabeçalho `Retry-After` (segundos) e `application/problem+json`. O `codigo` diz qual limite foi:

| `codigo` | O que é |
|---|---|
| [`limite_excedido`](/erros/limite_excedido) | Limite por minuto. Espere o `Retry-After` |
| [`cota_diaria_excedida`](/erros/cota_diaria_excedida) | Cota do dia. Volta no dia seguinte |
| [`limite_de_recusas_excedido`](/erros/limite_de_recusas_excedido) | Muitos envios recusados no dia. Corrija a causa antes de repetir |

Toda resposta das operações com limite traz os cabeçalhos `RateLimit-Policy` e `RateLimit`, no formato do rascunho atual da IETF:

```http
RateLimit-Policy: "default";q=60;w=60
RateLimit: "default";r=57;t=23
```

`q` é a cota da janela, `w` a janela em segundos, `r` o que resta e `t` os segundos até renovar. Use os cabeçalhos em vez de fixar números no seu código: as cotas dependem do plano da conta, e o sandbox tem cotas 10 vezes menores.

Em `429`, **espere o tempo de `Retry-After`** e tente de novo. Em `5xx`, repita com espera exponencial, até 5 vezes. Os exemplos do portal já fazem isso; veja a [primeira chamada](/comecar/primeira-chamada).

## Consumo do dia

`GET /v1/conta/uso` (escopo `conta:ler`) mostra o consumo do dia e do mês por cota. As cotas fixas do contrato são:

| Cota | Limite |
|---|---|
| `empresas_dia` | 50 cadastros de empresa por dia |
| `recusas_envio_dia` | 50 envios recusados por dia (só `empresa_nao_cadastrada` e `arquivo_corrompido`) |
| `reenvios_dia` | 100 reenvios de evento de webhook por dia |

## Tamanhos

| Item | Máximo |
|---|---|
| SPED (EFD ICMS/IPI e EFD Contribuições) | 400 MB (20 MB no sandbox) |
| ZIP de XML de NF-e ou CF-e | 200 MB (20 MB no sandbox) |
| XML por ZIP | 50.000 |
| ZIP descompactado | 10 vezes o ZIP e no máximo 2 GB |
| Lote de consulta de ICMS | 500 itens por chamada |
| Período de consulta de ICMS | 240 meses |

Arquivo acima do limite é recusado pelo `Content-Length`, **antes** de ser lido, com 413 [`arquivo_grande_demais`](/erros/arquivo_grande_demais). Lote acima de 500 itens: 413 [`lote_grande_demais`](/erros/lote_grande_demais).
