> ## Documentation Index
> Fetch the complete documentation index at: https://docs.range.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Full agreement for one month

> Current line per enrolled wallet and asset for YYYY-MM, breaks first. Each wallet carries its worst status, broken-asset count, and names. Filters, grouping, a per-status summary of every enrolled wallet, and cursor pagination. explained is joined from case state and is not stored.



## OpenAPI

````yaml /api-reference/platform-api.json get /v2/reconciliation/full-agreement
openapi: 3.0.0
info:
  title: Range Platform API
  description: >-
    The Range Platform API for workspace management, counterparties, and
    operational tooling.
  version: 1.7.37
  contact: {}
servers:
  - url: https://api.range.org
    description: Range API Server
security:
  - Authorization: []
  - Authorization: []
tags:
  - name: Address Information
    description: Get information about a crypto address.
  - name: Transfer Enrichments
    description: Attach workspace-scoped notes and categories to transfers.
  - name: Counterparties
    description: Manage external entities, their addresses, bank accounts, and documents.
  - name: Parties
    description: >-
      The workspace entity register: the firm itself, its clients, and its
      counterparties.
paths:
  /v2/reconciliation/full-agreement:
    get:
      tags:
        - Reconciliation
      summary: Full agreement for one month
      description: >-
        Current line per enrolled wallet and asset for YYYY-MM, breaks first.
        Each wallet carries its worst status, broken-asset count, and names.
        Filters, grouping, a per-status summary of every enrolled wallet, and
        cursor pagination. explained is joined from case state and is not
        stored.
      operationId: fullAgreementMonth
      parameters:
        - name: month
          required: true
          in: query
          schema:
            type: string
            example: 2026-09
        - name: client
          required: false
          in: query
          description: One client entity id, or several comma-separated.
          schema:
            minItems: 1
            example: 3f1c...,9a2b...
            type: array
            items:
              type: string
              format: uuid
        - name: account
          required: false
          in: query
          schema:
            type: string
            format: uuid
        - name: custodian
          required: false
          in: query
          description: Custodian provider (dfns) or a connection id.
          schema:
            maxLength: 128
            type: string
        - name: status
          required: false
          in: query
          schema:
            type: string
            enum:
              - tied
              - break
              - unreconcilable
              - pending
              - explained
        - name: network
          required: false
          in: query
          schema:
            maxLength: 128
            example: ethereum
            type: string
        - name: asset
          required: false
          in: query
          description: Asset symbol or token address.
          schema:
            maxLength: 128
            example: USDC
            type: string
        - name: search
          required: false
          in: query
          description: Matches the client, account, custodian, or address.
          schema:
            type: string
            maxLength: 200
        - name: group_by
          required: false
          in: query
          schema:
            type: string
            enum:
              - client
              - custodian
              - status
        - name: limit
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 200
            default: 50
            type: number
        - name: cursor
          required: false
          in: query
          schema:
            type: string
            maxLength: 512
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FullAgreementMonthResponseDto'
components:
  schemas:
    FullAgreementMonthResponseDto:
      type: object
      properties:
        month:
          type: string
          example: 2026-09
        final:
          type: boolean
          description: >-
            True once the month has been closed. Lines stay put except for a
            wallet-scoped rerun.
        as_of:
          type: string
          nullable: true
          format: date-time
          description: >-
            Exclusive end of the latest computation. Null before any run for the
            month.
        summary:
          $ref: '#/components/schemas/FullAgreementStatusCountsDto'
        wallets:
          type: array
          items:
            $ref: '#/components/schemas/FullAgreementMonthWalletDto'
        groups:
          description: >-
            Present when group_by is set. Each group is paged with the request
            limit and cursor. Counts are the whole group. Top-level wallets and
            meta stay the flat page.
          type: array
          items:
            $ref: '#/components/schemas/FullAgreementMonthGroupDto'
        meta:
          $ref: '#/components/schemas/CursorMetaDto'
        sign_off:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/FullAgreementSignOffDto'
      required:
        - month
        - final
        - as_of
        - summary
        - wallets
        - meta
        - sign_off
    FullAgreementStatusCountsDto:
      type: object
      properties:
        break:
          type: number
        unreconcilable:
          type: number
        pending:
          type: number
        explained:
          type: number
        tied:
          type: number
        total:
          type: number
      required:
        - break
        - unreconcilable
        - pending
        - explained
        - tied
        - total
    FullAgreementMonthWalletDto:
      type: object
      properties:
        account_id:
          type: string
        client_entity_id:
          type: string
        client_name:
          type: string
        account_name:
          type: string
        custodian_name:
          type: string
        broken_asset_count:
          type: number
        custodian_provider:
          type: string
          example: dfns
        connection_id:
          type: string
          nullable: true
        network:
          type: string
        address:
          type: string
        ledger_account_id:
          type: string
          nullable: true
        books:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/FullAgreementWalletBooksDto'
        status:
          type: string
          enum:
            - tied
            - break
            - unreconcilable
            - pending
            - explained
        pending_reason:
          type: string
          nullable: true
          enum:
            - backfill pending
            - chain pull failed
            - ledger not paired
            - asset catalog unavailable
            - no run
            - awaiting client books
        lines:
          type: array
          items:
            $ref: '#/components/schemas/FullAgreementMonthLineDto'
      required:
        - account_id
        - client_entity_id
        - client_name
        - account_name
        - custodian_name
        - broken_asset_count
        - custodian_provider
        - connection_id
        - network
        - address
        - ledger_account_id
        - books
        - status
        - lines
    FullAgreementMonthGroupDto:
      type: object
      properties:
        group_by:
          type: string
          enum:
            - client
            - custodian
            - status
        key:
          type: string
        name:
          type: string
        counts:
          $ref: '#/components/schemas/FullAgreementStatusCountsDto'
        wallets:
          type: array
          items:
            $ref: '#/components/schemas/FullAgreementMonthWalletDto'
        meta:
          description: >-
            This group is paged with the request limit and cursor. Counts are
            the whole group.
          allOf:
            - $ref: '#/components/schemas/CursorMetaDto'
      required:
        - group_by
        - key
        - name
        - counts
        - wallets
        - meta
    CursorMetaDto:
      type: object
      properties:
        next_cursor:
          type: string
          nullable: true
          description: >-
            Opaque string cursor pointing to the next page of results. null if
            there is no next page.
          example: eyJpZCI6IjkxeFFlV3Z...
        previous_cursor:
          type: string
          nullable: true
          description: >-
            Opaque string cursor pointing to the previous page of results. null
            if there is no previous page.
          example: eyJpZCI6IjkxeFFlV3Z...
        first_page_cursor:
          type: string
          description: >-
            Opaque string cursor pointing to the very first page in the entire
            dataset with respect to the current filter.
          example: eyJpZCI6IjkxeFFlV3Z...
        last_page_cursor:
          type: string
          nullable: true
          description: >-
            Opaque string cursor pointing to the very last page in the entire
            dataset with respect to the current filter.
          example: eyJpZCI6IjkxeFFlV3Z...
        total_count:
          type: number
          nullable: true
          description: Total number of results.
          example: 100
        page_number:
          type: number
          description: >-
            Current page number (1-based). Omitted by list endpoints that do not
            compute a page index.
          example: 1
    FullAgreementSignOffDto:
      type: object
      properties:
        name:
          type: string
        role:
          type: string
        user:
          type: string
          description: JWT email, or the API key fingerprint.
        signed_at:
          type: string
          format: date-time
      required:
        - name
        - role
        - user
        - signed_at
    FullAgreementWalletBooksDto:
      type: object
      properties:
        account_id:
          type: string
        external_id:
          type: string
        books_through:
          type: string
          nullable: true
        latest_import:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/FullAgreementBooksImportDto'
      required:
        - account_id
        - external_id
        - books_through
        - latest_import
    FullAgreementMonthLineDto:
      type: object
      properties:
        id:
          type: string
        run_id:
          type: string
        superseded_line_id:
          type: string
          nullable: true
        asset:
          $ref: '#/components/schemas/FullAgreementLineAssetDto'
        custody:
          $ref: '#/components/schemas/FullAgreementLineVerdictDto'
        books:
          $ref: '#/components/schemas/FullAgreementLineVerdictDto'
        status:
          type: string
          enum:
            - tied
            - break
            - unreconcilable
            - pending
            - explained
        cause:
          type: string
          enum:
            - missing_on_chain
            - missing_on_custodian
            - missing_on_ledger
            - quantity_mismatch
            - source_missing
            - range_break
            - custodian_unverified_asset
            - none
          description: >-
            `custodian_unverified_asset` is legacy: it is never written and
            appears only on lines and cases stored before ADR-0072, which
            compares an asset the custodian marked unverified like any other.
        symbol_only:
          type: boolean
        unverified_by_custodian:
          type: boolean
          description: >-
            True when the custodian marked this asset unverified (Dfns
            `verified: false`); exports show it as "Unverified by <custodian>".
            Information only: the line is compared like any other, so its status
            is tied, break or unreconcilable on the figures. False when the
            custodian gave no such verdict.
        amounts:
          $ref: '#/components/schemas/FullAgreementLineAmountsDto'
        evidence:
          $ref: '#/components/schemas/FullAgreementLineEvidenceDto'
        books_as_of:
          type: string
          nullable: true
          description: >-
            Statement instant the Books pair used. Null when no statement closed
            inside the period.
        pending_reason:
          type: string
          nullable: true
          enum:
            - backfill pending
            - chain pull failed
            - ledger not paired
            - asset catalog unavailable
            - no run
            - awaiting client books
          description: >-
            Set on a live-month line whose Books pair is waiting for a client
            statement.
        declared_gap:
          nullable: true
          description: >-
            Set when the line is `source_missing` only because a tape declared
            why it has no figure; its case may then be explained (ADR-0071). The
            same value as the case evidence `declared_gap`. Null otherwise.
          type: object
          allOf:
            - $ref: '#/components/schemas/FullAgreementDeclaredGapDto'
        custodian_figures:
          nullable: true
          description: >-
            Where the custodian opening and close came from. Null when the line
            has no custodian tape.
          type: object
          allOf:
            - $ref: '#/components/schemas/FullAgreementCustodianFiguresDto'
        disposition:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/FullAgreementDispositionDto'
        changed_after_sign_off:
          type: boolean
          description: >-
            True when this line superseded another and was written after the
            month sign-off.
        differing_tapes:
          example:
            - ledger
          description: Closes that differ. Empty when every present close matches.
          type: array
          items:
            type: string
      required:
        - id
        - run_id
        - superseded_line_id
        - asset
        - custody
        - books
        - status
        - cause
        - symbol_only
        - unverified_by_custodian
        - amounts
        - evidence
        - books_as_of
        - pending_reason
        - declared_gap
        - custodian_figures
        - disposition
        - changed_after_sign_off
        - differing_tapes
    FullAgreementBooksImportDto:
      type: object
      properties:
        import_id:
          type: string
        file_sha256:
          type: string
          nullable: true
        created_at:
          type: string
      required:
        - import_id
        - file_sha256
        - created_at
    FullAgreementLineAssetDto:
      type: object
      properties:
        network:
          type: string
          example: ethereum
        token_address:
          type: string
          nullable: true
          example: native
        symbol:
          type: string
          example: USDC
      required:
        - network
        - token_address
        - symbol
    FullAgreementLineVerdictDto:
      type: object
      properties:
        status:
          type: string
          enum:
            - tied
            - break
            - unreconcilable
            - pending
            - explained
        cause:
          type: string
          enum:
            - missing_on_chain
            - missing_on_custodian
            - missing_on_ledger
            - quantity_mismatch
            - source_missing
            - range_break
            - custodian_unverified_asset
            - none
          description: >-
            `custodian_unverified_asset` is legacy: it is never written and
            appears only on lines and cases stored before ADR-0072, which
            compares an asset the custodian marked unverified like any other.
      required:
        - status
        - cause
    FullAgreementLineAmountsDto:
      type: object
      properties:
        custodian:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/FullAgreementTapeAmountsDto'
        chain:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/FullAgreementTapeAmountsDto'
        ledger:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/FullAgreementTapeAmountsDto'
      required:
        - custodian
        - chain
        - ledger
    FullAgreementLineEvidenceDto:
      type: object
      properties:
        chain:
          $ref: '#/components/schemas/FullAgreementChainEvidenceDto'
        custodian:
          $ref: '#/components/schemas/FullAgreementCustodianEvidenceDto'
        ledger:
          $ref: '#/components/schemas/FullAgreementLedgerEvidenceDto'
        custodian_unverified:
          description: >-
            Present when the custodian marked the asset unverified (the line's
            `unverified_by_custodian` is true): the custodian, the token it
            named, and the chain and ledger closes.
          allOf:
            - $ref: '#/components/schemas/FullAgreementCustodianUnverifiedDto'
        books:
          $ref: '#/components/schemas/FullAgreementBooksEvidenceDto'
      required:
        - chain
        - custodian
        - ledger
    FullAgreementDeclaredGapDto:
      type: object
      properties:
        tape:
          type: string
          enum:
            - chain
            - custodian
            - ledger
          example: custodian
        reason:
          type: string
          enum:
            - trade_quote_leg_unattributed
            - trade_fee_leg_unattributed
            - network_fees_unmodelled
            - unreadable_asset_amount
            - unresolved_asset_identity
            - no_balance_observed
            - trade_base_leg_unattributed
            - custodian_walkback_negative
          example: custodian_walkback_negative
      required:
        - tape
        - reason
    FullAgreementCustodianFiguresDto:
      type: object
      properties:
        opening:
          type: string
          nullable: true
          enum:
            - captured
            - walked_back
          description: >-
            captured: a custodian balance read at the boundary. walked_back:
            worked back from a later custodian read along its history (see
            `walked_back_from`). Null when the custodian tape has no figure
            there. A Books comparison at a mid-month books as of uses a computed
            custodian figure instead, named in `evidence.books.custodian_close`.
        close:
          type: string
          nullable: true
          enum:
            - captured
            - walked_back
          description: >-
            captured: a custodian balance read at the boundary. walked_back:
            worked back from a later custodian read along its history (see
            `walked_back_from`). Null when the custodian tape has no figure
            there. A Books comparison at a mid-month books as of uses a computed
            custodian figure instead, named in `evidence.books.custodian_close`.
        walked_back_from:
          type: string
          nullable: true
          example: '2026-10-14T10:30:05.000Z'
          description: >-
            When the custodian balance a walked-back figure was worked back from
            was read. Null when neither figure was walked back.
        declared_gap_reason:
          type: string
          nullable: true
          enum:
            - trade_quote_leg_unattributed
            - trade_fee_leg_unattributed
            - network_fees_unmodelled
            - unreadable_asset_amount
            - unresolved_asset_identity
            - no_balance_observed
            - trade_base_leg_unattributed
            - custodian_walkback_negative
          example: custodian_walkback_negative
          description: >-
            The custodian tape's own reason for a missing figure, whether or not
            it is the line's whole reason (`declared_gap`).
            `custodian_walkback_negative`: the custodian's history is incomplete
            after this month, so working back from its later read went below
            zero.
      required:
        - opening
        - close
        - walked_back_from
        - declared_gap_reason
    FullAgreementDispositionDto:
      type: object
      properties:
        case_id:
          type: string
        resolution:
          type: string
          nullable: true
      required:
        - case_id
        - resolution
    FullAgreementTapeAmountsDto:
      type: object
      properties:
        opening:
          type: string
          nullable: true
        inflows:
          type: string
          nullable: true
        outflows:
          type: string
          nullable: true
        fees:
          type: string
          nullable: true
        close:
          type: string
          nullable: true
        adds_up:
          type: boolean
          nullable: true
          description: >-
            Whether this tape's own figures roll forward: true when opening +
            inflows - outflows - fees equals close exactly (inflows, outflows
            and fees are unsigned magnitudes), false when they do not. Null when
            any of the five figures is null or not a finite decimal. Computed
            when the line is read.
      required:
        - opening
        - inflows
        - outflows
        - fees
        - close
        - adds_up
    FullAgreementChainEvidenceDto:
      type: object
      properties:
        opening_block:
          type: string
          nullable: true
          description: Block number or slot.
        closing_block:
          type: string
          nullable: true
          description: Block number or slot.
      required:
        - opening_block
        - closing_block
    FullAgreementCustodianEvidenceDto:
      type: object
      properties:
        opening_read_at:
          type: string
          nullable: true
        opening_walkback:
          type: string
          nullable: true
        closing_read_at:
          type: string
          nullable: true
        closing_walkback:
          type: string
          nullable: true
      required:
        - opening_read_at
        - opening_walkback
        - closing_read_at
        - closing_walkback
    FullAgreementLedgerEvidenceDto:
      type: object
      properties:
        import_id:
          type: string
          nullable: true
        file_sha256:
          type: string
          nullable: true
          description: File SHA-256 when the import stored one.
      required:
        - import_id
        - file_sha256
    FullAgreementCustodianUnverifiedDto:
      type: object
      properties:
        provider:
          type: string
          nullable: true
          example: dfns
          description: The custodian that marked the asset unverified.
        token_address:
          type: string
          nullable: true
          example: SLNDpmoWTVADgEdndyvWzroNL7zSi1dF9PC3xHGtPwp
          description: Contract or mint the custodian named; null when it named none.
        chain_close:
          type: string
          nullable: true
          description: Chain tape close for this asset; null without a chain close.
        ledger_close:
          type: string
          nullable: true
          description: Ledger close for this asset; null without a ledger line.
      required:
        - provider
        - token_address
        - chain_close
        - ledger_close
    FullAgreementBooksEvidenceDto:
      type: object
      properties:
        books_through:
          type: string
          nullable: true
        custodian_close:
          type: string
          nullable: true
          enum:
            - computed
            - captured
          description: >-
            computed when Books used the custodian opening plus movements at
            books as of. captured when Books used the run-end close. Null when
            Books were not evaluated.
        custodian_close_quantity:
          type: string
          nullable: true
      required:
        - books_through
        - custodian_close
        - custodian_close_quantity
  securitySchemes:
    Authorization:
      type: apiKey
      in: header
      name: X-API-KEY
      description: Authorization method required to allow user to access the api endpoints.

````

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