> ## Documentation Index
> Fetch the complete documentation index at: https://docs.doola.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a company

> Starts a company formation for one of your customers. Set `entityType` to `LLC` (the default) or `CCorp`: an LLC takes `members`, while a CCorp takes `executiveMembers` and `ccorpValuation`. Idempotent on the `Idempotency-Key` header: a successful create is replayed for the same key, so retries never start a duplicate formation. If a create fails before it commits, the key is released — fix the request and retry with the same key.



## OpenAPI

````yaml /api-reference/openapi.json post /v1/partner/companies
openapi: 3.1.0
info:
  title: doola Partner API
  description: >-
    REST API for doola partners to create and manage customers and companies,
    retrieve formation documents, and look up reference data.


    Authenticate every request with a partner API key in the `Authorization`
    header. Generate keys and manage webhooks and event subscriptions in the
    doola Partner Portal.
  contact:
    name: doola
    url: https://www.doola.com
  version: v1
servers:
  - url: https://api.test.doola.com
    description: Sandbox — use test keys (dk_test_…)
  - url: https://api.doola.com
    description: Production — use live keys (dk_live_…)
security:
  - PartnerApiKey: []
tags:
  - name: Playground (sandbox only)
    description: >-
      Sandbox-only helpers to drive a test company through the Formation and
      EinCreation milestones end to end.
  - name: Customers
    description: Create and look up customers under your partner tenant.
  - name: Documents
    description: List and download a company's formation documents.
  - name: Signatures
    description: Request embedded signing sessions for pending company documents.
  - name: Companies
    description: Create companies for your customers, then track formation status.
  - name: Reference data
    description: >-
      Static lookups for building company-creation requests: NAICS codes,
      states, countries, and state filing fees.
paths:
  /v1/partner/companies:
    post:
      tags:
        - Companies
      summary: Create a company
      description: >-
        Starts a company formation for one of your customers. Set `entityType`
        to `LLC` (the default) or `CCorp`: an LLC takes `members`, while a CCorp
        takes `executiveMembers` and `ccorpValuation`. Idempotent on the
        `Idempotency-Key` header: a successful create is replayed for the same
        key, so retries never start a duplicate formation. If a create fails
        before it commits, the key is released — fix the request and retry with
        the same key.
      operationId: createCompany
      parameters:
        - name: Idempotency-Key
          in: header
          description: >-
            Unique key that makes the create safe to retry. Reuse the same value
            to retry; if the create fails before committing, the key is
            released, so retry with the same value.
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCompanyRequest'
            examples:
              LLC formation:
                description: LLC formation
                value:
                  doolaCustomerId: 3GS8Guk4H6BiP8tgfNVIQDFvKQ9
                  entityType: LLC
                  state: WY
                  nameOptions:
                    - name: Acme Labs
                      entityTypeEnding: LLC
                  industry: Custom Computer Programming Services
                  description: Custom software development for small businesses.
                  responsibleParty:
                    legalFirstName: Ada
                    legalLastName: Lovelace
                    email: ada@example.com
                    ssn: 123-45-6789
                    address:
                      line1: 251 W 30th St
                      line2: Ste 12E
                      city: New York
                      state: NY
                      postalCode: '10001'
                      country: USA
                      phone: '+12125550100'
                  addresses:
                    - provider: customer
                      type: mailing
                      address:
                        line1: 251 W 30th St
                        city: New York
                        state: NY
                        postalCode: '10001'
                        country: USA
                    - provider: registeredAgent
                      type: business
                  members:
                    - isNaturalPerson: true
                      legalFirstName: Ada
                      legalLastName: Lovelace
                      ownershipPercent: 100
                      address:
                        line1: 251 W 30th St
                        city: New York
                        state: NY
                        postalCode: '10001'
                        country: USA
                        phone: '+12125550100'
              CCorp formation:
                description: CCorp formation
                value:
                  doolaCustomerId: 3GS9gyeBDENq7kvAv818oPITfyh
                  entityType: CCorp
                  state: DE
                  nameOptions:
                    - name: Acme Robotics
                      entityTypeEnding: Inc.
                  industry: Custom Computer Programming Services
                  description: Robotics hardware and software.
                  responsibleParty:
                    legalFirstName: Ada
                    legalLastName: Lovelace
                    email: ada@example.com
                    ssn: 123-45-6789
                    address:
                      line1: 251 W 30th St
                      line2: Ste 12E
                      city: New York
                      state: NY
                      postalCode: '10001'
                      country: USA
                      phone: '+12125550100'
                  addresses:
                    - provider: customer
                      type: mailing
                      address:
                        line1: 251 W 30th St
                        city: New York
                        state: NY
                        postalCode: '10001'
                        country: USA
                    - provider: customer
                      type: business
                      address:
                        line1: 251 W 30th St
                        city: New York
                        state: NY
                        postalCode: '10001'
                        country: USA
                  executiveMembers:
                    - type: President
                      legalFirstName: Ada
                      legalLastName: Lovelace
                      address:
                        line1: 251 W 30th St
                        city: New York
                        state: NY
                        postalCode: '10001'
                        country: USA
                        phone: '+12125550100'
                    - type: Secretary
                      legalFirstName: Alan
                      legalLastName: Turing
                      address:
                        line1: 251 W 30th St
                        city: New York
                        state: NY
                        postalCode: '10001'
                        country: USA
                        phone: '+12125550101'
                    - type: Treasurer
                      legalFirstName: Grace
                      legalLastName: Hopper
                      address:
                        line1: 251 W 30th St
                        city: New York
                        state: NY
                        postalCode: '10001'
                        country: USA
                        phone: '+12125550102'
                    - type: Director
                      legalFirstName: Katherine
                      legalLastName: Johnson
                      address:
                        line1: 251 W 30th St
                        city: New York
                        state: NY
                        postalCode: '10001'
                        country: USA
                        phone: '+12125550103'
                  ccorpValuation:
                    noOfShares: 10000000
                    shareValue: 0.0001
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              examples:
                LLC formation:
                  description: LLC formation
                  value:
                    doolaCompanyId: 3GS9gsGmVOomgWbdvdkYe5S1We6
                    doolaCustomerId: 3GS8Guk4H6BiP8tgfNVIQDFvKQ9
                    entityType: LLC
                    state: WY
                    nameOptions:
                      - id: 3GS9gy7p6XeGwLNzpBfrywhHV8I
                        name: Acme Labs
                        entityTypeEnding: LLC
                        position: 0
                    naicsCode: '541511'
                    industry: Custom Computer Programming Services
                    description: Custom software development for small businesses.
                    responsibleParty:
                      id: 3GS9gz0xoo4muvao4StueQho0bz
                      legalFirstName: Ada
                      legalLastName: Lovelace
                      ssn: '****-**-6789'
                      email: ada@example.com
                      address:
                        line1: 251 W 30th St
                        line2: Ste 12E
                        city: New York
                        state: NY
                        postalCode: '10001'
                        country: USA
                        phone: '+12125550100'
                    addresses:
                      - provider: customer
                        type: mailing
                        address:
                          line1: 251 W 30th St
                          city: New York
                          state: NY
                          postalCode: '10001'
                          country: USA
                      - provider: registeredAgent
                        type: business
                        address:
                          line1: 30 N Gould St STE R
                          city: Sheridan
                          state: WYOMING
                          postalCode: '82801'
                          country: USA
                    members:
                      - id: 3GS9gudNgT6hrvovLep2tSO8PKR
                        legalFirstName: Ada
                        legalLastName: Lovelace
                        isNaturalPerson: true
                        address:
                          line1: 251 W 30th St
                          city: New York
                          state: NY
                          postalCode: '10001'
                          country: USA
                          phone: '+12125550100'
                        ownershipPercent: 100
                    adminNotes: []
                    formationSubmissionStatus: PENDING
                    services:
                      - name: Formation
                        variant: NONE
                        status: InProgress
                        subStatus: WaitingForRaToSucceed
                      - name: EinCreation
                        variant: NONE
                        status: NotStarted
                        subStatus: WaitingForFilingServiceToComplete
                      - name: RegisteredAgent
                        variant: NONE
                        status: NotStarted
                        subStatus: WaitingForFormation
                      - name: AiCofounder
                        variant: NONE
                        status: Active
                    signatureRequirements: []
                CCorp formation:
                  description: CCorp formation
                  value:
                    doolaCompanyId: 3GS9gtHAgQZSvCOGtOhPSgKEODv
                    doolaCustomerId: 3GS9gyeBDENq7kvAv818oPITfyh
                    entityType: CCorp
                    state: DE
                    nameOptions:
                      - id: 3GS9gsXtZ4eHUq6e8vmHwuPB7Uu
                        name: Acme Robotics
                        entityTypeEnding: Inc.
                        position: 0
                    naicsCode: '541511'
                    industry: Custom Computer Programming Services
                    description: Robotics hardware and software.
                    responsibleParty:
                      id: 3GS9iVV1n7PAXWH4zwbngRLAer3
                      legalFirstName: Ada
                      legalLastName: Lovelace
                      ssn: '****-**-6789'
                      email: ada@example.com
                      address:
                        line1: 251 W 30th St
                        line2: Ste 12E
                        city: New York
                        state: NY
                        postalCode: '10001'
                        country: USA
                        phone: '+12125550100'
                    addresses:
                      - provider: customer
                        type: mailing
                        address:
                          line1: 251 W 30th St
                          city: New York
                          state: NY
                          postalCode: '10001'
                          country: USA
                      - provider: customer
                        type: business
                        address:
                          line1: 251 W 30th St
                          city: New York
                          state: NY
                          postalCode: '10001'
                          country: USA
                    adminNotes: []
                    formationSubmissionStatus: PENDING
                    services:
                      - name: Formation
                        variant: NONE
                        status: InProgress
                        subStatus: WaitingForRaToSucceed
                      - name: EinCreation
                        variant: NONE
                        status: NotStarted
                        subStatus: WaitingForFilingServiceToComplete
                      - name: RegisteredAgent
                        variant: NONE
                        status: NotStarted
                        subStatus: WaitingForFormation
                      - name: AiCofounder
                        variant: NONE
                        status: Active
                    executiveMembers:
                      - id: 3GS9iW3OSCpInXx8cZSvzpJFqrL
                        type: President
                        legalFirstName: Ada
                        legalLastName: Lovelace
                        address:
                          line1: 251 W 30th St
                          city: New York
                          state: NY
                          postalCode: '10001'
                          country: USA
                          phone: '+12125550100'
                      - id: 3GS9iWDB03XVCuNQGKo9bBwYNZv
                        type: Secretary
                        legalFirstName: Alan
                        legalLastName: Turing
                        address:
                          line1: 251 W 30th St
                          city: New York
                          state: NY
                          postalCode: '10001'
                          country: USA
                          phone: '+12125550101'
                      - id: 3GS9iZBZXYwWEn93ACgEQmZ97VW
                        type: Treasurer
                        legalFirstName: Grace
                        legalLastName: Hopper
                        address:
                          line1: 251 W 30th St
                          city: New York
                          state: NY
                          postalCode: '10001'
                          country: USA
                          phone: '+12125550102'
                      - id: 3GS9iYoS7VuRpE3GHcdUTyvg3PV
                        type: Director
                        legalFirstName: Katherine
                        legalLastName: Johnson
                        address:
                          line1: 251 W 30th St
                          city: New York
                          state: NY
                          postalCode: '10001'
                          country: USA
                          phone: '+12125550103'
                    ccorpValuation:
                      noOfShares: 10000000
                      shareValue: 0.0001
                    signatureRequirements: []
components:
  schemas:
    CreateCompanyRequest:
      type: object
      description: Request body to create (form) a company for one of your customers.
      properties:
        doolaCustomerId:
          type: string
          description: doola customer ID (KSUID) that will own the company.
          minLength: 1
        entityType:
          type: string
          default: LLC
          description: >-
            Entity type to form. Defaults to LLC when omitted. An LLC takes
            `members`; a CCorp takes `executiveMembers` and `ccorpValuation`.
          enum:
            - LLC
            - CCorp
          example: LLC
        state:
          type: string
          description: US state of formation (two-letter abbreviation).
          example: DE
        nameOptions:
          type: array
          description: >-
            Candidate company names, in order of preference. One to three
            entries.
          items:
            $ref: '#/components/schemas/PartnerCompanyNameOptionDto'
        industry:
          type: string
          description: >-
            Unique NAICS industry label (the `industry` value from GET
            /v1/partner/references/naics-codes). Preferred over `naicsCode`:
            Provide either `industry` or `naicsCode`; when both are sent,
            `industry` wins.
          example: Custom Computer Programming Services
        naicsCode:
          type: string
          deprecated: true
          description: >-
            NAICS industry code. DEPRECATED — use `industry` instead. When
            `industry` is also provided it takes precedence and this value is
            ignored; otherwise it must exist in the reference list. Supported
            through the 90-day deprecation window for backwards compatibility.
          example: '541511'
        description:
          type: string
          description: Short description of what the business does.
          example: Custom software development for small businesses.
          minLength: 1
        responsibleParty:
          $ref: '#/components/schemas/PartnerResponsiblePartyDto'
          description: The person legally responsible for the company.
        addresses:
          type: array
          description: >-
            Company addresses. Exactly two entries are required: one `mailing`
            and one `business`. Each entry is either `customer`-provided or
            handed to doola's Registered Agent (see the `provider` field).
          items:
            $ref: '#/components/schemas/PartnerCompanyAddressDto'
        members:
          type: array
          description: >-
            Company members/owners. Required for an LLC (ownership percentages
            must total 100); omit for a CCorp.
          items:
            $ref: '#/components/schemas/PartnerCompanyMemberDto'
        executiveMembers:
          type: array
          description: >-
            C-Corp officers and directors. Required for a CCorp; omit for an
            LLC. Include at least one President, Secretary, Treasurer, and
            Director; the President, Secretary, and Treasurer may each appear
            only once.
          items:
            $ref: '#/components/schemas/PartnerCCorpExecMemberDto'
        ccorpValuation:
          $ref: '#/components/schemas/PartnerCcorpValuationDto'
          description: C-Corp share structure. Required for a CCorp; omit for an LLC.
        requestedServices:
          type: array
          description: >-
            Optional per-service variant overrides. Today only the EIN service
            is configurable: include `{ "service": "EinCreation", "variant":
            "Expedite" }` to request the expedited EIN (requires a non-US
            applicant). Omit for standard processing.
          items:
            $ref: '#/components/schemas/RequestedServiceDto'
      required:
        - addresses
        - description
        - doolaCustomerId
        - nameOptions
        - responsibleParty
        - state
    PartnerCompanyNameOptionDto:
      type: object
      description: A candidate company name.
      properties:
        id:
          type: string
          description: Server-assigned ID.
          readOnly: true
        name:
          type: string
          description: Proposed company name, without the entity ending.
          example: Acme Labs
        entityTypeEnding:
          type: string
          description: Entity-type ending appended to the name.
          example: LLC
        position:
          type: integer
          format: int32
          description: Preference order (1 = first choice).
          example: 1
      required:
        - entityTypeEnding
        - name
    PartnerResponsiblePartyDto:
      type: object
      description: The person legally responsible for the company (used for tax filings).
      properties:
        id:
          type: string
          description: Server-assigned ID.
          readOnly: true
        legalFirstName:
          type: string
          description: Legal first name.
          example: Ada
        legalLastName:
          type: string
          description: Legal last name.
          example: Lovelace
        ssn:
          type: string
          description: >-
            Social Security Number or ITIN. Optional. Format: XXX-XX-XXXX.
            Handled as sensitive data.
        email:
          type: string
          description: Contact email.
          example: ada@example.com
        address:
          $ref: '#/components/schemas/PartnerAddressDto'
          description: Responsible party's address.
      required:
        - email
        - legalFirstName
        - legalLastName
    PartnerCompanyAddressDto:
      type: object
      description: A company address of a given type.
      properties:
        provider:
          type: string
          description: >-
            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.
          enum:
            - customer
            - registeredAgent
          example: registeredAgent
        type:
          type: string
          description: >-
            Which address this is. Send exactly one `mailing` entry and one
            `business` entry.
          enum:
            - mailing
            - business
          example: business
        address:
          $ref: '#/components/schemas/PartnerAddressDto'
          description: The address itself.
      required:
        - provider
        - type
    PartnerCompanyMemberDto:
      type: object
      description: A company member/owner. Ownership across all members must total 100.
      properties:
        id:
          type: string
          description: Server-assigned ID.
          readOnly: true
        legalFirstName:
          type: string
          description: Legal first name (natural persons).
          example: Ada
        legalLastName:
          type: string
          description: Legal last name (natural persons).
          example: Lovelace
        contactFullName:
          type: string
          description: Full contact name (entities or where a single name is used).
          example: Acme Holdings LLC
        isNaturalPerson:
          type: boolean
          description: True if the member is a person, false if it is another entity.
          example: true
        address:
          $ref: '#/components/schemas/PartnerAddressDto'
          description: Member's address.
        ownershipPercent:
          type: number
          description: Ownership percentage (0–100).
          example: 100
        ssn:
          type: string
          description: >-
            Social Security Number or ITIN. Optional. Format: XXX-XX-XXXX.
            Handled as sensitive data.
      required:
        - address
        - isNaturalPerson
        - ownershipPercent
    PartnerCCorpExecMemberDto:
      type: object
      description: A C-Corp executive member — an officer or director.
      properties:
        id:
          type: string
          description: Server-assigned ID.
          readOnly: true
        type:
          type: string
          description: >-
            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.
          enum:
            - President
            - Secretary
            - Treasurer
            - Director
          example: President
        legalFirstName:
          type: string
          description: Legal first name.
          example: Ada
        legalLastName:
          type: string
          description: Legal last name.
          example: Lovelace
        ssn:
          type: string
          description: >-
            Social Security Number or ITIN. Optional. Format: XXX-XX-XXXX.
            Handled as sensitive data.
        address:
          $ref: '#/components/schemas/PartnerAddressDto'
          description: Executive member's address.
      required:
        - address
        - legalFirstName
        - legalLastName
        - type
    PartnerCcorpValuationDto:
      type: object
      description: C-Corp share structure.
      properties:
        noOfShares:
          type: integer
          format: int32
          description: Number of authorized shares. Must be greater than 0.
          example: 10000000
        shareValue:
          type: number
          description: Par value per share, in USD. Must be greater than 0.
          example: 0.0001
      required:
        - noOfShares
        - shareValue
    RequestedServiceDto:
      type: object
      description: Requests a specific variant for one of the company's services.
      properties:
        service:
          type: string
          description: Service to configure. Only `EinCreation` is supported today.
          enum:
            - EinCreation
          example: EinCreation
        variant:
          type: string
          description: >-
            Variant for the service. `Expedite` requests the expedited EIN;
            `Standard` is the default and behaves the same as omitting the
            entry.
          enum:
            - Standard
            - Expedite
          example: Expedite
    PartnerAddressDto:
      type: object
      description: A postal address.
      properties:
        id:
          type: string
          description: Server-assigned ID.
          readOnly: true
        line1:
          type: string
          description: Street address line 1.
          example: 251 W 30th St
        line2:
          type: string
          description: Street address line 2.
          example: Ste 12E
        city:
          type: string
          description: City.
          example: New York
        state:
          type: string
          description: State or province.
          example: NY
        postalCode:
          type: string
          description: Postal or ZIP code.
          example: '10001'
        country:
          type: string
          description: ISO 3166-1 alpha-3 country code (e.g. USA).
          example: USA
        phone:
          type: string
          description: >-
            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.
          example: '+12125550100'
      required:
        - city
        - country
        - line1
        - postalCode
        - state
  securitySchemes:
    PartnerApiKey:
      type: apiKey
      description: >-
        Partner API key. Send the raw key as the `Authorization` header value —
        e.g. `dk_test_…` in sandbox or `dk_live_…` in production. Generate and
        rotate keys in the doola Partner Portal.
      name: Authorization
      in: header

````