Skip to main content
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' \
  --form additionalProperties='@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
company_data
string
required

JSON string containing company formation details

Example:

"{\"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\"}"

shareholder_passport_0
file

Passport file for individual shareholder at index 0 (PDF, JPG, JPEG, PNG)

{key}
file

Additional shareholder passport files (shareholder_passport_1, shareholder_passport_2, etc.)

Response

Formation created successfully

success
boolean
required

Indicates if the request was successful

message
string
required

Response message

data
object

Response data for successful requests

error
object

Error details for failed requests