---
title: "Change Reporting Style"
method: POST
path: "/extensions/roboledger/{graph_id}/operations/change-reporting-style"
tags: ["RoboLedger: Setup"]
---

# Change Reporting Style

`POST /extensions/roboledger/{graph_id}/operations/change-reporting-style`

## Request

- Base URL: `https://api.robosystems.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.robosystems.ai/extensions/roboledger/{graph_id}/operations/change-reporting-style`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Switch the reporting entity's Reporting Style — how its statements are laid out (equity-form, close-target concept, per-statement Networks). Validates that the target Style has a complete composition in the tenant schema, then flips `entities.reporting_style_id`. Omit `entity_id` to target the graph's primary entity. Filed Reports are unaffected (their FactSet rows pin their structures at create-time); new reports use the new Style. Idempotent on the same id.

**Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict.

## Path parameters

- `graph_id` string, required

## Headers

- `Idempotency-Key` string, nullable

## Request body

- ChangeReportingStyleRequest: Switch a reporting entity's Reporting Style. The Reporting Style governs how the entity's statements are laid out (equity-form, close-target concept, per-statement Networks). It's validated against the tenant schema — the target must be a renderable Style with a complete composition — before the switch is applied.
  - `reporting_style_id` string, required: Structure id of the target Reporting Style. Must exist in the tenant schema with a complete Network composition.
  - `entity_id` string, nullable: The entity whose style to change, by id. Omit for the group parent.

## Response `200`

Successful Response

- OperationEnvelopeChangeReportingStyleResponse
  - `operation` string, required: Kebab-case operation name
  - `operationId` string, required: op_-prefixed ULID for audit and SSE correlation
  - `status` 'completed' | 'pending' | 'failed', required: Operation lifecycle state
  - `result` ChangeReportingStyleResponse: Result of a change-reporting-style operation.
    - `entity_id` string, required: Entity whose Style was targeted.
    - `previous_reporting_style_id` string, nullable: Style id before the change (null for legacy/unset).
    - `reporting_style_id` string, required: Active Style id after the call.
    - `reporting_style_code` string, nullable: 4-segment Style code (e.g. BSC-CORP-IS02-CF1), when stamped.
    - `changed` boolean, required: False when the target equals the current Style (no-op).
  - `at` string, required: ISO-8601 UTC timestamp
  - `createdBy` string, nullable: User ID that initiated the operation
  - `idempotentReplay` boolean: True when this envelope came from the idempotency cache — the underlying command did not execute again. False on fresh executions.

## Other responses

- `400`: Invalid request
- `401`: Authentication required
- `403`: Access denied
- `404`: Resource not found
- `409`: Idempotency-Key conflict — key reused with different body
- `422`: Validation error
- `429`: Rate limit exceeded
- `500`: Internal server error

---

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