Browse the extensions reference

Refresh Reconciliations

post/extensions/roboledger/{graph_id}/operations/refresh-reconciliations

Part of RoboLedger: Ledger & Events.

Compare the ledger with its independent sources at a period end and record the result on each reconciliation block. For a ledger synced from QuickBooks this reads QuickBooks' own trial balance and records one comparison for the whole ledger: how many accounts were compared, how many do not tie, and the total difference. The block reconciles for the period when the difference is within its materiality. Running it again replaces the period's comparison, so the answer is always as of the last run. Returns every reconciliation's standing for the period, with the accounts that did not tie. Creates the block the first time it runs. Use preview-reconciliations to see the comparison without recording it.

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

Period to reconcile at its last day, as YYYY-MM.

Example request

curl
curl -X POST "https://api.robosystems.ai/extensions/roboledger/{graph_id}/operations/refresh-reconciliations" \
  -H "X-API-Key: $ROBOSYSTEMS_API_KEY" \
  -H "Idempotency-Key: <Idempotency-Key>" \
  -H "Content-Type: application/json" \
  -d '{
  "period": "2026-08"
}'

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

resultoptionalReconciliationListResponse

Command-specific result payload

ReconciliationListResponse fields
FieldTypeDescription
periodrequiredstring

The period, as YYYY-MM.

as_ofrequiredstring (date)

The period's last day.

reconciliationsrequiredReconciliationSummary[]

One entry per reconciliation block, oldest block first.

ReconciliationSummary fields
FieldTypeDescription
structure_idrequiredstring

The reconciliation block.

namerequiredstring

The block's name.

scoperequiredstring

ledger: the whole ledger against one source. account: one account against an independent balance.

methodrequiredstring

Where the independent side comes from. source_ledger is the synced accounting system's own trial balance.

element_idoptionalstring

The account reconciled; null for a ledger-scope block.

required_for_closerequiredboolean

Whether the period's close waits on this reconciliation.

materialityrequirednumber

A difference up to this amount still counts as reconciled.

periodrequiredstring

The period, as YYYY-MM.

as_ofrequiredstring (date)

The period's last day.

statusrequiredstring

not_started: not compared for this period. unreconciled: the sides differ by more than the materiality. explained: they differ and items account for all of it. reconciled: nothing is left unexplained. reviewed: reconciled and signed off.

unreconciled_differenceoptionalnumber

What is left unexplained at the last comparison; null when the period has not been compared.

accounts_comparedoptionalinteger

Ledger-scope only: accounts with a balance on either side.

accounts_differentoptionalinteger

Ledger-scope only: accounts that do not tie.

sourceoptionalstring

The system the independent side was read from.

compared_atoptionalstring (date-time)

When the two sides were last compared.

fact_set_idoptionalstring

The FactSet holding the period's comparison.

compared_byoptionalstring

The user whose action ran the last comparison.

compared_viaoptionalstring

operation when someone ran refresh-reconciliations; sync when a source sync refreshed it.

review_requiredrequiredboolean

Whether the close also waits for a sign-off.

separate_reviewerrequiredboolean

Whether the reviewer must be someone other than the person who ran the comparison.

reviewed_byoptionalstring

The user who signed off the comparison as it stands. Null when nobody has, or when the balances changed after the sign-off.

reviewed_atoptionalstring (date-time)

When the standing sign-off was made.

self_reviewedoptionalboolean

True when the reviewer is the person who ran the comparison they signed off. Null when there is no standing sign-off.

differencesoptionalReconciliationRow[]

Ledger-scope only: the accounts that did not tie at the last comparison, largest difference first.

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