> ## 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.

# Reprogramar la cuenta de préstamo

> Anexa una versión inmutable del cronograma reprogramado y un disparador de recálculo. La idempotencia se aplica mediante el middleware de idempotencia de lib-commons a través del encabezado X-Idempotency; una clave reutilizada con datos diferentes produce 409. Un UUID mal formado produce 422.



## OpenAPI

````yaml es/openapi/v3-current/lender.yaml post /api/v1/loan-accounts/{id}/reschedules
openapi: 3.1.0
info:
  contact:
    email: contact@lerian.studio
    name: Lerian Studio
    url: https://lerian.studio
  description: Superficie OpenAPI 3.1 code-first del servicio Lender.
  license:
    name: Lerian Studio General License
  title: Lender API
  version: 1.0.0
servers:
  - url: https://lender.sandbox.lerian.net
security:
  - BearerAuth: []
tags:
  - description: >-
      Operaciones de contabilidad del ledger: entradas de journal y asientos de
      accrual para cuentas de préstamo.
    name: Accounting
  - description: >-
      Recepción y ciclo de vida de la solicitud de préstamo: envío, decisión y
      estado.
    name: LoanApplications
  - description: >-
      Catálogo de productos de préstamo: definición, versionado y activación de
      productos de crédito.
    name: LoanProducts
  - description: >-
      Operaciones de servicing de cuentas de préstamo: saldos, cronogramas y
      acciones a nivel de cuenta.
    name: Loan Accounts
  - description: >-
      Operaciones de lectura de servicing: cronogramas de reembolso y estado de
      servicing para cuentas de préstamo.
    name: Servicings
  - description: >-
      Operaciones de lectura del panel de cartera: vistas agregadas de cartera y
      de rendimiento.
    name: Dashboard
  - description: >-
      Registro de jurisdicciones: perfiles de jurisdicción soportados y sus
      capacidades.
    name: Jurisdictions
  - description: >-
      Operaciones de solicitud de préstamo específicas por jurisdicción
      (superficie de originación de Brasil).
    name: Loan Applications
  - description: >-
      Operaciones de cálculo de impuestos para crédito específico por
      jurisdicción (por ejemplo, IOF de Brasil).
    name: Tax
  - description: >-
      Operaciones de consignado privado de Brasil: originación de contrato
      (contratación activa) y ciclo de vida.
    name: Consignado
paths:
  /api/v1/loan-accounts/{id}/reschedules:
    post:
      tags:
        - Loan Accounts
      summary: Reprogramar la cuenta de préstamo
      description: >-
        Anexa una versión inmutable del cronograma reprogramado y un disparador
        de recálculo. La idempotencia se aplica mediante el middleware de
        idempotencia de lib-commons a través del encabezado X-Idempotency; una
        clave reutilizada con datos diferentes produce 409. Un UUID mal formado
        produce 422.
      operationId: rescheduleLoanAccount
      parameters:
        - description: Loan account identifier (UUID).
          in: path
          name: id
          required: true
          schema:
            description: Loan account identifier (UUID).
            examples:
              - 550e8400-e29b-41d4-a716-446655440000
            format: uuid
            type: string
        - description: >-
            Canonical idempotency request ID. Enforced by the lib-commons
            idempotency middleware.
          in: header
          name: X-Idempotency
          required: true
          schema:
            description: >-
              Canonical idempotency request ID. Enforced by the lib-commons
              idempotency middleware.
            examples:
              - 550e8400-e29b-41d4-a716-446655440011
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RescheduleLoanAccountHumaRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduleVersionCommandHumaBody'
          description: Created
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
components:
  schemas:
    RescheduleLoanAccountHumaRequest:
      additionalProperties: false
      properties:
        businessDate:
          description: YYYY-MM-DD business date applied to the reschedule.
          examples:
            - '2026-06-14'
          type: string
        effectiveDate:
          description: YYYY-MM-DD effective date of the reschedule.
          examples:
            - '2026-06-14'
          type: string
        firstRescheduledDueDate:
          description: YYYY-MM-DD first due date of the rescheduled plan.
          examples:
            - '2026-06-14'
          type: string
        newTermMonths:
          description: New loan term in months.
          examples:
            - 24
          format: int64
          minimum: 1
          type: integer
        reason:
          description: Operator-supplied reschedule reason.
          maxLength: 128
          type: string
        transactionId:
          description: Operator-supplied reschedule transaction identifier.
          maxLength: 128
          type: string
      required:
        - transactionId
        - newTermMonths
        - firstRescheduledDueDate
        - effectiveDate
        - businessDate
        - reason
      type: object
    ScheduleVersionCommandHumaBody:
      additionalProperties: false
      properties:
        previousScheduleVersionId:
          description: Predecessor schedule version UUID.
          examples:
            - 550e8400-e29b-41d4-a716-446655440031
          type: string
        scheduleVersion:
          $ref: '#/components/schemas/ScheduleVersionHumaBody'
          description: The newly appended immutable schedule version.
      required:
        - previousScheduleVersionId
        - scheduleVersion
      type: object
    Detail:
      additionalProperties: false
      properties:
        code:
          description: >-
            Stable, machine-readable domain error code scoped to the emitting
            service (format: <SERVICE>-NNNN).
          examples:
            - ERR-0001
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
      type: object
    ScheduleVersionHumaBody:
      additionalProperties: false
      properties:
        createdAt:
          description: ISO-8601 creation timestamp (UTC).
          examples:
            - '2026-06-14T12:00:00Z'
          type: string
        id:
          description: Schedule version UUID.
          examples:
            - 550e8400-e29b-41d4-a716-446655440030
          type: string
        installments:
          description: Recalculated installment schedule.
          items:
            $ref: '#/components/schemas/ScheduleVersionInstallmentHumaBody'
          type:
            - array
            - 'null'
        loanAccountId:
          description: Loan account UUID.
          examples:
            - 550e8400-e29b-41d4-a716-446655440000
          type: string
        predecessorVersionId:
          description: Predecessor schedule version UUID, if any.
          examples:
            - 550e8400-e29b-41d4-a716-446655440031
          type: string
        reason:
          description: Reason the version was appended.
          type: string
        triggerTransactionId:
          description: Transaction that triggered the recalculation.
          type: string
        versionNumber:
          description: Monotonic schedule version number.
          examples:
            - 2
          format: int64
          type: integer
      required:
        - id
        - loanAccountId
        - versionNumber
        - reason
        - triggerTransactionId
        - createdAt
        - installments
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
    ScheduleVersionInstallmentHumaBody:
      additionalProperties: false
      properties:
        dueDate:
          description: ISO-8601 due date.
          examples:
            - '2026-06-14T12:00:00Z'
          type: string
        feesAmount:
          description: Fees due (2 d.p. string).
          examples:
            - '3.50'
          type: string
        interestAmount:
          description: Interest due (2 d.p. string).
          examples:
            - '20.00'
          type: string
        number:
          description: Installment ordinal (1-based).
          examples:
            - 3
          format: int64
          type: integer
        penaltiesAmount:
          description: Penalties due (2 d.p. string).
          examples:
            - '1.50'
          type: string
        principalAmount:
          description: Principal due (2 d.p. string).
          examples:
            - '100.00'
          type: string
        principalRemaining:
          description: >-
            Unpaid principal for THIS installment (per-installment, 2 d.p.
            string) — not the whole-loan declining balance.
          examples:
            - '100.00'
          type: string
        totalAmount:
          description: Total due (2 d.p. string).
          examples:
            - '125.00'
          type: string
      required:
        - number
        - dueDate
        - principalAmount
        - principalRemaining
        - interestAmount
        - feesAmount
        - penaltiesAmount
        - totalAmount
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      description: JWT bearer token issued by the identity provider.
      scheme: bearer
      type: http

````