> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Defina um produto de empréstimo

> Crie um produto de empréstimo, congele os termos dele em uma versão imutável, anexe encargos e taxas, vincule um perfil contábil e ative o produto para originação.

Um produto de empréstimo é o template a partir do qual todo empréstimo é originado. Definir um é uma sequência curta: crie o produto, versione os termos dele, descreva como ele é contabilizado no ledger e depois ative o produto. Você origina cada empréstimo contra uma **versão de produto**, e a ativação precisa que essa versão carregue um perfil contábil.

## Antes de começar

***

* Você precisa de um bearer token do Lender (um JWT emitido pelo seu Access Manager). Cada operação é autenticada e delimitada por tenant.
* Decida a qual [jurisdição](https://docs.lerian.studio/pt/products/lender/jurisdictions.md) o produto pertence. O crédito é registrado sob a jurisdição Brasil. A base genérica, `XX`, não registra crédito. Produtos brasileiros carregam campos extras cobertos no [Pacote regulatório Brasil](https://docs.lerian.studio/pt/products/lender/brazil-regulatory-pack.md).

## Passos

***

**1. Crie o produto**

`POST /api/v1/loan-products` registra o produto nomeado. Esta é a entrada de catálogo de onde as versões partem. O corpo traz o nome, o tipo de empréstimo e o código da jurisdição, e nada mais: um corpo com um campo que a operação não declara responde `422`. O Brasil tem um alias, `POST /api/v1/br/loan-products`, que recebe o mesmo corpo.

**2. Crie uma versão**

`POST /api/v1/loan-products/{id}/versions` congela um conjunto de termos (configuração de taxa, prazo e formato do cronograma) como uma **versão imutável**. Todo empréstimo remonta à versão que usou na originação. Você nunca edita uma versão, publica uma nova. Uma versão deve declarar a faixa de taxa e os tipos de tomador que admite, ou não origina nada. Os `terms` opcionais definem o que a versão admite: sistemas de amortização, periodicidades de pagamento, a contagem de dias (`monthly_30` por padrão), os valores pelos quais uma proposta pode ser pedida, as frentes de originação, quem emite o instrumento de crédito, se contratos podem ser cedidos, o modo de pagamento antecipado, encargos por atraso, limites de principal, prazo e parcelas, e a validade da cotação de quitação de 1 a 168 horas. Uma `firstDueDateWindow` limita a primeira data de vencimento que uma proposta pode escolher. Em uma versão brasileira, `jurisdictionExtensions` aceita apenas `taxRegime`, `admittedTaxRegimes`, `capitalizationClauseRequired`, `consumerProtectionRegime`, `cdcLateFeeCapPct`, `cdcDefaultInterestMonthlyPct`, `normPortfolioClass`, `normModality` e `scrModality`. Qualquer outra chave responde `422` (LENDER-0115).

**3. Anexe encargos**

`POST /api/v1/loan-product-versions/{id}/charge-templates` declara um template de encargo em uma versão. Uma versão aceita no máximo um template `origination_fee` (LENDER-0241), nunca um reembolsável (LENDER-0243) nem um em outra moeda (LENDER-0244), e uma revisão não pode mudar o `chargeType` do template (LENDER-0246). `POST /api/v1/loan-products/{id}/charges` aplica um template a uma conta de empréstimo. Um encargo datado depois de hoje responde `422` (LENDER-0990). O Lender cobra um encargo aplicado na próxima parcela aberta.

**4. Vincule um perfil contábil**

`POST /api/v1/loan-products/{id}/accounting-profiles` declara como o produto lança no ledger (O livro financeiro central que registra todas as transações, saldos e operações de uma organização. É a fonte única de verdade para as finanças de uma unidade de negócio.). O perfil traz as regras de lançamento (quais pernas de partida dobrada disparam para cada evento), e cada perna declara a `nature` da conta dela, `debit` ou `credit`. O array tem ao menos dez regras: `disbursement`, `repayment`, `prepayment`, `accrual`, `accrual_withholding`, `renegotiation_gain`, `renegotiation_loss`, `collection_unapplied`, `collection_reapply` e `collection_refund`. Uma perna que lança uma posição do tomador define `perOperation`, e o `account` dela vira um prefixo de até 17 letras, dígitos, `_` ou `-`. As demais pernas nomeiam uma conta compartilhada. Um produto cujas versões declaram atraso ou um template de encargo que um operador pode aplicar precisa de mais pernas e regras (LENDER-0426, LENDER-0989). O perfil nomeia a organização e o ledger do Midaz em que lança, e o Lender pode buscar ou criar o ledger quando você nomeia apenas a organização. Um perfil não pode nomear um ledger com validação de rotas do Midaz ligada (LENDER-0452), e toda versão de um produto lança em um único ledger (LENDER-0453). A ativação recusa uma versão sem perfil. Veja [Contabilidade e rodadas de apropriação](https://docs.lerian.studio/pt/products/lender/accounting-and-accrual-runs.md).

**5. Ative o produto**

`POST /api/v1/loan-products/{id}/activate` deixa o produto ativo e fixa a versão que você nomeia como a versão atual dele. Até a ativação, o produto não origina nada. Uma versão brasileira também precisa da sua carteira, `normPortfolioClass`, antes de ser ativada. Cada proposta nomeia a versão que ela usa na originação, então os empréstimos existentes ficam com a versão em que começaram.

## Promova uma versão nova

***

A ativação fixa a primeira versão. A promoção fixa todas as seguintes. Ela reaponta um produto que já está vivo para outra versão corrente, sem derrubar o produto e subir de novo.

`POST /api/v1/loan-products/{id}/promote` nomeia a versão a fixar. O Brasil tem um alias, `POST /api/v1/br/loan-products/{id}/promote`, que se comporta de forma idêntica.

A promoção carrega as mesmas duas checagens de prontidão que a ativação carrega: um perfil contábil presente e uma versão completa para a jurisdição dela. Ela as carrega porque é o mesmo ato. Um segundo caminho sem elas seria uma forma silenciosa de burlar o primeiro.

| Recusa | O que significa |
| - | - |
| `LENDER-0101` (`409`) | O produto não está ativo, então não há versão corrente para reapontar. Ative-o em vez disso, nomeando a versão a fixar. |
| `LENDER-0102` (`422`) | A versão nomeada não é uma versão deste produto. Leia as versões do próprio produto e nomeie uma delas. |

> [!WARNING]
>
> **A promoção não muda contrato nenhum nem proposta nenhuma.** Todo empréstimo já escrito fica com a versão em que nasceu. O cronograma, a precificação e os encargos dele leem daquela versão a vida inteira do empréstimo. Toda proposta ainda em voo também fica com a versão dela. Só propostas novas leem a versão corrente.

## Inspecionando produtos

***

| Operação | Finalidade |
| - | - |
| `GET /api/v1/loan-products` | Listar produtos de empréstimo. |
| `GET /api/v1/loan-products/{id}` | Ler um único produto, incluindo a versão fixada como atual. |
| `GET /api/v1/loan-products/{id}/floating-rates` | Ler a tabela de taxas flutuantes do produto, se ele referenciar uma. |

## O que acontece downstream

***

Criar e ativar produtos emite `loan_product.created`, `loan_product_version.created`, `loan_product.activated`, `accounting_profile.configured` e `loan_charge.applied` no backbone de eventos (veja [O Lender na plataforma](https://docs.lerian.studio/pt/products/lender/lender-in-the-platform.md)).

## Próximos passos

***

> [card] [Origine um empréstimo](https://docs.lerian.studio/pt/products/lender/originate-a-loan.md)
>
> Pegue um produto ativo e origine um empréstimo contra ele.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.