POST
/
formations
Create Company Formation
curl --request POST \
  --url https://api.clemta.com/formations \
  --header 'Content-Type: multipart/form-data' \
  --header 'X-API-Key: <api-key>' \
  --form 'company_data={"name":"Example Corp","type":"LLC","state":"DE","ending":"LLC","industry":"Technology","address":{"address1":"123 Main St","city":"Wilmington","state":"DE","zip":"19801","country":"US"},"shareholders":[{"type":"individual","first_name":"John","last_name":"Doe","number_of_shares":100,"email":"[email protected]","phone":"+1234567890","iso_code":"US","title":"CEO","address":{"address1":"123 Main St","city":"Wilmington","state":"DE","zip":"19801","country":"US"},"is_main_incorporator":true,"ssn":"123456789"}],"timezone":"America/New_York","account_holder":{"first_name":"John","last_name":"Doe","email":"[email protected]","phone":"+1234567890"},"package":"essential"}' \
  --form shareholder_passport_0=@example-file
{
  "success": true,
  "message": "<string>",
  "data": {
    "formation_id": "<string>",
    "company_id": "<string>",
    "status": "shareholder_verification",
    "external_id": "<string>"
  },
  "error": {
    "code": "API_KEY_REQUIRED",
    "details": "<string>"
  }
}

Initiate Company Formation

The Formation API allows partners to initiate company formations programmatically. This endpoint starts the company formation process with the provided details.

Headers

ParameterTypeDescription
X-API-KEYstringFormation API Key (required)
Content-Typestringmultipart/form-data

Request Body (multipart/form-data)

The request must be sent as multipart/form-data with the following fields:

Required Fields

FieldTypeDescription
company_datastringJSON string containing company formation details

Optional Fields

FieldTypeDescription
shareholder_passport_0filePassport file for individual shareholder at index 0 (PDF, JPG, JPEG, PNG)
shareholder_passport_1filePassport file for individual shareholder at index 1 (PDF, JPG, JPEG, PNG)
shareholder_passport_NfileAdditional passport files as needed

company_data JSON Structure

The company_data field must contain a JSON string with the following structure:
{
  "name": "Example Corp",
  "type": "LLC",
  "state": "DE",
  "ending": "LLC",
  "industry": "Technology",
  "address": {
    "address1": "123 Main St",
    "city": "Wilmington",
    "state": "DE",
    "zip": "19801",
    "country": "US"
  },
  "shareholders": [
    {
      "type": "individual",
      "first_name": "John",
      "last_name": "Doe",
      "number_of_shares": 100,
      "email": "[email protected]",
      "phone": "+1234567890",
      "iso_code": "US",
      "title": "CEO",
      "address": {
        "address1": "123 Main St",
        "city": "Wilmington",
        "state": "DE",
        "zip": "19801",
        "country": "US"
      },
      "is_main_incorporator": true,
      "ssn": "123456789"
    }
  ],
  "timezone": "America/New_York",
  "account_holder": {
    "first_name": "John",
    "last_name": "Doe",
    "email": "[email protected]",
    "phone": "+1234567890"
  },
  "package": "essential",
  "external_id": "your-unique-id-123",
  "custom_data": {
    "your_field": "your_value"
  }
}

Response

{
  "success": true,
  "message": "Formation created successfully",
  "data": {
    "formation_id": "64b8f1a2e4b0c8d9f0123456",
    "company_id": "64b8f1a2e4b0c8d9f0123456",
    "status": "shareholder_verification",
    "external_id": "your-unique-id-123"
  },
  "error": null
}

Response Parameters

ParameterTypeDescription
successbooleanIndicates if the operation was successful
messagestringAdditional information about the operation
dataobjectResponse data for successful requests
data.formation_idstringUnique formation process ID
data.company_idstringUnique identifier for the created company
data.statusstringCurrent status of the company formation
data.external_idstringYour provided external ID (if any)

Error Responses

Invalid Request or Validation Failed (400)

{
  "success": false,
  "message": "Invalid request data",
  "data": null,
  "error": {
    "code": "VALIDATION_FAILED",
    "details": "Field 'name' is required"
  }
}

Unauthorized - Invalid API Key (401)

{
  "success": false,
  "message": "API key is required",
  "data": null,
  "error": {
    "code": "API_KEY_REQUIRED"
  }
}

Conflict - External ID Already Exists (409)

{
  "success": false,
  "message": "External ID already exists for this partner",
  "data": null,
  "error": {
    "code": "DUPLICATE_EXTERNAL_ID"
  }
}

Rate Limit Exceeded (429)

{
  "success": false,
  "message": "Rate limit exceeded",
  "data": null,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED"
  }
}

Internal Server Error (500)

{
  "success": false,
  "message": "Internal server error",
  "data": null,
  "error": {
    "code": "INTERNAL_ERROR"
  }
}

Authorizations

X-API-Key
string
header
required

Formation API key for authentication.

Body

multipart/form-data

Response

200
application/json

Formation created successfully

The response is of type object.