/api/v1, e nada é versionado no host. Uma lista de produtos é GET /api/v1/loan-products.
Esta página cobre o que as operações compartilham e depois as agrupa pela tarefa que fazem. Cada operação tem uma página própria sob a âncora Lender na Referência da API, com os formatos completos de requisição e de resposta.
Os documentos OpenAPI neste portal são fontes de renderização das páginas de referência. Eles não são contratos de cliente, e não são base para geração de SDK.
Autenticação
A autenticação é configurada por deploy.
PLUGIN_AUTH_ENABLED tem true como padrão. Quando habilitada, as rotas protegidas exigem um token bearer JWT:
tenantId da identidade validada.
Duas leituras são públicas e não pedem token: listar jurisdições e ler uma jurisdição. O registro é metadado de deploy, então um cliente consegue lê-lo antes de ter uma identidade.
As probes ficam fora da autenticação para que um orquestrador as alcance sem token: /health, /readyz e /version.
Autorização
O Lender autoriza cada requisição contra a aplicação
lender, um recurso e uma ação. O recurso acompanha a superfície, e as ações são granulares em vez de uma escrita única:
Conceda ao papel do analista apenas as ações de que a função dele precisa. O Lender define os papéis e as permissões dele em um arquivo de seed que você carrega no seu provedor de identidade. Pré-requisitos mostra o conjunto mínimo para a originação.
Identidade do tenant e do analista
O tenant nunca é um header, um parâmetro de query nem um campo de corpo. Um Lender self-hosted usa
DEFAULT_TENANT_ID. Na Lerian Cloud, o Lender resolve o tenant a partir da identidade validada.
O analista responsável vem do subject do token da mesma forma. Nenhum corpo de proposta de empréstimo carrega um campo de analista, e nenhum valor fornecido pelo cliente sobrepõe o subject.
Requisições e respostas
Envie valores de dinheiro e taxas decimais como
requestedInterestRate na forma de strings decimais: "50000.00", "0.01500000". Os valores de versão de produto e de taxa flutuante fixedAnnualRateBps, floatingSpreadBps e annualRateBps são pontos-base inteiros. Os timestamps são RFC 3339 em UTC.
Idempotência
O Lender submete 29 operações a um contrato de no máximo uma vez, em duas classes. A classe decide qual header você envia e onde mora a garantia.
Envie a sua própria chave. Nas 26 operações impostas na borda:
- Uma nova tentativa de uma chamada concluída repete a primeira resposta e carimba
X-Idempotency-Replayed: truenela. O Lender não registra nada uma segunda vez. - Uma nova tentativa enquanto a primeira chamada ainda está em andamento responde
409. Aguarde e leia o recurso. Não envie o comando de novo. - Uma requisição que não carrega chave responde
400com o códigoIDEMPOTENCY_KEY_REQUIRED. A chave é um header obrigatório no schema da operação, então a recusa acontece antes de qualquer lógica de handler rodar. - Uma chave enviada com uma grafia que o Lender não lê (
Idempotency-KeyouX-Idempotency-Key) responde400com o códigoIDEMPOTENCY_KEY_HEADER_UNKNOWN, em vez de executar o comando desprotegido. Enviar uma dessas junto com o header do contrato não é problema. A recusa só dispara quandoX-Idempotencyestá ausente. - O Lender delimita a chave ao seu tenant, e a chave expira depois da janela que
IDEMPOTENCY_RETRY_WINDOW_SECdefine, cujo padrão é 86400 segundos (24 horas).
503 com o código IDEMPOTENCY_UNAVAILABLE em vez de executar desprotegida.
Toda recusa carrega um código legível por máquina, e o cliente decide com base nele entre reenviar e conciliar. Os códigos IDEMPOTENCY_OUTCOME_UNKNOWN e IDEMPOTENCY_OUTCOME_UNKNOWN_UNFENCED dizem que a requisição alcançou o handler e que o resultado não pode ser estabelecido. Leia o recurso antes de decidir. Os códigos de recusa formam um contrato publicado. Renomear um código quebra esse contrato.
As três operações transacionais funcionam de outro jeito. Todas leem X-Request-ID primeiro e recorrem a X-Idempotency quando ele está ausente. Envie um dos dois: uma chamada que não carrega nenhum responde 422.
O Lender guarda o id da requisição no banco de dados junto com os fatos da chamada. Uma nova tentativa que carrega o mesmo id e os mesmos fatos repete a primeira resposta pelo caminho normal de resposta, sem header de repetição. O mesmo id de requisição com fatos diferentes responde 409 em vez de repetir, então um id nunca pode registrar dois valores diferentes. Esse registro não expira.
Os fatos que o Lender compara mudam conforme a operação:
Paginação
A paginação é por operação, não global. Leia a página de referência da operação que você chama, e envie apenas os parâmetros que ela declara.
O Lender rejeita um valor fora do intervalo em vez de ajustá-lo. Cada outra leitura declara os parâmetros próprios, então restrinja a leitura com os identificadores e filtros da página de referência dela.
Erros
Erros do Huma e do handler global respondem
application/problem+json e seguem a RFC 9457. Os middlewares de autorização e de idempotência podem usar formatos de resposta próprios.
Ramifique por status e por content type. Para um
422, use errors quando presente. A validação de handler ou de domínio pode retornar apenas o detail de topo. Uma falha do lado do servidor responde com um detail genérico, então uma causa crua nunca chega a um cliente.
As operações por tarefa
Catalogue um produto
Oito operações cuidam do catálogo. Criar um produto e acrescentar uma versão montam os termos a que uma proposta se prende. A versão é imutável. Prender um perfil contábil mapeia cada evento contábil em contas contábeis, e a ativação exige esse perfil. Aplicar um encargo e ler taxas flutuantes completam a superfície, ao lado de listar, ler e ativar. Leia Defina um produto de empréstimo.Origine
Seis operações levam uma proposta de enviada até desembolsada: criar, depois uma entre aprovar, rejeitar ou retirar, e então desembolsar. Ver a prévia de um cronograma calcula as parcelas de uma cotação e pode registrá-la como oferta. Listar e ler consultam propostas. Leia Como funciona a originação para a máquina de estados e Início rápido para as sete chamadas de ponta a ponta.Faça a gestão de um empréstimo vivo
Cinco leituras descrevem a conta: a conta, o cronograma dela, as transações dela, os encargos dela e o histórico de auditoria dela. Cinco escritas movem dinheiro ou o cronograma: ver a prévia de um pagamento antes de registrá-lo, antecipar, reprogramar e estornar uma transação. Nada reescreve o histórico. Um estorno lança uma transação nova que compensa a original. Leia Faça a gestão de um empréstimo.Contabilize e lance
Começar uma rodada de apropriação reconhece juros de um período de competência. Listar referências de diário por id de correlação e ler uma para achar o registro contábil que uma rodada gravou. Leia Contabilidade e rodadas de apropriação.Descubra jurisdições
As duas leituras públicas informam quais códigos de jurisdição este deploy carrega e o que cada perfil decide. Leia Jurisdições.Brasil
O pacote Brasil adiciona leituras e escritas reguladas sob/api/v1/br. Elas são divulgação do CET, o descritor da operação de crédito, estágio de PDD e as transições dele, uma cotação de pagamento antecipado com o demonstrativo de quitação dela, prévia de tributos e consentimento de capitalização. O pacote também carrega caminhos de produto próprios, que se comportam como os genéricos sob as regras brasileiras. Leia Pacote regulatório Brasil.
A jornada com desconto em folha é uma conversa por eventos com o trilho de folha de pagamento, não um conjunto de chamadas REST. Leia Consignado privado.
Mais superfícies
Cada uma destas famílias tem suas próprias operações na referência.- Ceda recebíveis a um fundo.
/api/v1/assignment/...registra fundos, monta e pontua lotes de recebíveis contra a regra de elegibilidade de um fundo, e aprova ou descarta os lotes. Ele também produz o arquivo de oferta e o termo de endosso, e ingere o arquivo de retorno do administrador. Ele registra fatos observados externamente, registra o instrumento de crédito de um recebível na registradora e trabalha a fila de exceções. - Cobre um pagamento devolvido.
/api/v1/returned-payment-receivableslista e lê as dívidas separadas do tomador que um pagamento final estornado abre quando o contrato que ele encerrou já não pode receber o dinheiro de volta. Ele também registra uma cobrança contra uma delas. - Promova uma versão de produto.
POST /api/v1/loan-products/{id}/promotereaponta um produto ativo para outra de suas versões. Como resultado, novas propostas passam a originar nela, enquanto contratos já escritos ficam na versão em que nasceram. O apelido Brasil da operação é/api/v1/br/loan-products/{id}/promote. - Leia e revise versões de produto.
/api/v1/loan-product-versionslista e lê os retratos de versão, e declara uma revisão do modelo de encargos em um deles. Pelo pacote Brasil, ele também declara a classificação normativa de uma versão. - Modele os documentos.
/api/v1/loan-products/{productId}/document-templatese a superfície equivalente sob um fundo de cessão rascunham, leem e publicam as versões de modelo a partir das quais o Lender renderiza um documento gerado. - Tabele as taxas flutuantes.
/api/v1/rate-tablescria uma tabela de taxa flutuante e acrescenta os períodos de onde o Lender lê a taxa de um produto flutuante. - Emita um instrumento de crédito.
/api/v1/loan-applications/{applicationId}/credit-instrumentsemite o instrumento que evidencia uma proposta, lista os instrumentos emitidos e baixa um deles. - Acompanhe uma execução de accrual.
/api/v1/accrual-runslista execuções, lê uma delas e suas decisões item a item, e reenvia ao razão os reconhecimentos que ele não confirmou, porPOST /api/v1/accrual-runs/{id}/retry. A superfície/api/v1/accounting-profileslista os perfis configurados. O par de sucessão substitui o plano de contas de um produto e liquida a mudança nos saldos de cada contrato vivo. - Observe a carteira.
/api/v1/dashboard/portfolioe as duas leituras de inadimplência respondem a partir do retrato diário da carteira. A varredura diária de promoção de PDD constrói esse retrato para a data-base dela antes de varrer, e vem habilitada, então um deploy padrão tem um. O job separadocore-daily-portfolio-snapshotaciona o mesmo produtor no próprio agendamento para deploys que queiram construí-lo independentemente da varredura. - Escalone os estágios de provisão.
/api/v1/br/pdd-stage-ladderspublica uma versão de escada de estágios de PDD e lê a que está em vigor. - Trabalhe a cobrança extraordinária.
/api/v1/br/consignado/collection-instructionse o par de liquidação listam as instruções abertas e ingerem o Arquivo de Baixa Extraordinária do agente de cobrança. Eles também listam as linhas que ele recusou. A superfície de operação sob/api/v1/internal/br/consignado/...nomeia o canal do agente, trabalha linhas e itens de inbox em quarentena e dá destino a restituições de desconto a maior devidas aos trabalhadores. - Inspecione a identidade e o fluxo.
GET /api/v1/meinforma a sessão para a qual o token resolve, eGET /api/v1/internal/streaming/discardslista os registros de entrada colocados em quarentena pelos consumidores.
Próximos passos
Início rápido
Sete chamadas de um banco de dados vazio até um empréstimo desembolsado.
Eventos
Assine a jornada de crédito em vez de fazer polling.
Referência da API
Cada operação, com os formatos completos de requisição e de resposta.
Pré-requisitos
Os serviços, as migrations e a configuração de que uma primeira chamada precisa.

