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

# Score an assignment set against its fund's rule

> Measures the composition's FROZEN entry snapshots against the fund's eligibility and concentration limits and records the verdicts. A set waiting for the manager may be re-scored; an approved one never is.



## OpenAPI

````yaml /pt/openapi/v3-current/lender.yaml post /api/v1/assignment/sets/{setId}/eligibility
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).
  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/assignment/sets/{setId}/eligibility:
    post:
      tags:
        - AssignmentSets
      summary: Score an assignment set against its fund's rule
      description: >-
        Measures the composition's FROZEN entry snapshots against the fund's
        eligibility and concentration limits and records the verdicts. A set
        waiting for the manager may be re-scored; an approved one never is.
      operationId: checkAssignmentSetEligibility
      parameters:
        - description: Assignment set identifier.
          in: path
          name: setId
          required: true
          schema:
            description: Assignment set identifier.
            format: uuid
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignmentSetEligibilityHumaBody'
          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
        '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: Error
components:
  schemas:
    AssignmentSetEligibilityHumaBody:
      additionalProperties: false
      properties:
        concentrationBase:
          description: >-
            Denominator the surviving composition was measured against: the
            fund's accepted stock plus the admitted set, decimal string, scale
            2.
          type: string
        currency:
          description: ISO currency code every amount above is denominated in.
          type: string
        dimensionsNotEvaluated:
          description: >-
            Concentration dimensions this scoring could not measure. sector has
            no data source at all; assignor is listed when the composition
            carries no per-receivable assignor.
          items:
            type: string
          type:
            - array
            - 'null'
        eligibleCount:
          description: How many receivables survived every rule.
          format: int64
          type: integer
        items:
          description: Every receivable of the composition with its verdict.
          items:
            $ref: '#/components/schemas/AssignmentSetItemHumaBody'
          type:
            - array
            - 'null'
        ruleVersion:
          description: >-
            Identifier of the eligibility/concentration rule that produced these
            verdicts.
          type: string
        set:
          $ref: '#/components/schemas/AssignmentSetHumaBody'
          description: The set after the scoring, in its new state.
      required:
        - set
        - items
        - ruleVersion
        - eligibleCount
        - concentrationBase
        - currency
        - dimensionsNotEvaluated
      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
    AssignmentSetItemHumaBody:
      additionalProperties: false
      properties:
        assignmentPrice:
          description: >-
            Present value at the fund's cession rate — what the fund pays,
            decimal string, scale 2.
          type: string
        assignmentRate:
          description: >-
            Monthly effective cession rate applied, decimal fraction string,
            scale 8.
          type: string
        assignorRef:
          description: Opaque assignor key the fund's assignor limit aggregates by.
          type: string
        borrowerRef:
          description: >-
            Opaque debtor key the invariable 20% cap aggregates by. Never a
            document number.
          type: string
        currency:
          description: ISO currency code of every amount on this item.
          type: string
        custodyComplete:
          description: >-
            Whether the signature evidence was complete when the receivable
            entered the set.
          type: boolean
        discountAmount:
          description: faceValue minus assignmentPrice, decimal string, scale 2.
          type: string
        dossierDigest:
          description: >-
            Digest of the materialized evidence bundle. Empty when no dossier
            has been produced yet — the endorsement term is what refuses to be
            signed over that.
          type: string
        exitReason:
          description: >-
            Why it was removed, in the remover's own vocabulary. Empty while
            in_set.
          type: string
        exitSource:
          description: >-
            Who removed it: eligibility (our engine), remessa (the fund's return
            file) or trail (the rail re-read). Empty while in_set.
          type: string
        faceValue:
          description: Face value of the remaining flow, decimal string, scale 2.
          type: string
        hasOpenOverdue:
          description: Whether the receivable carried open arrears when it entered the set.
          type: boolean
        installmentCount:
          description: Installments remaining as frozen at entry.
          format: int64
          type: integer
        itemState:
          description: >-
            in_set, cut (a verdict removed it) or removed_trail (the
            pre-approval rail re-read no longer found it).
          type: string
        outstandingBalance:
          description: Outstanding balance as frozen at entry, decimal string, scale 2.
          type: string
        paymentSourceRef:
          description: >-
            Opaque key of the receivable's payment source — the party the
            instalment is collected through — that the fund's payment-source
            limit aggregates by. Which party that is belongs to the
            jurisdiction, and this contract never names it.
          type: string
        principalAmount:
          description: Booked principal as frozen at entry, decimal string, scale 2.
          type: string
        receivableRef:
          description: Receivable reference (the rail contract number).
          type: string
        registrationActive:
          description: >-
            Whether the rail registration was in force when the receivable
            entered the set.
          type: boolean
        repriced:
          description: >-
            True when the pre-approval rail re-read found this receivable
            altered and the same ruler repriced it (Q-P6-5).
          type: boolean
        snapshotObservedAt:
          description: Instant the frozen facts above were read (RFC3339, UTC).
          type: string
        trailInstallmentsRemaining:
          description: >-
            Remaining installments the RAIL reported at the last pre-approval
            re-read. Absent before the first one.
          format: int64
          type: integer
        valuationBaseDate:
          description: Base date the present value was discounted to (RFC3339, UTC).
          type: string
        valuationVersion:
          description: Pricing ruler this price came out of.
          type: string
      required:
        - receivableRef
        - itemState
        - exitSource
        - exitReason
        - repriced
        - borrowerRef
        - paymentSourceRef
        - assignorRef
        - outstandingBalance
        - principalAmount
        - installmentCount
        - currency
        - registrationActive
        - custodyComplete
        - hasOpenOverdue
        - dossierDigest
        - faceValue
        - assignmentPrice
        - discountAmount
        - valuationVersion
        - assignmentRate
        - valuationBaseDate
        - snapshotObservedAt
      type: object
    AssignmentSetHumaBody:
      additionalProperties: false
      properties:
        createdAt:
          description: Creation timestamp (RFC3339, UTC).
          type: string
        createdBy:
          description: Validated actor identity that assembled the composition.
          type: string
        currency:
          description: ISO currency code every amount of this set is denominated in.
          type: string
        eligibilityCheckedAt:
          description: Instant the composition was scored (RFC3339, UTC). Empty on a draft.
          type: string
        fundId:
          description: Fund registration this composition is offered to.
          type: string
        id:
          description: Assignment set identifier (uuid).
          type: string
        inSetItemCount:
          description: How many receivables are still in the composition.
          format: int64
          type: integer
        registryProvider:
          description: >-
            Registradora regime this cession runs under, frozen from the fund
            when the composition was assembled. The fund's registration governs
            the NEXT set, never this one.
          type: string
        retainedFraction:
          description: >-
            Share of the expected loss this institution keeps after the sale,
            frozen when the composition was assembled (the sale's own fraction,
            or the fund's proposal when the sale stated none), decimal string
            from 0 to 1, scale 8. Re-declaring the fund never changes it.
          type: string
        retentionThreshold:
          description: >-
            The institution's substantial-retention threshold in force when the
            composition was assembled, frozen next to the fraction, decimal
            string, scale 8. A later change of the threshold never re-classifies
            this cession.
          type: string
        riskRetention:
          description: >-
            Res. CMN 4.966 art. 26 regime this cession is booked under, DERIVED
            from the two frozen numbers, never declared: substantial when
            retainedFraction is at or above retentionThreshold (the asset stays
            on this balance sheet against a liability, art. 29), none below it
            (the receivables leave on acceptance, art. 28).
          type: string
        ruleVersion:
          description: >-
            Eligibility/concentration ruler that scored this composition. Empty
            on a draft nobody has measured yet.
          type: string
        sellerRetainsControl:
          description: >-
            Whether the seller keeps control of what it sold (Res. CMN 4.966
            art. 26 III), frozen at assembly. Always false on a composition that
            exists: true is refused (LENDER-0505).
          type: boolean
        state:
          description: >-
            Lifecycle state: draft, eligibility_checked, pending_approval,
            approved, offer_sent, remessa_received, term_signed, paid,
            transferred, accepted — plus cancelled, the terminal state a
            DISCARDED composition rests in. cancelled is a sideways exit, not a
            step of the forward walk: its receivables are released back to the
            assignable pool and nothing advances it.
          type: string
        totalAssignmentPrice:
          description: >-
            Assignment price of the SURVIVING composition, decimal string, scale
            2.
          type: string
        totalFaceValue:
          description: Face value of the SURVIVING composition, decimal string, scale 2.
          type: string
        updatedAt:
          description: Last-update timestamp (RFC3339, UTC).
          type: string
        valuationVersion:
          description: Deterministic pricing ruler every item price came out of.
          type: string
      required:
        - id
        - fundId
        - registryProvider
        - retainedFraction
        - retentionThreshold
        - sellerRetainsControl
        - riskRetention
        - state
        - currency
        - valuationVersion
        - ruleVersion
        - eligibilityCheckedAt
        - createdBy
        - createdAt
        - updatedAt
        - inSetItemCount
        - totalFaceValue
        - totalAssignmentPrice
      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

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.