Skip to main content
POST
Update a company

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

Sparse update: only the fields you send change, everything else stays as it is. While the company is requires_information (not yet handed to Clemta) the create-time details can still be corrected. After hand-off only timezone, owner_privacy, foreign_qualifications and metadata remain updatable - everything else is Clemta's to change from there. entity_type, state and pre_existing are never updatable: they price the formation - cancel the company and create it again instead.

name
string

New legal name (IRS charset, no leading "The"). Before hand-off only.

Required string length: 1 - 255
Pattern: ^[A-Za-z0-9 &-]+$
ending
enum<string>

New name suffix token, must match the entity type. Before hand-off only.

Available options:
llc,
l_l_c,
limited_liability_company,
inc,
incorporated,
co,
corp,
corporation
name_style
enum<string>

How the legal name renders around the ending. Before hand-off only.

Available options:
plain,
comma
owner_privacy
enum<string>

Whether the owners are kept off the public filing. private only in DE, NV, WY, NM. Updatable before and after hand-off.

Available options:
public,
private
industry
enum<string>

One of the platform catalog's tokens. Before hand-off only.

Available options:
accounting,
advertising,
agriculture,
art,
theater,
beauty_and_cosmetic_services,
biotech,
business_management,
cleaning_services,
construction,
consulting,
design,
e_commerce,
education,
entertainment,
financial_services,
fitness,
food,
hardware,
health_services,
insurance,
investment,
legal,
logistics,
marketing,
marketplace,
real_estate,
recruiting,
research,
retail_wholesale,
shipping_warehousing,
support_services,
software,
technology,
transportation,
other
industry_description
string

Required alongside industry: other, refused otherwise. Before hand-off only.

Maximum string length: 500
custom_industry
string

The short name of the custom industry. Required alongside industry: other, refused otherwise. Before hand-off only.

Maximum string length: 120
authorized_shares
integer<int64>

c_corp only. Before hand-off only.

Required range: x >= 1
par_value
number

c_corp only. Before hand-off only.

Required range: x >= 0
timezone
string

IANA time zone. Updatable before and after hand-off.

Maximum string length: 64
ein
string

For a pre_existing company only. Before hand-off only.

Maximum string length: 12
Pattern: ^[0-9]{2}-?[0-9]{7}$
address
object

For a pre_existing company only. Before hand-off only.

foreign_qualifications
object[]

Replaces the full list. For a pre_existing company, updatable before and after hand-off. An empty array clears it.

Maximum array length: 10
shareholders
object[]

The company's owners. Send this to collect the owners a company was created without, or to correct the roster - before hand-off only. It REPLACES the whole roster and follows the same rules as at create: exactly one main incorporator, ownership totals 100 percent. An individual owner without a passport gets an identity-document requirement to fulfill later. An empty array clears the roster.

Maximum array length: 25
metadata
object

Replaces the company's metadata with this set. Send the full map you want stored. An empty object clears it. Your own key-value pairs, returned verbatim.

Response

The updated company.

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.