application/json. Envía cada campo de dinero y de tasa como una cadena decimal, nunca como un número JSON.
Completa primero los Requisitos previos. Envía el mismo Bearer token en las siete llamadas. Lender registra el sujeto del token como el oficial asignado de la solicitud. Ninguna decisión lo comprueba: cualquier operador o admin que tenga el permiso de la ruta puede aprobar, rechazar, retirar o desembolsar una solicitud directa.
Este recorrido registra un préstamo brasileño con el régimen tributario
none, que no calcula IOF y mantiene simples los montos del paso 7. Lee el Paquete regulatorio de Brasil para un producto que retiene IOF. Un contrato con descuento en nómina pertenece al contexto delimitado de consignado privado. Lee Consignado privado para su vocabulario y sus temas de ciclo de vida.Las siete llamadas
1. Crear el producto
POST /api/v1/loan-products
loanType toma personal, commercial o card. jurisdictionCode es BR. Cualquier otro código devuelve 422.
La respuesta lleva el nuevo id. El producto está en draft.
2. Crear una versión
POST /api/v1/loan-products/{productId}/versions
currencyno tiene valor predeterminado. Aporta un código ISO-4217 válido en mayúsculas. La versión es la fuente de verdad de la moneda desde aquí hasta el ledger.fixedMonthlyRatees la tasa mensual, como cadena decimal:"0.01500000"es 1.5% al mes.rateBandes obligatorio. Es la banda de precio que la versión autoriza, en puntos básicos anuales efectivos. Lender convierte una tasa mensualmen(1 + m)^12 - 1antes de compararla con la banda. Una solicitud cuya tasa queda fuera de la banda se rechaza, y una tasa fija fuera de la banda de la propia versión también.admittedBorrowerKindsnombra a quién le presta la versión. Una lista vacía u omitida no admite a ningún prestatario.normPortfolioClasses la carteira. Una versión brasileña sin carteira no se puede activar en el paso 4.- Una versión fija no lleva vínculo flotante. Con
rateMode: fixed, omitefloatingRateTableId,floatingSpreadBpsyrequiresFloatingRate. Lender rechaza una versión fija que lleve alguno de ellos. jurisdictionCodees obligatorio, y debe coincidir con el del producto. Una versión no puede mover un producto a otra jurisdicción.
versionId.
3. Vincular un perfil contable
POST /api/v1/loan-products/{productId}/accounting-profiles
El perfil asigna cada evento contable a cuentas del ledger. La activación rechaza un producto sin perfil, así que vincúlalo ahora.
disbursement, repayment, prepayment, accrual, accrual_withholding, renegotiation_gain, renegotiation_loss, collection_unapplied, collection_reapply, collection_refund, provision_constitution, provision_reversal, provision_incurred_constitution y provision_incurred_reversal. El array acepta como máximo 40 reglas, y Lender rechaza un plan sin las catorce. Los demás tipos de evento son opcionales. La provisión adicional (provision_constitution) y la pérdida incurrida (provision_incurred_constitution) acreditan dos cuentas de provisión distintas, o Lender rechaza el plan con LENDER-0455.
Cada pierna declara exactamente uno entre role y component, un side y una nature. nature es la naturaleza propia de la cuenta, no el lado de la pierna: debit para un activo o un gasto, credit para un pasivo, un patrimonio o un ingreso. Midaz fija la dirección del saldo de la cuenta a partir de ella. Una pierna que contabiliza una posición del prestatario (principal, interest, unapplied_cash y similares) define perOperation: true. Su account pasa a ser un prefijo de hasta 17 letras, dígitos, _ o -, y Lender abre una cuenta por cuenta de préstamo bajo ese prefijo. Cualquier otro account es un alias de hasta 50 letras, dígitos, :, _ o -, así que un punto se rechaza (LENDER-0429). Una posición del prestatario contabilizada en una cuenta compartida se rechaza (LENDER-0408). Las piernas de ingreso y el crédito de accrual_withholding siguen compartidos. Ninguna cuenta aparece en los dos lados de la misma regla. Los siguientes eventos también tienen una forma fija de piernas:
collection_reapply acepta unapplied_cash como único débito. Cada crédito que lleva también debe aparecer como crédito en repayment o prepayment, con la misma cuenta y el mismo rol. disbursement y repayment necesitan al menos un débito y un crédito cada uno, y repayment debe acreditar una pierna interest en la cuenta que accrual debita (LENDER-0440).
Lee Definir un producto de préstamo para la superficie de producto más amplia.
4. Activar el producto
POST /api/v1/loan-products/{productId}/activate
5. Crear la solicitud
POST /api/v1/loan-applications
Envía el header X-Idempotency. Lender lo requiere en esta llamada y en los pasos 6 y 7. Un reintento con el mismo valor repite la primera respuesta y no escribe nada nuevo.
borrowerDocumentes el CPF o el CNPJ del prestatario, con o sin máscara. Los dígitos verificadores deben ser válidos. Un CPF hace al prestatariopessoaFisica, un CNPJ lo hacepessoaJuridica, y la versión debe admitir ese tipo.borrowerNamees obligatorio. Lender busca al prestatario como titular en el CRM de Midaz de la institución del producto y registra uno cuando no existe. ElborrowerIdde la respuesta es ese titular, y la solicitud guarda solo ese id.requestedInterestRatees la tasa mensual como cadena decimal a escala 8. Debe ser mayor que0y no mayor que1. Lender construye el cronograma a partir de esta tasa y la compara con la banda de tasa de la versión en puntos básicos anuales efectivos:"0.01500000"al mes son cerca de1956bps efectivos al año, dentro de la banda del paso 2.requestedInstallmentsestá entre 1 y 600.previewScheduleSnapshotIdes opcional. Para citar la cotización que le mostraste al prestatario, envía elscheduleOfferSnapshotIdque devolvióPOST /api/v1/loan-applications/preview-schedule.- Una solicitud indica exactamente uno entre
requestedPrincipalAmount,requestedNetAmountyrequestedInstallmentAmount. No existe el campoassignedOfficerId: Lender define al oficial a partir del sujeto del token. firstDueDateygracePeriodDaysson opcionales. Omite ambos, y la solicitud registra la primera fecha de vencimiento que el generador de cronograma define paraexpectedDisbursementDate. Todo cronograma y la liberación dependen de esa fecha.
pending_approval, con el código de jurisdicción y la versión de perfil que Lender resolvió desde la versión de producto.
6. Aprobar
POST /api/v1/loan-applications/{id}/approve
approvedAmount se vuelve el techo de todo lo que desembolsas. La solicitud pasa a approved y lleva el registro de decisión.
7. Desembolsar
POST /api/v1/loan-applications/{id}/disburse
loanAccountId es un UUID que tú proporcionas. Lender no lo genera. Identifica la cuenta de préstamo bajo la cual se administra este contrato, y es inmutable en las tramos posteriores de la misma solicitud. Omite disbursedAt y Lender usa el ahora de negocio del tenant. La primera liberación mantiene la primera fecha de vencimiento que registró la solicitud, así que envía expectedDisbursementDate en el paso 5 como el día en que desembolsas. Una versión sin ventana de primer vencimiento rechaza una liberación en cualquier otro día (LENDER-0951) y un firstDueDate distinto del registrado (LENDER-0950). Lender calcula el IOF y congela el CET de todo desembolso en efectivo a partir del régimen tributario de la versión. jurisdictionExtensions es opcional, y Lender lee de él solo el consentimiento de la cláusula de capitalización.
Lender también verifica que:
netDeliveredAmountno excedagrossRequestedAmount.grossRequestedAmountsea igual aapprovedAmount, porque este es el único desembolso de la solicitud. Una liberación en tramos declaratrancheNumber, y su total acumulado no excedeapprovedAmount.decisionAtydisbursedAt, cuando los envías, no son anteriores a la creación de la solicitud, ydisbursedAtno es anterior a la decisión de aprobación.- La jurisdicción y la versión de perfil todavía coincidan con el par que Lender resolvió en el paso 5.
Confirmar que el préstamo existe
La respuesta del desembolso lleva la solicitud en
disbursed con su evento de desembolso. Luego lee la cuenta de préstamo:
La respuesta también lleva
profileVersion, la versión del perfil de jurisdicción, no una versión de producto. No lleva moneda. El préstamo usa el currency que definiste en la versión de producto de préstamo en el paso 2.
El asiento del desembolso llega al ledger de Midaz cuando el despachador del outbox retransmite la intención. Eso ocurre poco después de la llamada, no dentro de ella.
Próximos pasos
Administrar un préstamo
Registra pagos, anticipa, reprograma y corrige una cuenta de préstamo viva.
Cómo funciona el devengo
El reconocimiento de intereses corre con su propia programación. Inicia una ejecución de devengo, o habilita el heartbeat.

