Simulate an event (test keys only)
Moves a test company - or one of its orders, tax filings or documents - the way a live change would, and delivers the resulting event(s) to your test webhooks. Available only with a test key (clmt_test_). A live key is refused. Nothing reaches Clemta. The response is the company afterwards.
Authorizations
Your API key, e.g. Authorization: Bearer clmt_test_. Live keys use the clmt_live_ prefix.
Headers
Date-based API version to run this request against.
"2026-08-13"
Path Parameters
ID of the company.
^cmp_[0-9A-Za-z]{22}$Body
Which event to simulate on a test company. The company (or its order, filing, file) is moved exactly as a live change would move it, then the event is delivered to your test webhooks - so every handler can be rehearsed against the real behaviour. Only the fields the event uses are read.
The event to produce. Events with a once-only rule keep it here too: company.incorporated fires the first time only. A bounce through company.status.changed back to active fires status.changed and not incorporated again.
company.status.changed, company.incorporated, company.verified, company.name.changed, company.ein.assigned, company.entitlements.changed, service_order.status.changed, service_order.completed, tax_filing.created, tax_filing.status.changed, file.created, requirement.created, invoice.finalized For company.status.changed - the status to move to. Moving to active the first time also fires company.incorporated.
in_progress, active, cancelled For company.name.changed - the new legal name.
200For company.ein.assigned. A second, different EIN updates the field without firing again.
^[0-9]{2}-[0-9]{7}$Rights the company holds, as counts remaining. An order for an entitlement product adds one. A tax filing consumes one when it is submitted. Some may be granted directly. company.entitlements.changed announces every move.
For service_order.* - the test order on this company.
^so_[0-9A-Za-z]{22}$For service_order.status.changed - the workflow step name to move the order to.
100For service_order.status.changed - whether the step waits on a form (opens a form requirement, status requires_action).
For service_order.status.changed - whether the step is the final one (status completed, fires service_order.completed once).
The tax filing to open or move (sandbox).
For file.created - the document's filename. A placeholder PDF is served from the file's content endpoint.
200For requirement.created - the Clemta ask (an information requirement).
500Response
The company after the simulated change.
Entity name. Identifies this object when it arrives without its URL - nested under an expand[], inside an event payload, or in a webhook.
company Identifier of the company.
^cmp_[0-9A-Za-z]{22}$"cmp_0346sFPEvSkJvY8vt14NNw"
The account (the incorporator) this company was created under. Expand account to embed the full object.
^acct_[0-9A-Za-z]{22}$"acct_0346sFPEvSkJvY8vt14NNw"
False for a company created with a test key. A test company is a sandbox simulation - it never reaches fulfillment or billing.
Legal name of the company.
US state of formation, as a two-letter code.
AL, AK, AZ, AR, CA, CO, CT, DE, FL, GA, HI, ID, IL, IN, IA, KS, KY, LA, ME, MD, MA, MI, MN, MS, MO, MT, NE, NV, NH, NJ, NM, NY, NC, ND, OH, OK, OR, PA, RI, SC, SD, TN, TX, UT, VT, VA, WA, WV, WI, WY, DC "DE"
Entity type being formed.
llc, c_corp "llc"
Lifecycle status. A company starts in requires_information while it waits for its owners' identity documents. It moves to in_progress once every required document is present and it is submitted for formation, and to active once fulfilled.
requires_information, in_progress, active, cancelled, dissolved Whether the company's owners have submitted the identity documents needed to file. verified_at records when. State filings wait for it.
pending, verified When the company was created.
When the company was last modified. Also written to the Last-Modified response header on a single-company fetch, so a conditional If-Modified-Since request can be answered 304 Not Modified.
Your own identifier for this company, unique across your companies.
The full account this company was created under. Present only when requested with expand[]=account.
Free-text description of the business, present when industry is other.
Short name of the custom industry, present when industry is other.
The company's IANA time zone.
How the legal name renders around the ending.
plain, comma The rendered legal name - name, the name_style separator, and the ending ("Acme, LLC").
Whether the owners are kept off the public filing. Choosable only in DE, NV, WY, NM.
public, private True when the company already existed before it was brought to Clemta. False when Clemta forms it.
The federal tax id, once the IRS has issued it. Fires company.ein.assigned when it lands.
When every owner's identity document was in and the company was ready for formation. company.verified announces this moment, and it does not change afterward.
When the company was dissolved. Terminal: the company's status is dissolved from that moment, every recurring service stopped renewing, open requirements were closed, and nothing further can be ordered. company.dissolved announces this moment, and it does not change afterward.
When the company was marked incorporated in Clemta - the moment company.incorporated fires. It can differ from incorporation_date, the legal formation date the state assigned.
When the EIN was assigned. company.ein.assigned announces this moment, and it does not change afterward.
The fine-grained formation step under status - where formation stands right now. Changes fire company.status.changed. Reaching incorporated also fires company.incorporated.
preparing_documents, documents_generated, signature_requested, submitted_to_state, name_conflict, incorporated, closed The legal formation date the state assigned, recorded from the formation document (for a pre_existing company, the one uploaded through its requirement). It can differ from incorporated_at, which is when Clemta marked the company incorporated. Never an input. company.updated announces changes.
The company's legal address, maintained by Clemta.
States the company is registered in beside its formation state.
Rights the company holds, as counts remaining. An order for an entitlement product adds one. A tax filing consumes one when it is submitted. Some may be granted directly. company.entitlements.changed announces every move.
How many requirements currently stand open on this company - "is anything waiting on you" in one number, without touching status. Derived at read time on API responses. Webhook data.object snapshots omit it.
Every service order on the company, newest first, embedded when the request carries expand[]=service_orders - including the mandatory products a create attached automatically. The same rows GET /companies/{id}/service-orders lists.
The open requirements themselves, embedded when the request carries expand[]=requirements - the list behind open_requirements. Resolved history stays on GET /companies/{id}/requirements.
The company's owners. Collect a missing identity document by attaching an uploaded file (passport) or by creating a verification session for the owner.
The management roster - everyone who holds a position. A director is an officer holding the director role. There is no separate directors list. Includes officers who are not owners. Set at company creation, and kept current as the roster changes.
LLC only - whether the company is member-managed or manager-managed.
member_managed, manager_managed Whether the officer roster is final. When true with an empty officers, the company has no officers by design, not a roster still being collected.
Your own key-value pairs, stored and returned verbatim. Clemta never reads them.