---
title: "QFC Part 371 Recordkeeping File Validator"
method: POST
path: "/v1/tools/validate_qfc_recordkeeping_file"
tags: ["TODO_TAGS_REVIEW", "TODO_AP2_EXPORT_REVIEW"]
---

# QFC Part 371 Recordkeeping File Validator

`POST /v1/tools/validate_qfc_recordkeeping_file`

## Request

- Base URL: `https://ainumbers.co`
- URL: `https://ainumbers.co/v1/tools/validate_qfc_recordkeeping_file`
- Auth: none declared

Validates the shape of the institution's own 12 CFR part 371 qualified-financial-contract recordkeeping file -- the position, counterparty, and collateral record set the appendix to part 371 requires -- against its published record layout, and ties the file's declared totals to a supplied control-total summary. A file-shape defect and a totals mismatch are two separate, never-merged findings: a shape problem is checked first and routes to review_required regardless of how the totals compare, and only a clean-shaped file with a totals disagreement routes to escalate. Position identifier and counterparty identifier are enumerable low-entropy identifiers salted before this node ever sees them; QFC type and currency code stay opaque strings, with no table of contract-type or currency codes held here. Without a supplied control-total summary there is nothing to reconcile against, so the node reports did_not_run naming that precondition rather than assuming a tie-out. Emits a section 27.4 gate-policy value plus a sibling execution_state at a predictable output_payload pointer. Not a filing and not recordkeeping-adequacy advice.

**Tool URL:** https://ainumbers.co/chaingraph/art-537-qfc-recordkeeping-file-validator.html

## Request body

- object
  - `as_of_date` unknown, required
  - `control_totals` unknown, required
  - `file_records` unknown, required
  - `institution_ref` unknown, required

## Response `200`

Successful tool execution result

- object
  - `as_of_date` string
  - `boundary` string
  - `conforming_row_count` integer
  - `control_totals` object
    - `collateral_minor_units` integer
    - `distinct_counterparty_count` integer
    - `notional_minor_units` integer
    - `position_count` integer
  - `control_totals_supplied` boolean
  - `decision` object
    - `execution_state` string
    - `gate_policy` string
    - `reason` string
  - `file_structure_errors` unknown[]
    - unknown
  - `file_totals` object
    - `collateral_minor_units` integer
    - `distinct_counterparty_count` integer
    - `notional_minor_units` integer
    - `position_count` integer
  - `identifier_salting` string
  - `institution_ref` string
  - `mismatches` unknown[]
    - unknown
  - `note` string
  - `qfc_code_handling` string
  - `rationale` string[]
  - `supplied_row_count` integer
  - `totals_mismatch` boolean

---

[API](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite.md) · [All operations](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/llms.txt) · [OpenAPI document](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/revisions/b462e4f5bb28?raw)
