Pular para o conteúdo principal

Referência técnica do financeiro

Domínios Finance e Tax da pepper-api; telas em pepper-front/src/app/finance. Todas as rotas exigem x-access-token e o header requesting (perfil ativo), e usam o business = id do ProfileBusiness.

Entidades​

ColeçãoCampos principais
FinanceCategorybusiness, key (padrão), name, kind (income/expense), dreGroup, isDefault, active, order
FinanceEntrykind, category, description, amount, competenceDate, dueDate, paidAt, status (pending/paid/canceled), source (manual/recurring/payroll/tax/vacation), sourceRef, counterparty, recurrenceGroup
FiscalProfiletaxRegime, activity, simplesAnnex, fatorR, cnae, issRate, issDueDay, icmsRate, ratFap, activityStartDate, openingBalance, openingDate
TaxObligationtax, competence (AAAA-MM), dueDate, base, rate, estimatedAmount, amount (guia oficial), status (open/paid/canceled), source (apuration/payroll/manual), memory

Lançamentos automáticos são idempotentes por source + sourceRef: fechar a folha de novo não duplica.

Rotas​

Método e rotaUso
GET /finance/categoriesLista (cria as padrão se faltarem); includeInactive
POST /finance/categories · PUT /finance/categories/:idCriar e editar
GET /finance/entriesFiltros kind, status (inclui overdue), category, from, to, dateField, search, source; devolve totals do filtro
POST /finance/entriesCria; repeat { frequency, count } gera as parcelas
PUT /finance/entries/:idEdita; applyToNext estende às próximas parcelas
PUT /finance/entries/:id/pay · /unpay · /cancel · DELETE /finance/entries/:idBaixa, desfazer, cancelar, excluir
GET /finance/reports/summaryPainel (month)
GET /finance/reports/cash-flowfrom, to, granularity (day/week/month)
GET /finance/reports/drefrom, to; inclui previous e unapuratedCompetences
GET · PUT /tax/profilePerfil fiscal
POST /tax/apurationcompetence, save (false = simulação)
GET /tax/obligations · PUT /tax/obligations/:id · /pay · /cancelGuias

Permissões​

  • RBAC: recursos Finance e Tax.
  • ProfileBusiness e ProfileAdmin: acesso total à própria empresa.
  • ProfileCollaborator:
    • lê a empresa dele;
    • grava somente com papel Admin (isAdminCollaborator, na policy);
    • o RBAC do colaborador tem teto delete e a restrição fica na policy.

Regras de cálculo​

  • Fuso: datas no fuso de Brasília (−03:00). A competência "2026-10" vai de 01/10 00:00 até 01/11 00:00.
  • DRE (statements.buildDre):
    • soma os valores assinados por grupo: receita +, despesa −;
    • a receita bruta inclui os pedidos (billedValue pela saleDate);
    • as guias em aberto entram na competência, pela categoria do tributo.
  • Fluxo (statements.buildCashFlow):
    • realizado = pagos e pedidos pagos;
    • previsto = de hoje em diante;
    • vencidos ficam à parte.
  • Tributos: utils/tax, com tabelas por ano. Ano sem tabela usa a mais recente e avisa TABLE_YEAR_FALLBACK.