Endpoints
Document Types
CRUD de tipos de documento exigidos para organizações.
Tipos de documento (ex.: alvará, CNPJ, licença ambiental). Base path:
/api/document-types · autenticação de usuário.
| Método | Rota | Scope | Resource | Sucesso |
|---|---|---|---|---|
POST | /api/document-types | create | resource:document-types | 201 |
GET | /api/document-types | read | resource:document-types | 200 |
GET | /api/document-types/:id | read | resource:document-types_id | 200 |
PUT | /api/document-types/:id | update | resource:document-types_id | 200 |
DELETE | /api/document-types/:id | delete | resource:document-types_id | 204 |
Criar tipo de documento
POST /api/document-types
Corpo
| Campo | Tipo | Obrigatório | Regras |
|---|---|---|---|
name | string | sim | mín. 1, único |
isRequired | boolean | não | default false |
description | string | não | nullable |
requiresApproval | boolean | não | default false |
hasExpiration | boolean | não | default false |
defaultValidityDays | number | não | inteiro positivo ou null; deve ser null se hasExpiration=false |
hasAuthenticityCode | boolean | não | default false |
isActive | boolean | não | default true |
curl -X POST http://localhost:3000/api/document-types \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Alvará de Funcionamento",
"isRequired": true,
"description": "Alvará municipal de funcionamento",
"requiresApproval": true,
"hasExpiration": true,
"defaultValidityDays": 365,
"hasAuthenticityCode": false,
"isActive": true
}'201 Created
{
"id": "a1b2c3d4-e5f6-4789-a123-456789abcdef",
"name": "Alvará de Funcionamento",
"isRequired": true,
"description": "Alvará municipal de funcionamento",
"requiresApproval": true,
"hasExpiration": true,
"defaultValidityDays": 365,
"hasAuthenticityCode": false,
"isActive": true,
"createdAt": "2026-07-14T12:00:00.000Z",
"updatedAt": "2026-07-14T12:00:00.000Z"
}Erros
| Status | Quando |
|---|---|
409 | Já existe um tipo com o mesmo name |
400 | hasExpiration=false com defaultValidityDays preenchido |
Listar tipos de documento
GET /api/document-types
Query
| Campo | Tipo | Obrigatório | Regras |
|---|---|---|---|
page | number | não | default 1, mín. 1 |
limit | number | não | default 20, máx. 100 |
name | string | não | filtro parcial (case-insensitive) |
isActive | boolean | não | true / false |
isRequired | boolean | não | true / false |
curl "http://localhost:3000/api/document-types?page=1&limit=20&isActive=true" \
-H "Authorization: Bearer $ACCESS_TOKEN"200 OK
{
"data": [
{
"id": "a1b2c3d4-e5f6-4789-a123-456789abcdef",
"name": "Alvará de Funcionamento",
"isRequired": true,
"description": "Alvará municipal de funcionamento",
"requiresApproval": true,
"hasExpiration": true,
"defaultValidityDays": 365,
"hasAuthenticityCode": false,
"isActive": true,
"createdAt": "2026-07-14T12:00:00.000Z",
"updatedAt": "2026-07-14T12:00:00.000Z"
}
],
"total": 1,
"totalPages": 1,
"currentPage": 1
}Obter tipo de documento por id
GET /api/document-types/:id — 404 se não existir.
curl http://localhost:3000/api/document-types/a1b2c3d4-e5f6-4789-a123-456789abcdef \
-H "Authorization: Bearer $ACCESS_TOKEN"Editar tipo de documento
PUT /api/document-types/:id — mesmos campos do create, todos opcionais.
Ao definir hasExpiration=false, defaultValidityDays é forçado para null.
Se hasExpiration permanecer false e defaultValidityDays for enviado com valor, retorna 400.
Nome duplicado retorna 409. Não encontrado retorna 404.
curl -X PUT http://localhost:3000/api/document-types/a1b2c3d4-e5f6-4789-a123-456789abcdef \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "name": "Alvará Atualizado", "isActive": false }'Remover tipo de documento
DELETE /api/document-types/:id — retorna 204 No Content. 404 se não existir.
curl -X DELETE http://localhost:3000/api/document-types/a1b2c3d4-e5f6-4789-a123-456789abcdef \
-H "Authorization: Bearer $ACCESS_TOKEN"