Financeiro Avançado
/portal/financeiro/caixa) e Financeiro › Conciliação Bancária (/portal/financeiro/conciliacao-bancaria), ambas com a permissão CONTAS CAIXAS › Visualizar. O controle de caixa nasce Desligado (Configurações › Parâmetros › Financeiro) e as 9 ações novas de CONTAS CAIXAS não são dadas a ninguém automaticamente. Passo a passo para o usuário em Financeiro › Caixa por atendente.Novo — out/2026 Desde 22/10/2026 o item "Caixa" saiu do menu: os turnos de caixa ficam em Financeiro › Contas Caixa (
/portal/financeiro/contas-caixa), abas Contas e Turnos por atendente; dentro da conta, Lançamentos e Turnos desta conta; sangrias aguardando aceite na mesma tela. O funcionamento do caixa segue igual.
Padrão de controle — o que mudou por baixo (#650)
| Ponto | Como funciona desde 12/10/2026 |
|---|---|
| Sessão de caixa | Uma sessão aberta por atendente e conta caixa; abertura com troco; fechamento com contagem cega e justificativa acima da tolerância; conferência pelo líder (Conferido / Divergente, com lançamento de quebra de caixa quando aceita); reabertura com motivo. Cada baixa nova fica ligada ao caixa aberto de quem recebeu. Depois do fechamento, a parcela paga não muda (409) — correção só por estorno. |
| Modo do controle | Parâmetros › Financeiro › Controle de caixa: Desligado (padrão), Aviso ou Bloqueio. No Bloqueio, líder e administrador recebem sem caixa aberto. |
| Autoria da parcela | O servidor grava Recebido por, Liquidado por (quem registrou) e a hora da baixa; os campos de autoria enviados pela tela ou pela API são ignorados. Trocar o recebedor exige ALTERAR_RECEBEDOR. |
| Comprovantes | Vários por parcela, com autor e data; exclusão com motivo (sem apagar o registro). Campos da parcela: ID da transação/Pix, NSU, Autorização. |
| Estorno | Lança o inverso para a mesma pessoa; a parcela original fica no histórico; total estornado ≤ pago. Feito pelo líder: exige a ação Estornar (CONTAS CAIXAS) e alçada Nível 2 ou 3; o administrador também pode. |
| Exclusão | Movimentação com parcela paga não pode ser excluída (409, "use estorno"); sem parcela paga, a movimentação e as parcelas são inativadas juntas. Saldo, histórico e fluxo de caixa não contam movimentação excluída. |
| Transferência | Tipo Transferência / Sangria / Suprimento; aceite só do dono da conta de destino, do líder ou do administrador; recusa exige motivo; quem respondeu e quando ficam gravados. |
| Conta de recebimento de convênio | Gerar Contas a Receber usa a conta do convênio (aba Dados) e, sem ela, a conta padrão dos Parâmetros; sem as duas, erro — não cria mais conta automaticamente. |
| Sinal (pagamento parcial) | Confirmar exige conta caixa e forma de pagamento; cria movimentação de recebimento própria, paga, sem NFS-e. |
| Conciliação | Importação de extrato OFX com sugestões e conciliação/baixa (Financeiro › Conciliação Bancária); a conciliação manual grava quem conciliou e quando. ✅ Novo — 13/10/2026 Baixa automática por link Pix (#409) em produção (opcional, exige provedor Pix da clínica — ver Links de Pagamento). Open Finance (#651) 🟡 Chegando (módulo adicional) — telas publicadas, módulo desligado; o OFX segue sendo o caminho (ver Open Finance). |
| Permissões | Rotas de movimentação passaram a exigir a permissão real REGISTROS FINANCEIROS (antes, quem não era admin recebia 403); /duplicatas passou a exigir permissão (REGISTROS FINANCEIROS ou CONTAS CAIXAS). Limites dos Parâmetros Financeiros (máximo de parcelas, valor mínimo por parcela) aplicados na API. |
| Trilha | Botão "Histórico de alterações" em Registros Financeiros (movimentação, lançamentos, parcelas, comprovantes e estornos). |
Pendente: a glosa lançada pela tela Glosas ainda dá baixa só na primeira parcela da movimentação. Novo — out/2026 Desde 22/10, pagamento parcial vira parcela paga + saldo em aberto; desde 23/10 a baixa do convênio é feita em Faturamento › Recebimentos de convênio.
Regras financeiras de 22/10/2026 Novo — out/2026
- Pagamento parcial vira parcela paga + saldo em aberto.
- Cancelar agendamento ou orçamento encerra os títulos e os links de pagamento.
- Atendido pago exige estorno antes de cancelar ou alterar.
- Particular avulso só é acolhido pago.
- Guia com contas a receber gerado ou em lote enviado não é mais editável; lote enviado não reabre.
- "Preencher Valor Pago" usa a data de hoje.
- Campo de valor no estilo de app de banco (troco inicial, estorno).
- API externa: repetir a mesma confirmação de pagamento devolve "já confirmado" (não 404); confirmação concorrente dá 409 "Esta parcela já está paga por outro pagamento".
Detalhes em Financeiro › Regras financeiras de 22/10.
Visão Geral
O módulo financeiro foi reestruturado com 6 sub-módulos especializados que se conectam via Movimentação Financeira (hub central). Permite classificar receitas e despesas por centro de custo e categoria, gestão de contas e duplicatas, e detalhamento item-a-item de transações. O DRE Gerencial (#617) está em produção desde 28/09/2026.
Arquitetura
Atendimento/Orçamento
↓
MovimentacaoFinanceira ←—— hub central
├→ RegistroFinanceiro (detalhe item-a-item)
├→ Duplicatas (parcelas + vencimentos)
└→ DescontoFinanceiro
↑
CentroDeCusto / CategoriaPagamento / ContaCaixa (cadastros mestre)
✅ Novo — 26/09/2026 Orçamento com várias sessões (orçamentos criados desde 25/09/2026): todas as sessões compartilham uma única MovimentacaoFinanceira, com o valor total do orçamento — cada nova sessão reaproveita a mesma cobrança. Pago no orçamento ou no acolhimento, aparece pago nos dois; depois de pago, valor e desconto travam. Ver Orçamento › Financeiro único.
1. Centro de Custo
Análise por unidade, departamento ou projeto. Toda movimentação vinculada.
| Método | Endpoint |
|---|---|
| GET | /centro-custo/:id? |
| POST | /centro-custo/ |
| PUT | /centro-custo/:id |
| DELETE | /centro-custo/:id |
Frontend: /portal/financeiro/centro-de-custo → ListCentroDeCusto.tsx + FormCentroDeCusto.tsx
2. Categoria de Pagamento
Categorias hierárquicas (Receitas vs Despesas). Base do DRE Gerencial (#617, em produção desde 28/09/2026): ✅ Novo — 29/09/2026 a coluna "Linha do DRE" classifica cada categoria; sem classificação, vale uma regra padrão pelo tipo de movimentação.
| Método | Endpoint | Permissão |
|---|---|---|
| POST | /categoria-pagamento/ | CATEGORIAS DE PAGAMENTOS / CREATE |
| GET | /categoria-pagamento/:id? | VIEW |
| PUT | /categoria-pagamento/:id | UPDATE |
| DELETE | /categoria-pagamento/:id | DELETE |
Frontend: /portal/financeiro/categorias-de-pagamento
3. Conta Caixa
Contas bancárias, caixas físicos, carteiras digitais. Com histórico e saldo corrente.
| Método | Endpoint |
|---|---|
| GET | /conta-caixa/filter/unidades |
| GET | /conta-caixa/filter |
| GET | /conta-caixa/:id? |
| GET | /conta-caixa/historico/:id? |
| POST | /conta-caixa/ |
| PUT | /conta-caixa/:id |
| DELETE | /conta-caixa/:id |
Frontend:
/portal/financeiro/contas-caixa— ListContasCaixa.tsx/portal/financeiro/contas-caixa/criar— FormInfoContasCaixa.tsx/portal/financeiro/historico-contas— HistoricoContas.tsxNovo — out/2026 saiu do menu em 22/10/2026: os turnos ficam em/portal/financeiro/caixa— Caixa (Meu caixa / Caixas por atendente)/portal/financeiro/contas-caixa(abas Contas / Turnos por atendente; dentro da conta, Lançamentos / Turnos desta conta)- ✅ Novo — 12/10/2026
/portal/financeiro/conciliacao-bancaria— Conciliação Bancária (OFX) - ✅ Novo — 13/10/2026 Menu Financeiro › Links de Pagamento — links Pix gerados para pacientes (ver Links de Pagamento)
- 🟡 Chegando Menu Financeiro › Contas Conectadas (Open Finance) — módulo adicional, desligado (ver Open Finance)
4. Movimentação Financeira (Hub Central)
TODA entrada e saída financeira. Vincula categoria + centro custo + conta + paciente/fornecedor.
| Método | Endpoint | Função |
|---|---|---|
| GET | /movimentacao-financeira/filter | Listar com filtros |
| GET | /movimentacao-financeira/:id? | Detalhe |
| POST | /movimentacao-financeira/ | Criar |
| PUT | /movimentacao-financeira/:id | Atualizar |
| POST | /movimentacao-financeira/desconto | Validar permissão desconto |
Campos obrigatórios
- contasCaixaId (FK)
- categoriaDePagamentoId (FK)
- centroDeCustoId (FK)
- tipoFinanceiroId (PAGAMENTO ou RECEBIMENTO)
- data + valor
- Origem: paciente OU fornecedor OU outra (exatamente uma)
Parcelamento
Campo parcelas > 1 + intervalo + tipoIntervalo (DIA/SEMANA/MES) gera N Duplicatas automaticamente.
Frontend
/portal/financeiro/registros— ListRegistrosFinanceiros/portal/financeiro/registros/pagar/criar— FormPagamento/portal/financeiro/registros/receber/criar— FormRecebimento
5. Registro Financeiro (Detalhe item-a-item)
Detalha cada item de uma Movimentação (ex: compra de produtos). Vincula a estoque.
| Método | Endpoint |
|---|---|
| POST | /registro-financeiro/ |
| GET | /registro-financeiro/filter |
| GET | /registro-financeiro/:id? |
| DELETE | /registro-financeiro/:id |
Atualiza PosicaoEstoque automaticamente:
- Entrada (RECEBIMENTO) → soma quantidade
- Saída (PAGAMENTO consumo) → subtrai
6. Duplicatas
Controle de duplicatas a pagar/receber com vencimento, parcelamento, anexos.
| Método | Endpoint |
|---|---|
| POST | /duplicatas/ |
| GET | /duplicatas/:id? |
✅ Atualização 13/10 as parcelas (duplicatas) continuam sendo trabalhadas dentro das telas de Registros Financeiros, Agenda › Receber e Histórico da Conta Caixa; desde 12/10/2026 cada parcela tem o diálogo "Comprovantes da parcela" (vários arquivos, ID da transação/Pix, NSU, Autorização, Recebido por) e as rotas
/duplicatas exigem permissão.
Validação de Desconto por Nível de Alçada ✅ ago/2026
POST /movimentacao-financeira/desconto valida se o colaborador tem nível de alçada para o desconto solicitado (#557/#558, épico #571 — ago/2026; terminologia atual, antes chamada de "nível de desconto"), conforme ParametrosDeDesconto:
- Nível de alçada 1 (até 5%) — Recepcionista
- Nível de alçada 2 (até 10%) — Coordenador
- Nível de alçada 3 (até 20%) — Gerente
- Sem limite — Diretor
Desconto acima do limite → bloqueia + exige aprovação do nível de alçada superior, notificada na Central de Notificações: o grupo do nível responsável recebe a pendência e um aprovador resolve para todos.
Atualizações jul–set/2026
- NFS-e no pagamento (#467) — emissão automática da nota no ato do recebimento, em produção. Ver Notas Fiscais.
- Reconciliação do pré-faturamento (#568/#569) — autorizado × agendado × atendido × faturado, entregue em ago/2026 (25–26/08). Ver Faturamento Avançado.
- ✅ Novo — 30/09/2026 Importação de XML TISS no Financeiro — parte corrigida em produção desde 29/09/2026 (#631: lançamento pelo valorTotalGeral da guia, lote sem valor bloqueado antes de gravar, avisos por guia, excluir importação libera o número do lote); ✅ Atualização 13/10 #630 fechada em 01/10 (envio do lote, Desvincular guia, filtros da lista em produção; casamento automático ainda sem confirmação) — orientação em Financeiro.
- Glosas — rework completo (#585–#588) — fluxos unificados e baixa/glosa automática do retorno TISS, entregue em ago/2026 (rework 26/08). Ver Financeiro — Glosas.
- ✅ Novo — 12/10/2026 Padrão de controle do financeiro (#650) — ver tabela acima.
- ✅ Novo — 02–06/10/2026 Repasse: zero no pré-faturamento repassa sobre zero (#646), base líquida (total − desconto) desde 01/08, linha de repasse geral e repasse de taxa (#643) — ver Relatórios.
Relatórios financeiros e DRE
✅ Novo — 12/10/2026 Relatórios › Financeiro: "Recebimentos por Atendente" e "Conciliação: pago × conciliado" — ver Relatórios.
Hoje (em produção): relatórios financeiros e fluxo de caixa — ver Relatórios › Fluxo de Caixa e Repasses por Colaborador.
✅ Novo — 29/09/2026 DRE Gerencial — em produção desde 28/09/2026 (#617, fechada em 28/09): Relatórios › DRE Gerencial, com período em regime de competência × caixa, filtros de Unidade, Convênio, Centro de custo e Categoria, visão mês a mês (Receita líquida, Lucro bruto, Resultado operacional, Resultado líquido e % da receita líquida), Ver lançamentos, Exportar XLSX e Imprimir. Ver Relatórios › DRE Gerencial.
Histórico: em 24/09/2026 esta seção foi corrigida porque listava "Relatórios DRE" (por centro de custo, por categoria, inadimplência, movimentação por produto) como se já existissem — era o desenho de 26/05/2026. Em 28/09/2026 o DRE Gerencial entrou em produção com o formato descrito acima; não prometa as outras visões antigas.