Get incorporation status workflow
curl --request GET \
--url https://api.prod.commenda.io/api/v1/partner/incorporation/status-workflow \
--header 'x-api-key: <api-key>'import requests
url = "https://api.prod.commenda.io/api/v1/partner/incorporation/status-workflow"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.prod.commenda.io/api/v1/partner/incorporation/status-workflow', 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.prod.commenda.io/api/v1/partner/incorporation/status-workflow",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.prod.commenda.io/api/v1/partner/incorporation/status-workflow"
req, _ := http.NewRequest("GET", url, nil)
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.get("https://api.prod.commenda.io/api/v1/partner/incorporation/status-workflow")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.prod.commenda.io/api/v1/partner/incorporation/status-workflow")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"statusWorkflow": {
"schemaVersion": "2026-04-26",
"definitionVersion": "1.0.0",
"key": "singapore-incorporation-partner-api",
"country": "SG",
"countryOptions": {
"corporationType": "PRIVATE_LIMITED_COMPANY"
},
"name": "Singapore Private Limited Company Incorporation",
"description": "Track the public progress of a Singapore private limited company incorporation.",
"stages": [
{
"id": "kyc",
"label": "KYC",
"description": "Review required identity, ownership, and compliance materials.",
"owner": "PARTNER",
"position": 2
}
]
}
}{
"statusCode": 403,
"message": "Company does not belong to this affiliate firm",
"error": "Forbidden"
}{
"statusCode": 403,
"message": "Company does not belong to this affiliate firm",
"error": "Forbidden"
}{
"statusCode": 403,
"message": "Company does not belong to this affiliate firm",
"error": "Forbidden"
}Progress
Get status workflow
Retrieve the public status workflow for a selected incorporation jurisdiction and type. The response is derived from the active workflow template and includes ordered public stages.
GET
/
partner
/
incorporation
/
status-workflow
Get incorporation status workflow
curl --request GET \
--url https://api.prod.commenda.io/api/v1/partner/incorporation/status-workflow \
--header 'x-api-key: <api-key>'import requests
url = "https://api.prod.commenda.io/api/v1/partner/incorporation/status-workflow"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.prod.commenda.io/api/v1/partner/incorporation/status-workflow', 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.prod.commenda.io/api/v1/partner/incorporation/status-workflow",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.prod.commenda.io/api/v1/partner/incorporation/status-workflow"
req, _ := http.NewRequest("GET", url, nil)
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.get("https://api.prod.commenda.io/api/v1/partner/incorporation/status-workflow")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.prod.commenda.io/api/v1/partner/incorporation/status-workflow")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"statusWorkflow": {
"schemaVersion": "2026-04-26",
"definitionVersion": "1.0.0",
"key": "singapore-incorporation-partner-api",
"country": "SG",
"countryOptions": {
"corporationType": "PRIVATE_LIMITED_COMPANY"
},
"name": "Singapore Private Limited Company Incorporation",
"description": "Track the public progress of a Singapore private limited company incorporation.",
"stages": [
{
"id": "kyc",
"label": "KYC",
"description": "Review required identity, ownership, and compliance materials.",
"owner": "PARTNER",
"position": 2
}
]
}
}{
"statusCode": 403,
"message": "Company does not belong to this affiliate firm",
"error": "Forbidden"
}{
"statusCode": 403,
"message": "Company does not belong to this affiliate firm",
"error": "Forbidden"
}{
"statusCode": 403,
"message": "Company does not belong to this affiliate firm",
"error": "Forbidden"
}Retrieves the public status workflow for a selected incorporation jurisdiction and type.
Use this endpoint after the customer chooses
If the status workflow is not active for the selected incorporation type, the endpoint returns
country and countryOptions if you want to render a progress UI before the incorporation is created.
The workflow is informational and versioned. Incorporation progress is returned by Get incorporation status.
Query shape
Use the same deep-object query syntax as the requirements endpoint.curl --request GET \
--url 'https://api.prod.commenda.io/api/v1/partner/incorporation/status-workflow?country=SG&countryOptions[corporationType]=PRIVATE_LIMITED_COMPANY' \
--header 'x-api-key: <partner_api_key>'
Response
{
"statusWorkflow": {
"schemaVersion": "2026-04-26",
"definitionVersion": "1.0.0",
"key": "singapore-incorporation-partner-api",
"country": "SG",
"countryOptions": {
"corporationType": "PRIVATE_LIMITED_COMPANY"
},
"name": "Singapore Private Limited Company Incorporation",
"description": "Track the public progress of a Singapore private limited company incorporation.",
"stages": [
{
"id": "intake",
"label": "Intake",
"description": "Collect required incorporation information and documents.",
"owner": "PARTNER",
"position": 1
},
{
"id": "kyc",
"label": "KYC",
"description": "Review required identity, ownership, and compliance materials.",
"owner": "COMMENDA",
"position": 2
}
]
}
}
Stage owners
| Owner | Meaning |
|---|---|
PARTNER | The partner integration or partner team owns the stage. |
CUSTOMER | The end customer must provide input. |
COMMENDA | Commenda owns the stage. |
404.Authorizations
Query Parameters
Incorporation country. ISO 3166-1 alpha-2 country code for the incorporation jurisdiction.
Available options:
AE, CA, GB, IE, IN, KY, NZ, SG, US Example:
"SG"
Country-specific options using deep-object query syntax, for example countryOptions[corporationType]=PRIVATE_LIMITED_COMPANY.
Country-specific incorporation options. Use the jurisdiction catalog for the currently supported fields and values.
Example:
{ "corporationType": "PRIVATE_LIMITED_COMPANY" }
Response
Status workflow retrieved successfully
Show child attributes
Show child attributes
Was this page helpful?