Pular para o conteúdo principal

Simulador de desconto, juros e multa

Ajuste a modalidade, valor, vencimento, desconto, juros e multa para visualizar — dia a dia — quanto o cliente paga ao longo do ciclo de uma cobrança Pix com vencimento (OVERDUE / COBV). Os cálculos são feitos localmente no seu navegador — nenhuma chamada à API é executada e nenhuma cobrança é criada.

Carregando simulador…

Modalidades de desconto

A Woovi expõe seis modalidades, alinhadas ao padrão BACEN COBV:

  1. FIXED_VALUE_UNTIL_SPECIFIED_DATE — desconto em centavos válido até uma data específica. Aceita múltiplas faixas (ex.: R$1,00 até 5 dias antes; R$0,50 até 10 dias antes).
  2. PERCENTAGE_UNTIL_SPECIFIED_DATE — mesma ideia em percentual (basis points).
  3. VALUE_PER_RUNNING_DAY_ADVANCE — centavos por dia corrido de antecedência ao vencimento.
  4. VALUE_PER_BUSINESS_DAY_ADVANCE — centavos por dia útil (pula fins de semana e feriados bancários BR).
  5. PERCENTAGE_PER_RUNNING_DAY_ADVANCE — basis points por dia corrido de antecedência.
  6. PERCENTAGE_PER_BUSINESS_DAY_ADVANCE — basis points por dia útil de antecedência.

Como funcionam os cálculos

  • Desconto (discountSettings): aplicado apenas antes do vencimento (dayIndex < daysForDueDate). No dia do vencimento e depois o desconto é zero.
  • Juros (interests.value): basis points por dia corrido, somente após o vencimento. Ex: 100 = 1,00% ao dia.
  • Multa (fines.value): aplicada uma única vez após o vencimento. type: 'FIXED' em centavos; type: 'PERCENTAGE' em basis points sobre o valor principal.
  • daysAfterDueDate: define a janela de simulação após o vencimento. Não confundir com regras de expiração — após esse limite a tela apenas para de gerar linhas.

Convenção de unidades

Para evitar problemas de ponto flutuante, a Woovi (e o BACEN) usam dois inteiros:

  • CentavosR$1,00 = 100. Vale para chargeValue, value das modalidades 3/4, entradas de discountFixedDate da modalidade 1 e multas com type: 'FIXED'.
  • Basis points1,00% = 100. Vale para value das modalidades 5/6, entradas da modalidade 2, interests.value e multas com type: 'PERCENTAGE'.

A tela mostra um preview legível ao lado de cada campo (R$X,XX ou X,XX%) para que você não precise fazer a conta na cabeça.

Exportar para a API

  • Copiar JSON devolve o envelope { modality, modalityNumber, input, rows } — mesmo formato emitido pela flag --out do script simulateChargeDiscount.ts no monorepo Woovi.
  • Copiar como cURL monta um POST /api/v1/charge pronto para rodar. Substitua <APP_ID> pelo seu AppID e <CORRELATION_ID> por um identificador único antes de executar.

Modo daily × summary

Por padrão, a linha do tempo mostra uma linha por dia (daily). Ative o toggle Modo summary para ver apenas marcos relevantes: dia de criação, dias em que o desconto muda de faixa, dia do vencimento, primeira diária pós-vencimento e o último dia simulado.

Veja também Como criar uma cobv usando a API.