Cookbook
Acquire a company
End-to-end acquisition. Opens the CorporateTransaction, drafts LOI, advances through close, files Form 8-K for public acquirers.
Last updated
Stock or asset purchase, due-diligence data room, signing & closing, indemnity escrow, post-closing integration.
Trigger
You've agreed price and structure; now you have to actually close.
Call sequence
1. Initiate the corporate transaction
POST /v1/corporate_transactions { entity, kind: 'acquisition' }2. Open a data room
POST /v1/data_rooms { transaction }3. Run §280G analysis if needed
POST /v1/parachute_analyses { transaction }4. Run cleansing vote if needed
POST /v1/parachute_analyses/{id}/run5. Open escrow
POST /v1/escrows { transaction, amount }6. Advance through stages
POST /v1/corporate_transactions/{id}/advanceIdempotency
Transaction creation idempotent on `(entity, counterparty, kind)`.
Webhooks
| Event | Description |
|---|---|
corporate_transaction.created | Transaction open. |
data_room.created | Data room ready. |
parachute_analysis.completed | If applicable. |
corporate_transaction.signed | Definitive docs executed. |
corporate_transaction.closed | Money flowed; integration begins. |
Errors
| Status | Code | Description |
|---|---|---|
422 | readiness_gate_not_passed | Some pre-condition is unmet. Inspect the readiness payload. |
Related
When to reach for it
Use this recipe when the target keeps its legal existence as a subsidiary of the acquirer (stock-for-stock or stock-for-cash). Sibling recipes:
- Both entities collapse into one survivor → merge-companies.
- Asset-only transfer (no equity flip) → execute-an-asset-sale.
- 100%-cash buyout of selling shareholders → execute-a-stock-sale.
- Acquirer takes the team but not the entity → close-an-acquihire.
Cascade outcome
A CorporateTransaction (ctx_…) walked end-to-end. On close:
- Target
Entity.statetransitionsactive → acquired. - Cap-table ownership is transferred to the acquirer (existing
Stakeholderrows are reassigned; the share ledger records atransfer_to_acquirerentry per class). - Acquirer-side
Filingrecords: Form 8-K (if public), state notices in every jurisdiction the target was qualified in. - Document pack: LOI, definitive merger / stock-purchase agreement, board resolutions for both sides, stockholder consent on the target side.
- Standing
Authorizationresources for each consequential advance:loi → definitive,definitive → closing,closing → closed. Each requires a human signature.
Expected webhooks
Strict per-entity ordering. The cascade walks four advances; each fires
authorization.created, the human approves, authorization.approved
fires, then the corresponding corporate_transaction.advanced rolls
forward.
corporate_transaction.created—kind: acquisition,stage: loi.document.generated×N — LOI, board resolutions, stockholder consent.authorization.created— for theloi → definitiveadvance.authorization.approved— once the human signs.corporate_transaction.advanced—stage: definitive.- (repeat advance/approve cycle for
definitive → closing) filing.submitted,filing.accepted— Form 8-K and state notices.corporate_transaction.advanced—stage: closing.- (final advance to
closed— also requires Authorization) corporate_transaction.closed— terminal.entity.state_changed— target movesactive → acquired.
Error recovery
| Failure | Cause | Remediation |
|---|---|---|
409 invalid_stage_transition | Tried to advance past a stage that's not yet ready (e.g. closing while diligence is open). | Read corporate_transaction.stage; advance one stage at a time. |
409 dissolution_blocked_open_obligations | Target has lapsed compliance — acquisition workflow refuses to close until the cap-table is clean. | Run POST /v1/workflows/file_all_due on the target first. |
403 max_consideration_exceeded | The token's limits.max_consideration_usd cap was hit. | Mint a higher-cap token, or split the consideration into a separate side-letter handled outside Matter. |
422 acquirer_not_resolvable | acquirer.external_name set but the workflow couldn't disambiguate from the SoS registry. | Pass acquirer.entity_id if both sides are on Matter, or acquirer.tax_id to disambiguate. |
409 authorization_already_resolved | Retried after a denial. | The transaction is terminated; open a new one. |
Full taxonomy: errors.
Related
POST /v1/corporate_transactions— the underlying primitive.- Exit phase — full state machine and kind-to-terminal-state mapping.
- Merge companies — collapse-into-survivor variant.
- Execute an asset sale — asset-only variant.
- Execute a stock sale — 100%-cash buyout.
- Run a 280G cleansing vote — required before close when officer parachutes exceed 3×.