Skip to main content
POST
Simulate an event (test keys only)

Authorizations

Authorization
string
header
required

Your API key, e.g. Authorization: Bearer clmt_test_. Live keys use the clmt_live_ prefix.

Headers

Clemta-Version
string

Date-based API version to run this request against.

Example:

"2026-08-13"

Path Parameters

companyID
string
required

ID of the company.

Pattern: ^cmp_[0-9A-Za-z]{22}$

Body

application/json

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.

event
enum<string>
required

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.

Available options:
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
status
enum<string>

For company.status.changed - the status to move to. Moving to active the first time also fires company.incorporated.

Available options:
in_progress,
active,
cancelled
name
string

For company.name.changed - the new legal name.

Maximum string length: 200
ein
string

For company.ein.assigned. A second, different EIN updates the field without firing again.

Pattern: ^[0-9]{2}-[0-9]{7}$
entitlements
object

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.

order
string

For service_order.* - the test order on this company.

Pattern: ^so_[0-9A-Za-z]{22}$
step
string

For service_order.status.changed - the workflow step name to move the order to.

Maximum string length: 100
form_required
boolean

For service_order.status.changed - whether the step waits on a form (opens a form requirement, status requires_action).

completed
boolean

For service_order.status.changed - whether the step is the final one (status completed, fires service_order.completed once).

tax_filing
object

The tax filing to open or move (sandbox).

file_name
string

For file.created - the document's filename. A placeholder PDF is served from the file's content endpoint.

Maximum string length: 200
message
string

For requirement.created - the Clemta ask (an information requirement).

Maximum string length: 500

Response

The company after the simulated change.

object
enum<string>
required

Entity name. Identifies this object when it arrives without its URL - nested under an expand[], inside an event payload, or in a webhook.

Available options:
company
id
string
required

Identifier of the company.

Pattern: ^cmp_[0-9A-Za-z]{22}$
Example:

"cmp_0346sFPEvSkJvY8vt14NNw"

account_id
string
required

The account (the incorporator) this company was created under. Expand account to embed the full object.

Pattern: ^acct_[0-9A-Za-z]{22}$
Example:

"acct_0346sFPEvSkJvY8vt14NNw"

livemode
boolean
required

False for a company created with a test key. A test company is a sandbox simulation - it never reaches fulfillment or billing.

name
string
required

Legal name of the company.

state
enum<string>
required

US state of formation, as a two-letter code.

Available options:
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
Example:

"DE"

entity_type
enum<string>
required

Entity type being formed.

Available options:
llc,
c_corp
Example:

"llc"

status
enum<string>
required

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.

Available options:
requires_information,
in_progress,
active,
cancelled,
dissolved
verification
enum<string>
required

Whether the company's owners have submitted the identity documents needed to file. verified_at records when. State filings wait for it.

Available options:
pending,
verified
created_at
string<date-time>
required

When the company was created.

updated_at
string<date-time>
required

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.

external_id
string

Your own identifier for this company, unique across your companies.

account
object

The full account this company was created under. Present only when requested with expand[]=account.

ending
string
industry
string
industry_description
string

Free-text description of the business, present when industry is other.

custom_industry
string

Short name of the custom industry, present when industry is other.

timezone
string

The company's IANA time zone.

name_style
enum<string>

How the legal name renders around the ending.

Available options:
plain,
comma

The rendered legal name - name, the name_style separator, and the ending ("Acme, LLC").

owner_privacy
enum<string>

Whether the owners are kept off the public filing. Choosable only in DE, NV, WY, NM.

Available options:
public,
private
pre_existing
boolean

True when the company already existed before it was brought to Clemta. False when Clemta forms it.

ein
string

The federal tax id, once the IRS has issued it. Fires company.ein.assigned when it lands.

verified_at
string<date-time>

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.

dissolved_at
string<date-time>

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.

incorporated_at
string<date-time>

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.

ein_assigned_at
string<date-time>

When the EIN was assigned. company.ein.assigned announces this moment, and it does not change afterward.

stage
enum<string>

The fine-grained formation step under status - where formation stands right now. Changes fire company.status.changed. Reaching incorporated also fires company.incorporated.

Available options:
preparing_documents,
documents_generated,
signature_requested,
submitted_to_state,
name_conflict,
incorporated,
closed
incorporation_date
string

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.

address
object

The company's legal address, maintained by Clemta.

foreign_qualifications
object[]

States the company is registered in beside its formation state.

entitlements
object

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.

open_requirements
integer<int64>
read-only

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.

service_orders
object[]
read-only

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.

requirements
object[]
read-only

The open requirements themselves, embedded when the request carries expand[]=requirements - the list behind open_requirements. Resolved history stays on GET /companies/{id}/requirements.

shareholders
object[]

The company's owners. Collect a missing identity document by attaching an uploaded file (passport) or by creating a verification session for the owner.

officers
object[]

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.

management_type
enum<string>

LLC only - whether the company is member-managed or manager-managed.

Available options:
member_managed,
manager_managed
officers_settled
boolean

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.

metadata
object

Your own key-value pairs, stored and returned verbatim. Clemta never reads them.