Skip to content

API — DRE

Autenticação

Todos os endpoints requerem JWT com role admin ou superadmin.

Base: /t/:slug/dre


GET /t/:slug/dre

Calcula e retorna o DRE (P&L) por regime de competência para um mês/ano.

Query params:

ParamTipoObrigatórioDescrição
yearnumberSimAno (ex: 2026)
monthnumberSimMês 1–12 (ex: 4)
costCenterIdstringNãoFiltrar por centro de custo

Response 200:

json
{
  "period": { "year": 2026, "month": 4 },
  "receitaBruta": 85000,
  "deducoes": 7650,
  "receitaLiquida": 77350,
  "cmv": 28900,
  "margemBruta": 48450,
  "margemBrutaPercent": 57.0,
  "despesasOperacionais": 18000,
  "ebitda": 30450,
  "ebitdaPercent": 35.8,
  "da": 2000,
  "ebit": 28450,
  "despesasFinanceiras": 1200,
  "lucroLiquido": 27250,
  "lucroLiquidoPercent": 32.1,
  "byCategory": [
    { "categoryName": "Folha de Pagamento", "dreGroup": "opex", "total": 12000 },
    { "categoryName": "Aluguel", "dreGroup": "opex", "total": 4500 },
    { "categoryName": "Energia", "dreGroup": "opex", "total": 1500 }
  ]
}

Nota: Valores em centavos não — em reais mesmo. CMV = movimentações de saída (venda/produção) + Contas a Pagar de NF-es na competência.


GET /t/:slug/dre/expenses

Lista Despesas Operacionais com paginação.

Query params:

ParamTipoDescrição
competenceDatestringFiltrar por competência (ex: 2026-04)
categoryIdstringFiltrar por categoria
pagenumberPágina (padrão 1)
limitnumberItens por página (padrão 20)

Response 200:

json
{
  "items": [
    {
      "_id": "...",
      "description": "Aluguel Abril 2026",
      "amount": 4500.00,
      "competenceDate": "2026-04-01T00:00:00.000Z",
      "category": { "_id": "...", "name": "Aluguel", "dreGroup": "opex" },
      "costCenter": null
    }
  ],
  "total": 8,
  "page": 1,
  "limit": 20,
  "pages": 1
}

POST /t/:slug/dre/expenses

Cria uma Despesa Operacional.

Body:

json
{
  "description": "Aluguel Abril 2026",
  "amount": 4500.00,
  "competenceDate": "2026-04-01",
  "categoryId": "...",
  "costCenterId": "..."
}
CampoTipoObrigatórioDescrição
descriptionstringSimDescrição da despesa
amountnumberSimValor em R$
competenceDatestringSimData de competência (ISO 8601)
categoryIdstringSimID da ExpenseCategory
costCenterIdstringNãoID do CostCenter
receiptUrlstringNãoURL do comprovante

Response 201: Objeto OperatingExpense criado.


PUT /t/:slug/dre/expenses/:id

Atualiza uma Despesa Operacional.

Body: Mesmo formato do POST (campos parciais aceitos).

Response 200: Objeto atualizado.


DELETE /t/:slug/dre/expenses/:id

Remove uma Despesa Operacional.

Response 200: { "deleted": true }


GET /t/:slug/dre/categories

Lista categorias do Plano de Contas (globais + personalizadas do tenant).

Response 200:

json
[
  { "_id": "...", "code": "3.1", "name": "CMV", "dreGroup": "cogs", "active": true, "tenant": null },
  { "_id": "...", "code": "4.1", "name": "Folha de Pagamento", "dreGroup": "opex", "active": true, "tenant": null },
  { "_id": "...", "code": "4.99", "name": "Outros", "dreGroup": "opex", "active": true, "tenant": "..." }
]

Categorias com tenant: null são padrões do sistema — não podem ser excluídas.


POST /t/:slug/dre/categories

Cria uma categoria de despesa personalizada.

Body:

json
{
  "code": "4.5",
  "name": "Manutenção",
  "dreGroup": "opex"
}
CampoTipoObrigatórioDescrição
codestringSimCódigo único (ex: 4.5)
namestringSimNome da categoria
dreGroupstringSimcogs | opex | da | financial | revenue_deduction

Response 201: Categoria criada.


DELETE /t/:slug/dre/categories/:id

Remove uma categoria personalizada (não pode remover padrões do sistema).

Erros:

CódigoMotivo
400Categoria é padrão do sistema (tenant: null)
409Categoria possui despesas vinculadas

GET /t/:slug/dre/cost-centers

Lista centros de custo do tenant.

Response 200:

json
[
  { "_id": "...", "code": "CC-01", "name": "Salão", "active": true },
  { "_id": "...", "code": "CC-02", "name": "Delivery", "active": true }
]

POST /t/:slug/dre/cost-centers

Cria um centro de custo.

Body:

json
{
  "code": "CC-03",
  "name": "Bar"
}

Response 201: Centro de custo criado.


DELETE /t/:slug/dre/cost-centers/:id

Remove um centro de custo.

Response 200: { "deleted": true }


Relacionados

Lançado sob a licença MIT.