Pacotes de taxas: fluxo de trabalho por transação
Os pacotes de taxas aplicam cobranças de forma síncrona quando você cria uma transação. Esta seção mostra o processo, desde a configuração das taxas até os resultados.
Passo 1 - Crie seus pacotes de taxas
Primeiro, configure pacotes de taxas que definem como o motor aplica as taxas. Use o endpoint Criar um Pacote. Cada pacote contém um conjunto de regras de taxas e critérios de correspondência. Você pode personalizar pacotes para diferentes ledgers, segmentos e rotas de transação com estes campos:- transactionRoute – Identifica a natureza da transação, quando você precisa de correspondência por rota.
- segmentId – Agrupa clientes ou tipos de produto, quando você precisa de correspondência por segmento.
- ledgerId – Define qual ledger registra a transação.
- Valor mínimo e máximo – Limites opcionais para aplicação de taxas.
- routeFrom / routeTo – Definem como cada taxa se move nos fluxos contábeis.
- Listar Pacotes - Listar todos os pacotes criados.
- Recuperar um Pacote - Recuperar informações de um pacote específico.
- Atualizar um Pacote - Atualizar as informações de um pacote específico.
- Excluir um Pacote - Fazer soft-delete de um pacote.
(opcional) Passo 2 - Execute uma estimativa
Para visualizar como um pacote de taxas se comporta antes de você confirmar uma transação real, use o endpoint Estimar Taxas de Transação. Essa estimativa ajuda a validar:- Quais regras de taxas se aplicam.
- Como o pacote se comportará com os valores informados.
- Se alguma isenção se aplica.
Passo 3 - Crie uma transação
Depois de configurar os pacotes, crie a transação com o endpoint criar uma transação. Inclua oledgerId e os campos de correspondência configurados, como transactionRoute ou segmentId, para que o motor avalie o pacote correto.
Passo 4 - O Fees Engine entra em ação
O Fees Engine é executado em processo quando o Midaz cria a transação. Ele avalia se um pacote se aplica, com base em:- transactionRoute, quando configurado
- segmentId, quando configurado
- ledgerId
- Valor mínimo e máximo
- waivedAccounts, quando configurado para isenções de taxas
O Fees Engine seleciona apenas um pacote por transação.
Passo 5 - Verificar isenções
O sistema verifica:- Se o valor da transação está fora da faixa permitida.
- Se a conta de origem é isenta.
Passo 6 - Cálculo e aplicação de taxas
Se um pacote se aplica, o Fees Engine:- Calcula os valores das taxas com base na
applicationRuleselecionada. - Aplica taxas proporcionalmente entre contas, se necessário.
- Usa
isDeductibleFrompara definir se adiciona ou deduz a taxa. - Roteia as taxas para a
creditAccountcorreta com osrouteFromerouteToconfigurados. - Retorna o resultado completo da transação junto com o
packageAppliedIDnos metadados.
Passo 7 - Atualizações no ledger
Depois que o Fees Engine calcula as taxas, o componente de Transações assume. Ele processa:- Débitos das contas de origem
- Créditos para os destinos das taxas
- Detalhamento das taxas por rota e conta
Passo 8 - Revisar e confirmar
Após a execução, você pode:- Inspecionar a transação final e os valores por conta.
- Confirmar qual pacote de taxas se aplicou.
- Verificar todas as movimentações de taxas via metadados e registros do ledger.
Por que estimar uma transação?
Estimativas permitem visualizar como um pacote de taxas específico se comporta, sem executar uma transação real ou gravar no ledger. Use estimativas quando:
- Você quiser testar um pacote específico.
- Estiver depurando regras de taxas ou limites.
- Quiser validar isenções, faixas de valor ou divisões proporcionais.
- Precisar de uma prévia antes de criar uma transação real.
- Estiver construindo uma interface e quiser mostrar taxas estimadas.
packageId e o endpoint retorna o que aconteceria se ele aplicasse aquele pacote exato.
O que você obtém com uma estimativa?
- Uma estimativa completa das regras de taxas.
- Quais contas o motor cobraria.
- Como o motor dividiria a taxa.
- Sem impacto no ledger.
Erros comuns
O Fees Engine valida cada requisição para garantir consistência e lógica correta de taxas. Abaixo estão os problemas mais frequentes que você pode encontrar ao criar pacotes ou processar transações.
Quer a lista completa de códigos de erro? Você encontra na página Lista de erros do Fees Engine na Referência da API.
Pacotes de billing: fluxo de trabalho por período
Os pacotes de billing calculam cobranças com base no volume acumulado de transações ou na manutenção por conta ao longo de um período de billing. Diferentemente dos pacotes de taxas, seu orquestrador aciona o billing. Ele decide quando calcular e executa as cobranças resultantes.
Passo 1 — Crie pacotes de billing
Configure pacotes de billing que definem suas regras de cobrança periódica. Cada pacote é do tipo volume ou manutenção. Exemplo de pacote de volume — cobrança por Pix enviado com preços escalonados:Passo 2 — Acione o cálculo de billing
ChamePOST /v1/billing/calculate com o ID do ledger e o período de billing. O motor avalia todos os pacotes de billing ativos que correspondem aos critérios.
period suporta três formatos: YYYY-MM (mensal), YYYY-Www (semanal, ex.: 2026-W13) e YYYY-MM-DD (diário).
O campo type é opcional. Use "volume" ou "maintenance" para restringir o cálculo a um tipo. Omita-o para calcular ambos os tipos em uma única chamada.
Passo 3 — Receba os resultados do cálculo
O motor retorna um array de resultados. Cada resultado contém umtransactionPayload pronto para enviar ao Midaz.
Cada resultado inclui:
- O pacote de billing que o gerou.
- Os valores calculados com detalhamento completo (faixas aplicadas, descontos, cota gratuita subtraída).
- Um payload de transação com
source.from(entradas de débito) edistribute.to(entradas de crédito). - Metadados de auditoria estruturados para rastreabilidade.
Passo 4 — Execute as cobranças
Envie cadatransactionPayload ao Midaz via POST /transactions/json para criar as transações de billing reais. Essa etapa é responsabilidade do seu orquestrador — Flowker, um cron job ou qualquer outro sistema.
O motor de billing calcula e retorna os resultados. Ele não cria transações no Midaz. Seu orquestrador controla quando e como executa as cobranças.
Passo 5 — Revise e concilie
Após executar as cobranças:- Verifique se as transações criadas no Midaz correspondem aos resultados do cálculo de billing.
- Use os metadados de auditoria de cada resultado para conciliação.
- O cálculo de billing é stateless — você pode re-executá-lo para o mesmo período para verificar os resultados.
Gerenciando pacotes de billing
Use estes endpoints para gerenciar pacotes de billing existentes:GET /v1/billing-packages— Listar todos os pacotes de billing.GET /v1/billing-packages/:id— Recuperar um pacote de billing específico.PATCH /v1/billing-packages/:id— Atualizar um pacote de billing (apenaslabel,description,enable).DELETE /v1/billing-packages/:id— Soft-delete de um pacote de billing.

