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

# Create corporation

> Create a new corporation in your organization

Creates a new corporation entity in your organization. A corporation represents a distinct legal entity or business.

<ParamField body="legal_name" type="string" required>
  Legal name of the entity, including the type suffix (e.g., "Inc.", "LLC").
</ParamField>

<ParamField body="jurisdiction" type="string" required>
  The ISO 3166 2-alpha country code where the business entity is registered.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url 'https://transaction-tax.api.in.commenda.io/api/v1/corporations' \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
      "legal_name": "Acme Corporation Inc.",
      "jurisdiction": "US",
      "email_alias": "acme"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://transaction-tax.api.in.commenda.io/api/v1/corporations', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer <token>',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      legal_name: 'Acme Corporation Inc.',
      jurisdiction: 'US',
      email_alias: 'acme'
    })
  });

  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
    'https://transaction-tax.api.in.commenda.io/api/v1/corporations',
    headers={'Authorization': 'Bearer <token>'},
    json={
      'legal_name': 'Acme Corporation Inc.',
      'jurisdiction': 'US',
      'email_alias': 'acme'
    }
  )

  data = response.json()
  ```
</RequestExample>

<ResponseExample>
  ```json 201 theme={null}
  {
    "message": "Corporation created successfully.",
    "data": {
      "id": "corp_123abc",
      "legal_name": "Acme Corporation Inc.",
      "created_at": 1704067200,
      "jurisdiction": "US",
      "email_alias": "acme@filings.commenda.io"
    }
  }
  ```

  ```json 400 theme={null}
  {
    "error": {
      "code": "VALIDATION_ERROR",
      "message": "Invalid request body",
      "details": [
        {
          "field": "legal_name",
          "message": "Legal name is required"
        }
      ]
    }
  }
  ```

  ```json 409 theme={null}
  {
    "error": {
      "code": "CORPORATION_ALREADY_EXISTS",
      "message": "A corporation with this legal name already exists"
    }
  }
  ```
</ResponseExample>


## OpenAPI

````yaml POST /corporations
openapi: 3.0.1
info:
  title: Commenda Public APIs
  description: >-
    APIs for Commenda entity management, partner incorporation, indirect tax,
    compliance, and corporate operations.
  license:
    name: NONE
    url: NONE
  version: 1.0.0
servers:
  - url: https://api.prod.commenda.io/api/v1
    description: Commenda platform APIs, including Partner Incorporation and Commenda OS.
  - url: https://transaction-tax.api.in.commenda.io/api/v1
    description: Global Indirect Tax API.
security:
  - bearerAuth: []
paths:
  /corporations:
    post:
      summary: Add a new corporation.
      description: Create a new corporation for a sales tax partner.
      operationId: createCorporation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCorporation'
      responses:
        '200':
          description: Sales tax registration response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Corporation'
                  message:
                    type: string
                    example: Successfully created corporation.
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    CreateCorporation:
      type: object
      description: Request body for creating a new corporation.
      required:
        - legal_name
      properties:
        legal_name:
          type: string
          description: The legal name of the corporation.
          example: Acme Corporation
    Corporation:
      type: object
      description: A corporation registered with Commenda.
      required:
        - id
        - legal_name
      properties:
        id:
          type: string
          description: The unique identifier for a corporation.
          example: b6d009b0-d174-463f-b030-94643c28e209
        legal_name:
          type: string
          description: The legal name of the corporation.
          example: Acme Corporation
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              description: 'Specific Error type. Example: CLIENT_INVALID_REQUEST_BODY.'
              example: CLIENT_INVALID_REQUEST_BODY
            doc_url:
              type: string
              description: >-
                A link to the docs with details about this error. Example:
                https://sales-tax-docs.commenda.io/
              example: https://sales-tax-docs.commenda.io/
            title:
              type: string
              description: >-
                A short title describing the error. Example: Missing query
                parameters.
              example: Failed to validate the request body
            detail:
              type: string
              description: >-
                A json string with a description on how to fix the error.
                Example {"description":"Please pass in a valid corporation_id"}
            status:
              type: number
              description: >-
                The status code. It should be the same as the HTTP protocol
                status code. Example: 200
              example: 400
            instance:
              type: string
              description: >-
                The relative path that was hit by the user. Example:
                /api/v1/corporations/1
            Errors:
              type: array
              items:
                type: object
                properties:
                  details:
                    type: string
                    description: More details on how to solve this particular error.
                  pointer:
                    type: string
                    description: >-
                      Relative reference to missing or invalid piece of passed
                      information.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````