---
title: "Issue an immutable pre-elimination P&L or balance-sheet rollup"
method: POST
path: "/companies/{companyId}/reporting-scopes/{reportingScopeId}/versions/{versionId}/rollups"
tags: ["Company Settings"]
---

# Issue an immutable pre-elimination P&L or balance-sheet rollup

`POST /companies/{companyId}/reporting-scopes/{reportingScopeId}/versions/{versionId}/rollups`

## Request

- Base URL: `https://api.medianfi.com/api/v1`
- URL: `https://api.medianfi.com/api/v1/companies/{companyId}/reporting-scopes/{reportingScopeId}/versions/{versionId}/rollups`
- Auth: HTTP bearer

Owner/admin plus all-entity access required. The explicit manifest must contain every legal entity in the sealed reporting-scope version exactly once and pin one current immutable standalone snapshot per entity. Balance sheets must pin the separately sealed CTA snapshot for the identical entity manifest. No mock, seed, inferred cross-company, or unsupported consolidated authority is accepted.

## Request body

- union
  - CreateReportingScopeProfitAndLossRollupInput
    - `reportType` 'profit_and_loss', required
    - `constituentSnapshots` ReportingScopeRollupManifestItem[], required
      - `entityId` string, uuid, required
      - `snapshotId` string, uuid, required
  - CreateReportingScopeBalanceSheetRollupInput
    - `reportType` 'balance_sheet', required
    - `constituentSnapshots` ReportingScopeRollupManifestItem[], required
      - `entityId` string, uuid, required
      - `snapshotId` string, uuid, required
    - `translationAdjustmentSnapshotId` string, uuid, required

## Response `201`

Immutable reporting-scope rollup

- ReportingScopeRollupResponse
  - `success` boolean, required
  - `data` ReportingScopeRollup, required
    - `id` string, uuid, required
    - `companyId` string, uuid, required
    - `reportingScopeId` string, uuid, required
    - `reportingScopeVersionId` string, uuid, required
    - `reportType` 'profit_and_loss' | 'balance_sheet', required
    - `periodStart` string, date, required
    - `periodEnd` string, date, required
    - `presentationCurrency` string, required
    - `sourceHash` string, required
    - `outputHash` string, required
    - `fingerprint` string, required
    - `payload` object, required: Entity-keyed pre-elimination P&L or balance-sheet calculation with exact contribution provenance. It explicitly sets gaapStatus to incomplete and isConsolidatedFinancialStatement to false.
    - `constituentSnapshots` ReportingScopeRollupConstituentSnapshot[], required
      - `entityId` string, uuid, required
      - `snapshotId` string, uuid, required
      - `snapshotOutputHash` string, required
    - `translationAdjustmentSnapshot` ReportingScopeRollupTranslationAdjustmentSnapshot, required
      - `snapshotId` string, uuid, required
      - `snapshotOutputHash` string, required
    - `createdByUserId` string, uuid, required
    - `createdAt` string, date-time, required
    - `sealedAt` string, date-time, required

## Other responses

- `401`: Authentication required
- `403`: Insufficient permissions or not a company member
- `404`: Resource not found
- `409`: A different immutable rollup already exists for this window
- `422`: Request failed validation

---

[API](https://skmtc.dev/medianfi/apis/median-api.md) · [All operations](https://skmtc.dev/medianfi/apis/median-api/llms.txt) · [OpenAPI document](https://skmtc.dev/medianfi/apis/median-api/revisions/20090ea32b0d?raw)
