Browse the extensions reference

Consolidation Worksheet

post/extensions/roboledger/{graph_id}/operations/consolidation-worksheet

Part of RoboLedger: Analytical Views.

The group's statement for one window with the entity as the column, read live from the tenant's OLTP ledger: the parent and each member consolidated in full, their combined sum, the consolidation entity's adjustments, the consolidated total, and each equity-method or cost member beside the sum, never in it. Every column renders under the group parent's Reporting Style. Rejected on shared-repository graphs.

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.

Authentication

Authenticate in any one of these ways — not all of them:

  • API key in the X-API-Key header.
  • Bearer token in the Authorization header.

Path parameters

NameTypeDescription
graph_idrequiredstringGraph Id

Constraints: matches ^(kg[a-f0-9]{16,}(?:_[a-zA-Z0-9]{1,20})?|sec(?:_[a-zA-Z0-9]{1,20})?|library)$

Header parameters

NameTypeDescription
Idempotency-KeyoptionalstringIdempotency-Key

Request body

Required, application/json.

FieldTypeDescription
statement_typerequiredstring

income_statement | balance_sheet | cash_flow_statement | equity_statement.

period_startoptionalstring (date)

Explicit window start. Overrides period_type/fiscal_year.

period_endoptionalstring (date)

Explicit window end. Overrides period_type/fiscal_year.

period_typeoptionalstring

annual | quarterly | instant (ignored when dates supplied)

fiscal_yearoptionalinteger

Fiscal year for annual window (anchored on FiscalCalendar)

limitoptionalinteger

Max rows returned. Defaults to the ceiling: the whole statement.

Default: 1000

Constraints: 1–1000

Example request

curl
curl -X POST "https://api.robosystems.ai/extensions/roboledger/{graph_id}/operations/consolidation-worksheet" \
  -H "X-API-Key: $ROBOSYSTEMS_API_KEY" \
  -H "Idempotency-Key: <Idempotency-Key>" \
  -H "Content-Type: application/json" \
  -d '{
  "statement_type": "string"
}'

Responses

200 Successful Response

FieldTypeDescription
operationrequiredstring

Kebab-case operation name

operationIdrequiredstring

op_-prefixed ULID for audit and SSE correlation

statusrequiredstring

Operation lifecycle state

One of: completed, pending, failed

resultoptionalConsolidationWorksheetResponse

Command-specific result payload

ConsolidationWorksheetResponse fields
FieldTypeDescription
graph_idrequiredstring

The graph read.

entity_idrequiredstring

The group parent.

statement_typerequiredstring

The statement rendered.

periodrequiredPeriodSpec

The window every column reads. The cash flow also pivots the prior window of equal length as its delta basis; it is not rendered.

PeriodSpec fields
FieldTypeDescription
startrequiredstring (date)

Period start date (inclusive). Window the column rolls up.

endrequiredstring (date)

Period end date (inclusive). Window the column rolls up.

labelrequiredstring

Column header label (e.g. 'FY2025 Q3', '2024', 'YTD').

columnsrequiredWorksheetColumn[]

The parent, each member consolidated in full, combined, the consolidation entity's adjustments (when the group has one), consolidated, then the equity-method and cost members outside the sum. A member outside its membership interval for the period has no column.

WorksheetColumn fields
FieldTypeDescription
keyrequiredstring

The entity id for an entity's column; combined and consolidated for the two totals.

labelrequiredstring

The entity's name, or the total's.

kindrequiredstring

member: the parent or a member consolidated in full. combined: the members' sum, nothing eliminated. adjustments: the consolidation entity's entries. consolidated: combined plus the adjustments. not_summed: an equity-method or cost member, shown beside the sum and never in it.

One of: member, combined, adjustments, consolidated, not_summed

entity_idoptionalstring

The entity the column reads; null on a total.

consolidation_methodoptionalstring

The entity's consolidation_method; null on a total.

ownership_pctoptionalnumber

The parent's share of the entity, where it has one.

in_sumrequiredboolean

Whether the column is part of the consolidated total.

rowsrequiredWorksheetRow[]

The union of every column's lines in the parent's Style order; a line zero in every column is left out.

WorksheetRow fields
FieldTypeDescription
qnamerequiredstring

The rs-gaap concept of the line.

namerequiredstring

The line's label.

traitoptionalstring

The concept's classification.

valuesrequirednumber[]

One value per column, aligned with columns.

depthoptionalinteger

Indentation in the statement.

Default: 0

is_subtotaloptionalboolean

Whether the line is a total.

Default: false

period_roleoptionalstring

On the equity roll-forward, start for the beginning-balance row and end for the ending-balance row. Null elsewhere.

validationoptionalValidationCheckResponse

The guard-rail outcome for the consolidated column, the same checks live-financial-statement runs.

ValidationCheckResponse fields
FieldTypeDescription
passedrequiredboolean

True iff at least one rule ran and every rule produced zero failures on every rendered column. False when nothing was checked (status == 'inconclusive').

statusrequiredstring

passed — every rule ran on every column with zero failures; failed — at least one rule failed; inconclusive — no validation rules exist for this block type, so nothing was checked.

checksrequiredstring[]

Names of rules that were evaluated.

failuresrequiredstring[]

Human-readable descriptions of rule failures.

warningsrequiredstring[]

Non-blocking advisories from rule evaluation.

unmapped_entity_idsoptionalstring[]

Entities with no CoA mapping yet, so with no column.

unmapped_countoptionalinteger

Unmapped accounts across the summed columns.

Default: 0

truncatedoptionalboolean

Whether limit cut rows.

Default: false

atrequiredstring

ISO-8601 UTC timestamp

createdByoptionalstring

User ID that initiated the operation

idempotentReplayoptionalboolean

True when this envelope came from the idempotency cache — the underlying command did not execute again. False on fresh executions.

Default: false

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