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

# List the repasse transfers the rail still owes this tenant

> Walks the tenant's own repasse expectation book: the escriturated instalments whose transfer the rail still owes, oldest deadline first, undated promises last.

READ THE FRESHNESS STAMP BEFORE THE ROWS. An empty list under a state other than fresh DOES NOT MEAN nothing is missing. When the reconciliation pass cannot seed the tenant database it returns before the D+2 detector runs, publishing neither an alarm nor the "I do not know" fact, so that outage class is indistinguishable from health unless the stamp is read. state is fresh, stale or never. never covers a deployment that never composed reconciliation and a tenant whose rail credentials never worked. stale additionally covers a stamp this deployment could not read at all: that is not a claim that reconciliation never ran, and last_clean_read_at is then null under a stale state rather than under never.

The clean-read instant is DURABLE and shared by every replica whenever the stamp was recorded and can be read, so a restarted process answers for a pass it did not run and two reads of the same tenant agree. Two reads that DISAGREE therefore name a problem with the shared stamp and never two processes holding different clocks: a replica that cannot read the stamp answers stale with a null last_clean_read_at, while a replica whose own pass read the rail cleanly still answers from what it knows when the stamp was never recorded at all. freshness.observed_replica is the opaque tag of the ONE PROCESS that answered this request, kept because the rows and the census are still read through one process's connections. It is never a hostname and never a pod name.

It answers from the LOCAL BOOK and never reaches the Dataprev rail, so it cannot answer 501 and it is served on a deployment with no reconciliation composed at all - that deployment answers 200 with an empty book, an empty scope census and state never.

scopes censuses the OPEN promises by employer. Every employer of the tenant is reconciled, so in_scope is always true.

scopes IS ANSWERED ON THE FIRST PAGE ONLY and is null on every page requested with a non-blank after. A blank or whitespace-only after is a first-page request and is censused like an omitted one. The census is unfiltered and unpaged by design, so it describes the whole book rather than the page and is asked once per scan. Read it from the first page. null means it was not asked on this page; an empty list is the different, stated fact that no employer scope holds an open promise. freshness, by contrast, travels on every page.

There is deliberately NO time window. The rail's own reads carry one because the rail demands it; imposing one here would hide exactly the old promise nobody ever closed, which is what this board exists to show.

Paging is keyset over (due_at nulls last, competencia, numero_contrato, an internal row id), the order the D+2 alarm walks up to its last column, so the board and the alarm can never disagree about which deadline is next. Send the previous page's page.next_after as after; it is opaque and carries no employer document. has_more is true exactly when another page exists, and next_after is null exactly when it is false. The cursor has no time limit, but a cursor this service did not mint, including one minted by an earlier version of this order, is refused with 422 rather than silently restarting the scan from the top: start again from the first page.

situation may be repeated to narrow the page to several situations at once (situation=open&situation=overdue). Omitting it means ALL FOUR, never none. overdue is judged where the D+2 alarm judges it: at the last clean read, never later than now, so a deadline no clean read has reached yet is still open, and with no clean read known nothing is overdue. undated is a promise whose deadline was not computable, which is a durable STATE and not missing data: nothing ever back-fills it, so it can never become overdue.



## OpenAPI

````yaml /pt/openapi/v3-current/consignado.yaml get /v1/consignado/reconciliation/repasse-expectations
openapi: 3.1.0
info:
  contact:
    email: contact@lerian.studio
    name: Lerian Studio
    url: https://lerian.studio
  description: >-
    OpenAPI 3.1 surface for Lerian Consignado — Dataprev. The API covers tenant
    credentials and rail configuration, worker margin, loan auctions and bids,
    contract registration and lifecycle, B3 instrument codes, disbursement
    confirmation, portability, refinancing, renegotiation, FGTS guarantees,
    reconciliation, funds, assignments, throughput, and event subscriptions.
  license:
    name: Lerian Studio General License
  title: Lerian Consignado API
  version: v1.0.0
servers:
  - url: https://br-consignado-gw.sandbox.lerian.net
security:
  - BearerAuth: []
tags:
  - description: >-
      Per-tenant Dataprev credential custody and public rail configuration
      (upload, status, rotation, revoke, requester code, and worker portal base
      URL)
    name: Credentials
  - description: >-
      Per-tenant streaming-hub subscription control-plane (list, create, get,
      rotate, revoke, and test delivery)
    name: Subscriptions
  - description: >-
      Dataprev payroll-rail surface: FGTS balance and authorization reads, the
      FGTS guarantee execution, contract suspension, reactivation and term
      changes, the rail's own contract documents, and the on-demand reads of
      leilão solicitações, escriturações, repasses and employment terminations
    name: Consignado Rail
  - description: >-
      Synchronous rail command surface: the operations a bancarizador without
      the lender drives over HTTP.
    name: Consignado Rail Commands
  - description: >-
      Gateway-owned disbursement confirmation: a client bank recording money it
      has ALREADY paid to a worker. It crosses no government boundary and
      proxies no Dataprev operation.
    name: Consignado Disbursement
  - description: >-
      Per-tenant self-service outbound Dataprev rail throughput: read and set
      this tenant's own requests-per-second, including a deliberate pause at
      zero
    name: Consignado Throughput
  - description: >-
      The B3 instrument code (Código IF) of an averbado contract: informed once
      by the bancarizador after B3 registers the CCB, and read back
    name: Consignado Registro B3
paths:
  /v1/consignado/reconciliation/repasse-expectations:
    get:
      tags:
        - Consignado Repasse Board
      summary: List the repasse transfers the rail still owes this tenant
      description: >-
        Walks the tenant's own repasse expectation book: the escriturated
        instalments whose transfer the rail still owes, oldest deadline first,
        undated promises last.


        READ THE FRESHNESS STAMP BEFORE THE ROWS. An empty list under a state
        other than fresh DOES NOT MEAN nothing is missing. When the
        reconciliation pass cannot seed the tenant database it returns before
        the D+2 detector runs, publishing neither an alarm nor the "I do not
        know" fact, so that outage class is indistinguishable from health unless
        the stamp is read. state is fresh, stale or never. never covers a
        deployment that never composed reconciliation and a tenant whose rail
        credentials never worked. stale additionally covers a stamp this
        deployment could not read at all: that is not a claim that
        reconciliation never ran, and last_clean_read_at is then null under a
        stale state rather than under never.


        The clean-read instant is DURABLE and shared by every replica whenever
        the stamp was recorded and can be read, so a restarted process answers
        for a pass it did not run and two reads of the same tenant agree. Two
        reads that DISAGREE therefore name a problem with the shared stamp and
        never two processes holding different clocks: a replica that cannot read
        the stamp answers stale with a null last_clean_read_at, while a replica
        whose own pass read the rail cleanly still answers from what it knows
        when the stamp was never recorded at all. freshness.observed_replica is
        the opaque tag of the ONE PROCESS that answered this request, kept
        because the rows and the census are still read through one process's
        connections. It is never a hostname and never a pod name.


        It answers from the LOCAL BOOK and never reaches the Dataprev rail, so
        it cannot answer 501 and it is served on a deployment with no
        reconciliation composed at all - that deployment answers 200 with an
        empty book, an empty scope census and state never.


        scopes censuses the OPEN promises by employer. Every employer of the
        tenant is reconciled, so in_scope is always true.


        scopes IS ANSWERED ON THE FIRST PAGE ONLY and is null on every page
        requested with a non-blank after. A blank or whitespace-only after is a
        first-page request and is censused like an omitted one. The census is
        unfiltered and unpaged by design, so it describes the whole book rather
        than the page and is asked once per scan. Read it from the first page.
        null means it was not asked on this page; an empty list is the
        different, stated fact that no employer scope holds an open promise.
        freshness, by contrast, travels on every page.


        There is deliberately NO time window. The rail's own reads carry one
        because the rail demands it; imposing one here would hide exactly the
        old promise nobody ever closed, which is what this board exists to show.


        Paging is keyset over (due_at nulls last, competencia, numero_contrato,
        an internal row id), the order the D+2 alarm walks up to its last
        column, so the board and the alarm can never disagree about which
        deadline is next. Send the previous page's page.next_after as after; it
        is opaque and carries no employer document. has_more is true exactly
        when another page exists, and next_after is null exactly when it is
        false. The cursor has no time limit, but a cursor this service did not
        mint, including one minted by an earlier version of this order, is
        refused with 422 rather than silently restarting the scan from the top:
        start again from the first page.


        situation may be repeated to narrow the page to several situations at
        once (situation=open&situation=overdue). Omitting it means ALL FOUR,
        never none. overdue is judged where the D+2 alarm judges it: at the last
        clean read, never later than now, so a deadline no clean read has
        reached yet is still open, and with no clean read known nothing is
        overdue. undated is a promise whose deadline was not computable, which
        is a durable STATE and not missing data: nothing ever back-fills it, so
        it can never become overdue.
      operationId: listConsignadoRepasseExpectations
      parameters:
        - description: >-
            Narrows the page to the named situations. Repeat the parameter for
            several. Omitted means all four.
          explode: true
          in: query
          name: situation
          schema:
            description: >-
              Narrows the page to the named situations. Repeat the parameter for
              several. Omitted means all four.
            items:
              enum:
                - open
                - overdue
                - undated
                - settled
              type: string
            type: array
        - description: >-
            The previous page's page.next_after. Omitted starts at the oldest
            deadline. A cursor this service did not mint is refused, never
            restarted from the top.
          explode: false
          in: query
          name: after
          schema:
            description: >-
              The previous page's page.next_after. Omitted starts at the oldest
              deadline. A cursor this service did not mint is refused, never
              restarted from the top.
            type: string
        - description: >-
            Maximum number of expectations to return. Omitted means the ceiling
            of 200.
          explode: false
          in: query
          name: limit
          schema:
            description: >-
              Maximum number of expectations to return. Omitted means the
              ceiling of 200.
            format: int64
            maximum: 200
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepasseExpectationsPage'
          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
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Too Many Requests
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Internal Server Error
      security:
        - BearerAuth: []
components:
  schemas:
    RepasseExpectationsPage:
      additionalProperties: false
      properties:
        freshness:
          $ref: '#/components/schemas/RepasseFreshness'
        items:
          items:
            $ref: '#/components/schemas/RepasseExpectationItem'
          type: array
        page:
          $ref: '#/components/schemas/KeysetPageMetadata'
        scopes:
          items:
            $ref: '#/components/schemas/RepasseScopeCount'
          type:
            - array
            - 'null'
      required:
        - items
        - page
        - freshness
        - scopes
      type: object
    Detail:
      additionalProperties: true
      properties:
        code:
          description: >-
            Stable, machine-readable product error code. One of the enumerated
            values: the CLT-NNNN catalog codes for the general refusal classes;
            the named command conflicts, which a client branches on to tell one
            conflict from another; the four terminal refusals
            IDEMPOTENCY_STATE_UNRECOGNISED, IDEMPOTENCY_RECORD_UNREADABLE,
            IDEMPOTENCY_OUTCOME_UNRECORDED and IDEMPOTENCY_REPLAY_UNAVAILABLE
            (422), which tell the client to reconcile the original request and
            never retry under a new key; IDEMPOTENCY_KEY_REUSE (422): the key is
            spent on a different request, so send a new key; the codes a single
            surface answers, named after it (FUNDO_*, CESSAO_*, REGISTRO_B3_*,
            ...); and the 5xx codes naming an upstream (DATAPREV_*,
            STREAMING_HUB_*, TENANT_MANAGER_*, the Access Manager's AUT-0033 and
            AUT-1021) or an unknown outcome, whose detail is client-readable.
          enum:
            - AUT-0033
            - AUT-1021
            - AVERBACAO_ARTIFACT_CONFLICT
            - AVERBACAO_CLAIM_CONFLICT
            - AVERBACAO_DOCUMENTATION_CONFLICT
            - AVERBACAO_EXCLUDED
            - AVERBACAO_HELD_BY_ANOTHER_SENDER
            - AVERBACAO_NOT_ACCEPTED
            - AVERBACAO_OPERATIONS_INTERNAL
            - AVERBACAO_OPERATIONS_INVALID_CURSOR
            - AVERBACAO_OPERATIONS_INVALID_QUERY
            - AVERBACAO_OPERATIONS_UNKNOWN_STATUS
            - AVERBACAO_OPERATION_NOT_FOUND
            - BID_NO_PROPOSTA_LEFT
            - BID_ORIGINADOR_INACTIVE
            - BID_ORIGINADOR_UNKNOWN
            - BID_PROPOSAL_SLOT_TAKEN
            - BID_SOLICITACAO_TAKEN
            - BID_SOLICITACAO_UNKNOWN
            - BID_SUBMISSIONS_INTERNAL
            - BID_SUBMISSIONS_INVALID_CURSOR
            - BID_SUBMISSIONS_UNKNOWN_SITUATION
            - BOOKING_FIELD_INVALID
            - CEDED_CREDIT_INTERNAL
            - CEDED_CREDIT_NO_FUND_ENTITLEMENT
            - CEDED_CREDIT_UNAVAILABLE
            - CESSAO_CEDED_TO_OTHER_FUND
            - CESSAO_CREDIT_NOT_ACCEPTED
            - CESSAO_CREDIT_NOT_FOUND
            - CESSAO_CREDIT_NOT_WITNESSED
            - CESSAO_CREDIT_PENDING
            - CESSAO_FUNDO_NOT_ATTRIBUTED
            - CESSAO_INTERNAL
            - CESSAO_INVALID_INPUT
            - CESSAO_UNAVAILABLE
            - CESSAO_UNWIRED
            - CLT-0001
            - CLT-0002
            - CLT-0003
            - CLT-0004
            - CLT-0005
            - CLT-0006
            - CLT-0007
            - CLT-0008
            - CLT-0009
            - CLT-0010
            - CLT-0011
            - CONTRACT_ALREADY_REGISTERED
            - CONTRACT_NOT_BOOKABLE
            - CURSOR_EXPIRED
            - CURSOR_FENCE_MISMATCH
            - DATAPREV_CREDENTIAL_REJECTED
            - DATAPREV_CREDENTIAL_REQUIRED
            - DATAPREV_CREDENTIAL_REVOKED
            - DATAPREV_INVALID_RESPONSE
            - DATAPREV_TIMEOUT
            - DATAPREV_UNAVAILABLE
            - DECLARED_DATES_OUT_OF_ORDER
            - DECLARED_TERMS_INCONSISTENT
            - DISBURSEMENT_CONFIRMATIONS_INTERNAL
            - DISBURSEMENT_CONFIRMATIONS_INVALID_CURSOR
            - DISBURSEMENT_PAYMENT_CONFLICT
            - EVENT_DELIVERY_INTERNAL
            - EXCLUSION_AUTHORITY_CONFLICT
            - EXCLUSION_BOOKING_IDENTITY_INCOMPLETE
            - EXCLUSION_DOCUMENTATION_UNDERWAY
            - EXCLUSION_OPERATIONS_INTERNAL
            - EXCLUSION_OPERATIONS_INVALID_CURSOR
            - EXCLUSION_OPERATIONS_INVALID_QUERY
            - EXCLUSION_OPERATIONS_UNKNOWN_STATUS
            - EXCLUSION_OPERATION_NOT_FOUND
            - FGTS_EXECUTION_ALREADY_REFUSED
            - FGTS_EXECUTION_CONTRACT_TAKEN
            - FGTS_EXECUTION_OUTCOME_UNRESOLVED
            - FGTS_EXECUTION_PAYLOAD_MISMATCH
            - FIRST_DEDUCTION_BEFORE_COMPETENCIA
            - FORMALIZATION_DEADLINE_EXCEEDED
            - FUNDO_CNPJ_CONFLICT
            - FUNDO_DEACTIVATED
            - FUNDO_INTERNAL
            - FUNDO_INVALID_ID
            - FUNDO_INVALID_INPUT
            - FUNDO_NOT_FOUND
            - FUNDO_NOT_REGISTERED
            - FUNDO_REF_CONFLICT
            - FUNDO_UNAVAILABLE
            - IDEMPOTENCY_KEY_REUSE
            - IDEMPOTENCY_OUTCOME_UNRECORDED
            - IDEMPOTENCY_RECORD_UNREADABLE
            - IDEMPOTENCY_REPLAY_UNAVAILABLE
            - IDEMPOTENCY_STATE_UNRECOGNISED
            - INVALID_CONTRACT_NUMBER
            - INVALID_CURSOR
            - INVALID_EVENTS_INVALID_CURSOR
            - INVALID_EVENT_NOT_FOUND
            - INVALID_EVENT_NOT_REQUEUEABLE
            - INVALID_PAGE_LIMIT
            - INVENTORY_UNAVAILABLE
            - MARGIN_SNAPSHOT_INCONSISTENT
            - ORIGINADOR_INTERNAL
            - ORIGINADOR_INVALID_ID
            - ORIGINADOR_INVALID_INPUT
            - ORIGINADOR_NOT_FOUND
            - ORIGINADOR_REF_CONFLICT
            - ORIGINADOR_UNAVAILABLE
            - OUTCOME_UNKNOWN
            - PORTABILIDADE_WINDOW_EXPIRED
            - RAIL_COMMANDS_INTERNAL
            - RAIL_COMMANDS_INVALID_CURSOR
            - RAIL_COMMANDS_TENANT_REQUIRED
            - RAIL_COMMANDS_UNKNOWN_FILTER
            - RAIL_COMMAND_ALREADY_REFUSED
            - RAIL_COMMAND_ANSWER_NOT_RETAINED
            - RAIL_COMMAND_CLAIM_CONFLICT
            - RAIL_COMMAND_OUTCOME_UNRESOLVED
            - RAIL_COMMAND_PAYLOAD_MISMATCH
            - RATE_OUTSIDE_PRODUCT_RANGE
            - REGISTRATION_NOT_FOUND
            - REGISTRO_B3_AVERBACAO_NAO_CONFIRMADA
            - REGISTRO_B3_CONTRATO_NAO_ENCONTRADO
            - REGISTRO_B3_DATA_REGISTRO_INVALIDA
            - REGISTRO_B3_INTERNAL
            - REGISTRO_B3_JA_INFORMADO
            - REGISTRO_B3_NAO_INFORMADO
            - REGISTRO_B3_UNAVAILABLE
            - REGISTRO_B3_UNWIRED
            - REPASSE_EXPECTATIONS_INTERNAL
            - REPASSE_EXPECTATIONS_INVALID_CURSOR
            - REPASSE_EXPECTATIONS_UNKNOWN_SITUATION
            - REVERSAO_WINDOW_EXPIRED
            - SALDO_DEVEDOR_INTERNAL
            - SALDO_DEVEDOR_INVALID_CURSOR
            - SALDO_DEVEDOR_NOT_FOUND
            - SALDO_DEVEDOR_TENANT_REQUIRED
            - SALDO_DEVEDOR_UNAVAILABLE
            - STREAMING_HUB_TIMEOUT
            - STREAMING_HUB_UNAVAILABLE
            - TENANT_MANAGER_TIMEOUT
            - TENANT_MANAGER_UNAVAILABLE
            - THROUGHPUT_HISTORY_INTERNAL
            - THROUGHPUT_HISTORY_INVALID_CURSOR
            - THROUGHPUT_HISTORY_TENANT_REQUIRED
            - THROUGHPUT_HISTORY_UNAVAILABLE
            - THROUGH_REQUIRED
            - UNKNOWN_QUERY_PARAMETER
          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
    RepasseFreshness:
      additionalProperties: false
      properties:
        last_clean_read_at:
          format: date-time
          type:
            - string
            - 'null'
        observed_replica:
          type: string
        stale_after_seconds:
          format: int64
          type: integer
        state:
          description: How much this board's own absence of rows can be trusted.
          enum:
            - fresh
            - stale
            - never
          type: string
      required:
        - last_clean_read_at
        - stale_after_seconds
        - state
        - observed_replica
      type: object
    RepasseExpectationItem:
      additionalProperties: false
      properties:
        cnpj:
          type: string
        competencia:
          type: string
        due_at:
          format: date-time
          type:
            - string
            - 'null'
        guia_paid_at:
          format: date-time
          type:
            - string
            - 'null'
        in_scope:
          type: boolean
        numero_contrato:
          type: string
        observed_at:
          format: date-time
          type: string
        repasse_paid_at:
          format: date-time
          type:
            - string
            - 'null'
        resolution_pending:
          type: boolean
        settled_at:
          format: date-time
          type:
            - string
            - 'null'
        settled_by_registro:
          type:
            - string
            - 'null'
        situation:
          description: The state this expectation is in, derived once by the server.
          enum:
            - open
            - overdue
            - undated
            - settled
          type: string
      required:
        - cnpj
        - numero_contrato
        - competencia
        - due_at
        - observed_at
        - settled_at
        - repasse_paid_at
        - guia_paid_at
        - settled_by_registro
        - resolution_pending
        - situation
        - in_scope
      type: object
    KeysetPageMetadata:
      additionalProperties: false
      properties:
        after:
          description: >-
            The cursor this page resumed from, echoed back. Null when the read
            started at the beginning.
          examples:
            - >-
              eyJ2IjoxLCJyIjoiYm9hcmQiLCJ0IjoiMjAyNi0wOC0xNFQwOToxMjozM1oiLCJrIjpbImMwMDEyIl19
          type:
            - string
            - 'null'
        has_more:
          description: Whether at least one further page exists.
          examples:
            - true
          type: boolean
        next_after:
          description: >-
            The cursor for the page after this one. Null exactly when has_more
            is false.
          examples:
            - >-
              eyJ2IjoxLCJyIjoiYm9hcmQiLCJ0IjoiMjAyNi0wOC0xNFQwOTowNzo1MVoiLCJrIjpbImMwMDM3Il19
          type:
            - string
            - 'null'
      required:
        - after
        - next_after
        - has_more
      type: object
    RepasseScopeCount:
      additionalProperties: false
      properties:
        cnpj:
          type: string
        in_scope:
          type: boolean
        open_count:
          format: int64
          type: integer
      required:
        - cnpj
        - open_count
        - in_scope
      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.