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'import requests
url = "https://api.clemta.com/formations"
files = {
"shareholder_passport_0": ("example-file", open("example-file", "rb")),
"additionalProperties": ("example-file", open("example-file", "rb"))
}
payload = { "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\"}" }
headers = {"X-API-Key": "<api-key>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('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.append('shareholder_passport_0', '<string>');
form.append('additionalProperties', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {'X-API-Key': '<api-key>'}};
options.body = form;
fetch('https://api.clemta.com/formations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.clemta.com/formations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"company_data\"\r\n\r\n{\"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\"}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"shareholder_passport_0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"additionalProperties\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.clemta.com/formations"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"company_data\"\r\n\r\n{\"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\"}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"shareholder_passport_0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"additionalProperties\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.clemta.com/formations")
.header("X-API-Key", "<api-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"company_data\"\r\n\r\n{\"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\"}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"shareholder_passport_0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"additionalProperties\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.clemta.com/formations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"company_data\"\r\n\r\n{\"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\"}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"shareholder_passport_0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"additionalProperties\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"data": {
"formation_id": "<string>",
"company_id": "<string>",
"external_id": "<string>"
},
"error": {
"details": "<string>"
}
}{
"success": false,
"message": "Invalid request data",
"data": null,
"error": {
"code": "INVALID_REQUEST",
"details": "Field 'name' is required"
}
}{
"success": false,
"message": "API key is required",
"data": null,
"error": {
"code": "API_KEY_REQUIRED",
"details": ""
}
}{
"success": false,
"message": "External ID already exists for this partner",
"data": null,
"error": {
"code": "DUPLICATE_EXTERNAL_ID",
"details": ""
}
}{
"success": false,
"message": "Rate limit exceeded",
"data": null,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"details": "Too many requests. Please try again later."
}
}{
"success": false,
"message": "Internal server error",
"data": null,
"error": {
"code": "INTERNAL_ERROR",
"details": "An unexpected error occurred."
}
}Initiate Formation
Start the company formation process with provided details.
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'import requests
url = "https://api.clemta.com/formations"
files = {
"shareholder_passport_0": ("example-file", open("example-file", "rb")),
"additionalProperties": ("example-file", open("example-file", "rb"))
}
payload = { "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\"}" }
headers = {"X-API-Key": "<api-key>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('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.append('shareholder_passport_0', '<string>');
form.append('additionalProperties', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {'X-API-Key': '<api-key>'}};
options.body = form;
fetch('https://api.clemta.com/formations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.clemta.com/formations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"company_data\"\r\n\r\n{\"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\"}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"shareholder_passport_0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"additionalProperties\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.clemta.com/formations"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"company_data\"\r\n\r\n{\"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\"}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"shareholder_passport_0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"additionalProperties\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.clemta.com/formations")
.header("X-API-Key", "<api-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"company_data\"\r\n\r\n{\"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\"}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"shareholder_passport_0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"additionalProperties\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.clemta.com/formations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"company_data\"\r\n\r\n{\"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\"}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"shareholder_passport_0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"additionalProperties\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"data": {
"formation_id": "<string>",
"company_id": "<string>",
"external_id": "<string>"
},
"error": {
"details": "<string>"
}
}{
"success": false,
"message": "Invalid request data",
"data": null,
"error": {
"code": "INVALID_REQUEST",
"details": "Field 'name' is required"
}
}{
"success": false,
"message": "API key is required",
"data": null,
"error": {
"code": "API_KEY_REQUIRED",
"details": ""
}
}{
"success": false,
"message": "External ID already exists for this partner",
"data": null,
"error": {
"code": "DUPLICATE_EXTERNAL_ID",
"details": ""
}
}{
"success": false,
"message": "Rate limit exceeded",
"data": null,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"details": "Too many requests. Please try again later."
}
}{
"success": false,
"message": "Internal server error",
"data": null,
"error": {
"code": "INTERNAL_ERROR",
"details": "An unexpected error occurred."
}
}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
| Parameter | Type | Description |
|---|---|---|
| X-API-KEY | string | Formation API Key (required) |
| Content-Type | string | multipart/form-data |
Request Body (multipart/form-data)
The request must be sent asmultipart/form-data with the following fields:
Required Fields
| Field | Type | Description |
|---|---|---|
| company_data | string | JSON string containing company formation details |
Optional Fields
| Field | Type | Description |
|---|---|---|
| shareholder_passport_0 | file | Passport file for individual shareholder at index 0 (PDF, JPG, JPEG, PNG) |
| shareholder_passport_1 | file | Passport file for individual shareholder at index 1 (PDF, JPG, JPEG, PNG) |
| shareholder_passport_N | file | Additional passport files as needed |
company_data JSON Structure
Thecompany_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
| Parameter | Type | Description |
|---|---|---|
| success | boolean | Indicates if the operation was successful |
| message | string | Additional information about the operation |
| data | object | Response data for successful requests |
| data.formation_id | string | Unique formation process ID |
| data.company_id | string | Unique identifier for the created company |
| data.status | string | Current status of the company formation |
| data.external_id | string | Your 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
Formation API key for authentication.
Body
JSON string containing company formation details
"{\"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\"}"
Passport file for individual shareholder at index 0 (PDF, JPG, JPEG, PNG)
Additional shareholder passport files (shareholder_passport_1, shareholder_passport_2, etc.)