> For the complete documentation index, see [llms.txt](https://apidoc.toplojas.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apidoc.toplojas.com.br/departamentos/visao-geral.md).

# Visão Geral

Através da API de **Departamentos** você pode consultar e gerenciar as categorias (departamentos) da sua loja: listar, ver os detalhes, criar, editar e excluir. Os departamentos podem ser organizados em hierarquia, ou seja, um departamento pode ter um departamento **"Pai"**.

{% hint style="info" %}
Estas páginas são **guias práticos**. A referência completa de cada campo, tipo e schema está no simulador online:

{% embed url="<https://api.toplojas.com.br/doc/#/Departamentos>" %}
{% endhint %}

## 🔄 Fluxo típico

Um fluxo comum de integração de departamentos costuma seguir esta ordem:

1. **Listar** os departamentos existentes, filtrando por status quando necessário.
2. **Criar** um novo departamento (raiz ou filho de outro departamento).
3. **Consultar os detalhes** de um departamento específico.
4. **Editar** o nome ou o status de um departamento.
5. **Excluir** um departamento que não é mais utilizado.

## 🧭 Endpoints de Departamentos

| Ação                           | Método | Rota                       |
| ------------------------------ | ------ | -------------------------- |
| Listar e filtrar departamentos | GET    | `/departamentos/`          |
| Criar departamento             | POST   | `/departamentos/`          |
| Detalhes de um departamento    | GET    | `/departamentos/{Codigo}/` |
| Editar departamento            | PUT    | `/departamentos/{Codigo}/` |
| Excluir departamento           | DELETE | `/departamentos/{Codigo}/` |

## 🌳 Departamentos e hierarquia

Cada departamento possui um campo **`Pai`**, que identifica o departamento ao qual ele pertence:

* Quando **`Pai.Codigo` é `0`**, o departamento é **raiz** (não possui pai).
* Quando **`Pai.Codigo`** aponta para outro departamento, ele é um **subdepartamento** (filho) daquele departamento.

Ao **criar** um departamento, use o campo `CodigoPai` para definir essa relação.
