Browse the API reference

Resolve Reconciling Item

post/extensions/roboledger/{graph_id}/operations/resolve-reconciling-item

Part of Extensions: RoboLedger.

Dispose of one reconciling item and clear its flag. Three treatments: 'restate' regenerates the event's entries from the accepted payload in place (prior months' figures change — right when nothing external binds them); 'catch_up' leaves history alone and posts the difference as an alignment entry in an open period, local-only so it cannot travel back to the source system and apply the change twice; 'acknowledge' records that the difference was handled elsewhere and clears the flag without touching the ledger (a note is required, and reference_event_id should name the entry that handled it). Omit disposition to take the default from preview-reconciling-item. Clearing the flag means the item stays cleared: the event's payload is set to the accepted one, so the next sync no longer sees a difference.

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

Header parameters

NameTypeDescription
Idempotency-KeyoptionalstringIdempotency-Key

Request body

Required, application/json.

FieldTypeDescription
event_idrequiredstring

Event id (evt_ prefixed) to resolve

dispositionoptionalstring

How to dispose of the difference. Omit to take the default the preview reports: restate when every period the event touches is open, catch_up when any is closed.

One of: restate, catch_up, acknowledge

posting_dateoptionalstring (date)

catch_up only: when to post the catch-up entry. Defaults to the end of the earliest open period.

statusoptionalstring

catch_up only: whether the catch-up entry is drafted for review at close (default) or posted immediately. A draft appears in list-period-drafts and posts locally when the period closes.

One of: draft, posted

Default: draft

noteoptionalstring

Why this disposition. Required for acknowledge, where it is the only record of what was done instead.

reference_event_idoptionalstring

acknowledge only: the event that already handled this difference (e.g. an alignment entry authored by hand), recorded on the trail.

Example request

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

resultoptionalResolveReconcilingItemResponse

Command-specific result payload

ResolveReconcilingItemResponse fields
FieldTypeDescription
event_idrequiredstring
external_idoptionalstring
dispositionrequiredstring

One of: restate, catch_up, acknowledge

deltaoptionalReconcilingItemDeltaLine[]

One account's net change between the posted entries and the new payload. Amounts are signed minor units in debit-positive convention: a positive figure is a net debit, a negative one a net credit. ``delta`` is what a catch-up entry would post to bring the books level.

ReconcilingItemDeltaLine fields
FieldTypeDescription
element_idoptionalstring

CoA element id; null when the account is unmapped

element_external_idoptionalstring

Source-system account id, when the line carried one

element_codeoptionalstring

Account code

element_nameoptionalstring

Account name

prior_netrequiredinteger

Net of the posted entries, debit-positive

accepted_netrequiredinteger

Net of the new payload, debit-positive

deltarequiredinteger

accepted_net - prior_net

no_gl_effectoptionalboolean

Default: false

catch_upoptionalReconcilingItemCatchUp

Present when the disposition posted a catch-up entry

ReconcilingItemCatchUp fields
FieldTypeDescription
event_idrequiredstring
entry_idoptionalstring
transaction_idoptionalstring
posting_daterequiredstring (date)
statusrequiredstring
regeneratedoptionalReconcilingItemRegenerated

Present when the disposition rebuilt the event's entries

ReconcilingItemRegenerated fields
FieldTypeDescription
transaction_idsoptionalstring[]
entry_idsoptionalstring[]
reference_event_idoptionalstring
noteoptionalstring
resolved_atrequiredstring (date-time)
resolved_byrequiredstring
atrequiredstring

ISO-8601 UTC timestamp

createdByoptionalstring

User ID that initiated the operation (null for legacy callers)

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