# Limites e features

> **In English.** What an account can do comes from the plan's features; each operation declares the
> features it needs and answers `403` without them. Plans also carry quotas (documents per period,
> SMS and WhatsApp messages) that answer `400` when exhausted. This guide lists the features, the
> operations behind each one, the quotas, the size and time limits, and the caches. Text in
> Brazilian Portuguese.

## Features do plano

Features são as capacidades do plano do grupo de faturamento da conta. `partners_v1_features_list`
devolve as da conta, com `id` e descrição. Cada operação da referência declara as suas na descrição
e na extensão `x-required-features` do OpenAPI; sem alguma delas, a resposta é `403` com corpo
vazio. Operações sem feature exigem só a chave válida e a conta vinculada.

| Feature | O que libera |
|---|---|
| `documents` | Tudo sobre documentos: listagens, downloads, informações, campos de formulário, mapeamento de assinaturas, pasta, exclusão e solicitação de assinaturas em documento existente. |
| `documents_signatures` | Criar documento para assinatura a partir de arquivo, consultar a situação, adicionar, editar, remover e reenviar signatários, cancelar assinaturas e alterar métodos adicionais de autenticação. Sempre junto de `documents`. |
| `integrations` | Webhooks (listar, cadastrar, remover) e contatos (junto de `contacts`). |
| `contacts` | Contatos pessoa e empresa: consultar, criar ou atualizar e remover. Junto de `integrations`. |
| `categories` | Categorias: listar, criar, consultar, atualizar, remover e ativar ou desativar. |
| `custom_models`, `default_models` | Modelos de formulário: listar modelos, criar formulários e consultar os campos de formulário de um documento. Modelos próprios da conta e modelos padrão, respectivamente; as operações pedem as duas. |
| `folder_writer` | Criar pastas. Listar pastas não exige feature. |
| `groups` | Listar grupos da conta. |
| `document_informations` | Listar os campos de informação da conta. |
| `only_signature` | Adicionar usuários com `onlyForSignature` verdadeiro (perfil `User`). |

Sem feature: listar contas, features e planos, trocar o logotipo, listar papéis de signatário,
listar pastas e adicionar, listar e alterar a situação de usuários.

Além das features, o plano habilita **recursos** que aparecem só quando usados: envio por SMS e
WhatsApp, biometria facial nos métodos adicionais de autenticação e campos de informação no
documento. Pedir um recurso que o plano não tem responde `400`, com a mensagem em `errors`.

## Cotas

- **Documentos.** Criar um documento para assinatura (`partners_v1_document_signatures_create_from_file`)
  ou a partir de formulário (`partners_v1_forms_create`) consome um documento da cota do plano. Cota
  esgotada responde `400`.
- **SMS e WhatsApp.** Enviar o link ou o código por esses canais consome a cota do canal. Esgotada,
  a operação responde `400`.
- **Lembretes.** `reminderFrequency` envia lembretes automáticos por e-mail, até 3 por signatário.

As cotas não são consultáveis pela API; acompanhe pelo aplicativo.

## Tamanhos, formatos e prazos

| Limite | Valor |
|---|---|
| Corpo da requisição | Até 70 MB. Como os arquivos vão em base64 (cerca de 33% maiores que o binário), isso acomoda arquivos de até aproximadamente 50 MB. |
| Formatos de documento | PDF, DOC e DOCX. DOC e DOCX são convertidos para PDF. PDF com senha ou com edição bloqueada é recusado. |
| Logotipo da conta | PNG, JPG ou JPEG, em base64. |
| URL de download | Válida por 5 minutos; cada chamada gera uma URL nova. |
| Webhook | Resposta 2xx em até 20 segundos; até 5 tentativas em caso de falha. |
| Requisições por chave | Sem limite hoje. Prefira webhooks a consultas repetidas; se um limite for criado, ele será anunciado no [changelog](https://api.letssign.com.br/docs/guides/changelog). |

Áreas de assinatura (`signatureAreas`) precisam apontar para páginas que existem no arquivo; página
inexistente responde `400`.

## Caches

| Listagem | Cache |
|---|---|
| Pastas (`partners_v1_folders_list`) | Até 3 horas. Criar uma pasta pela API invalida o cache da conta. |
| Grupos (`partners_v1_groups_list`) | Até 3 horas. |
| Modelos de formulário (`partners_v1_form_templates_list`) | Até 3 horas. |
| Papéis de signatário (`partners_v1_document_signature_roles_list`) | Até 1 hora. |

Alterações feitas no aplicativo podem demorar esse tempo para aparecer nessas listagens.

## Situação da conta

- **Período de teste** (`isTrial`): ao expirar, as rotas da conta respondem `401` com o motivo em
  `detail`.
- **Grupo de faturamento sem plano ativo**: `401` com o motivo em `detail`.
- **Conta inativa ou desvinculada**: sai de `partners_v1_accounts_list` e responde `401`.

Veja [Autenticação e contas](https://api.letssign.com.br/docs/guides/autenticacao-e-contas) e [Erros](https://api.letssign.com.br/docs/guides/erros).
