Skip to content

Company methods: dissolve, incorporate, register

The Company Verbs dissolve, incorporate, register as typed SDK methods, with inputs, result, refusals and an example.

Reference for Company, one group of Company methods.

Company.dissolve

Dissolve winds up a Company that holds no business: it files final returns and the certificate, and keeps every record. Verb page.

TypeScript
interface CompanyVerbs {
  dissolve(input: CompanyDissolveInput, options?: SB.CallOptions): SB.Call<Company>
}

Emits Company.dissolved.

Inputs

InputTypeRequiredDescription
companyCompanyrequiredThe Company to wind up.
reasontextrequiredWhy it ends, recorded as a Decision.

Returns

OutputTypeRequiredDescription
companyCompanyrequiredThe dissolved Company, kept forever.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.
The record is not in a state that allows this Verb, so the call is refused.refusedRead the record, run the Verb that moves it to an allowed state, then retry.None.

Example

TypeScript
import { $ } from 'startup-builder'

const company = await $.Company.dissolve({ company: 'company_28zYNZEno0', reason: 'Example reason' })

Company.incorporate

Incorporate forms a Company in a chosen jurisdiction, with its founders, shares and registered agent on record. Verb page.

TypeScript
interface CompanyVerbs {
  incorporate(input: CompanyIncorporateInput, options?: SB.CallOptions): SB.Call<Company>
}

Emits Company.incorporated.

Inputs

InputTypeRequiredDescription
legalNamestringrequiredThe registered name.
jurisdictionstringrequiredWhere the Company forms.

Returns

OutputTypeRequiredDescription
companyCompanyrequiredThe new Company.

Refuses when

CheckErrorFixThen call
The input does not match the schema of the operation.invalid-inputRead the schema of the operation, then send every required field with the right type.None.
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.
The record is not in a state that allows this Verb, so the call is refused.refusedRead the record, run the Verb that moves it to an allowed state, then retry.None.

Example

TypeScript
import { $ } from 'startup-builder'

const company = await $.Company.incorporate({ legalName: 'Leaseline Inc.', jurisdiction: 'US-DE' })

Company.register

Register applies for a sales tax, VAT or GST registration in one jurisdiction and records the grant as a Credential. Verb page.

TypeScript
interface CompanyVerbs {
  register(input: CompanyRegisterInput, options?: SB.CallOptions): SB.Call<CompanyRegisterOutput>
}

Emits Company.registered.

Inputs

InputTypeRequiredDescription
jurisdictionstringrequiredWhere to register, such as US-TX or EU-DE.
kindstringrequiredWhich tax the registration collects.

Returns

OutputTypeRequiredDescription
credentialCredentialrequiredThe registration, with its number and filing frequency once granted.
companyCompanyrequiredThe Company now registered in the jurisdiction.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

TypeScript
import { $ } from 'startup-builder'

const { credential, company } = await $.Company.register({ jurisdiction: 'US-TX', kind: 'salesTax' })