Record Acquisition
/extensions/roboledger/{graph_id}/operations/record-acquisitionPart 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-Keyheader. - Bearer token in the
Authorizationheader.
Path parameters
| Name | Type | Description |
|---|---|---|
graph_idrequired | string | Graph Id Constraints: matches |
Header parameters
| Name | Type | Description |
|---|---|---|
Idempotency-Keyoptional | string | Idempotency-Key |
Request body
Required, application/json.
| Field | Type | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
entity_idrequired | string | The member acquired, consolidated in full, with | |||||||||
considerationrequired | integer | 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_valueoptional | integer | 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 | |||||||||
allocationsoptional | AcquisitionAllocation[] | Fair-value step-ups; what is left of the excess is goodwill. AcquisitionAllocation fields
| |||||||||
basisrequired | string | Where the consideration and fair values come from: the purchase agreement, a valuation. Constraints: at least 1 character | |||||||||
confirm_bargain_purchaseoptional | boolean | 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: |
Example request
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
| Field | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operationrequired | string | Kebab-case operation name | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operationIdrequired | string | op_-prefixed ULID for audit and SSE correlation | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
statusrequired | string | Operation lifecycle state One of: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
resultoptional | AcquisitionResponse | Command-specific result payload AcquisitionResponse fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
atrequired | string | ISO-8601 UTC timestamp | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdByoptional | string | User ID that initiated the operation | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
idempotentReplayoptional | boolean | True when this envelope came from the idempotency cache — the underlying command did not execute again. False on fresh executions. Default: |
| Status | Meaning |
|---|---|
| 400 | Invalid request |
| 401 | Authentication required |
| 403 | Access denied |
| 404 | Resource not found |
| 409 | Idempotency-Key conflict — key reused with different body |
| 422 | Validation error |
| 429 | Rate limit exceeded |
| 500 | Internal server error |