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

# Prepay loan account (BR alias)

> BR-aliased path for prepaying a loan account. Resolves to the same handler as the core endpoint, with the jurisdiction resolver inserted into the chain. Provide exactly one of amount or quoteId (or both, with amount equal to the quote's net settlement amount). Idempotency is enforced by the lib-commons idempotency middleware via the X-Idempotency header; a reused key with different facts yields 409. A malformed UUID or amount yields 422.



## OpenAPI

````yaml en/openapi/v3-current/lender.yaml post /api/v1/br/loan-accounts/{id}/prepayments
openapi: 3.1.0
info:
  contact:
    email: contact@lerian.studio
    name: Lerian Studio
    url: https://lerian.studio
  description: Code-first OpenAPI 3.1 surface for the Lender service.
  license:
    name: Lerian Studio General License
  title: Lender API
  version: 1.0.0
servers:
  - url: https://lender.sandbox.lerian.net
security:
  - BearerAuth: []
tags:
  - description: >-
      Ledger accounting operations: journal entries and accrual postings for
      loan accounts.
    name: Accounting
  - description: >-
      Loan application intake and lifecycle: submission, decisioning, and
      status.
    name: LoanApplications
  - description: >-
      Loan product catalog: definition, versioning, and activation of lending
      products.
    name: LoanProducts
  - description: >-
      Loan account servicing operations: balances, schedules, and account-level
      actions.
    name: Loan Accounts
  - description: >-
      Servicing read operations: repayment schedules and servicing state for
      loan accounts.
    name: Servicings
  - description: >-
      Portfolio dashboard read operations: aggregated portfolio and performance
      views.
    name: Dashboard
  - description: >-
      Jurisdiction registry: supported jurisdiction profiles and their
      capabilities.
    name: Jurisdictions
  - description: >-
      Jurisdiction-specific loan application operations (Brazil origination
      surface).
    name: Loan Applications
  - description: >-
      Tax computation operations for jurisdiction-specific lending (e.g. Brazil
      IOF).
    name: Tax
  - description: >-
      Brazil consignado privado operations: contract origination (contratação
      ativa) and lifecycle.
    name: Consignado
paths:
  /api/v1/br/loan-accounts/{id}/prepayments:
    post:
      tags:
        - Loan Accounts
      summary: Prepay loan account (BR alias)
      description: >-
        BR-aliased path for prepaying a loan account. Resolves to the same
        handler as the core endpoint, with the jurisdiction resolver inserted
        into the chain. Provide exactly one of amount or quoteId (or both, with
        amount equal to the quote's net settlement amount). Idempotency is
        enforced by the lib-commons idempotency middleware via the X-Idempotency
        header; a reused key with different facts yields 409. A malformed UUID
        or amount yields 422.
      operationId: prepayLoanAccountBR
      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/PrepayLoanAccountHumaRequest'
        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:
    PrepayLoanAccountHumaRequest:
      additionalProperties: false
      properties:
        amount:
          description: Prepayment amount (2 d.p. string). Required when quoteId is empty.
          examples:
            - '100.00'
          type: string
        businessDate:
          description: YYYY-MM-DD business date applied to the prepayment.
          examples:
            - '2026-06-14'
          type: string
        effectiveDate:
          description: YYYY-MM-DD effective date of the prepayment.
          examples:
            - '2026-06-14'
          type: string
        quoteId:
          description: Settlement quote identifier. Required when amount is empty.
          examples:
            - 550e8400-e29b-41d4-a716-446655440020
          format: uuid
          type: string
        transactionId:
          description: Operator-supplied prepayment transaction identifier.
          maxLength: 128
          type: string
      required:
        - transactionId
        - effectiveDate
        - businessDate
      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

````