Estrutura organizacional
A tela Estrutura organiza a conta em dois níveis: empresas e filiais. É essa hierarquia que separa carteiras, escopa relatórios e define em nome de quem as comunicações saem.

A hierarquia
Organização (a sua conta)
└── Empresa ← pessoa jurídica, com CNPJ (a "matriz")
└── Filial ← unidade de negócio dentro da empresa
- Empresa: nome e CNPJ (opcional). A primeira empresa é a matriz (badge "matriz").
- Filial (unidade de negócio): nome e CNPJ (opcional), criada dentro de uma empresa.
Contas simples podem viver a vida inteira com uma única empresa: nada obriga a criar níveis que você não usa. Veja também Conceitos.
Criar e editar
Na tela: Nova empresa e Nova filial (dentro da empresa); nomes exigem pelo menos 2 caracteres. Renomear e editar CNPJ é livre; a mudança reflete no seletor de contexto e nas comunicações. Criar, editar e excluir exigem a permissão companies.manage, e tudo fica na auditoria.
O seletor de contexto
Quando a conta tem mais de uma empresa ou pelo menos uma filial, o cabeçalho ganha um seletor de contexto (Empresa · Filial). A opção Matriz representa a própria empresa, sem filtro de filial.
Selecionar um contexto:
- Filtra as listagens e o dashboard pela unidade escolhida (tarefas, cobranças, métricas).
- Escopa a criação de registros: o que você cria nasce na unidade selecionada.
- Fica guardado por 1 ano no navegador — você não re-seleciona a cada login.
Layouts de e-mail por nível
Cada empresa e filial pode apontar seu próprio layout de e-mail; a resolução é em cascata (filial → empresa → padrão da organização), o que permite marcas diferentes por unidade.
Proteções de exclusão
A exclusão é sempre reversível no banco (soft delete), mas o sistema recusa remoções que quebrariam a operação:
| Situação | O que acontece |
|---|---|
| Excluir a empresa matriz | Recusado (DEFAULT_IMMUTABLE) |
| Excluir empresa com filiais | Recusado (HAS_BRANCHES): remova as filiais antes |
| Excluir empresa com clientes ou cobranças | Recusado (COMPANY_IN_USE): reatribua antes de excluir |
Na interface, o botão de exclusão nem aparece para a empresa matriz — a proteção existe nas duas camadas, tela e API.