Antes de começar
- Crie primeiro o produto de empréstimo e uma versão. Veja Defina um produto de empréstimo.
- Para configurar um plano, o seu papel precisa de
loan_productwriteeaccountingwrite. Os papéis operator, editor e admin têm as duas. - Para mudar um plano, ou para designar uma conta de suspensão, o seu papel precisa de
accountingsupersede. Apenas o papel admin a tem.
O ledger do produto
Um plano nomeia a organização do Midaz e o ledger do Midaz em que os lançamentos do produto são contabilizados.
- No modo multi-tenant, a organização é obrigatória. No modo single-tenant, um plano sem destino usa o padrão do ambiente.
- Nomeie apenas a organização, e o Lender reutiliza o ledger em que o produto já contabiliza nela. Se o produto não tem nenhum, o Lender procura ou cria um ledger chamado
lender-product-<loan product id>. A resposta nomeia o ledger escolhido. - Toda versão de um produto contabiliza no ledger que a primeira versão configurada escolheu (
LENDER-0453). Vários produtos podem compartilhar um ledger. - O Lender recusa um ledger com validação de rota ligada (
LENDER-0452). O Lender não envia nenhuma rota contábil ao Midaz. - O Lender recusa uma organização ou um ledger que o Midaz não conhece (
LENDER-0442). Se o Midaz não responde, o Lender responde503comLENDER-0441. Repita a requisição.
MIDAZ_LEDGER_ACCOUNT_PROVISIONING_ENABLED é true por padrão. Veja Configuração e deploy. O Lender então adota o ativo pelo código ou o cria. Ele cria cada conta antes do primeiro lançamento nela.
- A natureza de uma perna define o tipo da conta. Uma natureza de crédito cria uma conta
deposit. Uma natureza de débito cria uma contalender_debit. - A direção de uma conta é fixada quando a conta é criada.
- O Lender adota uma conta que já existe. Ele confere a direção da conta com a natureza da perna e recusa o lançamento se elas diferem.
<prefix>:<id>. O prefixo é seu, com no máximo 17 caracteres. O id são os 32 dígitos hexadecimais do id da conta de empréstimo. O Lender cria uma conta por contrato para uma posição do tomador com o titular do CRM do contrato como dono.
Anatomia de uma regra de lançamento
Uma regra de lançamento mapeia um evento contábil para 2 a 16 pernas. Uma regra também pode levar
metadata, um mapa de valores de texto. Cada perna movimenta dinheiro em uma conta.
Posições por contrato
Uma perna que contabiliza o que um tomador deve precisa ser por contrato (LENDER-0408). Estes são os códigos de valor: principal, interest, fees, penalties, unapplied_cash, assignment_retained e returned_payment. Dois tipos de perna são a exceção:
- Uma perna de receita ou de despesa.
- O crédito de
accrual_withholdingem rendas a apropriar.
origination_fee em disbursement e o débito de accrual_fee_amortization. Uma conta de tarifa compartilhada é aceita, mas bloqueia toda baixa para prejuízo (LENDER-0411), e nenhuma mudança de plano corrige isso.
Algumas contas nunca são por contrato:
- A conta do tributo sobre a receita, porque ele é um passivo da instituição com o fisco (
LENDER-0419). - Uma conta de receita ou de despesa (
LENDER-0987). - A conta de contrapartida de
renegotiation_derecognitionerenegotiation_recognition. Essa conta ponte é uma conta só para o produto.
Exemplo
Esta é a regradisbursement de um plano. Os códigos de conta são apenas uma ilustração.
@external/<ASSET> é a conta que o Midaz cria para cada ativo. Ela registra o dinheiro que entra no ledger ou sai dele. Veja Contas.
A sua conta de tesouraria pode ficar no mesmo ledger. Então a perna cash pode nomeá-la. O Lender liga o saldo negativo apenas para as contas de crédito que ele lista para isso, e nunca para a conta cash. Veja Balance Overdraft. O Midaz portanto recusa um desembolso maior que o saldo dessa conta. O lançamento estaciona como um caso (LENDER-0458). Mantenha o caixa na conta.
Os eventos contábeis
Um plano pode levar três tipos de evento: eventos que todo plano precisa, eventos opcionais e eventos que o Lender deriva.
Eventos obrigatórios
O Lender recusa um plano que não tem um destes eventos.
As duas constituições creditam duas contas de provisão diferentes. O Lender recusa um plano que credita uma conta só para as duas (
LENDER-0455).
Eventos opcionais
A última coluna diz o que acontece se você a deixa de fora.
Para os eventos de cessão, veja Ceder recebíveis.
Eventos que você não configura
O Lender deriva estes eventos das regras acima. Um plano não pode levá-los. Se você enviar um, o Lender responde422.
Verificações que o Lender faz no seu plano
O Lender verifica o plano quando você o configura ou o muda. Ele não grava nada quando uma verificação falha.
Configurar um plano para uma versão que já tem um responde
409 Conflict.
A lista de erros do Lender traz o texto completo de cada código.
Leia um plano de volta
A lista mostra, para cada plano,
eventTypes, missingEventTypes, effectiveFrom e createdAt. missingEventTypes nomeia os eventos obrigatórios para os quais o plano não tem regra. Ela fica vazia quando o plano está completo.
A leitura por id devolve o plano inteiro. Ela traz postingRules com as pernas, midazOrganizationId, midazLedgerId, effectiveFrom e createdAt. Ela não tem campo de cobertura. Um id que o Lender não conhece responde 404 com LENDER-0454.
Mude o plano
Você configura uma versão uma vez. O primeiro plano dela vale a partir de
1900-01-01, e uma segunda chamada de configuração responde 409. Todo plano é imutável. Uma versão guarda uma cadeia de planos datados, e uma mudança acrescenta um plano datado a toda versão configurada do produto.
Uma mudança é do produto, não de uma versão.
POST /api/v1/loan-products/{id}/accounting-profiles/supersessions
O corpo traz o plano novo completo e effectiveFrom. effectiveFrom é sempre o primeiro dia de um mês que ainda não abriu amanhã. No último dia de um mês, a escolha mais cedo é o primeiro dia do mês depois do próximo. O plano novo contabiliza no mesmo ledger do antigo (LENDER-0443).
O plano novo mantém toda posição por contrato do plano antigo. Uma conta compartilhada de saldo mantém a conta e o modo dela: uma provisão, um valor a pagar ou o caixa. As contas de receita e de despesa podem mudar. O Lender recusa uma mudança que envia duas posições de uma conta por contrato para contas diferentes (LENDER-0986).
O plano em vigor em um dia é o plano com o maior effectiveFrom até esse dia. Um contrato fica no plano que guarda o saldo dele até o saldo ser transferido.
1
Registre a mudança
Envie a mudança. Leia
movedPositions na resposta. Ela lista cada posição cujo saldo muda de conta.2
Deixe os saldos se moverem
O saldo de um contrato se move dentro do primeiro lançamento dele depois da mudança. O fechamento do mês de vigência move os contratos que não tiveram lançamento. Nada mais é necessário.
3
Opcional: varra os contratos que ainda esperam
Depois do fechamento do mês anterior à vigência,
POST /api/v1/loan-products/{id}/accounting-profiles/supersessions/sweeps os move agora, com um lançamento por contrato. Ele exige o header X-Idempotency. Cada repetição exige uma chave nova, porque a mesma chave devolve a resposta anterior.4
Limpe o que segura um contrato
LENDER-0450 lista as causas possíveis, não a que vale para um contrato, e todo contrato que estava pronto foi movido. Confira nesta ordem: o fechamento do mês anterior à vigência; uma mudança anterior ainda aberta (varra essa primeiro); lançamentos estacionados (veja Contabilidade e rodadas de apropriação); um valor que o ledger retém. Depois repita a varredura com uma chave X-Idempotency nova. Não repita em laço.Contas de suspensão
Alguns lançamentos precisam de uma conta de suspensão. Um desembolso em partes e um ajuste compensatório as usam. Você designa uma conta para cada moeda e papel.
PUT /api/v1/internal/accounting/suspense-accounts/{currency}/{role} designa a conta, com gl_account no corpo. Uma conta designada já deve existir no ledger. O Lender nunca a cria, a menos que ela tenha o nome exato do padrão.
Um contrato fica com a conta que guarda o primeiro valor dele em um papel. Uma conta nova vale para os contratos que ainda não têm nenhuma. Quando o Lender provisiona as contas do ledger, um papel em BRL sem conta designada contabiliza no padrão. GET no mesmo caminho responde 404 com LENDER-0449 quando você não designou nenhuma. Veja Contabilidade.
No Console
A tela para configurar um plano exige as mesmas duas permissões da API. Abra Crédito, abra o produto e a versão, e escolha Configurar perfil contábil. Veja Crédito.
1
Escolha a instituição financeira
Instituição financeira nomeia a organização. O Lender cria nela o ledger do produto, ou reutiliza o ledger que já criou.
2
Revise a planilha
A planilha começa como uma cópia do plano mais recente do produto, quando a tela consegue editar todas as regras dele. Revise cada conta antes de registrar.
3
Marque as pernas por contrato
Marque como Por contrato cada perna que contabiliza uma posição do tomador.
4
Registre o plano
Registrar perfil contábil salva o plano em definitivo. Fechar a página descarta uma planilha que você não registrou.
payroll_payer_provision_constitution, payroll_payer_provision_reversal, refinance_payoff, refinance_payoff_reversal, assignment_derecognition, assignment_retained_settlement, assignment_repurchase, credit_loss_recovery e compensation_control.
A tela não registra estes eventos: accrual_fee_amortization, charge_appropriation, renegotiation_derecognition, renegotiation_recognition, assignment_secured_borrowing, assignment_funding_amortization, assignment_funding_payoff e os quatro eventos returned_payment_*. Para levar um deles, envie o plano com POST /api/v1/loan-products/{id}/accounting-profiles, com as mesmas duas permissões. Um produto só renegocia de forma substancial com o par renegotiation_derecognition e renegotiation_recognition, então você envia esse plano pela API.
A tela não copia um plano que tem uma regra que ela não edita. A planilha então abre vazia, e o aviso Este plano tem regras que esta tela não edita nomeia essas regras.
Concilie com o Midaz
Cada lançamento é uma transação do Midaz. Use estes campos para encontrá-la.
Veja Contabilidade e rodadas de apropriação para recibos, referências de diário e lançamentos estacionados.
Próximos passos
Contabilidade e rodadas de apropriação
Veja como um lançamento chega ao ledger e como as rodadas de apropriação contabilizam juros.
Defina um produto de empréstimo
Crie o produto e a versão que o plano atende.
Crédito no Console
Configure o plano e rode mudanças de plano no Console.
Pacote regulatório Brasil
Sobreponha CET, IOF e estágios de PDD ao modelo contábil.

