Browse the extensions reference

Update Entity

post/extensions/roboledger/{graph_id}/operations/update-entity

Part of RoboLedger: Setup.

Update an entity of the graph's reporting group. Only provided (non-null) fields are updated. Omit entity_id to target the group parent; name a subsidiary's id to edit it. ownership_pct is refused on the group parent (422), and ticker must stay unique in the graph (409). consolidation_method overrides the treatment the share implies (a new share re-derives it unless both are given), entity_role: consolidation marks the group's entity for consolidating entries, and joined_on / left_on bound its membership by month — set left_on when a subsidiary leaves the group and its history stays readable under 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
entity_idoptionalstring

The entity to update. Omit to target the group parent — the single-entity default.

nameoptionalstring
legal_nameoptionalstring
urioptionalstring
cikoptionalstring
tickeroptionalstring
exchangeoptionalstring
sicoptionalstring
sic_descriptionoptionalstring
categoryoptionalstring
state_of_incorporationoptionalstring
fiscal_year_endoptionalstring

Fiscal year-end as MM-DD (e.g. '12-31', '06-30').

tax_idoptionalstring
leioptionalstring
industryoptionalstring
entity_typeoptionalstring
phoneoptionalstring
websiteoptionalstring
address_line1optionalstring
address_cityoptionalstring
address_stateoptionalstring
address_postal_codeoptionalstring
address_countryoptionalstring
ownership_pctoptionalnumber

The parent's share of this entity, as a percent. Refused on the group parent, which has no owner in the graph. A new share re-derives consolidation_method unless that is given too.

Constraints: at most 100; greater than 0

consolidation_methodoptionalstring

How the group's consolidated statements treat this entity: full (its books are summed and an outside owner's share is carried as noncontrolling interest), equity (one investment line and one income line), cost (an investment at cost) or none (the group parent, the consolidation entity, a linked counterparty). Derived from ownership_pct when not given — 50 and above full, 20 to 50 equity, below 20 cost, unrecorded full — and set by a person where control is not the percentage: a managing member with a minority stake consolidates in full, a majority without control takes the equity method. On the group parent and the consolidation entity only none holds.

One of: full, equity, cost, none

entity_roleoptionalstring

operating keeps a company's books. consolidation is the group's one entity for the consolidating entries — eliminations, noncontrolling interest, the equity-method pick-up — the adjustments column of a consolidation worksheet, which only the consolidated statements read and no operating company's statements ever include. Its method is none. Refused on the group parent. Marking an entity consolidation sets its method to none.

One of: operating, consolidation

joined_onoptionalstring (date)

The month this entity became a member of the group, as any date in it; null is a member since the beginning. The consolidated statements include it from that month. Membership is by month: a period column wider than a month that overlaps the interval is summed whole, so a member's books in this graph should hold only the months it belonged. Pass null to clear it. Refused on the consolidation entity.

left_onoptionalstring (date)

The month this entity left the group, as any date in it; null is a member still. The consolidated statements include it through that month and leave it out after. Membership is by month: a period column wider than a month that overlaps the interval is summed whole, so a member's books in this graph should hold only the months it belonged. Must not precede joined_on. Set it when a subsidiary is sold, dissolved or deconsolidated; its closed months and stamped statements stay readable under the group. Pass null to reopen membership. Refused on the consolidation entity.

Example request

curl · example 1 of 6
curl -X POST "https://api.robosystems.ai/extensions/roboledger/{graph_id}/operations/update-entity" \
  -H "X-API-Key: $ROBOSYSTEMS_API_KEY" \
  -H "Idempotency-Key: <Idempotency-Key>" \
  -H "Content-Type: application/json" \
  -d '{
  "entity_type": "corporation",
  "fiscal_year_end": "12-31",
  "legal_name": "Acme Corporation, Inc.",
  "name": "Acme Corp",
  "state_of_incorporation": "DE",
  "tax_id": "12-3456789"
}'
curl · example 2 of 6
curl -X POST "https://api.robosystems.ai/extensions/roboledger/{graph_id}/operations/update-entity" \
  -H "X-API-Key: $ROBOSYSTEMS_API_KEY" \
  -H "Idempotency-Key: <Idempotency-Key>" \
  -H "Content-Type: application/json" \
  -d '{
  "address_city": "Seattle",
  "address_country": "US",
  "address_line1": "100 Main St",
  "address_postal_code": "98101",
  "address_state": "WA"
}'
curl · example 3 of 6
curl -X POST "https://api.robosystems.ai/extensions/roboledger/{graph_id}/operations/update-entity" \
  -H "X-API-Key: $ROBOSYSTEMS_API_KEY" \
  -H "Idempotency-Key: <Idempotency-Key>" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Acme Holdings, LLC"
}'
curl · example 4 of 6
curl -X POST "https://api.robosystems.ai/extensions/roboledger/{graph_id}/operations/update-entity" \
  -H "X-API-Key: $ROBOSYSTEMS_API_KEY" \
  -H "Idempotency-Key: <Idempotency-Key>" \
  -H "Content-Type: application/json" \
  -d '{
  "entity_id": "ent_01J9ZK3M4N5P6Q7R8S9T0V1W2X",
  "ownership_pct": 80
}'
curl · example 5 of 6
curl -X POST "https://api.robosystems.ai/extensions/roboledger/{graph_id}/operations/update-entity" \
  -H "X-API-Key: $ROBOSYSTEMS_API_KEY" \
  -H "Idempotency-Key: <Idempotency-Key>" \
  -H "Content-Type: application/json" \
  -d '{
  "consolidation_method": "full",
  "entity_id": "ent_01J9ZK3M4N5P6Q7R8S9T0V1W2X",
  "ownership_pct": 45
}'
curl · example 6 of 6
curl -X POST "https://api.robosystems.ai/extensions/roboledger/{graph_id}/operations/update-entity" \
  -H "X-API-Key: $ROBOSYSTEMS_API_KEY" \
  -H "Idempotency-Key: <Idempotency-Key>" \
  -H "Content-Type: application/json" \
  -d '{
  "entity_id": "ent_01J9ZK3M4N5P6Q7R8S9T0V1W2X",
  "left_on": "2026-12-31"
}'

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

resultoptionalLedgerEntityResponse

Command-specific result payload

LedgerEntityResponse fields
FieldTypeDescription
idrequiredstring

Entity identifier (ULID).

namerequiredstring

Display name shown in UI.

legal_nameoptionalstring

Full registered legal name (when different from name).

urioptionalstring

Canonical URL / external identifier.

cikoptionalstring

SEC CIK (Central Index Key).

tickeroptionalstring

Stock ticker symbol.

exchangeoptionalstring

Listing exchange (e.g. 'NASDAQ', 'NYSE').

sicoptionalstring

SIC industry code.

sic_descriptionoptionalstring

SIC code description.

categoryoptionalstring

Filer category (e.g. 'Large Accelerated Filer').

state_of_incorporationoptionalstring

US state or country of incorporation.

fiscal_year_endoptionalstring

Fiscal year-end as MM-DD (e.g. '12-31', '06-30').

tax_idoptionalstring

Tax ID (EIN / SSN).

leioptionalstring

Legal Entity Identifier (ISO 17442).

industryoptionalstring

Free-form industry label.

entity_typeoptionalstring

Legal form (e.g. 'corporation', 'llc', 'lp').

reporting_style_idoptionalstring

Active Reporting Style (Structure id) governing this entity's statement layout. Change it via the change-reporting-style operation.

phoneoptionalstring
websiteoptionalstring
statusoptionalstring

Operational status: 'active' | 'inactive' | 'dissolved'.

Default: active

is_parentoptionalboolean

True for top-level entities; False for subsidiaries.

Default: true

parent_entity_idoptionalstring

Parent entity ID for subsidiaries; null for top-level.

ownership_pctoptionalnumber

The parent's share of this entity, as a percent (100 = wholly owned). Null on the group parent, and where it was never recorded.

consolidation_methodoptionalstring

How the group's consolidated statements treat this entity: full (its books are summed and an outside owner's share is carried as noncontrolling interest), equity (one investment line and one income line), cost (an investment at cost) or none (the group parent, the consolidation entity, a linked counterparty). Derived from ownership_pct when not given — 50 and above full, 20 to 50 equity, below 20 cost, unrecorded full — and set by a person where control is not the percentage: a managing member with a minority stake consolidates in full, a majority without control takes the equity method.

Default: none

entity_roleoptionalstring

operating keeps a company's books. consolidation is the group's one entity for the consolidating entries — eliminations, noncontrolling interest, the equity-method pick-up — the adjustments column of a consolidation worksheet, which only the consolidated statements read and no operating company's statements ever include. Its method is none.

Default: operating

joined_onoptionalstring (date)

The month this entity became a member of the group, as any date in it; null is a member since the beginning. The consolidated statements include it from that month. Membership is by month: a period column wider than a month that overlaps the interval is summed whole, so a member's books in this graph should hold only the months it belonged.

left_onoptionalstring (date)

The month this entity left the group, as any date in it; null is a member still. The consolidated statements include it through that month and leave it out after. Membership is by month: a period column wider than a month that overlaps the interval is summed whole, so a member's books in this graph should hold only the months it belonged.

is_formeroptionalboolean

True once the month this entity left the group is over: its months in the group are history, readable under it, and it is no longer current. False for a member still in, and through the month it leaves.

Default: false

sourceoptionalstring

Provenance: 'native' | 'sec' | 'quickbooks' | 'xero' | 'plaid'.

Default: native

source_idoptionalstring

Source-system primary key for sync reconciliation.

source_graph_idoptionalstring

Origin graph for received entities (cross-graph linking, e.g. RoboInvestor portfolio holdings).

connection_idoptionalstring

Source connection that ingested this row.

address_line1optionalstring
address_cityoptionalstring
address_stateoptionalstring
address_postal_codeoptionalstring
address_countryoptionalstring
created_atoptionalstring
updated_atoptionalstring
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