Cookbook
Merge companies
End-to-end merger. Plan of merger, Certificate of Merger, board/stockholder approvals, automatic child dissolution if target does not survive.
Last updated
Statutory merger filing, surviving entity, stockholder & board consent on both sides, certificate of merger.
Trigger
Two entities are combining; one survives.
Call sequence
1. Initiate transaction (kind=merger)
POST /v1/corporate_transactions { kind: 'merger', entities: [a, b], surviving }2. Generate merger agreement
POST /v1/documents { template: 'tpl_merger_v3' }3. Run consents on both sides
POST /v1/corporate_transactions/{id}/consents/run4. File certificate of merger
POST /v1/filings { kind: 'certificate_of_merger' }Idempotency
Transaction idempotent on `(entities.sort(), kind)`.
Webhooks
| Event | Description |
|---|---|
corporate_transaction.signed | Both sides signed. |
filing.completed | Certificate accepted. |
entity.merged | Non-surviving entity is now historical. |
Errors
| Status | Code | Description |
|---|---|---|
422 | mismatched_share_classes | Classes do not map cleanly; provide an explicit conversion table. |
When to reach for it
Use this recipe when two entities combine and one absorbs the other.
merger_type drives templating and which side dissolves:
forward— target absorbs into survivor; target →merged.reverse— survivor absorbs into target; survivor →merged.reverse_triangular— target survives as subsidiary of survivor's parent; both stayactive.
Cascade outcome
A CorporateTransaction (ctx_…) walked end-to-end. On close:
- Non-surviving entity →
merged(terminal). Surviving entity staysactivewith combined share ledger. - A child dissolution cascade runs on the non-surviving side: Form 966
→ final franchise tax → Certificate of Merger (substituted for
Certificate of Dissolution) → BOI closure. No separate
dissolveEntitycall required. - Combined cap-table — surviving entity's
ShareLedgerEntryrows expand to include the absorbed entity's holders at the conversion ratio. - Document pack: plan of merger, Certificate of Merger, board resolutions, stockholder consent, side-letters per holder if any.
Error recovery
| Failure | Cause | Remediation |
|---|---|---|
409 dissolution_blocked_open_obligations | Non-surviving entity has lapsed compliance. | Run file_all_due on the non-surviving side; retry with the same Idempotency-Key. |
422 incompatible_share_classes | Conversion ratio cannot be derived because share classes don't map cleanly. | Pass share_class_mapping explicitly per class; or run model_cap_table first to validate. |
409 invalid_stage_transition | Tried to advance past a stage that's not yet ready. | Read corporate_transaction.stage; advance one stage at a time. |
403 entities.dissolve_required | Token policy is missing entities.dissolve. | Mint a token with the scopes above. |
Full taxonomy: errors.
Related
POST /v1/corporate_transactions— the underlying primitive.- Dissolve an entity — the cascade that runs for non-surviving sides.
- Exit phase — kind-to-terminal-state mapping.
- Acquire a company — when the target should survive as a subsidiary.