Pular para o conteúdo principal
O Lender contabiliza todo evento de dinheiro de um produto no do produto, no Midaz. Você mapeia esses eventos para as suas contas uma vez, em um plano. As contas são suas. O Lender define a forma de cada lançamento em e recusa um plano que não fecha. Este guia é para o back office e para o contador do cliente. Ele cobre o ledger, os eventos contábeis e as contas que você define. Contabilidade e rodadas de apropriação cobre como um lançamento chega ao ledger.

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_product write e accounting write. 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 accounting supersede. 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 responde 503 com LENDER-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 conta lender_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.
Uma conta por contrato tem o alias <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_withholding em rendas a apropriar.
A tarifa de originação retida é por contrato nas duas pontas, em uma só conta: o crédito 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_derecognition e renegotiation_recognition. Essa conta ponte é uma conta só para o produto.

Exemplo

Esta é a regra disbursement 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 responde 422.

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.
No Console, veja Mudanças de plano de contas e Mover contratos em espera em Crédito.

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.
A tela registra estes eventos: os eventos obrigatórios, 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.