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

# Reconcile a contract's deferred origination fee

> Reads the ledger lines of the contract's own deferred-fee accounts, across every chart it lived under, into deferred, recognised, released and remaining, and holds the deferred figure against the fee the contract record says was retained. The contract is named by its loan account alone: product version, disbursement day, currency and retained fee come from the tenant's contract record. A ledger that does not answer is status UNAVAILABLE, not an error.



## OpenAPI

````yaml /pt/openapi/v3-current/lender.yaml get /api/v1/loan-accounts/{id}/deferred-fee-reconciliation
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. Routes that move
    money are at-most-once per X-Idempotency: when one answers 5xx, the
    X-Idempotency-Fenced response header says whether that key is now refusing
    resends (true) or free to retry (false or absent). See
    docs/contracts/money-route-idempotency.md.
  license:
    name: Lerian Studio General License
  title: Lender API
  version: 1.0.0
servers:
  - url: https://lender.sandbox.lerian.net
security:
  - BearerAuth: []
tags:
  - description: >-
      Caller session projection: validated subject and effective permissions for
      the presented token.
    name: Session
  - 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: >-
      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 lifecycle, exclusion
      repair, and compensating adjustments.
    name: Consignado
  - description: >-
      Credit-instrument document template registry: versioned drafting and
      publication of CCB clausulado.
    name: DocumentTemplates
paths:
  /api/v1/loan-accounts/{id}/deferred-fee-reconciliation:
    get:
      tags:
        - Accounting
      summary: Reconcile a contract's deferred origination fee
      description: >-
        Reads the ledger lines of the contract's own deferred-fee accounts,
        across every chart it lived under, into deferred, recognised, released
        and remaining, and holds the deferred figure against the fee the
        contract record says was retained. The contract is named by its loan
        account alone: product version, disbursement day, currency and retained
        fee come from the tenant's contract record. A ledger that does not
        answer is status UNAVAILABLE, not an error.
      operationId: getDeferredFeeReconciliation
      parameters:
        - description: Loan account identifier of the contract.
          in: path
          name: id
          required: true
          schema:
            description: Loan account identifier of the contract.
            examples:
              - 550e8400-e29b-41d4-a716-446655440003
            format: uuid
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeferredFeeReconciliationHumaBody'
          description: OK
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Unauthorized
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Forbidden
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Not Found
        '409':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Conflict
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Internal Server Error
        '503':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Service Unavailable
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: >-
            Any other status this operation may carry, rendered as a problem
            document — including a refusal produced ahead of the service, such
            as a gateway or ingress answering on its behalf.
components:
  schemas:
    DeferredFeeReconciliationHumaBody:
      additionalProperties: false
      properties:
        accounts:
          description: >-
            The contract's own deferred-fee accounts the figures were read from,
            one per chart the contract lived under, oldest first; always
            present, empty when the contract's charts defer no fee.
          items:
            type: string
          type:
            - array
            - 'null'
        currency:
          description: Asset the fee is held in.
          examples:
            - BRL
          type: string
        figures:
          $ref: '#/components/schemas/DeferredFeeFiguresHumaBody'
          description: >-
            What the ledger holds on the fee accounts. Present on MATCH and
            DIVERGENT, absent on UNAVAILABLE.
        loanAccountId:
          description: Loan account (uuid) of the contract reconciled.
          examples:
            - 550e8400-e29b-41d4-a716-446655440003
          type: string
        retainedFee:
          description: >-
            Fee the contract record says was withheld at disbursement, summed
            over every tranche, as a fixed two-decimal string.
          examples:
            - '150.00'
          type: string
        status:
          description: >-
            MATCH: the ledger deferred exactly the fee the contract retained.
            DIVERGENT: the two differ, or remaining is negative (the fee was
            earned more than once); figures.difference says by how much.
            UNAVAILABLE: the ledger did not answer, so figures is absent.
          enum:
            - MATCH
            - DIVERGENT
            - UNAVAILABLE
          type: string
      required:
        - loanAccountId
        - currency
        - status
        - accounts
        - retainedFee
      type: object
    Detail:
      additionalProperties: true
      properties:
        code:
          description: >-
            Stable, machine-readable domain error code scoped to the emitting
            service (format: <SERVICE>-NNNN).
          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
        upstream:
          $ref: '#/components/schemas/Upstream'
          description: >-
            RFC 9457 extension member: the error a proxied third-party provider
            reported. Absent unless the emitting service explicitly surfaced
            one.
      type: object
    DeferredFeeFiguresHumaBody:
      additionalProperties: false
      properties:
        deferred:
          description: Credited to the fee accounts at disbursement.
          examples:
            - '150.00'
          type: string
        difference:
          description: >-
            Present only when DIVERGENT: deferred - retainedFee, or the negative
            remaining when the deferral agrees.
          examples:
            - '-150.00'
          type: string
        recognised:
          description: >-
            Amortised to income so far, including the full release an early exit
            runs through the monthly amortization.
          examples:
            - '25.00'
          type: string
        released:
          description: Moved out by a substantial renegotiation clearing the contract.
          examples:
            - '125.00'
          type: string
        remaining:
          description: deferred - recognised - released.
          examples:
            - '0.00'
          type: string
      required:
        - deferred
        - recognised
        - released
        - remaining
      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
    Upstream:
      additionalProperties: false
      properties:
        code:
          description: The upstream provider's own error code, verbatim.
          examples:
            - E4001
          type: string
        message:
          description: >-
            The upstream provider's own error message, verbatim (bounded, never
            its raw response body).
          examples:
            - account not found at provider
          type: string
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      description: JWT bearer token issued by the identity provider.
      scheme: bearer
      type: http

````