Um mês por empréstimo, no aniversário do próprio empréstimo
O mês contábil de um empréstimo é a competência dele. A data de desembolso ancora a competência, não o calendário. Um empréstimo desembolsado no dia 12 fecha cada competência no dia 12 dos meses seguintes. Um desembolso no fim do mês se ajusta ao último dia de um mês mais curto. A data de referência que você passa para a rodada seleciona a competência. Um empréstimo reconhece apenas quando a data de referência é um dos aniversários dele. Uma rodada no dia 12 reconhece, portanto, os empréstimos com data de desembolso no dia 12, e deixa os demais de fora. Planeje o calendário em torno disso. Para cobrir toda a carteira ao longo de um mês, comece uma rodada em cada data de referência.
O que uma rodada faz
POST /api/v1/accrual-runs recebe a data de referência e o modo da rodada e, opcionalmente, até 100 ids de produto de empréstimo que delimitam a rodada. Tanto businessDate quanto mode são obrigatórios. O driver agendado envia monthly.
1
O Lender seleciona os empréstimos
Você não envia uma lista. O Lender lê a própria carteira e pega cada conta de empréstimo em uma proposta desembolsada ou ativa, dentro dos produtos que você delimitou. Uma conta de empréstimo já liquidada sai. Uma rodada varre até 10.000 contas de empréstimo, então delimite uma carteira maior por produto e comece mais de uma rodada.
2
O Lender reconhece os juros
Para cada empréstimo, o Lender resolve a taxa efetiva de juros do cronograma contratual e pega a linha daquela competência. O reconhecimento trabalha sobre os fluxos de caixa contratuais. O que o tomador pagou não muda isso.
3
O Lender grava o reconhecimento e a intenção de lançamento
Uma transação de banco de dados guarda a rodada, um item por reconhecimento e a intenção de lançamento balanceada por trás de cada item. Ou tudo fica durável, ou nada fica.
4
O relay entrega o lançamento
Depois que a rodada faz commit, o relay do outbox lança a transação balanceada no Midaz, e o Midaz a contabiliza.
O valor que o Lender reconhece
O reconhecimento segue o método da taxa efetiva de juros. O custo amortizado começa no principal que o cronograma amortiza, menos a tarifa de originação. Os tributos retidos ficam fora dele: no Brasil, o IOF é um repasse e nunca entra no custo amortizado. O Lender resolve a taxa a partir do próprio cronograma, então os juros reconhecidos reproduzem o contrato em vez de uma taxa separada que você mantém. Quando a jurisdição tributa a receita de juros, a rodada reconhece esse tributo também. O tributo é um segundo valor no mesmo empréstimo e na mesma competência, com lançamento balanceado próprio. Juros e tributo nunca dividem uma transação.
Uma vez por empréstimo, por mês, por valor
Um reconhecimento é único em três coisas: a conta de empréstimo, a competência e o tipo de valor. Uma segunda rodada para a mesma data de referência não reconhece nada novo para um empréstimo já reconhecido. Ela não dobra os juros e não enfileira um segundo lançamento. Essa unicidade é a garantia do caminho do dinheiro. Ela também torna uma rodada segura para repetir depois de uma interrupção.
O que uma rodada produz
Uma rodada responde com:
- O identificador da rodada e o status da rodada.
- Uma referência de diário: o identificador contábil da rodada.
- O id de correlação que o Lender deriva do modo, da data de referência e dos produtos no escopo.
A rodada não grava o lançamento no ledger
Uma rodada reconhece juros e enfileira uma intenção de lançamento. Ela não chama o Midaz e não espera uma contabilização. O relay lança depois, e o ledger contabiliza a transação. Uma rodada bem-sucedida significa que o reconhecimento e a intenção dele estão duráveis, não que o ledger já mostra o lançamento. Configure duas coisas antes que um lançamento possa ser contabilizado:
- Dê ao perfil contábil da versão do produto uma regra para o evento
accrual, com pernas balanceadas. Quando a jurisdição tributa a receita de juros, adicione também a regra opcionalaccrual_tax, para que o tributo tenha pernas próprias. - O Lender sempre inicializa o outbox. Configure a conexão com o ledger para que o relay consiga entregar a intenção durável. Veja Configuração e deploy.
Empréstimos que uma rodada deixa de fora
Um empréstimo selecionado ainda pode não reconhecer nada:
- A jurisdição suspende a apropriação dele. No Brasil, os dois estágios mais profundos da escala de provisionamento suspendem a apropriação (veja o Pacote regulatório Brasil).
- A data de referência não é um dos aniversários dele.
- Os juros dele para aquela competência são zero.
Rodar a apropriação de forma agendada
A rodada também tem um driver agendado dentro do serviço. Ele fica desligado até você habilitar, e você define a expressão cron dele, cujo padrão é o primeiro dia de cada mês. Dê a ele uma expressão diária: cada empréstimo reconhece no aniversário próprio, então apenas um driver diário cobre toda a carteira ao longo de um mês. Sob multi-tenancy, o driver roda uma vez para cada tenant ativo, contra os dados do próprio tenant. O caminho agendado e o caminho da API usam o mesmo código. Uma rodada vinda do cron e uma rodada vinda de uma chamada se comportam de forma idêntica.
Próximos passos
Contabilidade e rodadas de apropriação
Perfis contábeis, regras de lançamento e as operações de referência de diário.
Arquitetura do Lender
Os cinco domínios, o encaixe da jurisdição e o outbox que leva o dinheiro para fora.
Defina um produto de empréstimo
Produtos, versões e o perfil contábil de que uma rodada depende.
Pacote regulatório Brasil
Estágios de provisionamento, tributos e as divulgações que o perfil brasileiro adiciona.

