Skip to content

Company routes: dissolve, incorporate, register

The Company Verbs dissolve, incorporate, register as api.sb routes, with inputs, result, refusals and an example.

Reference for Company, one group of Company routes.

Company.dissolve

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

Text
POST /{namespace}/companies/{company}/dissolve

Path: company. Body, as JSON: the other inputs. 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

Terminal
curl -X POST https://api.sb/leaseline.app/companies/company_28zYNZEno0/dissolve \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reason":"Example reason"}'
JSON
{
  "api": "https://api.sb/leaseline.app",
  "company": {
    "$id": "https://api.sb/leaseline.app/companies/company_28zYNZEno0",
    "$type": "Company",
    "name": "Leaseline",
    "legalName": "Leaseline Inc.",
    "jurisdiction": "US-DE",
    "status": "dissolved"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Company.dissolve",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}

Company.incorporate

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

Text
POST /{namespace}/companies/incorporate

Body, as JSON: the inputs. 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

Terminal
curl -X POST https://api.sb/leaseline.app/companies/incorporate \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"legalName":"Leaseline Inc.","jurisdiction":"US-DE"}'
JSON
{
  "api": "https://api.sb/leaseline.app",
  "company": {
    "$id": "https://api.sb/leaseline.app/companies/company_28zYNZEno0",
    "$type": "Company",
    "name": "Leaseline",
    "legalName": "Leaseline Inc.",
    "jurisdiction": "US-DE",
    "status": "incorporated"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Company.incorporate",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}

Company.register

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

Text
POST /{namespace}/companies/register

Body, as JSON: the inputs. 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

Terminal
curl -X POST https://api.sb/leaseline.app/companies/register \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jurisdiction":"US-TX","kind":"salesTax"}'
JSON
{
  "api": "https://api.sb/leaseline.app",
  "credential": {
    "$id": "https://api.sb/leaseline.app/credentials/credential_Abb9zatRR1",
    "$type": "Credential",
    "issuer": "Example issuer",
    "jurisdiction": "US-DE"
  },
  "company": {
    "$id": "https://api.sb/leaseline.app/companies/company_28zYNZEno0",
    "$type": "Company",
    "name": "Leaseline",
    "legalName": "Leaseline Inc.",
    "jurisdiction": "US-DE",
    "status": "forming"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Company.register",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}