Cookbook
Execute an asset sale
End-to-end asset sale. Bill of sale, assignment-and-assumption, asset schedule. Seller flips to sold if substantially all assets transfer.
Last updated
Asset purchase agreement, allocation schedule, escrow, indemnification — the entity continues to exist.
Trigger
You're selling specific assets, not the company.
Call sequence
1. Initiate transaction (kind=asset_sale)
POST /v1/corporate_transactions { kind: 'asset_sale' }2. Generate APA + allocation
POST /v1/documents { template: 'tpl_apa_v2' }3. Open escrow
POST /v1/escrows { transaction }4. File any required regulatory approvals
POST /v1/regulatory_filings { transaction }5. Close
POST /v1/corporate_transactions/{id}/closeIdempotency
Transaction idempotent on `(entity, counterparty, kind, asset_set.hash)`.
Webhooks
| Event | Description |
|---|---|
corporate_transaction.closed | Assets transferred. |
escrow.released | Escrow released per terms. |
Errors
| Status | Code | Description |
|---|---|---|
422 | unallocated_purchase_price | IRS Section 1060 allocation incomplete. |
When to reach for it
Use this recipe when the deal transfers specific assets — IP, equipment, customer lists, a product line — rather than the entity itself. The seller entity keeps existing; whether it stays operating depends on whether substantially all assets are transferred. Sibling recipes:
- Full company sold via stock → execute-a-stock-sale.
- Acquisition where the target keeps its legal existence as a subsidiary → acquire-a-company.
- Acquirer takes the team alongside the assets and the legacy entity winds down → close-an-acquihire.
Cascade outcome
A CorporateTransaction (ctx_…) walked end-to-end. On close:
- If
successor_liability: de_facto_mergeror substantially all assets transfer → sellerEntity.statetransitionsactive → sold. - Otherwise the seller stays
activewith a reduced asset profile and thecorporate_transaction.outcome.assets_transferred[]list recorded against it. - Document pack: bill of sale, assignment-and-assumption agreement, scheduled asset list, board resolution, optional stockholder consent if charter requires.
- Bulk-sale filings if the jurisdiction requires (e.g. UCC bulk-sale notices in states that retain Article 6).
Error recovery
| Failure | Cause | Remediation |
|---|---|---|
422 invalid_asset_category | Asset entry has a category not in the enum. | Use one of ip, equipment, inventory, accounts_receivable, contracts, real_property. |
409 partial_de_facto_merger | successor_liability: excluded but the asset schedule covers ≥ 90% of the seller's assets. | Either reduce the schedule, or flip to successor_liability: de_facto_merger and acknowledge the seller will move to sold. |
409 invalid_stage_transition | Tried to advance out of order. | Read corporate_transaction.stage; advance one stage at a time. |
422 bulk_sale_notice_required | Jurisdiction retains UCC Article 6 and the deal exceeds the threshold. | Add notify_creditors: true and pass creditor_list[]; the workflow then handles the notice cascade. |
Full taxonomy: errors.
Related
POST /v1/corporate_transactions— the underlying primitive.- Cap table — unaffected by an asset sale (no equity change).
- Exit phase — kind-to-terminal-state mapping for partial vs. substantial transfers.
- Execute a stock sale — when shares change hands instead of assets.
- Close an acquihire — when the team transitions and the legacy entity dissolves.