Browse the extensions reference

Record Acquisition

post/extensions/roboledger/{graph_id}/operations/record-acquisition

Part of RoboLedger: Ledger & Events.

Record a member the parent bought from its outside owners, for a member that joined mid-life (joined_on set) with its balance sheet at acquisition recorded by record-opening-balance. Give the consideration paid to the sellers in cents and the basis (the purchase agreement, a valuation); optionally the fair value of the outside owners' interest (nci_fair_value, for goodwill on the whole business) and fair-value step-ups (allocations). It writes a draft in the consolidation entity, dated the join, that its close posts: the excess of the consideration over the parent's share of the member's equity at acquisition goes to the step-ups and the rest to goodwill. preview-consolidation-entries then reads the consideration as the parent's investment, so the pre-acquisition residual clears. A bargain purchase is refused until confirm_bargain_purchase is set after the reassessment ASC 805 asks for. Recording again replaces the draft; a posted acquisition is reversed first.

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_idrequiredstring

The member acquired, consolidated in full, with joined_on set and its opening balance recorded at acquisition.

considerationrequiredinteger

Cents the parent paid the sellers for its interest. Its investment line names the seller, not the member, which is why it is given here.

Constraints: greater than 0

nci_fair_valueoptionalinteger

Cents: the fair value of the outside owners' interest at acquisition, for goodwill on the whole business (ASC 805). Omitted, the outside owners carry their share of the identifiable net assets and goodwill is the parent's alone.

Constraints: at least 0

allocationsoptionalAcquisitionAllocation[]

Fair-value step-ups; what is left of the excess is goodwill.

AcquisitionAllocation fields
FieldTypeDescription
conceptrequiredstring

The rs-gaap concept stepped up, e.g. rs-gaap:PropertyPlantAndEquipmentNet; the consolidation entity needs an account mapped to it.

amountrequiredinteger

Cents, debit-positive: fair value less book value at acquisition. Positive raises an asset; negative raises a liability.

basisrequiredstring

Where the consideration and fair values come from: the purchase agreement, a valuation.

Constraints: at least 1 character

confirm_bargain_purchaseoptionalboolean

Required when the parent paid less than its share of the fair value of what it acquired. ASC 805 has the acquirer reassess before recognizing the gain; set it only after that review.

Default: false

Example request

curl
curl -X POST "https://api.robosystems.ai/extensions/roboledger/{graph_id}/operations/record-acquisition" \
  -H "X-API-Key: $ROBOSYSTEMS_API_KEY" \
  -H "Idempotency-Key: <Idempotency-Key>" \
  -H "Content-Type: application/json" \
  -d '{
  "entity_id": "string",
  "consideration": 0,
  "basis": "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

resultoptionalAcquisitionResponse

Command-specific result payload

AcquisitionResponse fields
FieldTypeDescription
entity_idrequiredstring

The member.

entity_namerequiredstring

The member's name.

joined_onrequiredstring (date)

When it joined the group.

equity_at_acquisitionrequiredinteger

Cents: the member's equity in its opening balance.

parent_sharerequiredinteger

Cents: the parent's share of that equity.

considerationrequiredinteger

Cents paid to the sellers.

excessrequiredinteger

Cents: consideration less the parent's share of the equity.

goodwillrequiredinteger

Cents of goodwill; negative for a bargain purchase gain.

noncontrolling_interestoptionalinteger

Cents added to the outside owners' interest beyond their share of the member's book equity.

Default: 0

entryrequiredJournalEntryResponse

The acquisition entry, a draft the close posts.

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
replacedoptionalboolean

True when it replaced an earlier draft of the acquisition.

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