Browse the extensions reference

Propose Consolidation Entries

post/extensions/roboledger/{graph_id}/operations/propose-consolidation-entries

Part of RoboLedger: Ledger & Events.

Draft a month's consolidating entries in the group's consolidation entity: what preview-consolidation-entries computes, written as drafts that the consolidation entity's close posts. Proposing the month again replaces the drafts it wrote before, so it can be run after any member's books change; a person's own entries are never touched. Lines that eliminate a cash flow carry the row they offset. A residual or a disagreement is returned beside the drafts, never plugged; a month the consolidation entity has closed is left as posted.

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
periodrequiredstring

The month, as YYYY-MM.

Constraints: matches ^\d{4}-(0[1-9]|1[0-2])$

Example request

curl
curl -X POST "https://api.robosystems.ai/extensions/roboledger/{graph_id}/operations/propose-consolidation-entries" \
  -H "X-API-Key: $ROBOSYSTEMS_API_KEY" \
  -H "Idempotency-Key: <Idempotency-Key>" \
  -H "Content-Type: application/json" \
  -d '{
  "period": "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

resultoptionalProposeConsolidationEntriesResponse

Command-specific result payload

ProposeConsolidationEntriesResponse fields
FieldTypeDescription
periodrequiredstring

The month, as YYYY-MM.

consolidation_entity_idrequiredstring

The entity the drafts are in.

closedoptionalboolean

True when the month is closed and nothing was drafted.

Default: false

entriesoptionalJournalEntryResponse[]

The drafts written; the consolidation entity's close posts them.

JournalEntryResponse fields
FieldTypeDescription
idrequiredstring
transaction_idoptionalstring
typerequiredstring
statusrequiredstring
posting_daterequiredstring (date)
memooptionalstring
provenanceoptionalstring
reversal_ofoptionalstring
posted_atoptionalstring (date-time)
line_itemsrequiredJournalEntryLineItemResponse[]

One line in a journal entry response.

total_debitrequiredinteger
total_creditrequiredinteger
adjustment_kindoptionalstring
adjusts_entity_idoptionalstring
replacedoptionalinteger

Earlier drafts of this month's entries, replaced by these.

Default: 0

residualsoptionalConsolidationResidual[]

Differences withheld from the drafts until explained.

ConsolidationResidual fields
FieldTypeDescription
entity_idrequiredstring

The member.

entity_namerequiredstring

The member's name.

amountrequiredinteger

Cents: the parent's investment balance less its share of the member's capital. Positive when the parent carries more than its share.

explanationrequiredstring

What the two figures are.

reconciling_itemsoptionalConsolidationReconcilingItem[]

Intercompany figures the two sides do not agree on.

ConsolidationReconcilingItem fields
FieldTypeDescription
entity_idsrequiredstring[]

The two entities.

conceptrequiredstring

The rs-gaap concept left uneliminated.

entity_idrequiredstring

The entity whose figure is left.

amountrequiredinteger

Cents left uneliminated, debit-positive.

descriptionrequiredstring

What does not agree.

notesoptionalstring[]

Anything the engine left out, and why.

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