---
title: "Import a company"
method: POST
path: "/v1/partner/companies/import"
tags: ["Companies"]
---

# Import a company

`POST /v1/partner/companies/import`

## Request

- Base URL: `https://api.test.doola.com`
- URL: `https://api.test.doola.com/v1/partner/companies/import`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/doola/apis/doola-partner-api/docs/v1/partner/companies/import/post.ts> (a function with typed inputs; its response is checked against the schema)

Records a company your customer already formed outside doola, so you can add doola services to it. Nothing is filed: no formation, registered agent or EIN work starts, and no formation webhook is sent. Send the company as the state has it on file, including its legal name, formation filing number and date and its current registered agent. Idempotent on the `Idempotency-Key` header, like company creation.

## Headers

- `Idempotency-Key` string, required

## Request body

- ImportCompanyRequest: Request body to import a company your customer already formed outside doola. Nothing is filed: the company is recorded as it exists today.
  - `doolaCustomerId` string, required: doola customer ID (KSUID) that owns the company.
  - `entityType` 'LLC' | 'CCorp', required: Entity type. An LLC takes `members`; a CCorp takes `executiveMembers` and `ccorpValuation`.
  - `managementType` 'MEMBER_MANAGED' | 'MANAGER_MANAGED': Who runs the LLC. Required for an LLC, where `members` lists the owners either way; omit for a CCorp, which its officers run.
  - `state` string, required: US state of formation (two-letter abbreviation).
  - `nameOptions` PartnerCompanyNameOptionDto[], required: The legal name as filed with the state, as exactly one name option: the name without the entity ending, and an ending that belongs to `entityType`. `position` is ignored.
    - `id` string: Server-assigned ID.
    - `name` string, required: Proposed company name, without the entity ending.
    - `entityTypeEnding` string, required: Entity-type ending appended to the name.
    - `position` integer: Preference order, lowest first. Ignored on create, where array order sets the preference and responses return it starting at 0. On a name-options resolution, options are ordered by this value, or by array order when it is omitted.
  - `formationFilingDate` string, date, required: Date the state formed the company. Cannot be in the future.
  - `formationFilingNumber` string, required: Filing number the state assigned when it formed the company. A state and filing number can be registered with doola only once.
  - `ein` string: Employer Identification Number, if the company has one.
  - `industry` string, required: Unique NAICS industry label (the `industry` value from GET /v1/partner/references/naics-codes).
  - `description` string, required: Short description of what the business does.
  - `responsibleParty` PartnerResponsiblePartyDto, required: The person legally responsible for the company (used for tax filings).
    - `id` string: Server-assigned ID, ignored on create and import. In the importCorrections of an IMPORT_INFO_REQUIRED resolution, send it back to keep this person and their stored SSN.
    - `legalFirstName` string, required: Legal first name.
    - `legalLastName` string, required: Legal last name.
    - `ssn` string: Social Security Number or ITIN. Optional. Input: nine ASCII digits or XXX-XX-XXXX. Handled as sensitive data.
    - `email` string, required: Contact email.
    - `address` PartnerAddressDto: A postal address.
      - `id` string: Server-assigned ID.
      - `line1` string, required: Street address line 1.
      - `line2` string: Street address line 2.
      - `city` string, required: City.
      - `state` string, required: State or province.
      - `postalCode` string, required: Postal or ZIP code.
      - `country` string, required: ISO 3166-1 alpha-3 country code (e.g. USA).
      - `phone` string: Phone number in E.164 format. Required for a person's address (the responsible party, a member, or an executive member); optional for a company `mailing` or `business` address.
  - `addresses` PartnerCompanyAddressDto[], required: The company's principal (`business`) and `mailing` addresses. Exactly one of each, both with `provider` set to `customer`: doola is not the company's registered agent.
    - `provider` 'customer' | 'registeredAgent', required: Who provides this address. Use `customer` to supply the address yourself in the `address` field. Use `registeredAgent` to have doola fill in its Registered Agent address for the company's state; leave `address` out, as it is not used for a registered-agent entry.
    - `type` 'mailing' | 'business', required: Which address this is. Send exactly one `mailing` entry and one `business` entry.
    - `address` PartnerAddressDto: A postal address.
      - `id` string: Server-assigned ID.
      - `line1` string, required: Street address line 1.
      - `line2` string: Street address line 2.
      - `city` string, required: City.
      - `state` string, required: State or province.
      - `postalCode` string, required: Postal or ZIP code.
      - `country` string, required: ISO 3166-1 alpha-3 country code (e.g. USA).
      - `phone` string: Phone number in E.164 format. Required for a person's address (the responsible party, a member, or an executive member); optional for a company `mailing` or `business` address.
  - `members` PartnerCompanyMemberDto[]: LLC members with their ownership percentages, which must total 100. Required for an LLC; omit for a CCorp.
    - `id` string: Server-assigned ID, ignored on create and import. In the importCorrections of an IMPORT_INFO_REQUIRED resolution, send it back to keep this person and their stored SSN.
    - `legalFirstName` string: Legal first name (natural persons).
    - `legalLastName` string: Legal last name (natural persons).
    - `contactFullName` string: Full contact name (entities or where a single name is used).
    - `isNaturalPerson` boolean, required: True if the member is a person, false if it is another entity.
    - `address` PartnerAddressDto, required: A postal address.
      - `id` string: Server-assigned ID.
      - `line1` string, required: Street address line 1.
      - `line2` string: Street address line 2.
      - `city` string, required: City.
      - `state` string, required: State or province.
      - `postalCode` string, required: Postal or ZIP code.
      - `country` string, required: ISO 3166-1 alpha-3 country code (e.g. USA).
      - `phone` string: Phone number in E.164 format. Required for a person's address (the responsible party, a member, or an executive member); optional for a company `mailing` or `business` address.
    - `ownershipPercent` number, required: Ownership percentage (0–100).
    - `ssn` string: Social Security Number or ITIN. Optional. Input: nine ASCII digits or XXX-XX-XXXX. Handled as sensitive data.
  - `managers` PartnerCompanyManagerDto[]: Managers of a manager-managed LLC: at least one is required when `managementType` is `MANAGER_MANAGED`, and none may be sent otherwise. Each follows the same rules as `responsibleParty`. `members` still lists the owners.
    - `id` string: Server-assigned ID, ignored on create and import. In the importCorrections of an IMPORT_INFO_REQUIRED resolution, send it back to keep this person and their stored SSN.
    - `legalFirstName` string, required: Manager's legal first name.
    - `legalLastName` string, required: Manager's legal last name.
    - `ssn` string: Manager's Social Security Number or ITIN. Optional. Input: nine ASCII digits or XXX-XX-XXXX. Handled as sensitive data.
    - `email` string, required: Manager's contact email.
    - `address` PartnerAddressDto: A postal address.
      - `id` string: Server-assigned ID.
      - `line1` string, required: Street address line 1.
      - `line2` string: Street address line 2.
      - `city` string, required: City.
      - `state` string, required: State or province.
      - `postalCode` string, required: Postal or ZIP code.
      - `country` string, required: ISO 3166-1 alpha-3 country code (e.g. USA).
      - `phone` string: Phone number in E.164 format. Required for a person's address (the responsible party, a member, or an executive member); optional for a company `mailing` or `business` address.
  - `executiveMembers` PartnerCCorpExecMemberDto[]: C-Corp officers and directors. Required for a CCorp; omit for an LLC. Include at least one President, Secretary, Treasurer, and Director.
    - `id` string: Server-assigned ID, ignored on create and import. In the importCorrections of an IMPORT_INFO_REQUIRED resolution, send it back to keep this person and their stored SSN.
    - `type` 'President' | 'Secretary' | 'Treasurer' | 'Director', required: Executive role. The list must include at least one of each role; President, Secretary, and Treasurer may each appear only once, while Director may repeat.
    - `legalFirstName` string, required: Legal first name.
    - `legalLastName` string, required: Legal last name.
    - `ssn` string: Social Security Number or ITIN. Optional. Input: nine ASCII digits or XXX-XX-XXXX. Handled as sensitive data.
    - `address` PartnerAddressDto, required: A postal address.
      - `id` string: Server-assigned ID.
      - `line1` string, required: Street address line 1.
      - `line2` string: Street address line 2.
      - `city` string, required: City.
      - `state` string, required: State or province.
      - `postalCode` string, required: Postal or ZIP code.
      - `country` string, required: ISO 3166-1 alpha-3 country code (e.g. USA).
      - `phone` string: Phone number in E.164 format. Required for a person's address (the responsible party, a member, or an executive member); optional for a company `mailing` or `business` address.
  - `ccorpValuation` PartnerCcorpValuationDto: C-Corp share structure.
    - `noOfShares` integer, required: Number of authorized shares. Must be greater than 0.
    - `shareValue` number, required: Par value per share, in USD. Must be greater than 0.
  - `registeredAgent` PartnerRegisteredAgentDto, required: The registered agent the company has today.
    - `name` string, required: Registered agent's name, as filed with the state.
    - `address` PartnerAddressDto, required: A postal address.
      - `id` string: Server-assigned ID.
      - `line1` string, required: Street address line 1.
      - `line2` string: Street address line 2.
      - `city` string, required: City.
      - `state` string, required: State or province.
      - `postalCode` string, required: Postal or ZIP code.
      - `country` string, required: ISO 3166-1 alpha-3 country code (e.g. USA).
      - `phone` string: Phone number in E.164 format. Required for a person's address (the responsible party, a member, or an executive member); optional for a company `mailing` or `business` address.

## Response `201`

Imported. importStatus is AWAITING_DOCUMENTS and documentRequirements lists the documents to upload next: the Articles always, and the EIN letter when you sent an EIN.

- PartnerCompanyResponse: A company, including formation progress and post-formation details.
  - `doolaCompanyId` string: doola company ID (KSUID).
  - `doolaCustomerId` string: Owning doola customer ID (KSUID).
  - `entityType` 'LLC' | 'CCorp': Entity type.
  - `state` string: State of formation.
  - `nameOptions` PartnerCompanyNameOptionDto[]
    - `id` string: Server-assigned ID.
    - `name` string, required: Proposed company name, without the entity ending.
    - `entityTypeEnding` string, required: Entity-type ending appended to the name.
    - `position` integer: Preference order, lowest first. Ignored on create, where array order sets the preference and responses return it starting at 0. On a name-options resolution, options are ordered by this value, or by array order when it is omitted.
  - `industry` string: Unique NAICS industry label the company was classified under.
  - `description` string
  - `responsibleParty` PartnerResponsiblePartyDto: The person legally responsible for the company (used for tax filings).
    - `id` string: Server-assigned ID, ignored on create and import. In the importCorrections of an IMPORT_INFO_REQUIRED resolution, send it back to keep this person and their stored SSN.
    - `legalFirstName` string, required: Legal first name.
    - `legalLastName` string, required: Legal last name.
    - `ssn` string: Social Security Number or ITIN. Optional. Input: nine ASCII digits or XXX-XX-XXXX. Handled as sensitive data.
    - `email` string, required: Contact email.
    - `address` PartnerAddressDto: A postal address.
      - `id` string: Server-assigned ID.
      - `line1` string, required: Street address line 1.
      - `line2` string: Street address line 2.
      - `city` string, required: City.
      - `state` string, required: State or province.
      - `postalCode` string, required: Postal or ZIP code.
      - `country` string, required: ISO 3166-1 alpha-3 country code (e.g. USA).
      - `phone` string: Phone number in E.164 format. Required for a person's address (the responsible party, a member, or an executive member); optional for a company `mailing` or `business` address.
  - `addresses` PartnerCompanyAddressDto[]
    - `provider` 'customer' | 'registeredAgent', required: Who provides this address. Use `customer` to supply the address yourself in the `address` field. Use `registeredAgent` to have doola fill in its Registered Agent address for the company's state; leave `address` out, as it is not used for a registered-agent entry.
    - `type` 'mailing' | 'business', required: Which address this is. Send exactly one `mailing` entry and one `business` entry.
    - `address` PartnerAddressDto: A postal address.
      - `id` string: Server-assigned ID.
      - `line1` string, required: Street address line 1.
      - `line2` string: Street address line 2.
      - `city` string, required: City.
      - `state` string, required: State or province.
      - `postalCode` string, required: Postal or ZIP code.
      - `country` string, required: ISO 3166-1 alpha-3 country code (e.g. USA).
      - `phone` string: Phone number in E.164 format. Required for a person's address (the responsible party, a member, or an executive member); optional for a company `mailing` or `business` address.
  - `members` PartnerCompanyMemberDto[]
    - `id` string: Server-assigned ID, ignored on create and import. In the importCorrections of an IMPORT_INFO_REQUIRED resolution, send it back to keep this person and their stored SSN.
    - `legalFirstName` string: Legal first name (natural persons).
    - `legalLastName` string: Legal last name (natural persons).
    - `contactFullName` string: Full contact name (entities or where a single name is used).
    - `isNaturalPerson` boolean, required: True if the member is a person, false if it is another entity.
    - `address` PartnerAddressDto, required: A postal address.
      - `id` string: Server-assigned ID.
      - `line1` string, required: Street address line 1.
      - `line2` string: Street address line 2.
      - `city` string, required: City.
      - `state` string, required: State or province.
      - `postalCode` string, required: Postal or ZIP code.
      - `country` string, required: ISO 3166-1 alpha-3 country code (e.g. USA).
      - `phone` string: Phone number in E.164 format. Required for a person's address (the responsible party, a member, or an executive member); optional for a company `mailing` or `business` address.
    - `ownershipPercent` number, required: Ownership percentage (0–100).
    - `ssn` string: Social Security Number or ITIN. Optional. Input: nine ASCII digits or XXX-XX-XXXX. Handled as sensitive data.
  - `managementType` 'MEMBER_MANAGED' | 'MANAGER_MANAGED': Who runs the LLC: MEMBER_MANAGED, its owners, or MANAGER_MANAGED, the people in `managers`. Absent for a CCorp and for an LLC that did not state it.
  - `managers` PartnerCompanyManagerDto[]: Managers of a manager-managed LLC, with masked SSNs. Present only when `managementType` is `MANAGER_MANAGED`; `members` still lists the owners.
    - `id` string: Server-assigned ID, ignored on create and import. In the importCorrections of an IMPORT_INFO_REQUIRED resolution, send it back to keep this person and their stored SSN.
    - `legalFirstName` string, required: Manager's legal first name.
    - `legalLastName` string, required: Manager's legal last name.
    - `ssn` string: Manager's Social Security Number or ITIN. Optional. Input: nine ASCII digits or XXX-XX-XXXX. Handled as sensitive data.
    - `email` string, required: Manager's contact email.
    - `address` PartnerAddressDto: A postal address.
      - `id` string: Server-assigned ID.
      - `line1` string, required: Street address line 1.
      - `line2` string: Street address line 2.
      - `city` string, required: City.
      - `state` string, required: State or province.
      - `postalCode` string, required: Postal or ZIP code.
      - `country` string, required: ISO 3166-1 alpha-3 country code (e.g. USA).
      - `phone` string: Phone number in E.164 format. Required for a person's address (the responsible party, a member, or an executive member); optional for a company `mailing` or `business` address.
  - `adminNotes` PartnerAdminNoteDto[]: Internal notes visible to the partner.
    - `noteId` string: Note ID.
    - `note` string: Note body.
    - `status` 'Unresolved' | 'Resolved' | 'Deleted': Note status.
    - `createdBy` string: Who created the note.
  - `formationSubmissionStatus` 'AWAITING_PAYMENT' | 'PENDING' | 'SUBMITTED' | 'COMPLETED' | 'FAILED' | 'CANCELLED': Tracks doola's handling of the formation request, from intake until the state filing is recorded. AWAITING_PAYMENT: submitted through the SDK, waiting on your payment confirmation — nothing is filed and no cost is incurred yet. PENDING: request received and being processed. SUBMITTED: accepted and formation started. COMPLETED: the state filing is recorded, set when company_formation_completed fires. FAILED: submission failed (see adminNotes). CANCELLED: withdrawn by doola before payment was confirmed; nothing was filed and a payment confirmation for it is refused.
  - `ein` string: Employer Identification Number, once issued.
  - `formationFilingDate` string, date: Date the formation was filed with the state, once filed.
  - `formationFilingNumber` string, nullable: Filing number assigned by the state when the formation was filed, once filed.
  - `services` PartnerCompanyServiceDto[]: Services attached to the company.
    - `name` string: Service name.
    - `variant` string: Service variant.
    - `status` string: Service status.
    - `subStatus` string: Service sub-status.
  - `executiveMembers` PartnerCCorpExecMemberDto[]: C-Corp officers and directors. Present for a CCorp.
    - `id` string: Server-assigned ID, ignored on create and import. In the importCorrections of an IMPORT_INFO_REQUIRED resolution, send it back to keep this person and their stored SSN.
    - `type` 'President' | 'Secretary' | 'Treasurer' | 'Director', required: Executive role. The list must include at least one of each role; President, Secretary, and Treasurer may each appear only once, while Director may repeat.
    - `legalFirstName` string, required: Legal first name.
    - `legalLastName` string, required: Legal last name.
    - `ssn` string: Social Security Number or ITIN. Optional. Input: nine ASCII digits or XXX-XX-XXXX. Handled as sensitive data.
    - `address` PartnerAddressDto, required: A postal address.
      - `id` string: Server-assigned ID.
      - `line1` string, required: Street address line 1.
      - `line2` string: Street address line 2.
      - `city` string, required: City.
      - `state` string, required: State or province.
      - `postalCode` string, required: Postal or ZIP code.
      - `country` string, required: ISO 3166-1 alpha-3 country code (e.g. USA).
      - `phone` string: Phone number in E.164 format. Required for a person's address (the responsible party, a member, or an executive member); optional for a company `mailing` or `business` address.
  - `ccorpValuation` PartnerCcorpValuationDto: C-Corp share structure.
    - `noOfShares` integer, required: Number of authorized shares. Must be greater than 0.
    - `shareValue` number, required: Par value per share, in USD. Must be greater than 0.
  - `signatureRequirements` PartnerSignatureRequirementDto[]: Signature steps required for this company, with their current status. Under the partner workflow, a valid SSN on any member, executive member, or responsible party exempts the company from formation signatures. An ITIN does not grant that exemption. SSNs are checked for format, not issuance. Otherwise SS-4 is required, plus Form 8821 for expedited EIN. Each status is COMPLETED once that document is signed, otherwise PENDING. Always present — an empty list means no signature is required, not that the field is absent.
    - `documentType` 'SS4' | 'FORM8821': Document the signature applies to.
    - `status` 'PENDING' | 'COMPLETED': Whether the signature step is still outstanding or fulfilled.
  - `origin` 'DOOLA' | 'IMPORTED': DOOLA for a company doola formed through the API, IMPORTED for one the partner imported after forming it elsewhere.
  - `importStatus` 'AWAITING_DOCUMENTS' | 'IN_REVIEW' | 'VERIFIED': Where an imported company stands. AWAITING_DOCUMENTS: the documents in documentRequirements are not all on file. IN_REVIEW: they are, and the company is being checked. VERIFIED: the company was checked; annual filing is allowed. A verified company can go back to IN_REVIEW if it needs another check. Absent for a company formed through doola.
  - `documentRequirements` PartnerDocumentRequirementDto[]: The documents an imported company must upload: the Articles always, and the EIN letter when the import sent an EIN. Absent for a company formed through doola.
    - `documentType` 'ArticlesOfOrganization' | 'EinLetter': The document type to upload with POST /v1/partner/companies/{companyId}/documents.
    - `status` 'missing' | 'received': Whether a document of this type is on file.

## Other responses

- `400`: E_VALIDATION_FAILED: a required field is missing or a value is invalid; each field carries its own code, for example E_FORMATION_FILING_NUMBER_INVALID or E_NAME_OPTIONS_INVALID. E_IDEMPOTENCY_KEY_REQUIRED: the Idempotency-Key header is missing.
- `404`: E_CUSTOMER_NOT_FOUND: no such customer for the authenticated partner.
- `409`: E_COMPANY_ALREADY_REGISTERED: a company with this state and formation filing number is already registered with doola. When it is one of your own companies, the message names its doola company ID; otherwise it names none.

## Changes

- **2026-11-06** `c485eb0c1571`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/doola/apis/doola-partner-api/changes/v1/partner/companies/import/post.md)

---

[API](https://skmtc.dev/doola/apis/doola-partner-api.md) - [All operations](https://skmtc.dev/doola/apis/doola-partner-api/llms.txt) - [OpenAPI document](https://skmtc.dev/doola/apis/doola-partner-api/revisions/c485eb0c1571?raw)
